Вы находитесь на странице: 1из 20

Александр Загоруйко © 2020

Onedimensional Arrays
Контрольные вопросы

 Что такое цикл?


 Когда обычно применяют цикл for?
 Какие есть особенности у цикла for?
 Как работает break в циклах?
 Чем отличается использование
continue в цикле while и for?
 Основное правило вложенных циклов
Одна переменная – одно значение

Для хранения данных в памяти можно


использовать переменные. Но каждая
переменная способна одновременно
хранить лишь один элемент
информации. Чтобы сохранить второй
элемент, необходимо создать ещё одну
переменную... Но что же делать, если
нужно будет хранить целое множество
однотипных элементов?
Использовать массивы!

Для наглядности представьте себе собранные в один ряд пустые коробки. В каждую
коробочку можно положить что-нибудь однотипное, например, котов. Теперь, даже не
зная их по именам, вы можете выполнить команду Накормить кота из 3 коробки.
Сравните с командой Накормить Рыжика. Чувствуете разницу? Вам не обязательно
знать котов по именам, но вы всё равно сможете справиться с заданием. Завтра в
этих коробках могут оказаться другие коты, но это не составит для вас проблемы,
главное знать номер коробки, который называется индексом.

https://git.io/vxT26
Понятие массива
 Массив – это именованное множество однотипных
элементов (переменных либо констант),
последовательно расположенных в памяти (т.е. рядом,
друг за другом)
 Значения элементов массива доступны по одному общему имени
 Каждый элемент имеет индекс (смещение от начала массива). По
индексу можно обращаться к конкретному элементу массива
 Индексы массива начинаются с нуля
Синтаксис создания массива
Явная инициализация массива
Списковая инициализация
Индексация элементов массива

int ar[10];
Элементы располагаются по возрастанию адресов. Формула, по
которой операционная система определяет нужный адрес:
базовый адрес массива + размер базового типа * индекс
Если указать неправильный индекс, программа попытается получить
полный доступ к содержимому ячейки памяти, которая ей по сути не
принадлежит. В результате этого произойдёт ошибка на этапе
выполнения.
Обращение к элементам

ar[3] = 5; // четвертому по счёту элементу


массива присвоено значение 5
cout << ar[3]; // отображение на экране консоли
четвертого по счёту элемента

ar[11] = 7; // в C++ выход за пределы статических и


динамических массивов не проверяется компилятором! при
попытке считать / записать данные за границами массива
будет получена ошибка при выполнении программы, либо
значение запишется и попортит переменную, которая будет
находиться в той области памяти
Выход за пределы массива

Выход за пределы массива в С++ приведёт к


неопределенному поведению программы.
https://habr.com/ru/post/216189/ Неопределенное
поведение означает, что результат компиляции и
исполнения программы непредсказуем. Ожидание
конкретного результата, в том числе аварийного
завершения программы, при наличии в ней
неопределенного поведения является
неправильным. Для исправления есть только один
вариант - устранение неопределенного поведения в
программе.
Количество элементов
Инициализация циклом
Основная операция

Основная операция для работы с


массивом - это переборный цикл (какой
именно - for, while - без разницы).
foreach
Функции для работы с массивом
Практика: gismeteo

Упражнение: написать программу, которая


рассчитает среднегодовую температуру (среднюю,
максимальную и минимальную), по
предоставленным данным. Между какими двумя
месяцами года происходит максимальный перепад
средних температур?
Практика

 Показать только чётные числовые


значения из массива
 Создать два массива. Заполнить
данными. Вывести на экран «equals» -
если у массивов совпадает
количество, значения и порядок
следования элементов. Вывести «not
equals» в обратном случае
Алгоритмы поиска

https://git.io/vbgSY
Как задавать вопросы?

https://proglib.io/p/how-to-ask/

Вам также может понравиться