Как сделать, чтобы блоки программы выводились случайным образом? - Pascal ABC
Формулировка задачи:
Как сделать, чтобы блоки программы (строки 6-14 и 16-24) выводились случайным образом?
Пожалуйста помогите! Очень нужно
Решение задачи: «Как сделать, чтобы блоки программы выводились случайным образом?»
textual
Листинг программы
uses crt; var i, n, f, j, answ: integer; answer, option: string; quiz: array of integer; question: array of string; k := 0; begin n := 3; //количество предусмотренных вопросов //Начинаю заполнять массив случайными не повторяющимися цифрами в пределах предусмотренного количества вопросов randomize; quiz := new integer[n + 1]; for i := 1 to n do repeat f := 0; quiz[i] := random(n) + 1; for j := 1 to i - 1 do if quiz[i] = quiz[j] then f := 1; until f = 0; //Закончил заполнение массива for i := 1 to n do begin case quiz[i] of 1: begin question := new string[3];question[1] := 'привЕт';question[2] := 'прИвет'; answer := '1'; end; 2: begin question := new string[7];question[1] := 'вЕликолепно';question[2] := 'велИколепно';question[3] := 'велИколепно';question[4] := 'великОлепно';question[5] := 'великолЕпно';question[6] := 'великолепнО'; answer := '5'; end; 3: begin question := new string[5];question[1] := 'зАдание';question[2] := 'задАние';question[3] := 'заданИе';question[4] := 'заданиЕ'; answer := '2'; end; end; writeln('Вопрос №', i, ' выберете верное ударение'); f := Length(question) - 1; for j := 1 to f do begin write(j, ') ', question[j], ' '); end; writeln(); while option = '' do Readln(option); answ:= StrtoInt(answer); if (option = answer) or (option = question[answ]) then begin textcolor(2); Writeln('Правильно'); textcolor(15); writeln();option := '';k := k + 1; end else begin textcolor(4); Writeln('Не верно :('); textcolor(15); writeln();option := ''; end; end; case k of 0: begin writeln(); textcolor(4); Writeln('Нет верных ответов, плохо, попробуй ещё!'); textcolor(15); end; 1..2: begin writeln(); textcolor(14); Writeln('Половина верных, неплохо, но постарайся лучше!'); textcolor(15); end; 3: begin writeln(); textcolor(2); Writeln('Всё верно, молодец! =)'); textcolor(15); end; end; end.
Объяснение кода листинга программы
- Создается переменная
n
со значением 3, что означает количество предусмотренных вопросов. - Используется функция
randomize
, чтобы инициализировать генератор случайных чисел. - Создается массив
quiz
сn + 1
элементами, который будет содержать случайно сгенерированные числа от 1 доn
. - Заполняется массив
quiz
с помощью циклаfor
, который проверяет каждое число в диапазоне от 1 доn
на уникальность и добавляет его в массивquiz
. - В цикле
for
создаются три вопроса для каждого из трех возможных ответов (1
,2
,3
). Вопросы создаются с помощью динамического создания строки, где каждый вопрос состоит из трех строк, а ответы и ударения представлены в виде строк. - Выводится вопрос и предлагается ввести ответ. Если ответ правильный, выводится сообщение
Правильно
, если нет - выводится сообщениеНе верно
. - Выводится сообщение
Нет верных ответов, плохо, попробуй ещё!
в случае, если ни один из ответов не является правильным. - Выводится сообщение
Половина верных, неплохо, но постарайся лучше!
в случае, если только половина ответов являются правильными. - Выводится сообщение
Всё верно, молодец! =)
в случае, если все ответы являются правильными. - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д