Помошите с кодом Pascal Помогите найти ошибку - вопрос №2617736

Program TEST; var a, b, x, y, x1, x2, xx, i: integer; begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); read(x,y); x1:=0; x2:=1; for i:=3 to x do; begin xx:=x1+x2; x1:=x2; x2:=xx end; end; a:=y; div x1; b:=0; while x1*a+x2*b<>y do begin while x1*a+x2*b if x1*a+x2*b<>y then begin a:=a-1; b:=0; end; write(a,' ',b) end.

Лучший ответ по мнению автора

1 — явная ошибка
...
beginxx:=x1+x2;x1:=x2;x2:=xxend;end;
… два «end;» подряд, один лишний, ломает баланс «begin end»

2 — соответственно, в конце программы не хватает «end;» в предпоследней строке, перед «end.», то же самое — нарушен балас

3 — точно ошибка — в строке «while x1*a+x2*b if x1*a+x2*b<>y then» пропущен «do», что бы такие ошибки были лучше видны, рекомендуется писать операторы/выражения по одному в строке, использовать отступ для наглядного отображения уровня вложенности, брать в кавычки логическое условие

while (x1*a+x2*b) do
       if (x1*a+x2*b<>y) then

4 — о наличии еще каких либо ошибок говорить невозможно, не зная назначения программы, входного файла, и листинга ошибок компилятора
12.10.17
Лучший ответ по мнению автора

Еva

Читать ответы
Посмотреть всех экспертов из раздела Учеба и наука > Информатика
1 ответ
19.11.11
Вопрос задан анонимно
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store