Случайный выбор - Pascal ABC

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

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

Дорогие мои, подскажите, пожалуйста, как сделать случайный выбор вопросов. Никак не могу понять куда поставить randomize и каким образом его описать. Пробовала ставить, но выбирается только один вопрос и сразу же ставится оценка, что мне не подходит. Нужно, что бы случайным образом выбирались все вопросы.

Решение задачи: «Случайный выбор»

textual
Листинг программы
var correct_answers: array[1..20] of byte;
    i,j,x,s,ocenka,a: byte;/добавит a
    m:set of byte;//добавить
........................................
//после заполнения массивов
randomize;
m:=[];
s:=0;
for i:=1 to 20 do
 begin
  repeat
   a:=1+random(20);
  until not(a in m);
  m:=m+[a];
  writeln(questions[a]);
  for j:=1 to 4 do write(j,'. ',answers[a,j],'. ');
  writeln;
  readln(x);
  if x=correct_answers[a] then inc(s);
 end;

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

  1. В коде представлена задача случайного выбора.
  2. В первой части кода объявлены переменные:
    • correct_answers - массив из 20 элементов типа byte, который будет содержать правильные ответы;
    • i, j, x, s, ocenka, a - вспомогательные переменные типа byte.
  3. Во второй части кода происходит заполнение массивов:
    • correct_answers - заполняется значениями правильных ответов;
    • questions - массив строк, содержащих вопросы;
    • answers - массив 2D, содержащий варианты ответов.
  4. Далее, с помощью функции randomize, инициализируется генератор случайных чисел.
  5. Затем, создается пустое множество m, которое будет использоваться для отслеживания выбранных чисел.
  6. Внешний цикл for i:=1 to 20 выполняет пошаговое тестирование каждого элемента массива correct_answers.
  7. Внутренний цикл repeat-until используется для случайного выбора числа, которое еще не было добавлено в множество m.
  8. После выбора числа a, оно добавляется в множество m, а затем выводится вопрос, соответствующий числу a.
  9. Затем, с помощью внутреннего цикла for j:=1 to 4, выводятся варианты ответов на вопрос.
  10. После чтения ответа пользователя с помощью функции readln(x), проверяется его соответствие правильному ответу correct_answers[a].
  11. Если ответы совпадают, переменная s увеличивается на единицу.
  12. В конце программы значение переменной s будет содержать количество правильных ответов.

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


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

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

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