Заполнить произвольный массив размером N x N (N<10) по следующему правилу:
11111
22222
33333
44444
55555
ClrScr;
Write('ВВеди N = ');Readln(n);
For j:=1 to n do begin
For i:=1 to n do begin
a[j,i]:=j;
write(a[j,i]:4);
end;
writeln;
end;
Значение элемента в каждой ячейке строки равно номеру строки.
ClrScr;
Write('ВВеди N = ');Readln(n);
For j:=1 to n do begin
For i:=1 to n do begin
if (i+j = n+1) then a[j,i]:=1
else a[j,i]:=0;
write(a[j,i]);
end;
writeln;
end;
Если побочная диагональ то заполнить ячейку 1 во всех остальных случаях 0
Ввод N
i+j=N+1
a j , i= 1
Да
Нет
1 2 3 4 5
a42
a51
a24
a15
(i+j (i+j>n+1) And (j (i+j>n+1) And (j>i) (i+j Системы неравенств
Это пересечение двух множеств. Элементы лежащие на и ниже побочной диагонали и элементы лежащие на и выше главной диагонали
Write('ВВеди N = '); Readln(n);
For j:=1 to n do begin
For i:=1 to n do begin
if (i+j>=n+1) and (j<=i) then a[j,i]:=1
else a[j,i]:=0;
write(a[j,i]:2);
end;
writeln;
end;
Проверяем условие принадлежности данному множеству
Один или два прохода по массиву?
Первый способ. Один проход по массиву
ClrScr;
Write('ВВеди N = ');Readln(n);
s:=0;
For j:=1 to n do begin
For i:=1 to n do begin
a[j,i]:=random(20)-10;
write(a[j,i]:4);
if (i=j) then s:=s+ a[j,i];
end;
writeln;
end;
writeln('Сумма элементов =',s:5);
Заполняем случайными числами и выводим на экран
И сразу же находим сумму элементов лежащих на главной диагонали
Второй способ. Два прохода по массиву
Write(' ВВеди N = ');Readln(n);
s:=0;
For j:=1 to n do begin
For i:=1 to n do begin
a[j,i]:=random(20)-10;
write(a[j,i]:4);
end;
writeln;
end;
For j:=1 to n do
For i:=1 to n do
if (i=j) then s:=s+ a[j,i];
writeln('Сумма элементов =',s:5);
Первый проход. Заполняем массив и выводим его на экран
Второй проход. Находим сумму.
Замечание.
Если нужно что то сделать только
с главной диагональю,
то можно обойтись без вложенных циклов
For j:=1 to n do s:=s+ a[j,j];
Вывод S
Да
Нет
Нахождение суммы элементов на главной диагонали за один проход по массиву
Заполняем массив случайными числами
Предполагаем, что минимальный элемент стоит в левом верхнем углу
Если встречается элемент меньше m, и он лежит на главной диагонали, то он становится минимальным
Замечание.
В данном случае можно не бегать по всему
массиву а пройти только по главной диагонали, обойдясь без вложенных циклов.
m:=a[1,1];
For j:=2 to n do
if (a[j,j]
С анализом исходных данных задачи Предполагаем, что самое маленькое число 10, правая граница исходного интервала. Заполняем, выводим на экран и сразу проверяем на минимальность в главной диагонали.
Write('ВВеди N = ');Readln(n);
m:=10;
For j:=1 to n do begin
For i:=1 to n do begin
a[j,i]:=random(21)-10;
write(a[j,i]:4);
if (a[j,i]
Writeln;
end;
writeln(' Минимальный элемент лежащий на главной диагонали =',m:5);
Решение в один проход,
с анализом задачи
Предполагаем, что самое большое число - 10, левая граница исходного интервала.
Перебираем строки
Заполняем элемент массива и выводим его на экран
Если в строке встречается элемент больше максимального, то он становится максимальным
Выводим наибольший элемент в строке
Max = a j, i
Вывод Max
Да
Нет
Нахождение максимального элемента в каждой строке в один проход
Конец
Заполняем массив и выводим его на экран
For j:=1 to n do begin
max:=a[j,1];
For i:=2 to n do if (a[j,i]>max) then
max:= a[j,i];
writeln('В ',j,' строке max = ',max:5);
end;
Перебираем строки
Предполагаем, что наибольший элемент в каждой строке стоит на первом месте
Идем по строке и если находим элемент больший чем максимальный, то он становится максимальным
Вывод наибольшего элемента в строке
Стандартным способом,
первый проход – заполнение,
второй проход – поиск
максимального в строках
a j, i > Max
Max = a j, i
Вывод Max
Да
Нет
1
Начало
Конец
Нахождение максимального элемента в каждой строке в два прохода
Задача 43_3 Задан двумерный целочисленный массив A из n строк и n столбцов (1 ≤ n ≤ 10). Составить программу на Pascal, которая подсчитывает сумму элементов массива, лежащих над главной диагональю, произведение – лежащих под главное диагональю и среднее арифметическое элементов главной диагонали.
Задача 43_1 Задан двумерный целочисленный массив В из m строк и m столбцов (1 ≤ n ≤ 10) заполненный случайными числами в интервале от -30 до +30. Составить программу на Pascal, которая подсчитывает произведение элементов массива, лежащих вне главной диагонали.
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть