Методическая разработка : Презентация "Обработка массивов и матриц"
Методическая разработка : Презентация "Обработка массивов и матриц"
В мультимедийной презентации "Обработка массивов и матриц" представлен основные понятия массивов и матрицы. Рассмотрены различные задачи : Алгоритмы с использованием условного оператора и Алгоритмы без использования условного оператора .
Примеры даны с решениями и ответами.
Данный проект может быть использован при подготовке к ЕГЭ по информатике.
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Просмотр содержимого документа
«Методическая разработка : Презентация "Обработка массивов и матриц" »
Обработка
массивов и матриц
Автор: Сергеенкова И.М., учитель информатики.,
ГБОУ Школа № 1191, г. Москва
Определения и понятия
В математике, экономике, информатике часто используются различные наборы данных: последовательности чисел, списки фамилий, таблицы. Для обработки наборов однотипных данных мы введем понятие массива.
Массив – это совокупность однотипных элементов.
Математическими прообразами массивов являются векторы и матрицы с числовыми компонентами. В языках программирования все элементы массива объединяются общим именем – идентификатором массива. Элементы массива последовательно располагаются в памяти компьютера.
При обращении к элементу массива указывается имя массива (идентификатор), индекс и тип.
Если каждый элемент массива имеет только один индекс, то такой массив называют линейным или одномерным.
Массивы, элементы которых имеют два индекса, называют двумерными . Например, массив А8
А1, А2, А3, А4, А5, А6, А7, А8
Этот массив является одномерным, причем массив имеет имя А и состоит из восьми элементов. Количество индексов в списке определяет размерность массива.
Двухмерный массив удобно представить в виде матрицы с двойными индексами.
a11a12a13
a21a22a23
a31a32a331
В таком массиве каждый элемент имеет двойной индекс. Первая цифра индекса указывает номер строки, вторая номер столбца. Элементы, где номер строки и номер столбца одинаковы, называют элементами главной диагонали. Так как каждый элемент массива имеет индекс, то индекс показывает место элемента в массиве.
В матрице каждый элемент определяется номеромстроки и номером столбца, на пересечении которых оннаходится.
Решение задач
Пример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.
Пример 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.
Пример 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
Пример 4.
В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.
Мы имеем матрицу размером 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;
Что меняет этот фрагмент программы?
Решение:
Решение:
Этот фрагмент меняетместами элементы 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 после выполнения этого алгоритма?
Решение:
Решение:
Изначально элемент 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 после выполнения данной программы?
Решение:
Действие « 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.