Погода
Календарь
Май 2019
Пн Вт Ср Чт Пт Сб Вс
« Сен    
 12345
6789101112
13141516171819
20212223242526
2728293031  
Страницы сайта

Обработка массивов и матриц.

Понятие главной диагонали матрицы: элементы матрицы главной диагонали имеют совпадающие номера строки и столбца:

главная диагональ матрицы

Формула элементов главной диагонали:
i = j
где i и j — счетчики циклов (А[i,j])

  • если у элементов матрицы номер строки меньше номера столбца (i  <  j), то они расположены выше главной диагонали:
  • если у элементов матрицы номер строки больше номера столбца (i  >  j), то они расположены ниже главной диагонали:
  •  побочная диагональ матрицы имеет формулу:

n = i + j — 1 или j = n — i + 1

где n — общее количество элементов квадратной матрицы, i и j — счетчики циклов строк и столбцов

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

Задание 1. В про­грам­ме опи­сан од­но­мер­ный це­ло­чис­лен­ный мас­сив А с ин­дек­са­ми от 0 до 10. Ниже пред­став­лен фраг­мент этой про­грам­мы, за­пи­сан­ный на раз­ных язы­ках про­грам­ми­ро­ва­ния.Чему ока­жут­ся равны эле­мен­ты этого мас­си­ва после вы­пол­не­ния фраг­мен­та про­грам­мы?
for i := 0 to 9 do
A[i] := i+1;
t := A[0]
for i := 0 to 8 do
A[i] := A[i+1];
A[9] := t;

1) 1 2 3 4 5 6 7 8 9 1
2) 1 1 1 1 1 1 1 1 1 1
3) 10 10 10 10 10 10 10 10 10 1
4) 2 3 4 5 6 7 8 9 10 1

    Решение:

Пер­вый цикл, за­пол­ня­ем мас­сив:
i = 0: a[0] = 1,
i = 1: a[1] = 2,
i = 2: a[2] = 3,
i = 9: a[9] = 10.
t = 1
Вто­рой цикл, ме­ня­ем зна­че­ния всех эле­мен­тов:
i = 0: a[0] = a[1] = 2,
i = 1: a[1] = a[2] = 3,
i = 7: a[7] = a[8] = 9,
i = 8: a[8] = a[9]  =  10,
Вы­пол­ним по­след­нее дей­ствие: a[9] = 1.
По­это­му в ре­зуль­та­те вы­пол­не­нии про­грам­мы эле­мен­ты мас­си­ва будут равны: 2 3 4 5 6 7 8 9 10 1.
Ответ: 4

Задание 2. Зна­че­ния эле­мен­тов дву­мер­но­го мас­си­ва А были равны 0. Затем зна­че­ния не­ко­то­рых эле­мен­тов были из­ме­не­ны (см. пред­став­лен­ный фраг­мент про­грам­мы):
n := 0;
for i:=1 tо 5 do
for j:=1 tо 6-i do begin
n := n + 1;
A[i,j] := n;
end;
Какой эле­мент мас­си­ва будет иметь в ре­зуль­та­те мак­си­маль­ное зна­че­ние?
1) A[1,1]
2) A[1,5]
3) A[5,1]
4) A[5,5]

Решение.
В пе­ре­мен­ной  n  на­кап­ли­ва­ет­ся сумма про­хо­дов цикла. Это число всё время растёт, сле­до­ва­тель­но, наи­боль­шим эле­мен­том мас­си­ва будет тот, зна­че­ние ко­то­ро­му будет при­сво­е­но по­след­ним. Это эле­мент A[5,1].
Ответ: 3

Задание 3. Ниже при­ведён фраг­мент про­грам­мы, за­пи­сан­ный на четырёх язы­ках про­грам­ми­ро­ва­ния.
Мас­сив A дву­мер­ный; в про­грам­ме рас­смат­ри­ва­ет­ся его фраг­мент, со­от­вет­ству­ю­щий зна­че­ни­ям каж­до­го ин­дек­са от 1 до 9.

for n:=1 to 9 do
  for k:=1 to 9 do
   A[n,k]:=n+k+1 Сколь­ко эле­мен­тов ука­зан­но­го фраг­мен­та мас­си­ва A будут при­ни­мать нечётные зна­че­ния после вы­пол­не­ния дан­но­го фраг­мен­та про­грам­мы?

Решение: За­ме­тим, что каж­дый эле­мент этого фраг­мен­та при­ни­ма­ет зна­че­ние, рав­ное сумме его ин­дек­сов плюс один. Сле­до­ва­тель­но, эта сумма будет нечётной если сумма ин­дек­сов эле­мен­та чётная. Таких эле­мен­тов в при­ведённом мас­си­ве 41.
Ответ: 41

Задание 4. Ниже при­ведён фраг­мент про­грам­мы, за­пи­сан­ный на четырёх язы­ках про­грам­ми­ро­ва­ния. Мас­сив A це­ло­чис­лен­ный дву­мер­ный. В про­грам­ме рас­смот­рен фраг­мент мас­си­ва, со­от­вет­ству­ю­щий зна­че­ни­ям ин­дек­сов от 1 до n; n >= 3.
for i := n downto 1 do
for j := n downto 1 do
  A[i,j] := i-j;
Чему будет равно мак­си­маль­ное из зна­че­ний эле­мен­тов рас­смот­рен­но­го фраг­мен­та мас­си­ва после вы­пол­не­ния фраг­мен­та про­грам­мы?
1) n – 1
2) 1– n
3) n
4) 1

Решение: Ко­ман­да «A[i,j] := i-j;» при­сва­и­ва­ет эле­мен­ту раз­ность между зна­че­ни­я­ми ин­дек­сов i и j. Мак­си­маль­ное зна­че­ние эле­мент мас­си­ва будет иметь в том слу­чае, когда ин­декс i будет иметь мак­си­маль­ное зна­че­ние, а ин­декс j — ми­ни­маль­ное. Мак­си­маль­ное зна­че­ние ин­дек­са i — n, ми­ни­маль­ное ин­дек­са j — 1. Таким об­ра­зом, мак­си­маль­ное из зна­че­ний эле­мен­тов будет равно n – 1.
Ответ: 1

Задание 5. В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 1, 2, 5, 8, 9, 3, 4, 0, 7, 6 соответственно, т.е. A[0] = 1, A[1] = 2 и т.д.
Определите значение переменной j после выполнения следующего фрагмента программы (
записанного ниже на пяти языках программирования).

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

  • Ход программы представим в таблице:
  • Вывод: j=2

Ответ: 2

Задание 6. В программе используется одномерный целочисленный массив A с индексами от 0 до 9.
Значения элементов равны 3, 0, 4, 6, 5, 1, 8, 2, 9, 7 соответственно, т.е. A[0] = 3, A[1] = 0 и т. д.
Определите значение переменной c после выполнения следующего фрагмента этой программы (записанного ниже на разных языках программирования).

Решение:

  • Цикл выполняется 9 раз (от 1 до 9)
  • В цикле увеличивается значение переменной с, если текущий элемент массива меньше предыдущего. При этом элементы поменяются местами
  • Ход программы представим в таблице:
  • Вывод: пять перестановок, следовательно, с=5

Ответ: 5

Top