PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018 Внимание! Если программа не работает, обновите версию!
procedure Input(var a:array of integer); begin a:=ReadArrInteger('Вводите через пробел рост в см:',a.Length) end;
procedure MyMax(a:array of integer; var mr:integer); begin mr:=a.Max end;
procedure KMax(a:array of integer; mx:integer; var km:integer); begin km:=a.Where(t->t=mx).Count end;
begin var n:=ReadInteger('Количество учеников:'); var r:=new integer[n]; Input(r); var maxR,kol:integer; MyMax(r,maxR); KMax(r,maxR,kol); Writeln('Максимальный рост ',maxR,' имеют ',kol,' чел.') end.
Пример Количество учеников: 5 Вводите через пробел рост в см: 170 168 171 159 171 Максимальный рост 171 имеют 2 чел.
На самом деле, это задание - прекрасный пример того, как НЕ НУЖНО использовать процедуры. Потому что без процедур эта же задача решается гораздо короче, занимает меньше памяти и быстрее работает. Ниже - текст такой программы в качестве иллюстрации написанного.
begin var a:=ReadArrInteger('Вводите через пробел рост в см:', ReadInteger('Количество учеников:')); var maxR:=a.Max; var kol:=a.Where(t->t=maxR).Count; Writeln('Максимальный рост ',maxR,' имеют ',kol,' чел.') end.
// Внимание! Если программа не работает, обновите версию!
1)
procedure Add(a,b:integer; var r:integer);
begin
r:=a+b
end;
begin
var (x,y):=ReadInteger2('Введите два целых числа:');
var z:integer;
Add(x,y,z);
Writeln('Их сумма равна ',z)
end.
Пример
Введите два целых числа: 18 142
Их сумма равна 160
2)
function Min3(a,b,c:integer):=Min(a,Min(b,c));
begin
var (i,j,k):=ReadInteger3('Введите три целых числа:');
Writeln('Минимальное равно ',Min3(i,j,k))
end.
Пример
Введите три целых числа: 35 -4 41
Минимальное равно -4
Внимание! Если программа не работает, обновите версию!
procedure Input(var a:array of integer);
begin
a:=ReadArrInteger('Вводите через пробел рост в см:',a.Length)
end;
procedure MyMax(a:array of integer; var mr:integer);
begin
mr:=a.Max
end;
procedure KMax(a:array of integer; mx:integer; var km:integer);
begin
km:=a.Where(t->t=mx).Count
end;
begin
var n:=ReadInteger('Количество учеников:');
var r:=new integer[n];
Input(r);
var maxR,kol:integer;
MyMax(r,maxR);
KMax(r,maxR,kol);
Writeln('Максимальный рост ',maxR,' имеют ',kol,' чел.')
end.
Пример
Количество учеников: 5
Вводите через пробел рост в см: 170 168 171 159 171
Максимальный рост 171 имеют 2 чел.
На самом деле, это задание - прекрасный пример того, как НЕ НУЖНО использовать процедуры.
Потому что без процедур эта же задача решается гораздо короче, занимает меньше памяти и быстрее работает.
Ниже - текст такой программы в качестве иллюстрации написанного.
begin
var a:=ReadArrInteger('Вводите через пробел рост в см:',
ReadInteger('Количество учеников:'));
var maxR:=a.Max;
var kol:=a.Where(t->t=maxR).Count;
Writeln('Максимальный рост ',maxR,' имеют ',kol,' чел.')
end.