Категория A12 • задача №4
Условие задачи
Дано:
следующий фрагмент программы обрабатывает массив А размером n х n, n > 5. Представим массив в виде квадратной таблицы, в которой для элемента массива А [i, j] величина i является номером строки, а величина j - номером столбца, в котором расположен элемент:
Вопрос:
что меняет данный алгоритм?
Варианты ответа:
две строки в таблице;
два столбца в таблице;
элементы диагонали в таблице;
элементы строки на элементы столбца в таблице.
Решение
I этап: селекционирование языка программирования
Из предложенных трех вариантов сразу отсекаем Алгоритмический язык, так как гораздо проще вести разбор формальных инструкций, записанных на каком либо языке высокого уровня. Свое предпочтение я отдаю языку программирования Паскаль, так как в отличие от Basic он имеет:
строгую типизацию;
хорошо организованную внутреннюю структуру программы;
большое количество встроенных типов данных.
В итоге, наш выбор - язык программирования Pascal.
II этап: рассмотрим алгоритм, заложенный в данной программе
В условии сказано, что n > 5, поэтому возьмем за n ближайшее допустимое значение, то есть n = 6. Рассмотрим квадратную матрицу размерности n · n = 6 · 6 и заполним ее натуральными числами от 1 до 36 (данное заполнение взято автором абсолютно хаотично и без каких-либо предпосылок):
1 | 2 | 3 | 4 | 5 | 6 | |
1 | 1 | 2 | 3 | 4 | 5 | 6 |
2 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 13 | 14 | 15 | 16 | 17 | 18 |
4 | 19 | 20 | 21 | 22 | 23 | 24 |
5 | 25 | 26 | 27 | 28 | 29 | 30 |
6 | 31 | 32 | 33 | 34 | 35 | 36 |
Рассмотрим более детально программные строки, приведенные в теле цикла:
A[1, i] := A[k, i];
A[k, i] := c
Очевидно, что в данных инструкциях приведен алгоритм обмена значений двух переменных через вспомогательную переменную. В качестве этих переменных выступают элементы массива. В качестве вспомогательной переменной выступает идентификатор с.
Запись A[1, i] означает обращение к элементу, находящемуся в первой строке и i-ом столбце.
Запись A[k, i] означает обращение к элементу, находящемуся в k-ой строке и i-ом столбце. Если учесть, что k = 4, то получается элементы будут располагаться в четвертой строке.
В итоге, можно сделать вывод, что в данном цикле происходит обмен элементов между первой и четвертой строкой.
I итерация: i = 1
Тогда тело цикла принимает вид:
A[1, 1] := A[4, 1];
A[4, 1] := c
1 | 2 | 3 | 4 | 5 | 6 | |
1 | 1 | 2 | 3 | 4 | 5 | 6 |
2 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 13 | 14 | 15 | 16 | 17 | 18 |
4 | 19 | 20 | 21 | 22 | 23 | 24 |
5 | 25 | 26 | 27 | 28 | 29 | 30 |
6 | 31 | 32 | 33 | 34 | 35 | 36 |
1 | 2 | 3 | 4 | 5 | 6 | |
1 | 19 | 2 | 3 | 4 | 5 | 6 |
2 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 13 | 14 | 15 | 16 | 17 | 18 |
4 | 1 | 20 | 21 | 22 | 23 | 24 |
5 | 25 | 26 | 27 | 28 | 29 | 30 |
6 | 31 | 32 | 33 | 34 | 35 | 36 |
II итерация: i = 2
Тогда тело цикла принимает вид:
A[1, 2] := A[4, 2];
A[4, 2] := c
1 | 2 | 3 | 4 | 5 | 6 | |
1 | 19 | 2 | 3 | 4 | 5 | 6 |
2 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 13 | 14 | 15 | 16 | 17 | 18 |
4 | 1 | 20 | 21 | 22 | 23 | 24 |
5 | 25 | 26 | 27 | 28 | 29 | 30 |
6 | 31 | 32 | 33 | 34 | 35 | 36 |
1 | 2 | 3 | 4 | 5 | 6 | |
1 | 19 | 20 | 3 | 4 | 5 | 6 |
2 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 13 | 14 | 15 | 16 | 17 | 18 |
4 | 1 | 2 | 21 | 22 | 23 | 24 |
5 | 25 | 26 | 27 | 28 | 29 | 30 |
6 | 31 | 32 | 33 | 34 | 35 | 36 |
III итерация: i = 3
Тогда тело цикла принимает вид:
A[1, 3] := A[4, 3];
A[4, 3] := c
1 | 2 | 3 | 4 | 5 | 6 | |
1 | 19 | 20 | 3 | 4 | 5 | 6 |
2 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 13 | 14 | 15 | 16 | 17 | 18 |
4 | 1 | 2 | 21 | 22 | 23 | 24 |
5 | 25 | 26 | 27 | 28 | 29 | 30 |
6 | 31 | 32 | 33 | 34 | 35 | 36 |
1 | 2 | 3 | 4 | 5 | 6 | |
1 | 19 | 20 | 21 | 4 | 5 | 6 |
2 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 13 | 14 | 15 | 16 | 17 | 18 |
4 | 1 | 2 | 3 | 22 | 23 | 24 |
5 | 25 | 26 | 27 | 28 | 29 | 30 |
6 | 31 | 32 | 33 | 34 | 35 | 36 |
IV итерация: i = 4
Тогда тело цикла принимает вид:
A[1, 4] := A[4, 4];
A[4, 4] := c
1 | 2 | 3 | 4 | 5 | 6 | |
1 | 19 | 20 | 21 | 4 | 5 | 6 |
2 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 13 | 14 | 15 | 16 | 17 | 18 |
4 | 1 | 2 | 3 | 22 | 23 | 24 |
5 | 25 | 26 | 27 | 28 | 29 | 30 |
6 | 31 | 32 | 33 | 34 | 35 | 36 |
1 | 2 | 3 | 4 | 5 | 6 | |
1 | 19 | 20 | 21 | 22 | 5 | 6 |
2 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 13 | 14 | 15 | 16 | 17 | 18 |
4 | 1 | 2 | 3 | 4 | 23 | 24 |
5 | 25 | 26 | 27 | 28 | 29 | 30 |
6 | 31 | 32 | 33 | 34 | 35 | 36 |
V итерация: i = 5
Тогда тело цикла принимает вид:
A[1, 5] := A[4, 5];
A[4, 5] := c
1 | 2 | 3 | 4 | 5 | 6 | |
1 | 19 | 20 | 21 | 22 | 5 | 6 |
2 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 13 | 14 | 15 | 16 | 17 | 18 |
4 | 1 | 2 | 3 | 4 | 23 | 24 |
5 | 25 | 26 | 27 | 28 | 29 | 30 |
6 | 31 | 32 | 33 | 34 | 35 | 36 |
1 | 2 | 3 | 4 | 5 | 6 | |
1 | 19 | 20 | 21 | 22 | 23 | 6 |
2 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 13 | 14 | 15 | 16 | 17 | 18 |
4 | 1 | 2 | 3 | 4 | 5 | 24 |
5 | 25 | 26 | 27 | 28 | 29 | 30 |
6 | 31 | 32 | 33 | 34 | 35 | 36 |
VI итерация: i = 6 (завершающая итерация)
Тогда тело цикла принимает вид:
A[1, 6] := A[4, 6];
A[4, 6] := c
1 | 2 | 3 | 4 | 5 | 6 | |
1 | 19 | 20 | 21 | 22 | 23 | 6 |
2 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 13 | 14 | 15 | 16 | 17 | 18 |
4 | 1 | 2 | 3 | 4 | 5 | 24 |
5 | 25 | 26 | 27 | 28 | 29 | 30 |
6 | 31 | 32 | 33 | 34 | 35 | 36 |
1 | 2 | 3 | 4 | 5 | 6 | |
1 | 19 | 20 | 21 | 22 | 23 | 24 |
2 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 13 | 14 | 15 | 16 | 17 | 18 |
4 | 1 | 2 | 3 | 4 | 5 | 6 |
5 | 25 | 26 | 27 | 28 | 29 | 30 |
6 | 31 | 32 | 33 | 34 | 35 | 36 |
После обработки двухмерный массив имеет окончательный вид:
Как видно из полученной матрицы, произошел обмен элементов, находящихся на первой и четвертой строках, то есть поменялись местами две строки данной матрицы.
Среди предложенных вариантов ответа вариант под номером один описывает то же самое, что мы получили в процессе решения поставленной задачи.
Вывод: |
данный алгоритм меняет местами две строки в таблице |
Ответ: |
1 |
Категория A12 • задача №4
Остальные решения из билета №4 для подготовки к ЕГЭ по информатике 2013
Условие задачи (наведите курсор мыши на ссылку) |
Аудиовизуальное решение |
Мультимедийная видеопрезентация |
Решение в формате слайд-шоу |
Текстовое решение |
---|
Комментарии