Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 17

Стек: Найти квартиру с минимальной средней площадью комнаты

25.05.2018, 09:27. Показов 1044. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста с 1 или 2 заданием (можно с обеими если есть желание). Не могу понять как это сделать.
Запись с полями: адрес квартиры; количество комнат; общая площадь квартиры. 1. Найти квартиру с минимальной средней площадью комнаты. Средняя площадь комнаты определяется как (общая площадь квартиры)/(количество комнат).
2. Скопировать в новый стек информацию о четырехкомнатных квартирах, общая площадь которых больше заданного значения.
Код:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
type 
 FSB = record
   adr: string;
    kvart: integer;
    pl: integer;
    
  end;
 
type  celltype = record 
        info: FSB; 
        next: ^ celltype 
    end; 
    STACK = ^ celltype; 
    
var top: STACK;
 
function Empty(top: STACK): boolean;
begin
  Empty:= Top=nil;
end; 
 
procedure Push(z: FSB; var top: STACK);
Var p: STACK;
begin
  new(p);
  p^.next:= top;
  p^.info:= z;
  top:=p;
end;    
 
procedure LoadToBd(fn: String; var top: stack);
var  f: text;
  a: FSB;
begin
  assign(f, fn);
  reset(f);
  while not eof(f) do
  begin
    readln(f, a.adr);
    readln(f, a.kvart);
    readln(f, a.pl);
   
    push(a,top);
  end;
  close(f);
end;
 
procedure Pop(var top: STACK; var x: FSB);
Var p: STACK;
begin
  if Empty(top)=False then begin
    p:= top^.next;
    x:=top^.info; 
    dispose(top); 
    top:=p;            
  end  else
     writeln('стек уже пуст');
end;  
 
procedure WriteStack(var top: stack);
var
  temp: stack;
  z: FSB;
begin
  while top<>nil do
  begin
    pop(top, z);
    push(z, temp);
    Writeln(z);
  end;
  
  while temp<>nil do
  begin
    pop(temp, z);
    push(z, top);
  end;
end;
 
 
var
  z:FSB;
  p: Integer;
 
begin
  top := nil;
  LoadToBd('laba1.txt',top);
  WriteStack(top);
 
 
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.05.2018, 09:27
Ответы с готовыми решениями:

Найти эллипс с минимальной площадью
Привет народ, два года на голом программировнаие и изредка численных методах, совсем без аналитической геометрии, сделали свое черное дело...

Найти сторону квадрата с минимальной площадью, в который можно вписать данный треугольник
Всем доброго времени суток. Нужно решить следующую задачу: найти сторону квадрата, с минимальной площадью, в который можно вписать данный...

Найти размеры цилиндрического бака заданного объёма с минимальной площадью полной поверхности
Бак для перевозки жидкости имеет форму цилиндра объемом V. Какими должны быть размеры цилиндра, чтобы количество материала,...

2
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
25.05.2018, 10:08
Файло „laba1.txt“ где?

Добавлено через 20 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
type 
  FSB = record
    adr: string;
    kvart: integer;
    pl: integer;
    
    constructor (s1,s2,s3 : String);
    begin
      adr := s1; kvart := StrToInt(s2); pl := StrToInt(s3);
    end;
    
    procedure print := WriteLnFormat('{0,-30} | {1,5} | {2}', adr, kvart, pl);
  end;
 
function Load(fName : String) : Stack<FSB>;
begin
  Result := New Stack<FSB>;
  var s := ReadAllLines(fName);
  for var i := 0 to s.Count div 3-1 do
    Result.Push(New FSB(s[i*3], s[i*3+1], s[i*3+2]));
end;
 
procedure WriteStack(s : Stack<FSB>) := foreach var f in s do f.print;
 
procedure Find1(s : Stack<FSB>) := s.MinBy(f -> f.pl/f.kvart).print;
 
function Find2(s : Stack<FSB>; kvart, pl : Integer) : Stack<FSB>;
begin
  Result := New Stack<FSB>;
  foreach var f in s.Where(f -> (f.kvart=kvart) and (f.pl>pl)) do
    Result.Push(f);
end;
 
begin
  var s := Load('laba1.txt');
  WriteLn('Весь список квартир:'); WriteStack(s);
  
  WriteLn('Квартира с минимальной средней площадью:'); Find1(s);
  
  var s2 := Find2(s, 4, ReadInteger('Четырёхкомнатные квартиры площадью больше ='));
  WriteLn('Получен список:'); WriteStack(s2);
end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33393 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
25.05.2018, 12:09
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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.
, просто как дополнительный вариант...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.05.2018, 12:09
Помогаю со студенческими работами здесь

Найти треугольники с максимальной с максимальной и и минимальной площадью
На плоскости задано N четырех угольников координатами своих вершин вершин, X Y, найти треугольники с максимальной с максимальной и и...

Цилиндр с минимальной площадью поверхности
Требуется изготовить из жести ведро без крышки данного объема V цилиндрической формы. Каковы должны быть высота цилиндра и радиус...

Вывести названия стран с минимальной площадью
Решить задачу по обработке записей: Дан список стран с указанием занимаемой населения и занимаемой площади. Вывести названия стран с...

Поиск минимальной и средней суммы
как найти минимальную суммарную и минимальную среднюю зарплаты? package zadanie_2; import java.io.IOException; public class...

Запрос с вычислениями. вывод средней, минимальной и максимальной зарплаты
Обьясните пожалуйства как создать запрос с такими условиями: 1-Вывод максимального и минимального оклада по заданому отделу ( название...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru