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


Методическая разработка : Обработка массивов и матриц

Содержание

Массив – это совокупность однотипных элементов.Математическими прообразами массивов являются векторы и матрицы с числовыми компонентами. В языках программирования все элементы массива объединяются общим именем – идентификатором массива. Элементы массива последовательно располагаются

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

Слайд 1Об­ра­бот­ка
массивов и матриц
Автор: Сергеенкова И.М., учитель информатики.,
ГБОУ Школа №

1191, г. Москва

Об­ра­бот­ка массивов и матрицАвтор: Сергеенкова И.М., учитель информатики.,ГБОУ Школа № 1191, г. Москва

Слайд 2Массив – это совокупность однотипных элементов.
Математическими прообразами массивов являются векторы

и матрицы с числовыми компонентами. В языках программирования все элементы

массива объединяются общим именем – идентификатором массива. Элементы массива последовательно располагаются в памяти компьютера.
При обращении к элементу массива указывается имя массива (идентификатор), индекс и тип.

Определения и понятия

В математике, экономике, информатике часто используются различные наборы данных: последовательности чисел, списки фамилий, таблицы. Для обработки наборов однотипных данных мы введем понятие массива.

Массив – это совокупность однотипных элементов.Математическими прообразами массивов являются векторы и матрицы с числовыми компонентами. В языках

Слайд 3Этот массив является одномерным, причем массив имеет имя А и

состоит из восьми элементов. Количество индексов в списке определяет размерность

массива. 

А1, А2, А3, А4, А5, А6, А7, А8

Массивы, элементы которых имеют два индекса, называют двумерными. Например, массив А8

Если каждый элемент массива имеет только один индекс, то такой массив называют линейным или одномерным.

Этот массив является одномерным, причем массив имеет имя А и состоит из восьми элементов. Количество индексов в

Слайд 4Двухмерный массив удобно представить в виде матрицы с двойными индексами.
В

таком массиве каждый элемент имеет двойной индекс. Первая цифра индекса

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

Двухмерный массив удобно представить в виде матрицы с двойными индексами.В таком массиве каждый элемент имеет двойной индекс.

Слайд 5Пример1. В программе описан одномерный целочисленный массив A с индексами от

0 до 10. Ниже представлен фрагмент этой программы, в котором

значения элементов массива сначала задаются, а затем меняются.  A[0] := 1;  for i := 1 to 10 do  A[i] := 2+A[i-1];  for i := 0 to 5 do  A[10-i] := A[i]-1;  Чему будут равны элементы этого массива? 

Решение.

Решение задач

Пример1. В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой

Слайд 6Решение.
 Второй цикл, меняем значения последних пяти элементов:  i=0: a[10]=a[0]-1 = 0,  i=1:

a[9]=a[1]-1 = 2,  ...  i=5: a[5]=a[5]-1 = 10, 
Первый цикл, заполняем массив:  i=0: a[0]=1,  i=1:

a[1]=3,  i=2: a[2]=5,  i=3: a[3]=7,
i=4: a[4]=9,   ...  i=10: a[10]=21

Поэтому в результате выполнения программы элементы массива будут равны: 1, 3, 5, 7, 9, 10, 8, 6, 4, 2, 0. 

Решение. Второй цикл, меняем значения последних пяти элементов:  	i=0: a[10]=a[0]-1 = 0,  	i=1: a[9]=a[1]-1 = 2,  	...  	i=5:

Слайд 7Пример 2.
В про­грам­ме опи­сан од­но­мер­ный це­ло­чис­лен­ный мас­сив с ин­дек­са­ми от

0 до 10 и це­ло­чис­лен­ные пе­ре­мен­ные k, i. В при­ве­ден­ном

ниже фраг­мен­те про­грам­мы мас­сив сна­ча­ла за­пол­ня­ет­ся, а потом из­ме­ня­ет­ся:

for i : = 0 to 10 do A[i] : = i;
for i : = 0 to 4 do begin
k : = A[i];
A[i] : = A[10-i];
A[10-i] : = k;
end;

Решение

Пример 2.В про­грам­ме опи­сан од­но­мер­ный це­ло­чис­лен­ный мас­сив с ин­дек­са­ми от 0 до 10 и це­ло­чис­лен­ные пе­ре­мен­ные k,

Слайд 8 Вто­рой цикл, ме­ня­ет ме­ста­ми зна­че­ния пер­вых пяти эле­мен­тов с по­сле­ду­ю­щи­ми:
i=0:

a[0]=a[10]=10,
i=1: a[1]=a[9] = 9,
...
i=4: a[4]=a[6] = 6,
причём a[10]=a[0]=0,
a[9]=a[1]=1,

...
a[6]=a[4]=4.

Решение:

Пер­вый цикл, за­пол­ня­ем мас­сив:
i=0: a[0]=0,
i=1: a[1]=1,
i=2: a[2]=2,
...
i=10: a[10]=10.

По­это­му в ре­зуль­та­те вы­пол­не­ния про­грам­мы эле­мен­ты мас­си­ва будут равны: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0.

 Вто­рой цикл, ме­ня­ет ме­ста­ми зна­че­ния пер­вых пяти эле­мен­тов с по­сле­ду­ю­щи­ми:i=0: a[0]=a[10]=10,i=1: a[1]=a[9] = 9,...i=4: a[4]=a[6] = 6,причём

Слайд 9Пример 3.
Зна­че­ния двух мас­си­вов A[1..100] и B[1..100] за­да­ют­ся с по­мо­щью

сле­ду­ю­ще­го фраг­мен­та про­грам­мы: 

for n:=1 to 100 do
A[n] := n -

10;
for n:=1 to 100 do
B[n] := A[n]*n;
 
Сколь­ко эле­мен­тов мас­си­ва B будут иметь по­ло­жи­тель­ные зна­че­ния?

Решение:

Пример 3.Зна­че­ния двух мас­си­вов A[1..100] и B[1..100] за­да­ют­ся с по­мо­щью сле­ду­ю­ще­го фраг­мен­та про­грам­мы: for n:=1 to 100 doA[n]

Слайд 10Решение:
Мас­сив A:
n=1: a[1]=1-10=-9,
n=2: a[2]=2-10=-8,
n=3: a[3]=-7,
...
n=9: a[9]=-1,
n=10: a[10]=0,
...
n=100: a[100]=90.
Эле­мен­ты мас­си­ва B

имеют такой же знак, как и со­от­вет­ству­ю­щие эле­мен­ты мас­си­ва A,

по­сколь­ку n при­ни­ма­ет толь­ко по­ло­жи­тель­ные зна­че­ния и B[n]=A[n]*n.
В мас­си­ве A 100 – 10 = 90 по­ло­жи­тель­ных зна­че­ний, сле­до­ва­тель­но и в B их тоже 90.
 
Пра­виль­ный ответ: 90

Решение:Мас­сив A:n=1: a[1]=1-10=-9,n=2: a[2]=2-10=-8,n=3: a[3]=-7,...n=9: a[9]=-1,n=10: a[10]=0,...n=100: a[100]=90.Эле­мен­ты мас­си­ва B имеют такой же знак, как и со­от­вет­ству­ю­щие

Слайд 11В про­грам­ме опи­сан од­но­мер­ный це­ло­чис­лен­ный мас­сив A с ин­дек­са­ми от

0 до 10. Ниже пред­став­лен фраг­мент этой про­грам­мы, в ко­то­ром

зна­че­ния эле­мен­тов мас­си­ва сна­ча­ла за­да­ют­ся, а затем ме­ня­ют­ся. 

for i:=0 to 10 do
A[i]:=2+i;
for i:=0 to 4 do begin
A[i]:=A[10-i]-1;
A[10-i]:=A[i]+3;
end;
 
Чему будут равны эле­мен­ты этого мас­си­ва?

Пример 4.

Решение:

В про­грам­ме опи­сан од­но­мер­ный це­ло­чис­лен­ный мас­сив A с ин­дек­са­ми от 0 до 10. Ниже пред­став­лен фраг­мент этой

Слайд 12Решение:
За­да­ем мас­сив A[i]:=2 + i: 2, 3, 4, 5, 6,

7, 8, 9, 10, 11, 12.
Ме­ня­ем мас­сив, идя от краев

в центр, левый ме­ня­ем на пра­вый с вы­че­том 1, а потом пра­вый на из­ме­нен­ный левый плюс 3:
 
A[i]:= A[10-i] - 1: 12 - 1, 11 - 1, 10 - 1, 9 - 1, 8 - 1 = 11, 10, 9, 8, 7 - пер­вые пять ячеек.

A[10 - i]:= A[i] + 3 = A[10-i] - 1 + 3 = A[10-i] + 2: 12 + 2, 11 + 2, 10 + 2, 9 + 2, 8 + 2 = 14, 13, 12, 11, 10 - вто­рые пять ячеек в об­рат­ном по­ряд­ке (с но­ме­ра 10 до но­ме­ра 6).
 
Эле­мент A[5] остал­ся не­из­мен­ным: A[5] = 7.
 
В итоге: 11 10 9 8 7 7 10 11 12 13 14.

Решение:За­да­ем мас­сив A[i]:=2 + i: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12.Ме­ня­ем мас­сив,

Слайд 13Зна­че­ния дву­мер­но­го мас­си­ва за­да­ют­ся с по­мо­щью вло­жен­но­го опе­ра­то­ра цикла в

пред­став­лен­ном фраг­мен­те про­грам­мы: 
for n:=1 to 5 do
for k:=1 to 5

do
B[n,k] := n + k;
 
Чему будет равно зна­че­ние B[2,4]?

Пример 5.

Решение:
Оче­вид­но, что зна­че­ние эле­мен­та B[2,4] = 2 + 4 = 6.

Ответ: 6

Зна­че­ния дву­мер­но­го мас­си­ва за­да­ют­ся с по­мо­щью вло­жен­но­го опе­ра­то­ра цикла в пред­став­лен­ном фраг­мен­те про­грам­мы: 	for n:=1 to 5 do	for

Слайд 14Зна­че­ния эле­мен­тов двух­мер­но­го мас­си­ва A[1..10,1..10] сна­ча­ла равны 4. Затем вы­пол­ня­ет­ся

сле­ду­ю­щий фраг­мент про­грам­мы:
for i:=1 to 4 do
for j:=1 to 5

do begin
A[i,j]:=A[i,j]+4;
A[j,i]:=A[j,i]+5;
end;
 
Сколь­ко эле­мен­тов мас­си­ва будут равны 9?

Пример 6.

Решение:

Зна­че­ния эле­мен­тов двух­мер­но­го мас­си­ва A[1..10,1..10] сна­ча­ла равны 4. Затем вы­пол­ня­ет­ся сле­ду­ю­щий фраг­мент про­грам­мы:	for i:=1 to 4 do	for

Слайд 15Решение:
Мы имеем мат­ри­цу раз­ме­ром 10x10. Опе­ра­ция A[i,j] : = A[i,j]+4

при за­дан­ных i и j уве­ли­чи­ва­ет на 4 эле­мен­ты пер­вых

четырёх строк и пер­вых пяти столб­цов.
Опе­ра­ция A[j,i] : = A[j,i]+5 при за­дан­ных i и j уве­ли­чи­ва­ет на 5 эле­мен­ты пер­вых пяти строк и пер­вых четырёх столб­цов.
По­сколь­ку все эле­мен­ты мас­си­ва из­на­чаль­но равны 4, то после пер­во­го опе­ра­то­ра 4 * 5 = 20 эле­мен­тов будут равны 8, а после вто­ро­го – 16 эле­мен­тов будут равны 13, 4 эле­мен­та будут равны 8 и 4 эле­мен­та при­об­ре­тут зна­че­ние 9.
 На­ри­су­ем для на­гляд­но­сти из­ме­ня­ю­щий­ся фраг­мент чис­ло­вой таб­ли­цы:

Ответ: 4

Решение:Мы имеем мат­ри­цу раз­ме­ром 10x10. Опе­ра­ция A[i,j] : = A[i,j]+4 при за­дан­ных i и j уве­ли­чи­ва­ет на

Слайд 16В про­грам­ме об­ра­ба­ты­ва­ет­ся дву­мер­ный це­ло­чис­лен­ный мас­сив A [0..n,0..n]. Пер­вый ин­декс

эле­мен­та обо­зна­ча­ет номер стро­ки, а вто­рой – номер столб­ца. Дан

фраг­мент про­грам­мы: 
for i:=0 to n do begin
c:=A[i,n-i];
A[i,n-i]:=A[1,i];
A[1,i]:=c;
end;
 
Что ме­ня­ет этот фраг­мент про­грам­мы?

Решение:

Пример 7

В про­грам­ме об­ра­ба­ты­ва­ет­ся дву­мер­ный це­ло­чис­лен­ный мас­сив A [0..n,0..n]. Пер­вый ин­декс эле­мен­та обо­зна­ча­ет номер стро­ки, а вто­рой –

Слайд 17Решение:
Этот фраг­мент ме­ня­ет­ме­ста­ми эле­мен­ты A[i,n-i] и A[1,i]. Раз­берёмся, что это

за эле­мен­ты.
При i=0 A[i,n-i] = A[0,n] — эле­мент ну­левй стро­ки и

по­след­не­го столб­ца.
При i=1 A[i,n-i] = A[1,n-1] — эле­мент пер­вой стро­ки и пред­по­след­не­го столб­ца.

Каж­дый сле­ду­ю­щий эле­мент будет сдви­гать­ся на стро­ку вниз и на стол­бец влево, т. е. мы по­лу­чим эле­мен­ты диа­го­на­ли мас­си­ва.
Эле­мент A[1,i] — эле­мент пер­вой стро­ки и столб­ца с но­ме­ром i.
Зна­чит, дан­ный фраг­мент про­грам­мы ме­ня­ет эле­мен­ты диа­го­на­ли и пер­вой стро­ки в таб­ли­це.

Ответ: меняет эле­мен­ты диа­го­на­ли и стро­ки в таб­ли­це

Решение:Этот фраг­мент ме­ня­ет­ме­ста­ми эле­мен­ты A[i,n-i] и A[1,i]. Раз­берёмся, что это за эле­мен­ты.При i=0 A[i,n-i] = A[0,n] — эле­мент

Слайд 18Дан фраг­мент про­грам­мы, об­ра­ба­ты­ва­ю­щий мас­сив А из 10 эле­мен­тов: 
j :=

1;
for i:=1 tо 10 do
if A[i] = A[j] then j

:= i;
s := j;
 
Чему будет равно зна­че­ние пе­ре­мен­ной s после вы­пол­ не­ния этого ал­го­рит­ма?

Пример 8

Решение:

Дан фраг­мент про­грам­мы, об­ра­ба­ты­ва­ю­щий мас­сив А из 10 эле­мен­тов: 	j := 1;	for i:=1 tо 10 do	if A[i] =

Слайд 19Решение:
Из­на­чаль­но эле­мент a[j]=a[1].
Усло­вие цикла го­во­рит нам о том, что

если какой-то эле­мент а[i] мас­си­ва А сов­па­да­ет с пер­вым эле­мен­том

этого мас­си­ва, то ин­дек­су j при­сва­и­ва­ет­ся зна­че­ние ин­дек­са i.

Т. к. цикл про­бе­га­ет все зна­че­ния i в по­ряд­ке уве­ли­че­ния, то по­след­ним зна­че­ни­ем j ста­нет наи­боль­шее зна­че­ние ин­дек­са i такое, что a[i]=a[1].

Это зна­че­ние сов­падёт со зна­че­ни­ем пе­ре­мен­ной s после вы­пол­не­ния ал­го­рит­ма.

Ответ: s = ин­дек­су эле­мен­та, рав­но­го пер­во­му, и име­ю­ще­му наи­боль­ший ин­декс

Решение:Из­на­чаль­но эле­мент a[j]=a[1]. Усло­вие цикла го­во­рит нам о том, что если какой-то эле­мент а[i] мас­си­ва А сов­па­да­ет

Слайд 20В про­грам­ме опи­сан од­но­мер­ный це­ло­чис­лен­ный мас­сив с ин­дек­са­ми от 0

до 12.
Ниже пред­став­лен за­пи­сан­ный на раз­ных язы­ках про­грам­ми­ро­ва­ния фраг­мент

одной и той же про­грам­мы, об­ра­ба­ты­ва­ю­щей дан­ный мас­сив:

Пример 9

В на­ча­ле вы­пол­не­ния этого фраг­мен­та в мас­си­ве на­хо­ди­лись числа 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, т. е. A[0] = 0, A[1] = 10 и т. д.
Чему будет равно зна­че­ние пе­ре­мен­ной s после вы­пол­не­ния дан­ной про­грам­мы?

В про­грам­ме опи­сан од­но­мер­ный це­ло­чис­лен­ный мас­сив с ин­дек­са­ми от 0 до 12. Ниже пред­став­лен за­пи­сан­ный на раз­ных

Слайд 21Дей­ствие «s:=s+2*A[i];» вы­пол­ня­ет­ся, если ис­тин­но усло­вие

«if A[n–i] – A[i]

= A[i]».

Дан­ное усло­вие вы­пол­не­но толь­ко для i = 4,

в этом слу­чае

A[8] − A[4] = 80 − 40 = 40 = A[4].

Пе­ре­мен­ная s при­мет зна­че­ние s = 0 + 2 · 40 = 80.

Решение:

Ответ: s = 80

Дей­ствие «s:=s+2*A[i];» вы­пол­ня­ет­ся, если ис­тин­но усло­вие «if A[n–i] – A[i] = A[i]». Дан­ное усло­вие вы­пол­не­но толь­ко для

Слайд 22Источники информации
http://inf.reshuege.ru/test?theme=267
http://www.rusedu.info/Article651.html
http://magnus.jr1.ru/?page_id=304

Источники информации http://inf.reshuege.ru/test?theme=267http://www.rusedu.info/Article651.htmlhttp://magnus.jr1.ru/?page_id=304

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

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

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

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

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


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

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