Дан двумерный массив,найти максимальное и минимальное значение .Я новенький в этом деле,вот попытался сам,посмотрите и обьясните что не правильно ,пожалуйста . program zaza;vari,j,n,m,max,min:integer;a:array[1..10,1..10] of int...

Дан двумерный массив,найти максимальное и минимальное значение .Я новенький в этом деле,вот попытался сам,посмотрите и обьясните что не правильно ,пожалуйста . program zaza; var i,j,n,m,max,min:integer; a:array[1..10,1..10] of integer; begin writeln ('vvedite chislo n'); writeln ('vvedite chislo m'); for i:=1 to n do for j:=1 to m do begin writeln ('vvedite elementu massiva',i,j); end; for i:=1 to n do for j:=1 to m do begin if a[i,j] > max then max:= a[i,j]; if a[i,j] < min then min:=a[i,j]; end; writeln('max','min') end.
Гость
Ответ(ы) на вопрос:
Гость
uses crt; {вывод результата в отдельном окне} var i,j,n,m,max,min:integer;  {ввод переменных} a:array[1..10,1..10] of integer;  {ввод массива}  begin clrscr;  {очистка экрана вывода}  writeln ('vvedite chislo n');  {выводим на экран сообщение} read(n);  {вводим число}  writeln ('vvedite chislo m');  {выводим на экран сообщение}  read(m);  {вводим число}  writeln ('vvedite elementu massiva');  {выводим на экран сообщение}  for i:=1 to n do for j:=1 to m do begin  {откроем операторные скобки, чтобы каждый раз не задавать границы массива}  readln(a[i,j]);  {вводим массив}  max:=a[1,1];  {задаем значения для минимума и максимума для сравнения с другими элементами}  min:=a[1,1]; if a[i,j] > max then max:= a[i,j]; if a[i,j] < min then min:=a[i,j]; end;  {закроем операторные скобки}  writeln('max=',max,'min=',min);  {вывод на экран сообщения}  end.
Гость
1) добавь строку для вывода результата в отдельном окне: uses crt; 2) Размерность массива лучше сразу задать с пмомщью констант - потом если нужно будет решить ту же задачу для другого массива, просто поменяешь её на новую: const n=10; const m=10; 3) описание массива через константы: a:array[1..n,1..m] of integer;   4) после приглашения writeln ('vvedite chislo n') должен быть оператор readln. Но представь себе ситуацию: ты описал массив a:array[1..10,1..10], а пользователь ввёл n=12? Тогда обращение к a[12,1] выдаст ошибку. Поэтому лучше не просить вводить n и m вообще, а использовать const 5) пропущен оператор readln: writeln ('vvedite elementu massiva',i,j); если в условии задачи не сказано явно вводить с клавиатруы значения массива, лучше заполнять массив с помощью random (вводить 100 чисел надоедает!) randomize; for i:=1 to n do   for j:=1 to m do       a[i,j]:=random(100); 6) перед тем , как просматривать весь массив в поисках мин и макс элементов, надо задать начальное значение min и max: max:= a[1,1]; min:= a[1,1]; (дальше цикл поиска у тебя организован правильно) 7) writeln('max','min') - такая строка всегда печатает "maxmin" Надо так: writeln('max=',max,'   min=',min); 8) для наглядности можно вывести массив перед тем, как выводить max и min. Можно использовать тот же цикл, что и для поиска:    write(a[i,j]:5); (здесь ":5" задаёт ширину вывода - на каждое число отводится 5 позиций) 9) скачай и установи себе PascalABC и запускай каждую написанную прогрмму - иначе не научишься.   В итоге получим: Program zaza; uses crt; const n=10; const m=10; var   i,j,max,min:integer;   a:array[1..n,1..m] of integer; begin   randomize;   for i:=1 to n do     for j:=1 to m do       a[i,j]:=random(100); {задаёт случайное число от 0 до 99}   max:= a[1,1];   min:= a[1,1];   for i:=1 to n do     begin       for j:=1 to m do         begin           if a[i,j] > max then             max:= a[i,j];           if a[i,j] < min then             min:=a[i,j];           write(a[i,j]:5);           end;       writeln(); {выводит пустую строку "для красоты"}     end;   writeln();   writeln('max=',max,'   min=',min); end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы