Не получается компилировать программу на паскале
Выходит ошибка из-за else, пишет, что встречено else, а ожидался оператор.
Вот программа:
var s:='2'+'8'*99+'2';
begin
while (pos('81',s)<>0) or (pos('882',s)<>0) or (pos('8883',s)<>0) do begin
var i81:=pos('81',s);
var i882:=pos('882',s);
var i8883:=pos('8883',s);
if i81<>0 then begin
delete(s,i81,2);
insert('2',s,i81);
else
if i882<>0 then begin
delete(s,i882,3);
insert('3',s,i882);
else
delete(s,i8883,4);
insert('1',s,i8883);
end;
end;
end;
end.
Ответы
Ответ дал:
0
var s:='2'+'8'*99+'2';
begin
while (pos('81',s)<>0) or (pos('882',s)<>0) or (pos('8883',s)<>0) do
begin
var i81:=pos('81',s);
var i882:=pos('882',s);
var i8883:=pos('8883',s);
if i81<>0 then
begin
delete(s,i81,2);
insert('2',s,i81)
end
else
if i882<>0 then
begin
delete(s,i882,3);
insert('3',s,i882);
end
else
delete(s,i8883,4);
insert('1',s,i8883);
end;
end.
baibek:
Бляха, забыл кинуть условие задачи
НАЧАЛО
ПОКА нашлось (81) ИЛИ нашлось (882) ИЛИ нашлось (8883)
ЕСЛИ нашлось (81)
ТО заменить (81, 2)
ИНАЧЕ ЕСЛИ нашлось (882)
ТО заменить (882, 3)
ИНАЧЕ заменить (8883, 1)
КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
ПОКА нашлось (81) ИЛИ нашлось (882) ИЛИ нашлось (8883)
ЕСЛИ нашлось (81)
ТО заменить (81, 2)
ИНАЧЕ ЕСЛИ нашлось (882)
ТО заменить (882, 3)
ИНАЧЕ заменить (8883, 1)
КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Возможно не правильно исправил, тк не знаю условия, но суть в том что были неправильно поставлены end.
Хорошо, спасибо
условие не верно, если после if надо поставить else то выполняемый блок оператором if должен быть закрыт begin и end
Вас заинтересует
2 года назад
2 года назад
8 лет назад
9 лет назад