Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
m_ak_si_m
3 / 3 / 1
Регистрация: 11.10.2012
Сообщений: 33
#1

Выстрел пушки по мишени - Turbo Pascal

03.01.2013, 17:29. Просмотров 1239. Ответов 5
Метки нет (Все метки)

Составьте программу вывода в левой части экрана изображения пушки. В правой части экрана случайным образом появляется и исчезает мишень. Нажатием клавиши Enter производится выстрел из пушки. Момент попадания фиксируется в виде взрыва. Предусмотрите возможность перед выстрелом изменять скорость полета снаряда с индикацией на экране ее значения.

Добавлено через 17 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
uses
 crt, graph;
 var
  a,gd,gm,v: integer;
  rast1: real;
  {------------------------------------------}
procedure rast(v:integer;var rast1:real);
begin
rast1:=sqr(v)/9.81
end;
procedure pushka(x,y:integer);
var
  Radius: Integer;
begin
    setcolor(red);
  for Radius := 1 to 2  do
    Circle(x, y, Radius * 10);
  line(x,y-20,x+35,y-50);
  line(x+35,y-50,x+45,y-35);
  line(x+45,y-35,x+15,y-10);
end;
{-----------------------------------}
procedure mishen( Radius : Integer);
var
  i : Integer;
  fl: boolean;
begin
{mishen}
 
  fl:=true;
  for I:=1 to (getmaxy-100) do   {vniz}
  begin
       setcolor(white);
       for Radius := 1 to 5 do
        Circle(getmaxx-100, 50+i, Radius * 10);
       delay (50);
       if keypressed then
        if readkey=#13 then
       begin
         fl:=false;
         break;
       end;
       setcolor(black);
       for Radius := 1 to 5 do
        Circle(getmaxx-100, 50+i, Radius * 10);
end;
    if fl then
    for I:=(getmaxy-100) downto 50 do   {vverh}
  begin
       setcolor(white);
       if fl then
       for Radius := 1 to 5 do
        Circle(getmaxx-100, 50+i, Radius * 10);
       delay (50);
       if keypressed then
        if readkey=#13 then
     begin
         fl:=false;
         break;
     end;
       setcolor(black);
       if fl then
        for Radius := 1 to 5 do
         Circle (getmaxx-100, 50+i, Radius * 10);
 
  end;
end;
{-------------------------------------------------------------}
procedure yadro(v:integer;rast:real);
var
 x,i:longint;
 y:real;
begin
{ FillEllipse(95, getmaxy-98, 8,8); }
 for x:=95 to (round(rast)+95) do
  begin
   y:=abs(x-(9.81/(2*v*v))*sqr(x)+(getmaxy-98))   ;
   setcolor(red);
   fillellipse(x,round(y),8,8);
  end;
end;
begin
 writeln('vvedite v');
 rast(v,rast1);
 readln(v);
 Gd := Detect;
  InitGraph(Gd, Gm, 'X:\BP'); { Џгвм Є BGI ¤а*©ўҐа*¬ }
  if GraphResult <> grOk then
    Halt(1);
 
  pushka(50,getmaxy-50);
  mishen(10);
  yadro(v,rast1);
 
  readln;
  closegraph;
end.
Добавлено через 29 секунд
не знаю как сделать полет ядра по законам физики
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2013, 17:29
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выстрел пушки по мишени (Turbo Pascal):

Программа стрельбы по мишени
Нужна помощь. Надо составить программу стрельбы по мишени,а лучше в какую-либо...

Изобразить полет ядра при выстреле из пушки
Изобразить полет ядра при выстреле из пушки. Кому не сложно помогите , заранее...

Написать движения прицела и мишени
Без понятия как делать движущиеся мишень при движений прицела. Вот что удалось...

Попадание точки в различные части мишени
Имеется задача. Мишень состоит из 2-ух сторон, если попасть в верхнюю правую...

Сколько нужно выстрелов, чтобы поразить все мишени
Помогите решить,пожалуйста) Заданы координаты (x,y), N мишеней (N&lt;=100)....

Написать процедуру изображения мишени из N концентрических окружностей в графическом режиме
17.Написать процедуру изображения мишени из N концентрических окружностей в...

5
HighPredator
5648 / 1965 / 716
Регистрация: 10.12.2010
Сообщений: 5,697
Записей в блоге: 3
03.01.2013, 17:39 #2
Реализуйте
http://www.cyberforum.ru/cgi-bin/latex.cgi?\Delta \vec{r}=\vec{{V}_{0}}t+\frac{\vec{a}{t}^{2}}{2}
Распишите по проекциям, задайте все, что нужно. И полетит
0
m_ak_si_m
3 / 3 / 1
Регистрация: 11.10.2012
Сообщений: 33
03.01.2013, 17:44  [ТС] #3
а я не знаю времени(t) и ускорения (a)...Я только знаю скорость, расстояние полета и угол... Мне нужно уравнение графика
0
HighPredator
5648 / 1965 / 716
Регистрация: 10.12.2010
Сообщений: 5,697
Записей в блоге: 3
03.01.2013, 17:56 #4
Так у вас есть все, что нужно. Пусть у нас идеальный случай: на ядро действует только ускорение свободного падения. Распишем уравнение по проекциям:
OX: http://www.cyberforum.ru/cgi-bin/latex.cgi?\Delta {r}_{x}=l={V}_{o}\cos \alpha \cdot t
Так как ускорение свободного падения действует только вдоль оси OY, его проекция на OX равна нулю.
Отсюда находим время полета.
OY: http://www.cyberforum.ru/cgi-bin/latex.cgi?\Delta {r}_{y}=h={V}_{o}\sin \alpha \cdot t-\frac{g{t}^{2}}{2}
Штука в том, что вам нужно будет считать положение ядра через какие то промежутки времени [0;tполета].
1
m_ak_si_m
3 / 3 / 1
Регистрация: 11.10.2012
Сообщений: 33
03.01.2013, 17:59  [ТС] #5
спасибо!!!
0
m_ak_si_m
3 / 3 / 1
Регистрация: 11.10.2012
Сообщений: 33
13.01.2013, 20:44  [ТС] #6
HighPredator, не могли бы помочь а то что то не получается
0
13.01.2013, 20:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2013, 20:44
Привет! Вот еще темы с решениями:

Нужны решения к олимпиадным задачам "Стрельба по мишени" и "Шахматная доска"
Попал на республиканскую олимпиаду по программированию:yahoo: втором туре узнал...

Выстрел из пушки
Всем привет,подскажите пожалуйста как сделать выстрел из пушки ядром.

Стрельба из пушки по мишени
Здравствуйте. Задание: смоделировать стрельбу из пушки по мишени, которая...

Выстрел по мишени (реализация 10-ти повторов)
Уважаемые товарищи программисты, я построил на консольке приложение, &quot;попасть в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru