В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя...

0 голосов
465 просмотров

В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и количество баллов, разделенные пробелами:
<Фамилия> <Имя> <Количество баллов>
Вывести в другой файл данные учеников, которые получили больше 80 баллов. Список должен быть отсортирован по убыванию балла. Формат выходных данных:
П. Иванов 98
И. Петров 96
...


Информатика (1.3k баллов) | 465 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1449 от 23.05.2017
// Внимание! Если программа не работает, обновите версию!

type
  R=(string,integer);

begin
  var a:=ReadAllLines('input.txt');
  var L:=new List;
  foreach var s in a do begin
    var w:=s.ToWords.ToArray;
    if w[2]>'80' then L+=(w[1][1]+'. '+w[0],w[2].ToInteger);
    end;
  var f:=OpenWrite('output.txt');
  L.OrderByDescending(x->x[1]).ForEach(x->Writeln(f,x[0],' ',x[1]));
  f.Close
end.

Скачать вложение Текст (TXT)
Скачать вложение Текст (TXT)
(150k баллов)