Урок 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
проходять через кожен елемент масиву і виводять його у вигляді таблиці.
Домашнє Завдання: Трекер Температур!
Створи програму, яка:
- Оголосить масив для зберігання температур за тиждень (7 днів).
- Запитає у користувача температуру для кожного дня.
- Знайде та виведе найвищу, найнижчу і середню температуру.
Заключні Думки
Тепер ти додав масиви до свого програмістського арсеналу, освоївши мистецтво роботи з кількома даними одночасно. Масиви — це потужний інструмент, і ми тільки-но почали досліджувати їх можливості. На Уроці 7 ми поринемо у світ рядків — так, тих магічних масивів символів! Побачимось там! 🎉✨
See also
- Урок 3 – Масиви та Об’єкти: Твої Скарбниці Даних
- Урок 8: Вказівники та Пам'ять – Як Керувати Адресами (І Не Заблукати!)
- Урок 7: Рядки – Перетворюємо Символи в Слова (І Надаємо Їм Змісту)
- Урок 5: Функції – Як Навести Порядок у Хаосі (І Уникнути Повторення Коду!)
- Урок 4: Структури Управління – Як Приймати Рішення (І Казати Своїй Програмі Що Робити!)