Записать строки в файл в порядке убывания оклада служащего - PascalABC.NET
Формулировка задачи:
На вход программы подается натуральное число N, не превосходящее 100,а за ним N строк следующей структуры:
Служащий-ФИО(текстовое 50 символов),должность(текстовое 15 символов),оклад(вещественное). Программа должна записать строки в файл EMPLOYEE.TXT в порядке убывания оклада служащего.
| Пример ввода | Вывод в файл |
|---|
Решение задачи: «Записать строки в файл в порядке убывания оклада служащего»
textual
Листинг программы
uses Arrays, System.IO;
begin
&File.WriteAllLines('EMPLOYEE.TXT',
ReadArrString(ReadLnInteger()).OrderByDescending(s -> StrToFloat(s.Split(' ').Last())).ToArray()
Encoding.Default)
end.
Объяснение кода листинга программы
В этом коде:
uses Arrays, System.IO;- подключаются необходимые модули для работы с массивами и вводом/выводом данных.File.WriteAllLines('EMPLOYEE.TXT',- начинается запись данных в файл с именемEMPLOYEE.TXT.ReadArrString(ReadLnInteger())- считывается массив строк. ФункцияReadLnInteger()предварительно запрашивает у пользователя ввод целого числа, которое определяет количество строк в массиве..OrderByDescending(s -> StrToFloat(s.Split(' ').Last()))- массив строк сортируется по убыванию оклада служащего. Здесь используется методOrderByDescending, который упорядочивает элементы массива в порядке убывания. В качестве критерия сортировки используется значение, полученное из последней колонки (разделяемой пробелом) каждой строки массива. Это значение преобразуется в число с помощью функцииStrToFloat.).ToArray()- результат сортировки преобразуется обратно в массив.Encoding.Default)- указывается кодировка, в которой будет записан файл.end.- заканчивается выполнение программы.