Структурированные типы данных. Массивы в среде «КуМир»

Понятие массива

Массив — это структурированный тип данных, представляющий собой упорядоченную последовательность элементов одного типа, объединённых общим именем. Каждый элемент массива имеет индекс (номер), по которому к нему можно обратиться.

В «КуМире» массивы бывают:

  • одномерные (линейные);
  • двумерные (матрицы).

Описание массивов в «КуМире»

Массив нужно объявить перед использованием, указав:

  • тип элементов;
  • имя массива;
  • размерность (диапазон индексов).

Синтаксис объявления:

  • Одномерный массив:
    цел таб 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];
  • все элементы массива должны быть одного типа.

Основные операции с массивами

  1. Заполнение массива:
    • вручную (ввод с клавиатуры);
    • по формуле;
    • случайными значениями.
  2. Обработка элементов:
    • перебор всех элементов;
    • поиск по условию;
    • изменение значений.
  3. Вывод массива:
    • на экран;
    • в файл.

Примеры работы с массивами

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 На праздник приглашено человек, программа запрашивает имя, и если такое имя есть в списке — выводит «Добро пожаловать», иначе — «Вас нет в списке».