(495)240-8280ПН-СБ с 12:00 до 20:00
We speak English

5.1. Доступ к элементам массива

Массивы

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

В литературе, наряду с термином "массив", часто можно встретить термин "матрица", "таблица" или "вектор". Суть всех этих терминов одна и та же.

Отличительной особенностью языка программирования графического калькулятора CASIO является то, что в нем предусмотрено только 6 одномерных массивов. В математике и информатике массив называется одномерным, если для получения доступа к его элементу достаточно одной индексной переменной. Массивы при этом различаются по номерам: List 1, List 2, ... , List 6.

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

Целиком массивы обрабатываются в том случае, если используются встроенные математические функции графического калькулятора (например, сортировка функций SortA, описанная в следующем разделе).

Доступ к элементам массива

Язык программирования калькулятора позволяет применять стандартные алгоритмы рассмотрения одномерных массивов, т.е. получая доступ к каждому элементу-ячейке. Это выполняется путем указания индекса в квадратных скобках. Например, с помощью оператора

15 →List 1 [ 3 ] ↵

элементу массива 1 с индексом 3 (ячейке с номером 3) присваивается значение 15. Наряду с конкретным значением в качестве индекса может использоваться переменная, например, при поэлементарной обработке массива в рамках цикла For ... To ... Next. Так с помощью фрагмента

For 1→I To 7 ↵
0→List 1 [ I ] ↵
Next

всем элементам массива 1 присваивается значение 0. Причем нумерация элементов массива всегда начинается с 1.

Для заполнения массивов используются следующие конструкции:

For 1→I To 4 ↵
?→List 1 [ I ] ↵
Next

или

"Введите длину массива" : ? →N ↵
For 1→I To N ↵
"Введите элемент" : I
?→List 1 [ I ] ↵
Next

Для вывода массива не следует вновь вводить цикл. Достаточно указать номер массива: List 1.

Выводят массив на дисплей следующим образом:

Пример. Программа, которая сначала обеспечивает ввод четырех чисел в массив, затем выводит его на дисплей.

For 1→I To 4 ↵
"Введите элемент" : I
?→List 1 [ I ] ↵
Next ↵
List 1

На дисплее массив выводится в следующем виде:

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

For 1→I To 10 ↵
"Введите элемент" : I
?→List 2 [ I ] ↵
Next ↵
0 →S ↵
For 1→I To 10 ↵
S + List 2 [ I ] →S ↵
Next ↵
"Сумма 10 элементов =" : S
"END" : Stop

Пример 19.
Программа, которая обеспечивает ввод с клавиатуры и сохранение в одномерном массиве 15 чисел. Затем формирует запрос на ввод еще одного числа. После ввода данного числа программа проверяет элементы массива на наличие в них числа, равного последнему введенному, и, если такое число есть, выдает соответствующее сообщение на экран.

0 →R ↵
For 1→I To 15 ↵
"Введите элемент" : I
?→List 2 [ I ] ↵
Next ↵
"Введите число" : ? →S ↵
For 1→I To 15 ↵
If S= List 2 [ I ] ↵
Then R+1 →R ↵
"Обнаружено" : R
"-е вхождение числа" : S
"в позиции" : I
IfEnd ↵
Next ↵
If R≠0 ↵
Then " Итого число" : S
"встречается" : R
"раз" ↵
Else "Число" : S
"не встречается ни разу" ↵
IfEnd

Пример 20.
Ввести два массива из n - элементов целых чисел. Найти их сумму и разность.

ClrList↵
"Введите длину массивов 1 и 2 " : ? →N ↵
For 1→I To N ↵
"Введите элемент массива 1" : I
?→List 1 [ I ] ↵
Next ↵
For 1→J To N ↵
"Введите элемент массива 2" : J
?→List 2 [ J ] ↵
Next ↵
List 1
List 2
List 1 + List 2→List 3 ↵
List 3
List 1 — List 2→List 4 ↵
List 4
"END" : Stop

Пример 21.
Ввести массив из n - элементов целых чисел. Определить позицию и величину минимального элемента.

ClrList↵
"Введите длину массива " : ? →N ↵
For 1→I To N ↵
"Введите элемент массива " : I
?→List 2 [ I ] ↵
Next ↵
1→J: List 2 [ 1 ] →S ↵
For 2→I To N ↵
If List 2 [ I ]<S ↵
Then List 2 [ I ] →S: I→J ↵
IfEnd ↵
Next ↵
"минимальный элемент =": S
"номер элемента =": J
"END" : Stop

или

ClrList↵
"Введите длину массива " : ? →N ↵
For 1→I To N ↵
"Введите элемент массива " : I
?→List 2 [ I ] ↵
Next ↵
"минимальный элемент =":Min(List 2) 

Задачи

77. Ввести массив из n элементов целых чисел. Определить элементы, которые:
а) являются нечетными числами;
б) кратны 3 и 5;
в) являются удвоенными нечетными числами.

78. Ввести массив из n элементов целых чисел. Определить элементы, которые:
а) при делении на 5 дают остаток 2;
б) при делении на 7 дают остаток 3;
в) при делении на 3 дают остаток 1.

79. Ввести массив из n элементов целых чисел. Определить элементы, удовлетворяющие условию:
а) А[i] < i;
б) А[i] < i2;
в) А[i] > 10-i.

80. Ввести массив из n элементов целых чисел. Выяснить, верно ли, что:
а) сумма первой половины матрицы больше суммы второй половины матрицы;
б) максимальный элемент матрицы находится в первой половине;
в) матрица симметрична.

81. Ввести массив из n элементов целых чисел. Заменить все отрицательные числа их модулями.

82. Ввести массив из n элементов целых чисел. Определить повторяющиеся числа.

83. Ввести массив из n элементов целых чисел. Подсчитать число соседств положительных и отрицательных чисел.

84. Ввести массив из n элементов целых чисел. Определить позицию и величину минимального и максимального элемента.

85. Ввести массив из n элементов целых чисел. Заменить все большие 7 элементы массива числом 7. Подсчитать число таких элементов.

86. Ввести массив из n элементов целых чисел. Выяснить, какое число встречается в массиве раньше - положительное или отрицательное. Если все элементы массива равны нулю, то сообщить об этом.