В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Grister555
Grister555
24.08.2021 22:39 •  Информатика

Складіть проєкт для малювання квадаратів, розміщених поруч, поки периметр квадрата не перевищує 50 кроків. довжина сторони першого з них дорівнює a кроків, а довжина сторони кожного наступного - на b кроків більша за довжину сторони попереднього. в skratch

Показать ответ
Ответ:
Артёмка110
Артёмка110
28.03.2023 10:33

// 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(0 оценок)
Ответ:
насьть
насьть
28.03.2023 10:33

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Объявить класс район города, имеющий название, площадь, численность населения и позволяющий переимен
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота