Как сделать, чтобы блоки программы выводились случайным образом? - 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.

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

  1. Создается переменная n со значением 3, что означает количество предусмотренных вопросов.
  2. Используется функция randomize, чтобы инициализировать генератор случайных чисел.
  3. Создается массив quiz с n + 1 элементами, который будет содержать случайно сгенерированные числа от 1 до n.
  4. Заполняется массив quiz с помощью цикла for, который проверяет каждое число в диапазоне от 1 до n на уникальность и добавляет его в массив quiz.
  5. В цикле for создаются три вопроса для каждого из трех возможных ответов (1, 2, 3). Вопросы создаются с помощью динамического создания строки, где каждый вопрос состоит из трех строк, а ответы и ударения представлены в виде строк.
  6. Выводится вопрос и предлагается ввести ответ. Если ответ правильный, выводится сообщение Правильно, если нет - выводится сообщение Не верно.
  7. Выводится сообщение Нет верных ответов, плохо, попробуй ещё! в случае, если ни один из ответов не является правильным.
  8. Выводится сообщение Половина верных, неплохо, но постарайся лучше! в случае, если только половина ответов являются правильными.
  9. Выводится сообщение Всё верно, молодец! =) в случае, если все ответы являются правильными.
  10. Конец программы.

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


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

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

5   голосов , оценка 4.4 из 5
Похожие ответы