Урок 6: Масиви – Організуй Свої Дані Як Профі


Урок 6

Урок 6: Масиви – Організуй Свої Дані Як Профі


Привіт знову, відважний досліднику коду! 👋

Сьогодні ми поринемо у світ масивів — бо давай чесно, одна змінна часом просто не достатня. Уяви, що ти на вечірці і тобі треба запам’ятати імена всіх гостей. Замість того, щоб створювати окрему змінну для кожної людини (що було б справжнім хаосом), ти використовуєш масив — зручний список імен, акуратно збережений в одному місці.

Масив — це як твій власний цифровий блокнот, де можна тримати купу пов’язаних між собою даних. Чи це список твоїх улюблених піц або результати в останній грі, масиви завжди прийдуть на допомогу!

Візьми свою улюблену каву (і краще не одну), і давай наведемо порядок.


Що Таке Масив?

Масив — це, по суті, колекція змінних одного типу, які зберігаються в безперервному блоці пам’яті. Подумай про це як про ряд шафок у школі, де кожна шафка може вмістити щось одне (наприклад, рюкзак або обід). Головне, що всі шафки в одному коридорі (масиві) і можуть зберігати лише один тип об’єктів.

Ось базовий синтаксис для оголошення масиву:

тип_даних назва_масиву[розмір_масиву];

Припустимо, ми хочемо зберігати результати 5 гравців у грі. Ми можемо створити масив так:

#include <stdio.h>

int main() {
    int результати[5]; // Масив для зберігання 5 цілих чисел

    // Присвоюємо значення
    результати[0] = 85;
    результати[1] = 92;
    результати[2] = 78;
    результати[3] = 99;
    результати[4] = 88;

    // Друкуємо результати
    for(int i = 0; i < 5; i++) {
        printf("Результат гравця %d: %d\n", i + 1, результати[i]);
    }

    return 0;
}

Пояснення: Ми створили масив результати, який може зберігати 5 цілих чисел. Потім присвоїли кожному елементу значення і вивели їх за допомогою циклу for. Легкотня, правда?


Доступ до Елементів Масиву

Кожен елемент у масиві має індекс — як номер шафки в нашому прикладі. Перший елемент масиву має індекс 0, другий — індекс 1 і так далі. Для доступу або зміни елемента використовуєш його індекс.

Наприклад, якщо ми хочемо оновити результат Гравця 3 на 80, ми робимо це так:

результати[2] = 80; // Пам'ятай, масиви починаються з індексу 0!

І якщо хочеш вивести конкретний елемент, наприклад, результат Гравця 4, зроби так:

printf("Результат гравця 4: %d\n", результати[3]);

Ініціалізація Масивів

Не обов’язково присвоювати значення масиву одне за одним. Ти можеш ініціалізувати все одразу:

int результати[5] = {85, 92, 78, 99, 88};

У цьому випадку ми оголошуємо масив і одразу ж заповнюємо його значеннями. Можеш навіть дозволити компілятору визначити розмір самостійно:

int результати[] = {85, 92, 78, 99, 88}; // Компілятор автоматично встановлює розмір на 5

Масиви та Цикли: Кращі Друзі

Масиви і цикли — це як вареники і сметана: ідеальне поєднання. Коли у тебе є колекція даних, цикли — це чудовий спосіб обробляти кожен елемент. Ось приклад, як обчислити середній бал наших гравців:

#include <stdio.h>

int main() {
    int результати[] = {85, 92, 78, 99, 88};
    int сума = 0;
    int кількість_гравців = 5;

    for(int i = 0; i < кількість_гравців; i++) {
        сума += результати[i];
    }

    float середній = сума / (float)кількість_гравців; // Обчислюємо середнє
    printf("Середній результат: %.2f\n", середній);

    return 0;
}

Пояснення: Ми пройшли по масиву за допомогою циклу, підсумували результати і обчислили середнє. Зверни увагу, як ми привели кількість_гравців до типу float, щоб отримати точне середнє з десятковими частинами.


Масиви та Функції

Можна також передавати масиви у функції! Ось простий приклад, де ми передаємо наш масив результатів у функцію, щоб знайти найвищий результат:

#include <stdio.h>

int знайти_найвищий(int результати[], int кількість_гравців) {
    int найвищий = результати[0];
    for(int i = 1; i < кількість_гравців; i++) {
        if(результати[i] > найвищий) {
            найвищий = результати[i];
        }
    }
    return найвищий;
}

int main() {
    int результати[] = {85, 92, 78, 99, 88};
    int кількість_гравців = 5;
    int найвищий_результат = знайти_найвищий(результати, кількість_гравців);

    printf("Найвищий результат: %d\n", найвищий_результат);
    return 0;
}

Пояснення: Ми визначили функцію знайти_найвищий, яка приймає масив результатів і кількість гравців як аргументи. Вона проходить по масиву і повертає найвищий результат.


Багатовимірні Масиви: Масиви на Стероїдах!

До цього ми працювали з одномірними масивами (простим списком). Але що, якщо треба зберігати сітку або таблицю даних? Ось де стають у пригоді багатовимірні масиви. Ось як можна оголосити і використовувати двовимірний масив (думай про це як про таблицю):

#include <stdio.h>

int main() {
    int матриця[3][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };

    // Друкуємо матрицю
    for(int i = 0; i < 3; i++) {
        for(int j = 0; j < 3; j++) {
            printf("%d ", матриця[i][j]);
        }
        printf("\n");
    }

    return 0;
}

Пояснення: Ми створили матрицю розміром 3x3 (двовимірний масив). Цикли for проходять через кожен елемент масиву і виводять його у вигляді таблиці.


Домашнє Завдання: Трекер Температур!

Створи програму, яка:

  1. Оголосить масив для зберігання температур за тиждень (7 днів).
  2. Запитає у користувача температуру для кожного дня.
  3. Знайде та виведе найвищу, найнижчу і середню температуру.

Заключні Думки

Тепер ти додав масиви до свого програмістського арсеналу, освоївши мистецтво роботи з кількома даними одночасно. Масиви — це потужний інструмент, і ми тільки-но почали досліджувати їх можливості. На Уроці 7 ми поринемо у світ рядків — так, тих магічних масивів символів! Побачимось там! 🎉✨


See also