Помогите нужна срочно программа по принципу действия светофора на сложном перекрестке!!!!!!!
cooler
9.11.2007 2:24
Как понять по принципу действия светофора? Чтобы там машины ездили и пешеходы ходили на перекрестке?
Гость
9.11.2007 2:31
Цитата(cooler @ 8.11.2007 22:24)
Как понять по принципу действия светофора? Чтобы там машины ездили и пешеходы ходили на перекрестке?
нет, просто есть перекресток нужно описать принцип как бут переключаться на нем светофоры
мисс_граффити
9.11.2007 6:11
что такое сложный перекресток?
Цитата
Перекресток - это пересечение проезжих частей, расположенных в 1 уровне
(с) мой инструктор, основываясь на ПДД
Lapp
9.11.2007 7:27
Милана, тебе нужно просто описать это словами или сделать на Паскале программу, эмулирующую действия светофора?
Гость
9.11.2007 15:23
я знаю как описать )
Lapp
9.11.2007 16:31
Цитата(Гость @ 9.11.2007 11:23)
я знаю как описать )
То есть, нужна программа, переключающая огни светофора?
Lapp
9.11.2007 19:28
Вот, набросал на скорую руку . Два светофора, обычный перекресток (несложный ) Возможно, тебе придется поиграть временами RT, DT и YT. Если раскомментировать строку WriteLn в процедуре Show, то новые состояния будут выводиться на новой строке.
uses CRT;
const
RT=1000; {время, когда оба красные (очень короткое)}
GT=10000; {время, когда горит зеленый (длинное)}
YT=2000; {время, когда горит желтый (короткое)}type
tLi=(G,Y,R);
tTrLi=object
Act:tLi;
x:integer;
constructor Init(a:integer);
procedure Switch(a:tLi);
procedure Show;
end;
const
C:array[tLi] of char=('G','Y','R');
constructor tTrLi.Init(a:integer);
begin
Act:=R;
x:=a
end;
procedure tTrLi.Switch(a:tLi);
begin
Act:=a
end;
procedure tTrLi.Show;
var
i:tLi;
begin
GoToXY(x,WhereY);
for i:=Low(tLi) to High(tLi) dobegin
Write(' ');
if i=Act then Write(C[Act]) else Write('*')
end;
end;
var
i,j,k:0..1;
TrLi:array[0..1]of tTrLi;
procedure Show;
var
i:integer;
beginfor i:=0to1do TrLi[i].Show;
{WriteLn}end;
begin
i:=0;
TrLi[0].Init(1);
TrLi[1].Init(10);
repeat
j:=(i+1) mod2;
Show;
Delay(RT);
TrLi[i].Switch(G);
Show;
Delay(GT);
TrLi[i].Switch(Y);
Show;
Delay(YT);
TrLi[i].Switch(r);
i:=j
until KeyPressed
end.
Гость
10.11.2007 15:26
Спасибо большое, но там должны быть графы с возможными поворотами и они должны иметь определенный цвет, какк это сделать?
Lapp
10.11.2007 16:08
Цитата(Гость @ 10.11.2007 11:26)
должны быть графы с возможными поворотами и они должны иметь определенный цвет,
Что значит "определенный цвет"? Цветов всего три: красный, желтый, зеленый! Если будет больше - ездить станет невозможно.. Может, ты имеешь в виду стрелки? Их, в принципе, можно ввести. Я же написал - это пока простейшая прога, типа базис, фундамент, чтоб тебе было, от чего отталкиваться. Все можно доделать и переделать (графический интерфейс, многосторонние перекрестки..) Ты въезжай в принципы, разбирайся и - вперед! А мы поможем..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.