uses crt; {вывод результата в отдельном окне}var i,j,n,m,max,min: integer; {ввод переменных}a: array[1..10,1..10] of integer; {ввод массива} beginclrscr; {очистка экрана вывода} writeln ('vvedite chislo n'); {выводим на экран сообщение}read(n); {вводим число} writeln ('vvedite chislo m'); {выводим на экран сообщение} read(m); {вводим число} writeln ('vvedite elementu massiva'); {выводим на экран сообщение} for i: =1 to n dofor j: =1 to m dobegin {откроем операторные скобки, чтобы каждый раз не задавать границы массива} readln(a[i,j]); {вводим массив} max: =a[1,1]; {задаем значения для минимума и максимума для сравнения с другими элементами} min: =a[1,1]; if a[i,j] > max thenmax: = a[i,j]; if a[i,j] < min thenmin: =a[i,j]; end; {закроем операторные скобки} writeln('max=',max,'min=',min); {вывод на экран сообщения} end.
Поделитесь своими знаниями, ответьте на вопрос:
Дан двумерный массив, найти максимальное и минимальное значение .я новенький в этом деле, вот попытался сам, посмотрите и обьясните что не правильно , . 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.
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 вообще, а использовать const5) пропущен оператор 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.