Условия всех задач из категории A12

Проверяемые элементы содержания: работа с массивами (заполнение, считывание, поиск, сортировка, массовые операции и др.)
 
 
 
 

Историческая справка и теоретические сведения

Разработчики языков программирования однажды столкнулись с проблемой упорядочивания таких данных, которые можно отнести к одному и тому же типу (целые числа, буквенные символы, дробные числа и так далее). Но требовалось не простая классификация того или иного набора данных, а еще и удобная система их поиска и взаимодействия с ними. Так появились массивы, став одним из самых мощных, удобных и эффективных инструментов во многих языках программирования. Фактически информационные массивы были придуманы и вошли в употребление во второй половине двадцатого века.

 

Массив – логический контейнер, для хранения однородных (однотипных) элементов, причем доступ к элементу реализован при помощи специального индекса. То есть, каждый элемент массива имеет две характеристики: значение и индекс.

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

Рассмотрим графическую интерпретацию одномерного массива (пусть массив именуются как А), состоящего из 8-ми элементов целочисленного типа данных:

98-23078-6112120значение
12345678индекс

Для обращения к элементу массива, как правило, в программе используют квадратные скобки (с другой стороны, в языке программирования Basic, для обращения к элементу массива используются круглые скобки).
Например, запись A[3], означает обращение к элементу массива с именем А, имеющего индекс три. Значением данного элемента (как видно из массива, визуализированного выше данного текста) является число 0.

В программах, использующих одномерные массивы, обычно применяются циклические конструкции, особенно цикл со счетчиком for. Это обусловлено тем, что статические массивы четко определяют левую и правую границу своих элементов, а циклические конструкции типа for - to - do как раз оперируют границами изменения счетчика цикла.

 

Рассмотрим графическую интерпретацию двумерного массива (пусть массив именуются как А), состоящего из трех строк и четрых колонок, то есть, имеющего 3 · 4 = 12 [элементов] целочисленного типа данных:

 1234
178-34012
27-217838
389-1011

Для обращения к элементу массива, как правило, в программе используют квадратные скобки (с другой стороны, в языке программирования Basic, для обращения к элементу массива используются круглые скобки).

Поскольку обрабатывается двухмерный массив, то при обращении к элементу массива требуется уточнить два индекса:

  • первый индекс показывает номер строки;

  • второй индекс показывает номер колонки.

Например, запись A[3, 2], означает обращение к элементу массива с именем А, расположенного в строке под номером три и в колонке под номером два. Значением данного элемента (как видно из массива, визуализированного выше данного текста) является число 9.

Сортировка массива – процесс упорядочивания элементов массива по какому-либо признаку.
Алгоритм сортировки оценивается по двум признакам:

  • время;

  • расходуемая память.

Некоторые конститутивные алгоритмы сортировки:

  • пузырьковая сортировка;

  • сортировка выбором;

  • сортировка вставками;

  • сортировка слиянием;

  • быстрая сортировка;

  • пирамидальная сортировка.

Заполнение массива – инициализация элементов массива конкретными физическими значениями.

Поиск в массиве – определение одного или нескольких элементов массива, значения которые удовлетворяют граничным критериям.

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

 

Методические указания

Для успешного решения задач из данной категории вы должны уметь:

  1. селекционировать один из предложенных языков программирования;

  2. понимать, каким образом проведена инициализация элементов в заданном массиве;

  3. разобрать тело второго цикла (как правило, именно в нем производится все обработка), то есть, понять запрограммированный в данном цикле алгоритм.

 
 
 
 

Задача №1

Дано:
в программе описан одномерный целочисленный массив А  с индексами от 0 до 10 и целочисленные переменные k, i.   Ниже   представлен фрагмент одной и той же программы,  записанный   на  разных  языках  программирования (Turbo Pascal и Basic),   в    котором   значения  элементов   сначала задаются, а  затем меняются.

язык программирования Pascalязык программирования Basic
 for i := 0 to 10 doFOR i = 0 to 10
     A[i] := i;    A(i) = i
 for i := 0 to 4 doNEXT i
 beginFOR i = 0 to 4
     k := A[i];

    k = A(i)

     A[i] := A[10 - i];    A(i) = A(10 - i)
     A[10 - i] := k;    A(10 - i) = k
 end;NEXT i

 

Вопрос:
чему будут равны элементы этого массива?

 

Варианты ответа:

  1. 10 9 8 7 6 5 4 3 2 1  0

  2.  0 1 2 3 4 5 6 7 8 9 10

  3.  0 1 2 3 4 5 4 3 2 1  0

  4. 10 9 8 7 6 5 6 7 8 9 10

 
 
 
 
 
 

Задача №2

Дано:
в программе описан одномерный целочисленный массив А с индексами от 0 до 10 и целочисленные переменные k, i. Ниже представлен фрагмент одной и той же программы, записанный на разных языках программирования, в котором значения элементов сначала задаются, а затем меняются.

язык программирования Pascalязык программирования Basic
 for i := 0 to 10 doFOR i = 0 to 10
     A[i] := i;    A(i) = i
 for i := 0 to 10 doNEXT i
 beginFOR i = 0 to 10
     k := A[i];

    k = A(i)

     A[i] := A[10 - i];    A(i) = A(10 - i)
     k := A[10 - i];    k = A(10 - i)
 end;NEXT i

 

Вопрос:
чему будут равны элементы этого массива?

 

Варианты ответа:

  1. 10 9 8 7 6 5 4 3 2 1  0

  2.  0 1 2 3 4 5 6 7 8 9 10

  3.  0 1 2 3 4 5 4 3 2 1  0

  4. 10 9 8 7 6 5 6 7 8 9 10

 
 
 
 
 
 

Задача №3

Дано:
в программе описан одномерный целочисленный массив А с индексами от 0 до 10 и целочисленные переменные k, i. Ниже представлен фрагмент одной и той же программы, записанный на разных языках программирования, в котором значения элементов сначала задаются, а затем меняются:

язык программирования Pascalязык программирования Basic
 for i := 0 to 10 doFOR i = 0 to 10
     A[i] := i;    A(i) = i
 for i := 0 to 9 doNEXT i
 beginFOR i = 0 to 9
     A[i] := A[i + 1];    A(i) = A(i + 1)
 end;NEXT i

 

Вопрос:
чему будут равны элементы массива?

 

Варианты ответа:

  1. 10 0 1 2 3 4 5 6 7  8  9

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

  3.  0 0 1 2 3 4 5 6 7  8  9

  4.  1 2 3 4 5 6 7 8 9 10  0

 
 
 
 
 
 

Задача №4

Дано:
следующий фрагмент программы обрабатывает массив А размером n х n, n > 5. Представим массив в виде квадратной таблицы, в которой для элемента массива А [i, j] величина i является номером строки, а величина j - номером столбца, в котором расположен элемент:

 

Вопрос:
что меняет данный алгоритм?

 

Варианты ответа:

  1. две строки в таблице;

  2. два столбца в таблице;

  3. элементы диагонали в таблице;

  4. элементы строки на элементы столбца в таблице.

 
 
 
 
 
 
© 2011-2024 ООО "СтадиМен". Все права сохранены.
Перепечатка и использование материалов с данного сайта, разрешена только по согласию с владельцем.
Владелец оставляет за собой право воспользоваться 146 статьей УК РФ при нарушении авторских и смежных прав.
 
 
 
 
Авторизация на сайте
 
 
 
Обнаружили
ошибку на сайте?