Найти в файле строку, содержащую минимальное число и удалить ее - 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.
Объяснение кода листинга программы
- Создаем новый тип данных P, который представляет собой пару ключ-значение, где ключ - целочисленное значение, а значение - строка.
- Создаем файл с именем
thread1677467.txt
и записываем в него 10 строк, каждая из которых представляет собой набор из 5-15 чисел, сгенерированных случайным образом от 1 до 50, разделенных пробелами. - Читаем содержимое файла
thread1677467.txt
и преобразуем каждую строку в объект типа P, где ключ - минимальное число в строке, а значение - сама строка. - Находим минимальное значение ключей в полученном списке объектов P.
- Создаем новый файл с именем
thread1677467_1.txt
и записываем в него строки из файлаthread1677467.txt
, которые имеют ключ больше минимального значения. - Закрываем все использованные файлы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д