Помогите нужна срочно программа по принципу действия светофора на сложном перекрестке!!!!!!!
Как понять по принципу действия светофора?
Чтобы там машины ездили и пешеходы ходили на перекрестке?
что такое сложный перекресток?
Милана, тебе нужно просто описать это словами или сделать на Паскале программу, эмулирующую действия светофора?
я знаю как описать )
Вот, набросал на скорую руку . Два светофора, обычный перекресток (несложный )
Возможно, тебе придется поиграть временами 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) do begin
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;
begin
for i:=0 to 1 do TrLi[i].Show;
{WriteLn}
end;
begin
i:=0;
TrLi[0].Init(1);
TrLi[1].Init(10);
repeat
j:=(i+1) mod 2;
Show;
Delay(RT);
TrLi[i].Switch(G);
Show;
Delay(GT);
TrLi[i].Switch(Y);
Show;
Delay(YT);
TrLi[i].Switch®;
i:=j
until KeyPressed
end.
Спасибо большое, но там должны быть графы с возможными поворотами и они должны иметь определенный цвет, какк это сделать?