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.Maxend;procedure KMax(a:array of integer; mx:integer; var km:integer);begin km:=a.Where(t->t=mx).Countend;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.