IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Имитация полета снаряда, работа с графикой
Vila
сообщение 9.11.2004 16:20
Сообщение #1


Гость






Надо построить модель полета снаряда с исходными данными скорость и угол стрельбы. Начальная высота нулевая. Графиков может быть несколько, причем ввод очередной двойки (скорость, угол) производится уже при нарисованых предыдущих графиках.
Заранее благодарна smile.gif
 К началу страницы 
+ Ответить 
APAL
сообщение 9.11.2004 16:25
Сообщение #2


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Надо бы вспомнить формулы...
Случайно не знаете? ;)


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.11.2004 16:28
Сообщение #3


Гость






Vila
Вот тут была решена похожая задачка - только без графики... Формулы можно взять оттуда.
 К началу страницы 
+ Ответить 
APAL
сообщение 9.11.2004 16:35
Сообщение #4


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Я тут еще нашел:
http://www.examens.ru/otvet/11/9/814.html


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.11.2004 20:27
Сообщение #5


Гость






Vila
Посмотрите вот эту программку... Для значений Vo до 100 она работает...
Если нужно, попробуйте поиграть с выводом точек...


uses
 Crt, Graph;

const
 G = 9.8;
 n = 2;

function getint(x, y: integer; s: string): integer;
 var
   st: string;
   err, a: integer;
   ch: char;
 begin
   setcolor(white);
   outtextxy(x, y, s);
   st := '';
   repeat
     ch := readkey;
     if ch in [#8, '0'..'9'] then
       begin
         setcolor(black);
         outtextxy(x + textwidth(s), y, st);
         setcolor(white);
         if ch = #8 then
           begin
             if st <> '' then delete(st, length(st), 1)
           end
         else
           st := st + ch;

         outtextxy(x + textwidth(s), y, st);
       end
   until ch = #13;
   val(st, a, err);
   getint := a
 end;

var
 grDriver, grMode, ErrCode: integer;

 v0, a, x, y: real;
 t: real;
 i: integer;
 currcolor, px, py: integer;
begin
 grDriver := Detect;
 initgraph( grDriver, grMode, '' );
 ErrCode := GraphResult;
 if ErrCode <> grOk then
   begin
     writeln('Graphics error:', grapherrormsg(ErrCode));
     halt(100)
   end;

 currcolor := 0;
 while true do
   begin
     setviewport(0, 0, getmaxx, 40, false);
     clearviewport;
     setviewport(0, 0, getmaxx, getmaxy, false);

     v0 := getint(5, 5, 'enter Vo ');
     a := getint(5, 20, 'enter A ');
     if v0 = 0 then break;

     inc(currcolor);
     currcolor := (currcolor mod 10) + 1;

     t := 0;
     repeat
       x := v0 * cos(a / (180/Pi)) * t;
       y := v0 * sin(a / (180/Pi)) * t - (G * sqr(t)/2);

       px := trunc(x); py := trunc(y);
       putpixel(px, (getmaxy div 2) - py, currcolor);
       if (t > 0.01) and (y <= 0) then break;

       t := t + 0.01;
     until false;
   end;

 closegraph;
end.

 К началу страницы 
+ Ответить 
Rothmans
сообщение 10.11.2004 2:09
Сообщение #6





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


В программке меня беспокоят две вещи:
1) while true
2) until false

А товарищу APAL, дабы усложнить задачу поиска всяких ссылок, советую попробовать ввести в задачу ветер переменного направления и силы (во время полёта снаряда).

Кстати, есть отличный образчик программки со снарядами, визуализация отличная. Scorched Earth называется. Ходят слухи, что на паскале написана.
Кто-то, типа, даже исходники видел.

Я думаю, ноги этой задачки лежат в бурном Scorch-детстве препода. smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.11.2004 2:48
Сообщение #7


Гость






Цитата
В программке меня беспокоят две вещи: 1) while true 2) until false


Таким способом я заставляю программу выполняться до тех пор, пока не будут соблюдены нужные условия для выхода? По-Вашему, я должен эти условия всовывать в while и repeat ?

P.S. Почему, собственно, эти 2 вещи Вас беспокоят? Я вроде goto не использую... Напишите лучше ...
 К началу страницы 
+ Ответить 
Vila
сообщение 10.11.2004 9:01
Сообщение #8


Гость






Спасибо Всем, сейчас координатные оси дорисую, и попробуем сдать...
 К началу страницы 
+ Ответить 
Rothmans
сообщение 10.11.2004 14:14
Сообщение #9





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Просто эстетствую smile.gif.
Неявное окончание условного цикла сродни GOTO.
Вообще-то, в данной задачке достаточно условий для того, чтобы построить квадратное уравнение.
t=2*(Vy/G)
x1=0
x2=t*Vx при y=0
ymax=t/2*Vy
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 10.11.2004 18:51
Сообщение #10


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Неявное окончание условного цикла

ЧЕГО????
что значит неявное??
Условие или есть или его нет! Третьего не дано!
Всегда можно сделать трассировку на бумаге и сказать где будет конец цикла! :yes:


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rothmans
сообщение 11.11.2004 22:32
Сообщение #11





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Конструкция "repeat until false" абсолютно равнозначна "label: goto label", только код ещё осложнён ненужным сравнением. Выход из условного цикла при помощи иной конструкции (ex.: "if ... then break", "goto") называется неявным, и, на мой взляд, выглядит несимпатично.
Я, по работе, имею дело с большим количеством бумаги. Но даже мне становится жутко от трассировки, если t достигнет 100 и более. :D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 12.11.2004 7:02
Сообщение #12


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
и, на мой взляд, выглядит несимпатично.

В любом случае, они, в отличии GOTO разрешены!


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Dark
сообщение 12.11.2004 9:02
Сообщение #13


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


Цитата
В любом случае, они, в отличии GOTO разрешены!


А что, кто то что то вообще запрещает??? =))) хм.... GOTO паскалем не запрещен, и программисту могут тока сказать что не красиво но вот запретить...


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rothmans
сообщение 12.11.2004 11:28
Сообщение #14





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Мне Pascal нравиться за то, что при соблюдении определённых правил написания, исходный текст программы имеет чёткую структуру и легко читается(на С быстрее писать, но читать хуже). При работе в команде это очень важно.
При решении задачи тоже.
Пора открывать новую тему - про "GOTO". smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.06.2025 2:53
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"