Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsiyi_C_II_sem.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.52 Mб
Скачать

Лекція 1

Масиви

Масив - це структура даних, яка містить безліч значень, які відносяться до одного і того ж типу. Наприклад, масив може містити 60 значень типу int, які представляють інформацію про обсяги продажів за 5 років, 12 значень типу short, що представляють кількість днів у кожному місяці, або 365 значень типу float, які вказують щоденні витрати на харчування протягом року. Кожне значення зберігається в окремому елементі масиву, і комп'ютер зберігає всі елементи масиву в пам'яті послідовно - один за одним.

Для створення м­­асиву використовується оператор оголошення. Оголошення масиву має описувати три аспекти:

  • тип значень кожного елемента;

  • ім'я масиву;

  • кількість елементів в масиві.

У C++ це досягається модифікацією оголошення простої змінної, до якого додаються квадратні дужки, що містять всередині кількість елементів. Наприклад, наступне оголошення створює масив з ім’ям months, що має 12 елементів, кожен з яких може зберігати одне значення типу short:

short months[12]; //створює масив з 12 елементів типу short

По суті, кожен елемент - це змінна, яку можна трактувати як просту змінну.

Так виглядає загальна форма оголошення масиву:

ім’яТипу им’яМасиву[розмірМасиву];

Вираз розмірМасиву, що представляє кількість елементів, має бути цілочисельною константою, такою як 10, значенням const або константним виразом на зразок 8*sizeof(int), B якому всі значення відомі на момент компіляції. Зокрема, розмірМасиву не може бути змінною, значення якої встановлюється під час виконання програми. Однак пізніше ви дізнаєтеся, як з використанням операції new обійти це обмеження.

Масив як складний тип

Масив називають складним типом, тому що він будується з якогось іншого типу. (У мові С використовується термін похідний тип, але оскільки поняття похідний в C++ застосовується для опису відносин між класами, довелося ввести новий термін.) Ви не можете просто оголосити, що щось є масивом; це завжди повинен бути масив елементів конкретного типу. Узагальненого типу масива не існує. Замість цього є безліч специфічних типів масивів, таких як масив char або масив long. Наприклад, розглянемо таке оголошення: float loans[20];

Типом змінної loans буде не просто "масив", а "масив float". Це підкреслює, що масив loans побудований з типу float.

Велика частина користі від масивів визначається тим фактом, що до його елементів можна звертатися індивідуально. Спосіб, який дозволяє це робити, полягає у використанні індексу для нумерації елементів. Нумерація масивів в C++ починається з нуля. (Це обов'язково - ви повинні починати з нуля. Це особливо важливо запам'ятати програмістам, які раніше працювали на мовах Pascal і BASIC.) Для вказівки елемента масиву в C++ використовується позначення з квадратними дужками та індексом між ними. Наприклад, months[0] - це перший елемент масиву months, a months[11] - його останній елемент. Зверніть увагу, що індекс останнього елемента на одиницю менше, ніж розмір масиву мал. 1). Таким чином, оголошення масиву дозволяє створювати безліч змінних в одному оголошенні, і ви потім можете використовувати індекс для ідентифікації та доступу до індивідуальних елементів.

Важливість вказівки правильних значень індексу

Компілятор не перевіряє правильність вказуваного індексу. Наприклад, компілятор не буде скаржитися, якщо ви надасте значення неіснуючого елементу months[101]. Однак таке присвоєння може викликати проблеми під час виконання програми - можливо, пошкодження даних або коду, а може бути і аварійне завершення програми. Тобто забезпечення правильності значень індексу покладається на програміста.

М ал. 1. Створення масиву

Невелика програма аналізу, представлена в лістингу 1, демонструє декілька властивостей масивів, включаючи їх оголошення, присвоювання значення його елементам, а також ініціалізацію.

Лістинг 1. arrayone.cpp

Далі показано виведення програми з лістингу 1:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]