Выбор случайного значения из списка - Pascal ABC

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

Здравствуйте. Помогите пожалуйста выбрать случайное значение из списка. Сам код создания списка и выбор случайного значения я написал, но код нужно немного подправить. Когда выбираешь случайного студента, то иногда программа пишет "индекс находится вне границ массива". Помогите пожалуйста это исправить. Я так думаю что это нужно исправить размер массива чтобы размер каждый раз задавался пользователем, а реализовать у меня не получается.
uses
  crt;
 
type
  uch = record
  fam:string[15];
  end;
 
var
  a: array[1..25]of uch;
  n, i: integer;
 
begin
  randomize;
  repeat
    write('Введите количество студентов (от 2 до 20) n=');
    readln(n);
  until n in [2..20];
  for i := 1 to n do
    with a[i] do
    begin
      write('Фамилия: ');readln(fam);
    end;
  clrscr;
  writeln('Список студентов:');
  for i := 1 to n do
    with a[i] do
    begin
      writeln(fam);
    end;
 
  write('Студент: ', a[random(n)]);
end.

Код к задаче: «Выбор случайного значения из списка - Pascal ABC»

textual
write('Студент: ', a[1+random(n)]);//от 1 до n
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

9   голосов, оценка 4.000 из 5


СДЕЛАЙТЕ РЕПОСТ
Похожие ответы