Ответы на вопрос:
// Pascal ABC.NET
type
Train = class
private
ПунктНазначения: string;
НомерПоезда: string;
ВремяOтправления: string;
Информация: string;
static function ЧастьНомера(s: string) := s.MatchValue('\d*').ToInteger;
public
constructor (ПН, НП, ВО: string; И: string := '');
begin
ПунктНазначения := ПН;
НомерПоезда := НП;
ВремяOтправления := ВО;
Информация := И
end;
static procedure УпорядочитьПункты(var a: array of Train) :=
a := a.OrderBy(p -> p.ПунктНазначения)
.ThenBy(p -> p.ВремяOтправления).ToArray;
static procedure УпорядочитьНомера(var a: array of Train) :=
a := a.OrderBy(p -> ЧастьНомера(p.НомерПоезда)).ToArray;
function ToString: string; override :=
$'{ПунктНазначения,-20} {НомерПоезда,-5} {ВремяOтправления,7}' +
$' {Информация}';
end;
function ДобавитьИнформацию(Self: array of Train;
НомерПоезда, Информация: string): boolean; extensionmethod;
begin
Result := True;
var i := Self.FindIndex(p -> p.НомерПоезда = НомерПоезда);
if i >= 0 then
Self[i].Информация := Информация
else
Result := False
end;
begin
var a := new Train[5];
a[0] := new Train('Адлер','4c','15:40');
a[1] := new Train('Санкт-Петербург','132п','07:19');
a[2] := new Train('Казань','8ф','12:35');
a[3] := new Train('Новосибирск','217п','18:05');
a[4] := new Train('Адлер','18c','08:32');
Train.УпорядочитьНомера(a);
a.PrintLines;
var np := ReadlnString('Номер поезда:');
var info := ReadlnString('Добавочная информация:');
if not a.ДобавитьИнформацию(np, info) then
Println('Не найден номер поезда');
Train.УпорядочитьПункты(a);
a.PrintLines
end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
AsyaUkrainceva08.01.2022 10:44
-
kolyan4729.07.2020 05:10
-
emilinloveTV26.10.2022 20:03
-
smail55006.06.2022 20:01
-
Rivergeenger25.10.2020 07:00
-
лера208314.02.2021 13:57
-
roman28620.08.2020 17:58
-
хорошист54622.03.2020 19:34
-
elenashyplukova20.01.2023 09:56
-
неманема02.04.2021 01:24
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.