Убрать зацикливание программы - PascalABC.NET
Формулировка задачи:
Не понимаю почему зацикливается, помогите пожалуйста. Программа -тестирование
Решение задачи: «Убрать зацикливание программы»
textual
Листинг программы
program rr; uses crt; const xo = 14; yo = 5; var op: byte; k: integer; procedure testik; const vopr = 12; prav: array [1..vopr] of byte = (4, 1, 1, 2, 1, 3, 1, 1, 2, 1, 2, 1); var f: text; str: string; i, k: integer; op: byte; begin k := 0; clrscr; assign(f, '1.txt');reset(f); for i := 1 to vopr do begin writeln; writeln(' ВОПРОС № ', i); writeln; repeat readln(f, str); writeln(str); until str ='*'; write('Выберите ответ '); readln(op); if op = prav[i] then k := k + 1; end; writeln('Вы набрали ', k, ' балл(ов)' ); case k of 12, 11: writeln('Красавчик! Тест выполнен на отлично! Ваша оценка 5.'); 10, 9: writeln('Стоит немного подучить, но 4 тоже хорошая оценка.'); 8, 7: writeln('Еще немного и вы опуститесь на уровень австралопитека! Ваша оценка 3'); else writeln('Учиться, учиться и еще раз учиться! Фу какой позор на Вашу голову! Оценка 2!'); end; readln; end; begin while not keypressed do begin clrscr; gotoxy(xo, yo); gotoxy(xo, yo + 1);writeln(' Здесь титульник '); readkey;testik; end; end.
Объяснение кода листинга программы
Список элементов кода:
- Объявление переменных и констант
- op: byte;
- k: integer;
- const
- xo = 14;
- yo = 5;
- Ввод данных с помощью цикла
- for i := 1 to vopr do
- begin
- writeln;
- writeln(' ВОПРОС № ', i);
- writeln;
- repeat
- begin
- readln(f, str);
- writeln(str);
- end
- until str ='*';
- write('Выберите ответ ');
- readln(op);
- if op = prav[i] then k := k + 1;
- end;
- Проверка результатов и вывод оценки
- writeln('Вы набрали ', k, ' балл(ов)' );
- case k of
- 12, 11: writeln('Красавчик! Тест выполнен на отлично! Ваша оценка 5.');
- 10, 9: writeln('Стоит немного подучить, но 4 тоже хорошая оценка.');
- 8, 7: writeln('Еще немного и вы опуститесь на уровень австралопитека! Ваша оценка 3');
- else
- writeln('Учиться, учиться и еще раз учиться! Фу какой позор на Вашу голову! Оценка 2!');
- end;
- Основной цикл программы
- begin
- while not keypressed do
- begin
- clrscr;
- gotoxy(xo, yo);
- gotoxy(xo, yo + 1);writeln(' Здесь титульник ');
- readkey;
- testik;
- end; *end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д