Ви аналітик університетської групи. Мета: збирати оцінки студентів, аналізувати їх і сортувати. Ми будемо працювати поступово, блок за блоком, щоб освоїти:
Введення та виведення масивів
Обчислення суми, добутку, max/min, середнього
Підрахунок додатніх та від’ємних
Сортування (обмін та бульбашка)
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Скільки студентів у групі? ";
cin >> n;
int grades[100];
cout << "Введіть оцінки:" << endl;
for(int i = 0; i < n; i++) {
cin >> ____________________; // заповніть тут
}
cout << "Всі оцінки: ";
for(int i = 0; i < n; i++) {
cout << ____________________ << " "; // заповніть тут
}
cout << endl;
return 0;
}
💡 Підказка: grades[i]
🧩 Міні-завдання: введіть від'ємні числа і нулі.
🧠 Квіз:
- Який індекс першого елемента?
- Що станеться, якщо вийти за межі
n?
int sum = 0;
int dob = 1;
for(int i = 0; i < n; i++) {
____________________; // сума
____________________; // добуток
}
cout << "Сума = " << sum << endl;
cout << "Добуток = " << dob << endl;
💡 Підказка:
sum += grades[i];
dob *= grades[i];
🧩 Експеримент:
Змініть один елемент на 0. Що буде з добутком?
🧠 Квіз:
- Чому добуток ініціалізують
1, а не0?
int maxVal = grades[0];
int minVal = grades[0];
for(int i = 1; i < n; i++) {
if(grades[i] > ____________________) ____________________ = grades[i];
if(grades[i] < ____________________) ____________________ = grades[i];
}
cout << "Максимальна оцінка = " << maxVal << endl;
cout << "Мінімальна оцінка = " << minVal << endl;
💡 Підказка: порівнюємо з maxVal/minVal
🧩 Експеримент: перший елемент мінімальний — що зміниться?
🧠 Квіз: як знайти другий за величиною елемент?
double average = (double) ____________________ / n;
cout << "Середнє = " << average << endl;
💡 Підказка: використовуйте sum 🧩 Експеримент: int замість double — що зміниться? 🧠 Квіз: чому важливо перетворювати sum у double перед діленням?
int plus = 0, minus = 0;
for(int i = 0; i < n; i++) {
if( ____________________ ) plus++;
if( ____________________ ) minus++;
}
cout << "Додатні = " << plus << endl;
cout << "Від’ємні = " << minus << endl;
💡 Підказка: >0 для додатніх, <0 для від’ємних
🧩 Експеримент: що якщо ввести 0?
🧠 Квіз: як порахувати лише непарні числа?
// Обмін
for(int i = 0; i < n-1; i++) {
for(int j = i+1; j < n; j++) {
if( ____________________ ) {
int temp = grades[i];
____________________;
____________________;
}
}
}
cout << "Відсортовано (обмін): ";
for(int i = 0; i < n; i++)
cout << grades[i] << " ";
cout << endl;
// Бульбашка
cout << "Введіть оцінки знову для бульбашки:" << endl;
for(int i = 0; i < n; i++)
cin >> grades[i];
for(int i = 0; i < n-1; i++) {
for(int j = 0; j < n-i-1; j++) {
if( ____________________ ) {
int temp = grades[j];
____________________;
____________________;
}
}
}
cout << "Відсортовано (бульбашка): ";
for(int i = 0; i < n; i++)
cout << grades[i] << " ";
cout << endl;
💡 Підказка:
grades[i] > grades[j] для обміну
grades[j] > grades[j+1] для бульбашки
🧩 Міні-завдання: змініть сортування на спадання
🧠 Квіз: які переваги та недоліки бульбашкового сортування порівняно з обміном?
#include <iostream>
using namespace std;
int main() {
int rows, cols;
cout << "Введіть кількість студентів і предметів: ";
cin >> rows >> cols;
int grades[100][100];
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
cin >> ____________________;
}
}
cout << "Оцінки студентів:" << endl;
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
cout << ____________________ << " ";
}
cout << endl;
}
return 0;
}
💡 Підказка: grades[i][j]
🧩 Міні-завдання: введіть від'ємні та нульові оцінки
🧠 Квіз: який індекс 1-го предмету 2-го студента?
for(int i = 0; i < rows; i++) {
int sum = 0;
for(int j = 0; j < cols; j++) {
____________________; // sum += grades[i][j]
}
cout << "Сума оцінок студента " << i+1 << " = " << sum << endl;
}
🧩 Міні-завдання: обчисліть суму лише додатніх оцінок
🧠 Квіз: як знайти суму по стовпцях?
int maxVal = grades[0][0], minVal = grades[0][0];
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
if(grades[i][j] > ____________________) maxVal = grades[i][j];
if(grades[i][j] < ____________________) minVal = grades[i][j];
}
}
cout << "Max = " << maxVal << endl;
cout << "Min = " << minVal << endl;
🧩 Міні-завдання: визначте студента з найвищою оцінкою
🧠 Квіз: що станеться, якщо матриця порожня?
for(int i = 0; i < rows; i++) {
int sumRow = 0;
for(int j = 0; j < cols; j++) sumRow += grades[i][j];
double avg = (double) ____________________ / cols;
cout << "Середнє студента " << i+1 << " = " << avg << endl;
}
🧩 Міні-завдання: середнє тільки для додатніх
🧠 Квіз: чому потрібно кастувати у double?
##🔹 Блок 5: Додатні та від’ємні
int plus = 0, minus = 0;
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
if( ____________________ ) plus++;
if( ____________________ ) minus++;
}
}
cout << "Додатні = " << plus << endl;
cout << "Від’ємні = " << minus << endl;
🧩 Міні-завдання: порахуйте нулі окремо
🧠 Квіз: як порахувати непарні числа?
int row;
cout << "Який рядок відсортувати? ";
cin >> row;
row--;
for(int i = 0; i < cols-1; i++) {
for(int j = i+1; j < cols; j++) {
if( ____________________ ) {
int temp = grades[row][i];
____________________;
____________________;
}
}
}
cout << "Відсортований рядок " << row+1 << ": ";
for(int j = 0; j < cols; j++)
cout << grades[row][j] << " ";
cout << endl;
💡 Підказка: grades[row][i] > grades[row][j]
🧩 Міні-завдання: змініть на спадання
🧠 Квіз: як відсортувати усю матрицю?
-
Як оголосити двовимірний масив розміром 5x3 у C++?
👉 Відповідь: -
Як ввести елементи в 2D масив за допомогою циклів?
👉 Відповідь: -
Як вивести елементи 2D масиву на екран?
👉 Відповідь:
-
Як змінюється доступ до елементів у 2D порівняно з 1D масивом?
👉 Відповідь: -
Як обчислити суму по рядках та по стовпцях?
👉 Відповідь: -
Як обчислити середнє по рядках та по стовпцях?
👉 Відповідь: -
Які помилки можуть виникнути при неправильній індексації?
👉 Відповідь: -
Що зміниться при від’ємних числах або нулях?
👉 Відповідь:
-
Як відсортувати усю матрицю?
👉 Відповідь: -
Як оптимізувати сортування рядків?
👉 Відповідь:
-
Чому при оголошенні масиву важливо знати його розмір?
👉 Відповідь: -
Що станеться, якщо спробувати ввести більше елементів, ніж розмір масиву?
👉 Відповідь: -
Як правильно ініціалізувати масив нулями?
👉 Відповідь: -
Як можна обчислити добуток всіх елементів рядка або стовпця?
👉 Відповідь: