дан двумерный массив,найти максимальное и минимальное значение .Я новенький в этом деле,вот попытался сам,посмотрите и обьясните что не правильно ,пожал
10-11 класс
|
уйста .
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.
Другие вопросы из категории
Составить программу вычисления значений функции F(x) на отрезке [а; b] с шагом h.
F(x) = 2 cos x - 1.
Читайте также
двузначных элементов массива, которые не оканчиваются на 3. №2. Дан массив из 100 элементов. Каждый элемент может принимать целочисленные значения от 1 до 500. Напишите программу, которая позволит найти и вывести минимальное значение среди элементов массива, которые делят максимальное значение элементов массива без остатка.
2. Задать двумерный массив (4х4) случайными значениями от 12 до 18 включительно. Вывести сумму значений элементов каждого столбца матрицы.
3. Задать двумерный массив (7х7) случайными значениями от 12 до 18 включительно. В каждом столбце матрицы найти количество элементов, значения которых меньше 14.
4. Задать двумерный массив (3х3) с клавиатуры, поменять значения элементов 1 столбца со вторым.
5. Найти минимальный элемент матрицы (5х5), заданной случайными значениями от 1 до 5 включительно, лежащие ниже главной диагонали.
Заменить элементы первой строки на нули. ПОМОГИТЕ ПОЖАЛУЙСТА ОЧЕНЬ НАДО!!!!!
квадратная матрица а). Найти сумму номеров минимального и максимального элементов её главной диагонали.