Начинающий.Процедуры с параметрами

Была вот такая задача: Подойдя к перекрестку, пешеход решает, переходить ли ему улицу или остановиться. На решение влияет характер пешехода и ещё два фактора: сигнал светофора и близость опасно движущегося транспорта. Напишите программу с процедурой, которая принимает и печатает решение в зависимости от переданных в неё трех параметров, а именно. · Параметр A = true, если горит зеленый; · Параметр B = true, если поблизости опасно движется транспорт; · Параметр C – это число, определяющее характер пешехода так: 1 - послушный и осторожный — учитывает и светофор и опасность; 2 - послушный, но беспечный — смотрит только на светофор; 3 - хитрый вольнодумец — идет только на красный, если это ничем не грозит; 4 - непримиримый вольнодумец — идет только на красный; 5 - экстремал — идет только на красный, и так, чтобы грозила опасность; 6 - «безбашенный» — идет, несмотря ни на что; 7 - запуганный — никогда не идет через дорогу, а ищет подземный переход. Код для ее решения я написал такой:Program Пешеход; var A,B,N,M:boolean; C:integer; s:string; t:string; d:string; procedure perehod(A:boolean;B:boolean;C:integer;s:string;t:string;N:boolean;d:string;M:boolean); begin If s=‘Зеленый’ then begin A:=True; end; if (s=‘Красный’) or (s=‘Желтый’) then begin A:=False; end; If (t=‘движется транспорт’) or (t=‘едет машина’) or (t=‘едет автомобиль’) then begin B:=true; end; If (t=‘не движется транспорт’) or (t=‘не едет машине’) or (t=‘не едет автомобиль’) then begin B:=False; end; If (d=‘переходит’) or (d=‘да’) then begin N:=true; end; If (d=‘не переходит’) or (d=‘нет’) then //1)(not A and not B and not N) O:=‘Послушный и осторожный учитывает и светофор и опасность’// begin N:=False; end; while C<=7 do begin case C of 1:begin M:=(not A and B and not N); writeln(‘Послушный и осторожный. Учитывает и светофор и опасность.’); end; 2: begin M:=(A and B and N); writeln(‘Послушный, но беспечный. Учитывает только светофор.’); end; 3: begin M:=(not A and not B and N); writeln(‘Хитрый и вольнодумец. Идет на красный, если нет транспорта.’); end; 4: begin M:=(not A) and (B or not B) and (N); writeln(‘Непримермый вольнодумец. Идет только на красный.’); end; 5:begin M:= (not A and B and N); writeln(‘Экмтремал. Идет на красный и так чтобы грозила опасность’); end; 6:begin M:=((A or not A) and (B or not B) and (N)); writeln(‘Безбашенный. Идет несмотря ни начто.’); end; 7:begin M:=((A or not A) and (B or not B) and (not N)); writeln(‘Запуганный. Пользуестя подземным переходом.’); end; end; end; end; begin writeln(‘Какой знак светофора горит?’); readln(s); writeln(‘Движется ли опасный транспорт?’); readln(t); Writeln(‘Введите цифру определяющую характер пшехода.’); readln(d); perehod(A,B,C,s,t,d,N,M); readln; end. При компиляции выдает ошибку: нельзя преобразовать string к boolean. Как это исправить?

Ваша программа содержит множество ошибок в алгоритме. Исправить, чтобы ошибки компиляции не было - поменять местами в вызове процедуры фактические параметры N и d