Найти самого умного ученика - PascalABC.NET

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

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

Не могу решить программу: На входе в программе - N учеников. (10<n<100) Каждая из N строк имеет следующий формат: <Фамилия> <Имя> <Оценки>, Где <Фамилия> - строка, состоящая не более чем из 20 символов, <Имя> - строка, состоящая не более чем из 15 символов, <Оценки> - три целых числа, отделяемых пробелом. <Фамилия>,<Имя> и <Оценки> разделены одним пробелом. Вывод: Три лучших по среднему баллу учеников. Заранее спасибо.

Решение задачи: «Найти самого умного ученика»

textual
Листинг программы
uses System.IO;
begin 
  writeln(
    string.Join(NewLine,
                &File.ReadAllLines('thread1564783.txt'). OrderByDescending(s ->
                s.split(' ')[2].split(' ').Select(StrToInt).Average()).Take(3).ToArray()
               )
         );
end.

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

В данном коде используется язык программирования PascalABC.Net.

  1. Строка uses System.IO; указывает на то, что в программе используется система ввода/вывода.
  2. Функция writeln используется для вывода информации на экран.
  3. Строка string.Join(NewLine, ...) используется для объединения строк в одну строку, где каждая строка разделяется символом новой строки (NewLine).
  4. File.ReadAllLines('thread1564783.txt') читает все строки из файла 'thread1564783.txt'.
  5. OrderByDescending(s -> s.split(' ')[2].split(' ').Select(StrToInt).Average()) сортирует строки по убыванию среднего значения чисел, полученных из строк, разделенных на подстроки по пробелу, преобразованных в числа и усредненных.
  6. Take(3) ограничивает количество строк до трех.
  7. ToArray() преобразует последовательность в массив.
  8. Результат выводится на экран с помощью writeln.

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


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

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

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