Написание на языке Паскаль.. Работа и путешествия
Организация “Travel & Work” предоставила список из 10 стран, в которых можно поработать в летнее время, и стоимости проезда в ука-занные страны. Получив этот список и изучив условия проезда мечта-тельная Даша решила, не утруждать себя работой, а просто объездить эти страны, посмотреть на мир, себя показать…
Определить в какую сумму обойдется Даше это турне по миру. Определить также страны с максимальной и минимальной стоимостью проезда.
--- PascalABC.NET 3.6.2 ---
//Без внятного ТЗ - Результат ХЗ (с) Конфуций, 488 год до Н.Э.
begin
var AvaiableTravels := new List<(string, integer)>(10);
var RawInput: array of string;
for var i := 1 to 10 do begin
RawInput := ReadString($'{i} Enter Travel info (Country:Price)').Split(':');
AvaiableTravels.Add((RawInput[0], integer.Parse(RawInput[1])));
end;
var TotalCost : integer;
var MaxCost: (string, integer) := AvaiableTravels.First;
var MinCost: (string, integer) := AvaiableTravels.Last;
AvaiableTravels.ForEach(p -> begin
TotalCost += p.Item2;
if p.Item2 > MaxCost.Item2 then MaxCost := p;
if p.Item2 < MinCost.Item2 then MinCost := p;
end);
Println($'Total Travel Cost: {TotalCost}',
$'Most expensive Travel: {MaxCost}',
$'Most poor travel: {MinCost}');
end.
Объяснение:
// PascalABC.NET
begin
var L := new List <(string, integer)>;
foreach var s in ReadSeqString(10) do
begin
var i := Trim(s).LastIndexOf(' ') + 1;
if i <= 1 then Exit; // надо вводить корректно!
L.Add((s[:i],s[i+1:].ToInteger));
end;
Println('Сумма турне:', L.Sum(p -> p[1]));
Println('Страна с самым дешевым проездом:',
L.MinBy(p -> p[1])[0]);
Println('Страна с самым дорогим проездом:',
L.MaxBy(p -> p[1])[0])
end.