1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| xlr8 |
2.06.2007 11:45
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 22 Пол: Мужской Репутация: 0 |
Собственно написал вот такую программу. Шарик движется линейно между точками (x[i],y[i])..
А вопрос то - помогите алгоритмом работы такой программы, только с использованием динамического списка этих самых точек. Объясните,пожалуйста, каким способом обращатся к данным из (как я понимаю) динамического списка записей. Заранее спасибо. Сообщение отредактировано: xlr8 - 2.06.2007 11:47 |
![]() ![]() |
| xlr8 |
3.06.2007 9:54
Сообщение
#2
|
|
Новичок ![]() Группа: Пользователи Сообщений: 22 Пол: Мужской Репутация: 0 |
Код Uses Graph,Crt,My; Type point=^tpoint; tpoint=record x:real; y:real; next:point; end; Var first:point; place:point; output:text; k,i:integer; x,y:real; procedure draw(first:point); Var a,b,c:real; r:point; begin Init_graph; place:=first; while place<>nil do begin Drawcircle(round(place^.x),round(place^.y),red); place:=place^.next; end;} place:=first; while (place^.next<>nil) do begin y:=0; x:=place^.x; r:=place^.next; if place^.x<r^.x then begin repeat x:=x+1; y:=((x*r^.y-x*place^.y-place^.x*r^.y+place^.x*r^.y)+(r^.x*place^.y-place^.x*place^.y))/(r^.x-place^.x); writeln(y); {Drawcircle(round(x),round(y),green); delay(2600); Drawcircle(round(x),round(y),black);} until x>=r^.x; end else begin repeat x:=x-1; y:=((x*r^.y-x*place^.y-place^.x*r^.y+place^.x*r^.y)+(r^.x*place^.y-place^.x*place^.y))/(r^.x-place^.x); Drawcircle(round(x),round(y),green); delay(2600); Drawcircle(round(x),round(y),black); until x<=r^.x; end; place:=place^.next; end; end; {main program} BEGIN clrscr; randomize; first:=nil; while k<>2 do begin New(place); readln(place^.x); readln(place^.y); place^.next:=first; first:=place; k:=k+1; end; readkey; draw(first); readkey; END. Вобщем получается так, что шарик летает несовсем по точкам...То выше точки, то попадает, но ниже..Вобщем укажите плз если не сложно где здесь что подправить.. Сообщение отредактировано: xlr8 - 3.06.2007 9:55 |
xlr8 Динамический список координат 2.06.2007 11:45
Ozzя Тут прочитал как решать товю задачу? 2.06.2007 13:17
xlr8 Будем разбиратся..Спасибо 2.06.2007 18:48
xlr8 Просмотрите...правильно ли я всё сделал? (программ... 2.06.2007 20:09
Артемий Извини, а можно присоеденить модуль My? А то знаеш... 2.06.2007 20:15
volvo xlr8, динамический список где? Массив вижу, списка... 2.06.2007 20:32
xlr8 Вот модуль My..но он совсем не суть..
volvo, задан... 2.06.2007 21:47
volvo И динамического массива здесь тоже нет... Понимаеш... 2.06.2007 22:07
Чужак Вопрос: обязательно использовать массивы,
файлы, д... 3.06.2007 12:55
xlr8 Задачу нужно решить применив двунаправленый список... 5.06.2007 18:21
volvo Вот набросок:
uses crt, graph;
type
plist = ^tli... 5.06.2007 18:56
xlr8 Спасибо огромное! :) 5.06.2007 20:12
xlr8
procedure delete_elem(i:byte);
var
nav,p1,p2... 14.06.2007 8:49
volvo Может, в том, что элементы считаются у тебя с НУЛЯ... 14.06.2007 8:54![]() ![]() |
|
Текстовая версия | 9.12.2025 3:09 |