Ограничение чисел вводимых в массив - Free Pascal

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

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

Есть массив. Необходимо ограничить ввод чисел в него. Я создал свой тип данных. При вводе неверных значений программа вылетает. Free pascal выдаёт:"exitcode = 201". Вопрос: Есть ли процедура, подобная IOResult, которая будет возвращать какое-либо значение, при введении неверного значения? Каким образом можно ограничить вводимые числа в массив?
program pr_lr8;
uses crt;
type marks = 1..5;
     student = record
     surname:string[20];
     group:string[8];
     usp:array[1..5] of marks;
     summa:real;
     end;
var s, s1:student;
    f:file of student;
    i, num:byte;

procedure create;
var c:char;
begin
   seek(f,filesize(f));
   writeln('Для выхода введите "*"');
   while true do
   begin
      write('Введите фамилию и инициалы студента: ');
      readln(s.surname);
      if s.surname = '*' then break;
      if (s.surname = '') then writeln('Ошибка ввода') else
      begin
         write('Введите группу: ');
         readln(s.group);
         if (s.group = '') then writeln('Ошибка ввода') else
         begin
            write('Введите оценки: ');
            for i := 1 to 5 do
            begin
               read(s.usp[i]);
               s.summa := s.summa + s.usp[i];
            end;
            s.summa := s.summa / 5;
            readln;
            write(f,s);
            s.summa := 0;
         end;
      end;
   end;
   clrscr;
end;
 
{--------------------------------------------------------------}

Решение задачи: «Ограничение чисел вводимых в массив»

textual
Листинг программы
write('Введите оценки: ');
for i := 1 to 5 do
 begin
  repeat    
    read(s.usp[i]);
  until s.usp[i] in [2..5];
  s.summa := s.summa + s.usp[i];
 end;

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

  1. Вводится массив usp размером 5.
  2. Пользователю предлагается ввести оценки от 2 до 5.
  3. Цикл for i := 1 to 5 выполняет пять проходов.
  4. На каждом проходе цикла выполняется операция repeat-until, которая продолжается до тех пор, пока не будет введено число от 2 до 5.
  5. Если число соответствует условию, то оно сохраняется в массиве usp.
  6. После окончания цикла суммируются все числа в массиве usp и сохраняются в переменной summa.

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


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

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

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