Найти в файле строку, содержащую минимальное число и удалить ее - PascalABC.NET

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

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

Создать текстовый файл, состоящий из случайного количества (не более 30-и) строк. В каждой строке файла содержится случайное количество (не более 20-и) целых чисел, разделенных пробелами. Найти в файле строку, содержащую минимальное число и удалить ее (если таких строк несколько, то удалить все).

Решение задачи: «Найти в файле строку, содержащую минимальное число и удалить ее»

textual
Листинг программы
type 
  P = KeyValuePair<integer, string>;
begin
  // Создаем файл
  WriteAllLines('thread1677467.txt', Range(1, Random(20) + 10).Select(i ->
    string.Join(' ', Range(1, Random(15) + 5).Select((v : integer) -> IntToStr(Random(50))).ToArray())).ToArray());
    
  // Работаем с его содержимым
  var lines := ReadAllLines('thread1677467.txt').Select(s -> new P(s.Split(' ').Select(StrToInt).Min(), s));
  var min_val := lines.Select(pair -> pair.Key).Min();
  WriteAllLines('thread1677467_1.txt', lines.Where(pair -> pair.Key > min_val).Select(pair -> pair.Value).ToArray());
end.

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

  1. Создаем новый тип данных P, который представляет собой пару ключ-значение, где ключ - целочисленное значение, а значение - строка.
  2. Создаем файл с именем thread1677467.txt и записываем в него 10 строк, каждая из которых представляет собой набор из 5-15 чисел, сгенерированных случайным образом от 1 до 50, разделенных пробелами.
  3. Читаем содержимое файла thread1677467.txt и преобразуем каждую строку в объект типа P, где ключ - минимальное число в строке, а значение - сама строка.
  4. Находим минимальное значение ключей в полученном списке объектов P.
  5. Создаем новый файл с именем thread1677467_1.txt и записываем в него строки из файла thread1677467.txt, которые имеют ключ больше минимального значения.
  6. Закрываем все использованные файлы.

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


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

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

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