uses
crt, graphABC;
var
n, m, max1, max2, n1, n2: integer;
a: array[1..3, 1..25] of integer;
z: char;
procedure menu(var w: char);
begin
clrscr;
writeln('выберите пункт меню:');
writeln('Y - условие');
writeln('V - ввод данных');
writeln('R - вывод данных');
writeln('Q - выход');
readln(w);
end;
procedure yslovie;
var
i: integer;
begin
HideCursor;
write('Приводится рост учеников 3 параллельных классов, где колличество n<=25 в каждом классе. Определить номера двух самых высоких учеников в каждом классе.');writeln;
writeln;
writeln('Автор работы : ');
for i := 1 to 18 do writeln;
writeln(' Для выхода в меню нажмите Enter');
readln;
end;
procedure vvod;
var
i,j: integer;
begin
clrscr;
randomize;
n := random(25 - 15) + 14; //ввод
for i := 1 to 3 do
for j := 1 to n do
a[i, j] := random(195 - 141) + 140;
for i := 1 to 3 do //вывод
begin
for j := 1 to n do
write(a[i, j]:4);
write(' - класс №', i);
writeln;
end;
for i := 1 to 17 do writeln;
writeln(' Для выхода в меню нажмите Enter');
readln;
end;
procedure vivod;var
i,j: integer;
begin
clrscr;
if a[1, 1] = 0 then writeln('Что ты как не человек. Данные введи сначало :)')
else begin
for i := 1 to 3 do //вывод
begin
for j := 1 to n do
write(a[i, j]:4);
write(' - класс №', i);
writeln;
end;
max1 := a[1, 1];
for i := 1 to 3 do
begin
max1 := 0;
n1 := 0;
n2 := 0;
for j := 1 to n do
if max1 < a[i, j] then begin
n2 := n1;
max2 := max1;
n1 := j;
max1 := a[i, j];
end
else if max2 < a[i, j] then begin
max2 := a[i, j];
n2 := j;
end;
writeln('В ', i, ' классе, ученики под номером ', n1:2, ' и ', n2:2, ' самые высокие');
end;
end;
for i := 1 to 14 do writeln;
writeln(' Для выхода в меню нажмите Enter');
readln;
end;
var
w: char;
begin
repeat
clrscr;
menu(w);
case upcase(w) of
'Y':
begin
clrscr;
yslovie;
end;
'V':
begin
clrscr;
vvod;
end;
'R':
begin
clrscr;
vivod;
end;
'Q': closewindow;
end;
until upcase(w) = 'Q';
end.