Вопрос задан 28.07.2023 в 07:11. Предмет Информатика. Спрашивает Мукомел София.

Объявить класс РАЙОН ГОРОДА, имеющий название, площадь, численность населения и позволяющий

переименовывать район, а также изменять численность его населения и вычислять плотность населения. Объявить класс ГОРОД, представляющий собой набор районов и позволяющий вычислить среднюю площадь и среднюю численность населения районов города, а также самый плотно населенный район. Продемонстрировать работу всех методов.*/
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Дементьева Анна.

// PascalABC.NET 3.4.2, сборка 1790 от 15.09.2018

// Внимание! Если программа не работает, обновите версию!

type

 РайонГорода = class

 

 private

   Naim: string;

   S: real;

   Kol: integer;

   

   procedure SetNaim(NewName: string);

   begin

     if NewName.Length > 0 then Naim := NewName

   end;

   

   procedure SetKol(NewKol: integer);

   begin

     if NewKol > 0 then Kol := NewKol

   end;

 

 public

   property Название: string read Naim write SetNaim;

   property Площадь: real read S;

   property ЧисленностьНаселения: integer read Kol write SetKol;

   

   constructor(НаимРайона: string; Площадь: real; Население: integer);

   begin

     Naim := НаимРайона;

     S := Площадь;

     Kol := Население

   end;

   

   function ПлотностьНаселения := Round(Kol / S, 2);

   

   procedure ЗадатьИмя(НаимРайона: string);

   begin

     SetNaim(НаимРайона)

   end;

   

   procedure ЗадатьЧисленность(Население: integer);

   begin

     SetKol(Население)

   end;

 

 end;

 

 Город = class

 

 private

   City: string;

   Districts: List<РайонГорода>;

 

 public

   

   constructor(Город: string);

   begin

     Districts := new List<РайонГорода>;

     City := Город

   end;

   

   property НаселенныйПункт: string read City;

   

   procedure ДобавитьРайон(Район: string; Площадь: real; Проживает: integer);

   begin

     var R := new РайонГорода(Район, Площадь, Проживает);

     Districts.Add(R)

   end;

   

   function СредняяПлощадь := Districts.Select(d -> d.Площадь).Average;

   

   function СредняяЧисленность :=

   Districts.Select(d -> d.ЧисленностьНаселения).Average;

   

   function ГустонаселенныйРайон :=

   Districts.Select(d -> (d.Название, d.ПлотностьНаселения)).MaxBy(r -> r[1]);

   

   procedure ИзменитьНаименованиеРайона(s1, s2: string);

   begin

     var i := Districts.FindIndex(d -> d.Название = s1);

     if i >= 0 then Districts[i].ЗадатьИмя(s2)

   end;

   

   procedure ИзменитьЧисленностьРайона(s: string; n: integer);

   begin

     var i := Districts.FindIndex(d -> d.Название = s);

     if i >= 0 then Districts[i].ЗадатьЧисленность(n)

   end;

   

   procedure Вывод;

   begin

     Println('Сведения по городу', City);

     foreach var d in Districts do

       Println(d.Название, d.Площадь, d.ЧисленностьНаселения);

     Println('-' * 60)

   end;

 

 end;


begin

 var GG := new Город('Просто город');

 GG.ДобавитьРайон('Ворошиловский', 30, 218439);

 GG.ДобавитьРайон('Железнодорошный', 69, 104339);

 GG.ДобавитьРайон('Кировский', 18.6, 63499);

 GG.ДобавитьРайон('Ленинский', 13, 821730);

 GG.Вывод;

 GG.ИзменитьНаименованиеРайона('Железнодорошный', 'Железнодорожный');

 GG.ИзменитьЧисленностьРайона('Ленинский', 82173);

 GG.Вывод;

 Println('Средняя площадь', GG.СредняяПлощадь);

 Println('СредняяЧисленность', GG.СредняяЧисленность);

 var (Район, Плотность) := GG.ГустонаселенныйРайон;

 Println('Наиболее густонаселен', Район, Плотность)

end.



0 0
Отвечает Филатова Дарина.

В общем, код получился довольно-таки объемным, поэтому сюда выкладывать его не буду, а приложу в файле.

Язык программирования: C++

Входные значения:

Введите имя района: Новоильинский

Введите площадь(в кв. км): 56

Введите численность населения: 200000

Введите имя района: Запсиб

Введите площадь(в кв. км): 643  

Введите численность населения: 454545  

Введите имя района: Куйбышевский

Введите площадь(в кв. км): 45

Введите численность населения: 655433

Введите имя района: Заводской

Введите площадь(в кв. км): 7785

Введите численность населения: 6776    

Введите имя района: Центральный

Введите площадь(в кв. км): 864

Введите численность населения: 88546

Средняя площадь районов = 1878.6

Самый плотнонаселенный район: Куйбышевский

Название 2-го района = Куйбышевский

Работа методов класса District хорошо просматривается в вызове методов класса City, ибо они там же и выполняются.

Количество районов - динамическое. Вы можете ввести с клавиатуры количество районов, а потом инициализировать их посредством метода init().

Оценивайте. А от продвинутых жду критику.



0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для начала, давайте создадим класс "Район Города" (District), а затем класс "Город" (City), который будет содержать набор районов. Вот как это можно сделать на языке Python:

python
class District: def __init__(self, name, area, population): self.name = name self.area = area self.population = population def rename_district(self, new_name): self.name = new_name def change_population(self, new_population): self.population = new_population def population_density(self): return self.population / self.area class City: def __init__(self, name): self.name = name self.districts = [] def add_district(self, district): self.districts.append(district) def average_area(self): total_area = sum(district.area for district in self.districts) return total_area / len(self.districts) def average_population(self): total_population = sum(district.population for district in self.districts) return total_population / len(self.districts) def most_densely_populated_district(self): return max(self.districts, key=lambda district: district.population_density()) # Продемонстрируем работу всех методов: # Создаем районы города district1 = District("Район 1", 50, 10000) district2 = District("Район 2", 30, 8000) district3 = District("Район 3", 40, 12000) # Создаем город и добавляем в него районы city = City("Мегаполис") city.add_district(district1) city.add_district(district2) city.add_district(district3) # Выводим информацию о районах for district in city.districts: print(f"Название района: {district.name}, Площадь: {district.area} км^2, Население: {district.population}, Плотность населения: {district.population_density()} чел/км^2") # Изменяем название района district1.rename_district("Новый Район 1") print("Измененное название района:", district1.name) # Изменяем численность населения района district2.change_population(9000) print("Измененная численность населения района 2:", district2.population) # Выводим информацию о средней площади и средней численности населения районов города print("Средняя площадь районов:", city.average_area(), "км^2") print("Средняя численность населения районов:", city.average_population()) # Выводим информацию о самом плотно населенном районе most_densely_populated = city.most_densely_populated_district() print(f"Самый плотно населенный район: {most_densely_populated.name}, Плотность населения: {most_densely_populated.population_density()} чел/км^2")

Обратите внимание, что приведенный код предполагает, что ввод данных происходит согласованно, без проверки на ошибки и неправильные значения, что в реальных приложениях следует учесть и обработать дополнительным кодом для обеспечения корректной работы программы.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос