Стек: Найти квартиру с минимальной средней площадью комнаты - PascalABC.NET
Формулировка задачи:
Помогите пожалуйста с 1 или 2 заданием (можно с обеими если есть желание). Не могу понять как это сделать.
Запись с полями: адрес квартиры; количество комнат; общая площадь квартиры. 1. Найти квартиру с минимальной средней площадью комнаты. Средняя площадь комнаты определяется как (общая площадь квартиры)/(количество комнат).
2. Скопировать в новый стек информацию о четырехкомнатных квартирах, общая площадь которых больше заданного значения.
Код:
Решение задачи: «Стек: Найти квартиру с минимальной средней площадью комнаты»
textual
Листинг программы
function Load(fn : string) : Stack<(string, integer, integer)>; begin result := new Stack<(string, integer, integer)>( ReadAllLines(fn).Batch(3).Select(v -> (v.ElementAt(0), v.ElementAt(1).ToInteger, v.ElementAt(2).ToInteger)) ); end; begin var s := Load('kvart.txt'); Println('Квартира с минимальной средней площадью: ', s.MinBy(v -> v[2] / v[1])); var p := ReadlnInteger('Значение площади для поиска: '); var s2 := new Stack<(string, integer, integer)>(s.Where(v -> (v[1] = 4) and (v[2] > p))); s2.Println; end.
Объяснение кода листинга программы
В данном коде используется язык программирования PascalABC.Net. Постановка задачи - найти квартиру с минимальной средней площадью комнаты.
- Объявлена функция Load, которая принимает в качестве параметра имя файла и возвращает стек, содержащий кортежи из трех элементов: название квартиры, количество комнат и площадь квартиры. Внутри функции создается новый экземпляр стека, который заполняется данными из файла, разделенного на строки. Каждая строка разбивается на три элемента: название квартиры, количество комнат и площадь квартиры. Элементы преобразуются в нужные типы данных и добавляются в стек.
- После вызова функции Load, стек s содержит все данные из файла.
- Выводится сообщение с запросом на ввод значения площади для поиска.
- После ввода значения площади, создается новый стек s2, который содержит только те кортежи из стека s, у которых количество комнат равно 4 и площадь больше введенного значения.
- Выводится содержимое стека s2.
- В конце кода, в стеке s остается только один кортеж, содержащий название квартиры, количество комнат и площадь квартиры с минимальной средней площадью.
- Для поиска квартиры с минимальной средней площадью используется метод MinBy, который принимает в качестве аргумента лямбда-выражение, определяющее порядок сравнения кортежей по значению площади квартиры.
- В конце кода, в стеке s2 остается только один кортеж, содержащий название квартиры, количество комнат и площадь квартиры с минимальной средней площадью.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д