Разделы презентаций


Готовимся к уроку

Содержание

Решение задач на обработку двумерных массивовТема 16. Работа с массивамимассивразмерность массиваописание массиватиповые задачи обработки двумерных массивов Урок 43-44

Слайды и текст этой презентации

Слайд 1Готовимся к уроку
Урок 43-44

Готовимся к урокуУрок 43-44

Слайд 2Решение задач на обработку двумерных массивов
Тема 16. Работа с массивами
массив
размерность

массива
описание массива
типовые задачи обработки двумерных массивов

Урок 43-44

Решение задач на обработку двумерных массивовТема 16. Работа с массивамимассивразмерность массиваописание массиватиповые задачи обработки двумерных массивов Урок

Слайд 3Заполнение массива по правилу:
For j := 1 to 3 do

begin
For i :=

1 to 4 do begin
a[j, i] :=ФОРМУЛА;
write(a[j, i]:6);
end;
writeln;
end;

Заполнить произвольный массив размером 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;

Значение элемента в каждой ячейке строки равно номеру строки.

Заполнение массива по правилу:For j := 1 to 3 do begin

Слайд 4a11

a22
a23
a32
a33
a14
a41
a44
1 2 3 4
1


2

3
4
Главная диагональ:
I=J
Побочная диагональ:
I+J=N+1
Заполнить

произвольный массив размером
N x N (N<10) по следующему правилу:
00001
00010
00100
01000
10000

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

a11a22a23a32a33a14a41a44 1  2  3   41  2  3  4Главная диагональ: I=JПобочная

Слайд 5Фрагмент блок-схемы задачи заполнения побочной диагонали единицами
i , 1, N
Вывод

a j , i
j , 1, N
a j , i=

0

Ввод N

i+j=N+1

a j , i= 1

Да

Нет

Фрагмент блок-схемы задачи заполнения побочной диагонали единицамиi , 1, NВывод a j , ij , 1, Na

Слайд 6a11
a22
a33

a44
a55
Удовлетворяет неравенству
j < i

Удовлетворяет неравенству
j > i

1


2

3


4

5

1 2 3 4 5

a11a22a33a44a55Удовлетворяет неравенствуj < iУдовлетворяет неравенствуj > i1     2     3

Слайд 7a15
a24
a33

a42
a51
Удовлетворяет неравенству
i+jn+1

1

2 3

4 5

1

2

3

4

5

a15a24a33a42a51Удовлетворяет неравенствуi+jn+1  1      2      3

Слайд 8a11
a22
a33

a44
a55
1

2


3

4

5

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+ji)

Системы неравенств

a11a22a33a44a551     2     3    4

Слайд 9Заполнить произвольный массив размером N x N (N

правилу:

00001
00011
00111
00011
00001

Это пересечение двух множеств. Элементы лежащие на и ниже побочной диагонали и элементы лежащие на и выше главной диагонали


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;


Проверяем условие принадлежности данному множеству

Заполнить произвольный массив размером N x N (N=n+1) and (j

Слайд 10Заполнить двумерный массив N x N случайными числами из интервала

[-10 ; 10] и найти сумму элементов массива лежащих на

главной диагонали.

Один или два прохода по массиву?

Первый способ. Один проход по массиву
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];

Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти сумму элементов

Слайд 11i , 1, N
Вывод a j , i
j, 1, N
a

j, i=
случайное[-10;10]
Ввод N
S = 0
i = j
S =S +

a j , i

Вывод S

Да

Нет

Нахождение суммы элементов на главной диагонали за один проход по массиву

i , 1, NВывод a j , ij, 1, Na j, i= случайное[-10;10]Ввод NS = 0i =

Слайд 121
Нахождение суммы элементов на главной диагонали за два прохода

1Нахождение суммы элементов на главной диагонали за два прохода

Слайд 13j , 1, N
S =S + a j , i
Вывод

S
Нахождение суммы элементов на главной диагонали за два прохода (в

случае когда речь идет только о главной диагонали и остальной массив не нужен)
j , 1, NS =S + a j , iВывод SНахождение суммы элементов на главной диагонали за

Слайд 14Один или два прохода по массиву? Рассуждение второе.
Заполнить двумерный массив

N x N случайными числами из интервала [-10 ; 10]

и найти минимальный элемент лежащий на главной диагонали.
Один или два прохода по массиву? Рассуждение второе.Заполнить двумерный массив N x N случайными числами из интервала

Слайд 15Стандартный способ без анализа задачи
Write('ВВеди N = ');Readln(n);
For j:=1

to n do begin
For i:=1 to n do

begin
a[j,i]:=random(21)-10;
write(a[j,j]:4);
end;
Writeln;
end;
m:=a[1,1];
For j:=1 to n do
For i:=1 to n do
if (a[j,i] writeln(' Минимальный элемент =',m:5);

Заполняем массив случайными числами

Предполагаем, что минимальный элемент стоит в левом верхнем углу

Если встречается элемент меньше m, и он лежит на главной диагонали, то он становится минимальным

Замечание.
В данном случае можно не бегать по всему
массиву а пройти только по главной диагонали, обойдясь без вложенных циклов.

m:=a[1,1];
For j:=2 to n do
if (a[j,j]

Стандартный способ без анализа задачиWrite('ВВеди N = ');Readln(n); For j:=1 to n do begin  For i:=1

Слайд 16Если немного по рассуждать, можно увидеть, что самое «маленькое» число,

которое может выдать генератор случайных чисел это 10. Все остальные

числа будут меньше его. Т.к. в условии задачи нам точно задан интервал
[-10 ; 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] end;
Writeln;
end;
writeln(' Минимальный элемент лежащий на главной диагонали =',m:5);

Предполагаем, что самое маленькое число 10, правая граница исходного интервала.

Заполняем, выводим на экран и сразу проверяем на минимальность в главной диагонали.

Если немного по рассуждать, можно увидеть, что самое «маленькое» число, которое может выдать генератор случайных чисел это

Слайд 17Заполнить двумерный массив N x N случайными числами из интервала

[-10 ; 10] и найти максимальный элемент в каждой строке.


Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти максимальный элемент

Слайд 18Write('ВВеди N = ');Readln(n);
For j:=1 to n do begin

max:=-10;
For i:=1 to n do begin

a[j,i]:=random(21)-10;
write(a[j,i]:4);
if (a[j,i]>max) then max:= a[j,i];
end;
write(' MAx = ',max:5);
writeln;
end;

Решение в один проход,
с анализом задачи

Предполагаем, что самое большое число - 10, левая граница исходного интервала.

Перебираем строки

Заполняем элемент массива и выводим его на экран

Если в строке встречается элемент больше максимального, то он становится максимальным

Выводим наибольший элемент в строке

Write('ВВеди N = ');Readln(n); For j:=1 to n do begin  max:=-10;  For i:=1 to n

Слайд 19i , 1, N
Вывод a j , i
j , 1,

N
a j , i=
случайное[-10;10]
Ввод N
Мах = - 10
a j,

i > Max

Max = a j, i

Вывод Max

Да

Нет

Нахождение максимального элемента в каждой строке в один проход

Конец

i , 1, NВывод a j , ij , 1, Na j , i= случайное[-10;10]Ввод NМах =

Слайд 20 ClrScr;
Write(‘Введи N = ');Readln(n);
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);
end;
writeln;
end;

Заполняем массив и выводим его на экран

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;




Перебираем строки

Предполагаем, что наибольший элемент в каждой строке стоит на первом месте

Идем по строке и если находим элемент больший чем максимальный, то он становится максимальным

Вывод наибольшего элемента в строке

Стандартным способом,
первый проход – заполнение,
второй проход – поиск
максимального в строках

ClrScr; Write(‘Введи N = ');Readln(n); For j:=1 to n do begin  For i:=1 to n

Слайд 21i , 1, N
Вывод a j, i
j , 1, N
a

j, i=
случайное[-10;10]
Ввод N
1
i , 2, N
j , 1, N
Мах

= a j, 1

a j, i > Max

Max = a j, i

Вывод Max

Да

Нет

1

Начало

Конец

Нахождение максимального элемента в каждой строке в два прохода

i , 1, NВывод a j, ij , 1, Na j, i= случайное[-10;10]Ввод N1i , 2, Nj

Слайд 22Задания для практического выполнения
Задача 43_2 Задан двумерный целочисленный массив Y

из n строк и n столбцов (1 ≤ n ≤ 5) заполняемый с клавиатуры.

Составить программу на Pascal, позволяющую подсчитать сумму всех положительных элементов и сумму элементов по главной диагонали.

Задача 43_3 Задан двумерный целочисленный массив A из n строк и n столбцов (1 ≤ n ≤ 10). Составить программу на Pascal, которая подсчитывает сумму элементов массива, лежащих над главной диагональю, произведение – лежащих под главное диагональю и среднее арифметическое элементов главной диагонали.

Задача 43_1 Задан двумерный целочисленный массив В из m строк и m столбцов (1 ≤ n ≤ 10) заполненный случайными числами в интервале от -30 до +30. Составить программу на Pascal, которая подсчитывает произведение элементов массива, лежащих вне главной диагонали.

Задания для практического выполненияЗадача 43_2 Задан двумерный целочисленный массив Y из n строк и n столбцов (1 ≤ n ≤ 5)

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика