Стек: Найти квартиру с минимальной средней площадью комнаты - 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. Постановка задачи - найти квартиру с минимальной средней площадью комнаты.

  1. Объявлена функция Load, которая принимает в качестве параметра имя файла и возвращает стек, содержащий кортежи из трех элементов: название квартиры, количество комнат и площадь квартиры. Внутри функции создается новый экземпляр стека, который заполняется данными из файла, разделенного на строки. Каждая строка разбивается на три элемента: название квартиры, количество комнат и площадь квартиры. Элементы преобразуются в нужные типы данных и добавляются в стек.
  2. После вызова функции Load, стек s содержит все данные из файла.
  3. Выводится сообщение с запросом на ввод значения площади для поиска.
  4. После ввода значения площади, создается новый стек s2, который содержит только те кортежи из стека s, у которых количество комнат равно 4 и площадь больше введенного значения.
  5. Выводится содержимое стека s2.
  6. В конце кода, в стеке s остается только один кортеж, содержащий название квартиры, количество комнат и площадь квартиры с минимальной средней площадью.
  7. Для поиска квартиры с минимальной средней площадью используется метод MinBy, который принимает в качестве аргумента лямбда-выражение, определяющее порядок сравнения кортежей по значению площади квартиры.
  8. В конце кода, в стеке s2 остается только один кортеж, содержащий название квартиры, количество комнат и площадь квартиры с минимальной средней площадью.

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


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

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

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