Написал процедуру, не хочет запускать, пишет что: slonim.pas(26) : Переменная цикла for должна описываться в том же блоке, что и цикл for.
uses crt, graphABC;
var n, m, i, j, 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; begin HideCursor; write('Приводится рост учеников 3 параллельных классов, где колличество n<=25 в каждом классе. Определить номера двух самых высоких учеников в каждом классе.');writeln; writeln; writeln('Автор работы : '); for i := 1 to 18 do writeln; writeln(' Для выхода в меню нажмите Enter'); readln; end;
procedure vvod; begin 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; begin 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.
|