Структурированные типы данных. Массивы в среде «КуМир»
Понятие массива
Массив — это структурированный тип данных, представляющий собой упорядоченную последовательность элементов одного типа, объединённых общим именем. Каждый элемент массива имеет индекс (номер), по которому к нему можно обратиться.
В «КуМире» массивы бывают:
- одномерные (линейные);
- двумерные (матрицы).
Описание массивов в «КуМире»
Массив нужно объявить перед использованием, указав:
- тип элементов;
- имя массива;
- размерность (диапазон индексов).
Синтаксис объявления:
- Одномерный массив:
цел таб A[1:10] // массив из 10 целых чисел с индексами от 1 до 10 вещ таб B[1:5] // массив из 5 вещественных чисел с индексами от 1 до 5 - Двумерный массив (матрица):
цел таб M[1:3, 1:4] // матрица 3×4 целых чисел
Важные нюансы:
- по умолчанию индексация начинается с 1;
- можно задать любой диапазон индексов, например
A[0:9]илиA[-5:5]; - все элементы массива должны быть одного типа.
Основные операции с массивами
- Заполнение массива:
- вручную (ввод с клавиатуры);
- по формуле;
- случайными значениями.
- Обработка элементов:
- перебор всех элементов;
- поиск по условию;
- изменение значений.
- Вывод массива:
- на экран;
- в файл.
Примеры работы с массивами
https://silvertests.ru/Compiler.aspx
Пример 1. Одномерный массив: заполнение и вывод
Задача: создать массив из 5 целых чисел, заполнить его с клавиатуры и вывести на экран.
алг РаботаСМассивом
нач
цел таб A[1:5]
цел i
вывод "Введите 5 чисел:", нс
нц для i от 1 до 5
ввод A[i]
кц
вывод "Массив:", нс
нц для i от 1 до 5
вывод A[i], " "
кц
кон
Выполнить самостоятельно: создать массив из 9 целых чисел, заполнить его с клавиатуры и вывести на экран.
Пример 2. Вычисление суммы элементов массива
Задача: найти сумму элементов массива из 10 целых чисел.
алг СуммаЭлементов
нач
цел таб A[1:10]
цел i, сумма
сумма := 0
вывод "Заполните массив:", нс
нц для i от 1 до 10
ввод A[i]
сумма := сумма + A[i]
кц
вывод "Сумма элементов: ", сумма, нс
кон
Выполнить самостоятельно: найти разницу элементов массива из 10 целых чисел.
Пример 3. Поиск максимального элемента
Задача: найти максимальный элемент в массиве из 7 чисел.
алг ПоискМаксимального
нач
цел таб A[1:7]
цел i, max_el
вывод "Заполните массив:", нс
нц для i от 1 до 7
ввод A[i]
кц
max_el := A[1] // предполагаем, что первый элемент — максимальный
нц для i от 2 до 7
если A[i] > max_el
то max_el := A[i]
все
кц
вывод "Максимальный элемент: ", max_el, нс
кон
Выполнить самостоятельно: найти минимальный элемент в массиве из 9 чисел.
Пример 4. Двумерный массив (матрица): заполнение и вывод
Задача: создать матрицу 3×3, заполнить её случайными числами от 1 до 10 и вывести на экран в виде таблицы.
алг РаботаСМатрицей
нач
цел таб M[1:3, 1:3]
цел i, j
нц для i от 1 до 3
нц для j от 1 до 3
M[i, j] := int(rnd(10)) + 1 // случайное число от 1 до 10
кц
кц
вывод "Матрица:", нс
нц для i от 1 до 3
нц для j от 1 до 3
вывод M[i, j], " "
кц
вывод нс // переход на новую строку
кц
кон
Выполнить самостоятельно: создать матрицу 4×9, заполнить её случайными числами от 1 до 100 и вывести на экран в виде таблицы.
Пример 5. Обработка матрицы: сумма элементов главной диагонали
Задача: вычислить сумму элементов главной диагонали квадратной матрицы 4×4.
алг СуммаДиагонали
нач
цел таб M[1:4, 1:4]
цел i, j, сумма
сумма := 0
вывод "Заполните матрицу 4x4:", нс
нц для i от 1 до 4
нц для j от 1 до 4
ввод M[i, j]
кц
кц
нц для i от 1 до 4
сумма := сумма + M[i, i] // элементы главной диагонали: M[1,1], M[2,2] и т. д.
кц
вывод "Сумма элементов главной диагонали: ", сумма, нс
кон
Выполнить самостоятельно: вычислить сумму элементов главной диагонали квадратной матрицы 5×7.
Пример 6. Поиск суммы положительных элементов
алг СуммаПоложительных
нач
цел таб A[1:8]
цел i, сумма
сумма := 0
вывод "Массив:", нс
нц для i от 1 до 8
A[i] := int(rnd(21)) - 10
вывод A[i], " "
кц
вывод нс
нц для i от 1 до 8
если A[i] > 0
то сумма := сумма + A[i]
все
кц
вывод "Сумма положительных элементов: ", сумма, нс
кон
Выполнить самостоятельно: найдите сумму отрицательный значений.
Самостоятельная работа:
1 Дан целочисленный массив. Возвести в квадрат отрицательные элементы.
2 Дан целочисленный массив. Найти максимум среди четных элементов массива.
Нечет:
3 Дан целочисленный массив. Возвести в квадрат элементы кратные 3.
4 Дан целочисленный массив. Найти минимум среди нечетных элементов массива
5 Сформируйте и выведите на экран массив из девяти элементов, которые составлены по следующему правилу:
1-й равен случайному трехзначному числу деленному на 2
2-й равен предыдущему индексу, уменьшенному в 10 раз
3-й равен сумме двух предыдущих элементов
6 На праздник приглашено человек, программа запрашивает имя, и если такое имя есть в списке — выводит «Добро пожаловать», иначе — «Вас нет в списке».