kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Курсы ПК и ППК Видеоуроки Олимпиады Вебинары для учителей

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

Нажмите, чтобы узнать подробности

В мультимедийной презентации "Обработка массивов и матриц" представлен основные понятия массивов и матрицы.                                                                                                                   Рассмотрены различные задачи :  Алгоритмы с ис­поль­зо­ва­ни­ем условного оператора и  Алгоритмы без ис­поль­зо­ва­ния условного оператора .                                                  

Примеры даны с решениями и ответами.                                                                      

Данный проект может быть использован при подготовке к ЕГЭ по информатике.                                                                                                        

Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Наладить дисциплину на своих уроках.
Получить возможность работать творчески.

Просмотр содержимого документа
«Методическая разработка : Презентация "Обработка массивов и матриц" »

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

Об­ра­бот­ка

массивов и матриц

Автор: Сергеенкова И.М., учитель информатики.,

ГБОУ Школа № 1191, г. Москва

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

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

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

Массив – это совокупность однотипных элементов.

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

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

Если каждый элемент массива имеет только один индекс, то такой массив называют   линейным  или  одномерным . Массивы, элементы которых имеют два индекса, называют  двумерными . Например, массив А 8 А1, А2, А3, А4, А5, А6, А7, А8 Этот массив является одномерным, причем массив имеет имя А и состоит из восьми элементов. Количество индексов в списке определяет размерность массива. 

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

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

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

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

Двухмерный массив удобно представить в виде матрицы с двойными индексами. a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 331 В таком массиве каждый элемент имеет двойной индекс. Первая цифра индекса указывает номер строки, вторая номер столбца. Элементы, где номер строки и номер столбца одинаковы, называют элементами главной диагонали. Так как каждый элемент массива имеет индекс, то индекс показывает место элемента в массиве.  В матрице каждый элемент определяется номером  строки и номером столбца, на пересечении которых он  находится.

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

a 11 a 12 a 13

a 21 a 22 a 23

a 31 a 32 a 331

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

В матрице каждый элемент определяется номером строки и номером столбца, на пересечении которых он находится.

Решение задач Пример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. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.  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;  Чему будут равны элементы этого массива? 

Решение.

Решение. Первый цикл , заполняем массив:   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   Второй цикл , меняем значения последних пяти элементов:    i=0: a[10]=a[0]-1 = 0,    i=1: a[9]=a[1]-1 = 2,    ...    i=5: a[5]=a[5]-1 = 10,   Поэтому в результате выполнения программы элементы массива будут равны: 1, 3, 5, 7, 9, 10, 8, 6, 4, 2, 0. 

Решение.

Первый цикл , заполняем массив:  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

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

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

Пример 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, 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;

Решение

Решение: Пер­вый цикл , за­пол­ня­ем мас­сив: i=0: a[0]=0, i=1: a[1]=1, i=2: a[2]=2, ... i=10: a[10]=10.   Вто­рой цикл , ме­ня­ет ме­ста­ми зна­че­ния пер­вых пяти эле­мен­тов с по­сле­ду­ю­щи­ми: 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. По­это­му в ре­зуль­та­те вы­пол­не­ния про­грам­мы эле­мен­ты мас­си­ва будут равны: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0.

Решение:

Пер­вый цикл , за­пол­ня­ем мас­сив:

i=0: a[0]=0,

i=1: a[1]=1,

i=2: a[2]=2,

...

i=10: a[10]=10.

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

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.

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

Пример 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 do

A[n] := n - 10;

for n:=1 to 100 do

B[n] := A[n]*n;

 

Сколь­ко эле­мен­тов мас­си­ва B будут иметь по­ло­жи­тель­ные зна­че­ния?

Решение:

Мас­сив 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 имеют такой же знак, как и со­от­вет­ству­ю­щие эле­мен­ты мас­си­ва A, по­сколь­ку n при­ни­ма­ет толь­ко по­ло­жи­тель­ные зна­че­ния и B[n]=A[n]*n.

В мас­си­ве A 100 – 10 = 90 по­ло­жи­тель­ных зна­че­ний, сле­до­ва­тель­но и в B их тоже 90.

 

Пра­виль­ный ответ: 90

Пример 4. В про­грам­ме опи­сан од­но­мер­ный це­ло­чис­лен­ный мас­сив 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. Ниже пред­став­лен фраг­мент этой про­грам­мы, в ко­то­ром зна­че­ния эле­мен­тов мас­си­ва сна­ча­ла за­да­ют­ся, а затем ме­ня­ют­ся. 

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;

 

Чему будут равны эле­мен­ты этого мас­си­ва?

Решение:

Решение: За­да­ем мас­сив 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.

Ме­ня­ем мас­сив, идя от краев в центр, левый ме­ня­ем на пра­вый с вы­че­том 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.

Пример 5. Зна­че­ния дву­мер­но­го мас­си­ва за­да­ют­ся с по­мо­щью вло­жен­но­го опе­ра­то­ра цикла в пред­став­лен­ном фраг­мен­те про­грам­мы:   for n:=1 to 5 do  for k:=1 to 5 do  B[n,k] := n + k;   Чему будет равно зна­че­ние B[2,4 ]? Решение: Оче­вид­но, что зна­че­ние эле­мен­та B[2,4] = 2 + 4 = 6. Ответ : 6

Пример 5.

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

for n:=1 to 5 do

for k:=1 to 5 do

B[n,k] := n + k;

 

Чему будет равно зна­че­ние B[2,4 ]?

Решение:

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

Ответ : 6

Пример 6. Зна­че­ния эле­мен­тов двух­мер­но­го мас­си­ва 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 j:=1 to 5 do begin

A[i,j]:=A[i,j]+4;

A[j,i]:=A[j,i]+5;

end;

 

Сколь­ко эле­мен­тов мас­си­ва будут равны 9 ?

Решение:

Решение: Мы имеем мат­ри­цу раз­ме­ром 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 + 4 + 5 4 + 4 + 5 4 + 4 + 5 4 + 4 + 5 4 + 4 + 5 4 + 4 + 5 4 + 4 + 5 4 + 4 + 5 4 + 4 + 5 4 + 4 + 5 4 + 4 + 5 4 + 4 + 5 4 + 4 4 + 5 4 + 4 + 5 4 + 4 + 5 4 + 4 4 + 4 + 5 4 + 5 4 + 4 4 + 4 + 5 4 + 5 4 + 4 4 + 5 4 Ответ : 4

Решение:

Мы имеем мат­ри­цу раз­ме­ром 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 + 4 + 5

4 + 4 + 5

4 + 4 + 5

4 + 4 + 5

4 + 4 + 5

4 + 4 + 5

4 + 4 + 5

4 + 4 + 5

4 + 4 + 5

4 + 4 + 5

4 + 4 + 5

4 + 4 + 5

4 + 4

4 + 5

4 + 4 + 5

4 + 4 + 5

4 + 4

4 + 4 + 5

4 + 5

4 + 4

4 + 4 + 5

4 + 5

4 + 4

4 + 5

4

Ответ : 4

Пример 7 В про­грам­ме об­ра­ба­ты­ва­ет­ся дву­мер­ный це­ло­чис­лен­ный мас­сив 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]. Пер­вый ин­декс эле­мен­та обо­зна­ча­ет номер стро­ки, а вто­рой – номер столб­ца. Дан фраг­мент про­грам­мы: 

for i:=0 to n do begin

c:=A[i,n-i];

A[i,n-i]:=A[1,i];

A[1,i]:=c;

end;

 

Что ме­ня­ет этот фраг­мент про­грам­мы?

Решение:

Решение: Этот фраг­мент ме­ня­ет­ме­ста­ми эле­мен­ты 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]  — эле­мент ну­левй стро­ки и по­след­не­го столб­ца.

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

Каж­дый сле­ду­ю­щий эле­мент будет сдви­гать­ся на стро­ку вниз и на стол­бец влево, т. е. мы по­лу­чим эле­мен­ты диа­го­на­ли мас­си­ва.

Эле­мент A[1,i] — эле­мент пер­вой стро­ки и столб­ца с но­ме­ром i.

Зна­чит, дан­ный фраг­мент про­грам­мы ме­ня­ет эле­мен­ты диа­го­на­ли и пер­вой стро­ки в таб­ли­це.

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

Пример 8 Дан фраг­мент про­грам­мы, об­ра­ба­ты­ва­ю­щий мас­сив А из 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] = A[j] then j := i;

s := j;

 

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

Решение:

Решение: Из­на­чаль­но эле­мент a[j]=a[1]. Усло­вие цикла го­во­рит нам о том, что если какой-то эле­мент а[i] мас­си­ва А сов­па­да­ет с пер­вым эле­мен­том этого мас­си­ва, то ин­дек­су j при­сва­и­ва­ет­ся зна­че­ние ин­дек­са i. Т. к. цикл про­бе­га­ет все зна­че­ния i в по­ряд­ке уве­ли­че­ния, то по­след­ним зна­че­ни­ем j ста­нет наи­боль­шее зна­че­ние ин­дек­са i такое, что a[i]=a[1]. Это зна­че­ние сов­падёт со зна­че­ни­ем пе­ре­мен­ной s после вы­пол­не­ния ал­го­рит­ма. Ответ: s = ин­дек­су эле­мен­та, рав­но­го пер­во­му, и име­ю­ще­му наи­боль­ший ин­декс

Решение:

Из­на­чаль­но эле­мент a[j]=a[1].

Усло­вие цикла го­во­рит нам о том, что если какой-то эле­мент а[i] мас­си­ва А сов­па­да­ет с пер­вым эле­мен­том этого мас­си­ва, то ин­дек­су j при­сва­и­ва­ет­ся зна­че­ние ин­дек­са i.

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

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

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

Пример 9 В про­грам­ме опи­сан од­но­мер­ный це­ло­чис­лен­ный мас­сив с ин­дек­са­ми от 0 до 12. Ниже пред­став­лен за­пи­сан­ный на раз­ных язы­ках про­грам­ми­ро­ва­ния фраг­мент одной и той же про­грам­мы, об­ра­ба­ты­ва­ю­щей дан­ный мас­сив: Бей­сик Пас­каль s = 0 s := 0; n = 12 Си n := 12; FOR i = 0 TO n Ал­го­рит­ми­че­ский язык s = 0; s := 0 for i:=0 to n do begin IF A(n–i) – A(i) = A(i) THEN n = 12; if A[n–i] – A[i] = A[i] then n := 12 s = s+2*A(i) for (i = 0; i END IF нц для i от 0 до n if (A[n–i] – A[i] == A[i]) s:=s+2*A[i]; end; если A[n–i] – A[i] = A[i] s = s+2*A[i]; NEXT i } то s := s+2*A[i] все кц В на­ча­ле вы­пол­не­ния этого фраг­мен­та в мас­си­ве на­хо­ди­лись числа 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, т. е. A[0] = 0, A[1] = 10 и т. д.  Чему будет равно зна­че­ние пе­ре­мен­ной s после вы­пол­не­ния дан­ной про­грам­мы?

Пример 9

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

Ниже пред­став­лен за­пи­сан­ный на раз­ных язы­ках про­грам­ми­ро­ва­ния фраг­мент одной и той же про­грам­мы, об­ра­ба­ты­ва­ю­щей дан­ный мас­сив:

Бей­сик

Пас­каль

s = 0

s := 0;

n = 12

Си

n := 12;

FOR i = 0 TO n

Ал­го­рит­ми­че­ский язык

s = 0;

s := 0

for i:=0 to n do begin

IF A(n–i) – A(i) = A(i) THEN

n = 12;

if A[n–i] – A[i] = A[i] then

n := 12

s = s+2*A(i)

for (i = 0; i

END IF

нц для i от 0 до n

if (A[n–i] – A[i] == A[i])

s:=s+2*A[i];

end;

если A[n–i] – A[i] = A[i]

s = s+2*A[i];

NEXT i

}

то s := s+2*A[i]

все

кц

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

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

Решение: Дей­ствие « 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]».

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

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

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

Ответ : s = 80

Источники информации

Источники информации

  • http://inf.reshuege.ru/test?theme=267
  • http://www.rusedu.info/Article651.html
  • http://magnus.jr1.ru/?page_id=304


Получите в подарок сайт учителя

Предмет: Информатика

Категория: Презентации

Целевая аудитория: 11 класс

Скачать
Методическая разработка : Презентация "Обработка массивов и матриц"

Автор: Сергеенкова Ирина Михайловна

Дата: 05.12.2014

Номер свидетельства: 139596


Получите в подарок сайт учителя

Видеоуроки для учителей

Курсы для учителей

ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

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