Ошибка в инструкции. Не знаю как исправить - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста исправить ошибку на первом else "else g:=g+1;". Буду рад если напишите, в чем была ошибка. Ошибка 113: ошибка в инструкции
Листинг программы
  1. program steklo;
  2. uses crt;
  3. var a,n,g:integer; b:array[0..1000]of integer;
  4. begin clrscr; g:=0;
  5. read(n); if (n<1) or (n>2000) then exit;
  6. for a:= 0 to 6*n do read(b[a]);
  7. write(b[a]);write(' ',a);readkey;
  8. repeat repeat
  9. if sqrt(sqr(b[1]-b[2])+sqr(b[3]-b[4]))=
  10. sqrt(sqr(b[7]-b[8])+sqr(b[9]-b[10])) {formula dliny storony}
  11. then b[7]:=b[7+2]; b[8]:=b[8+2]; b[9]:=b[9+2]; b[10]:=b[10+2];
  12. else g:=g+1;
  13. until true;
  14. b[1]:=b[1+2]; b[2]:=b[2+2]; b[3]:=b[3+2]; b[4]:=b[4+2];
  15. until true;
  16. if (g>((3*n)-n*2)) then writeln('nelsya sobrat`'); readkey; exit;
  17. else writeln('mojjno sobrat`');
  18. readkey;
  19. end.

Решение задачи: «Ошибка в инструкции. Не знаю как исправить»

textual
Листинг программы
  1. program steklo;
  2.   uses crt;
  3.   var a,n,g:integer; b:array[0..1000]of integer;
  4.  
  5. begin
  6.   clrscr;
  7.   g:=0;
  8.   read(n);
  9.   if (n<1) or (n>2000) then exit;
  10.  
  11.   for a:= 0 to 6*n do read(b[a]);
  12.   write(b[a]);
  13.   write(' ',a);
  14.   readkey;
  15.   repeat
  16.     repeat
  17.       if sqrt(sqr(b[1]-b[2])+sqr(b[3]-b[4]))=
  18.          sqrt(sqr(b[7]-b[8])+sqr(b[9]-b[10])) {formula dliny storony}
  19.       then
  20.         begin
  21.           b[7]:=b[7+2];
  22.           b[8]:=b[8+2];
  23.           b[9]:=b[9+2];
  24.           b[10]:=b[10+2];
  25.         end
  26.       else
  27.         g:=g+1;
  28.     until true;
  29.  
  30.     b[1]:=b[1+2];
  31.     b[2]:=b[2+2];
  32.     b[3]:=b[3+2];
  33.     b[4]:=b[4+2];
  34.   until true;
  35.  
  36.   if (g>((3*n)-n*2))
  37.   then
  38.     begin
  39.       writeln('nelsya sobrat`');
  40.       readkey;
  41.       exit;
  42.     end
  43.   else writeln('mojjno sobrat`');
  44.   readkey;
  45. end.

Объяснение кода листинга программы

Этот код написан на языке Turbo Pascal. Он выполняет следующие действия:

  1. Инициализирует переменные a, n, g:integer; b:array[0..1000]of integer;
  2. Очищает экран.
  3. Устанавливает значение переменной g равным 0.
  4. Считывает значение переменной n. Если n меньше 1 или больше 2000, программа завершается.
  5. Запускается цикл for, который выполняется 6*n раз. На каждой итерации считывается значение переменной b[a] и выводится на экран. Затем выводится пробел и считывается значение key.
  6. Повторяется внутренний цикл, пока не будет выполнено условие sqrt(sqr(b[1]-b[2])+sqr(b[3]-b[4]))=sqrt(sqr(b[7]-b[8])+sqr(b[9]-b[10])) или sqrt(sqr(b[7]-b[8])+sqr(b[9]-b[10]))=sqrt(sqr(b[1]-b[2])+sqr(b[3]-b[4])) и b[7], b[8], b[9], b[10] не изменяются.
  7. Если внутренний цикл завершается, выводится сообщение nelsya sobratили mojjno sobrat в зависимости от того, было ли выполнено условие или нет.
  8. Выводится символ key.
  9. Цикл for повторяется до тех пор, пока не будет выполнено условие (g>((3n)-n2)).
  10. Если условие выполняется, выводится сообщение nelsya sobratи программа завершается. Если условие не выполняется, выводится сообщение mojjno sobrat и программа продолжается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы