Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Как вывести результат сложения данных из файла?
kan3k1k3n
@kan3k1k3n

Как прочесть данные из текствого файла?

задание:
В институт поступают абитуриенты по результатам ЕГЭ. Информация об абитуриентах хранится в текстовом файле
в формате:
<Фамилия> <Имя> <Отчество> <Балл по математике> <Балл по информатике> <Балл по физике>
В институте есть 100 бюджетных мест. Сформируйте список претендентов на зачисление в формате (в порядке убывания
суммарного балла):
<Суммарный балл> <Фамилия> <Имя> <Отчество>

код:
program admission;
const n = 100;
type student = record
        surname, name, patronymic: string;
        math, informatics, physics, total: integer;
     end;
var
   a: array[1..n] of student;
   i, j: integer;
   temp: student;
begin
   {читаем данные из файла}
   assign(input, 'ege.txt');
   reset(input);
   for i:= 1 to n do 
      with a[i] do
        readln(surname, name, patronymic, math, informatics, physics);
 
   {вычисляем суммарный балл и сортируем студентов по убыванию}
   for i:= 1 to n do 
      with a[i] do
         total:= math + informatics + physics;
   for i:= 1 to n-1 do 
      for j := i+1 to n do 
         if a[j].total > a[i].total then begin
            temp := a[i];
            a[i] := a[j];
            a[j] := temp;
         end;
 
   {выводим список студентов}
   writeln('Список претендентов на зачисление:');
   for i := 1 to n do 
      with a[i] do 
         writeln(total, ' ', surname, ' ', name, ' ', patronymic);
end.


содержимое файла:
Петров Владимир Алексеевич 89 78 69
Музыченко Юрий Владиславович 90 91 93
Егоров Александр Васильевич 70 70 70

выводит ошибку: Ошибка времени выполнения: Входная строка имела неверный формат 1056 (6 строка, где написано readln(surname, name, patronymic, math, informatics, physics))
как это исправить? какой должен быть верный формат?
  • Вопрос задан
  • 71 просмотр
Подписаться 1 Простой
Ответы на вопрос 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
Ты читаешь не из файла
for i:= 1 to n do 
      with a[i] do
        readln(surname, name, patronymic, math, informatics, physics); <-----
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы