У цьому розділі ми будемо вирішувати задачі з використанням функцій які, за деякою ознакою, знаходять, суму, добуток або кількість елементів або всьго масива, або його частини.
Всі ці функції повертають ціле число (суму, кількість, добуток або -1), вхідні параметри це адреса масиву та кількість елементів у ньому.
Написати функцію SumPositive, яка знаходить суму додатних елементів масиву цілих чисел
Написати функцію NumNegative, яка знаходить кількість від’ємних елементів масиву цілих чисел.
Використовуючи ці функції, а також функції RandArr та PrintArr написати таку програму:
#include <iostream> // Для роботи з вводом/виводом (cin, cout)
#include <cstdlib> // Для функцій rand() та srand()
#include <ctime> // Для функції time()
void RandArr(int*, int, int, int); // Заповнення масиву
void PrintArr(int*, int); // Виведення масиву
int SumPositive(int*, int); // Сума додатних елементів
int NumNegative(int*, int); // Кількість від'ємних елементів
int main() {
srand(time(0)); // Ініціалізація генератора
int a, b, n;
cout << "Введіть початок інтервалу a: ";
cin >> a;
cout << "Введіть кінець інтервалу b: ";
cin >> b;
cout << "Введіть кількість елементів n: ";
cin >> n;
int mass[n]; // Оголошення масиву
RandArr(mass, n, a, b); // Заповнення
PrintArr(mass, n); // Виведення
int s = SumPositive(mass, n); // Сума додатних
int k = NumNegative(mass, n); // Кількість від'ємних
cout << "S=" << s << " K=" << k;
return 0;
}
void RandArr(int* arr, int n, int a, int b) {
for (int i = 0; i < n; i++) {
arr[i] = a + rand() % (b - a + 1);
}
}
void PrintArr(int* arr, int n) {
cout << "Масив: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
int SumPositive(int* arr, int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
if (arr[i] > 0) {
sum += arr[i];
}
}
return sum;
}
int NumNegative(int* arr, int n) {
int count = 0;
for (int i = 0; i < n; i++) {
if (arr[i] < 0) {
count++;
}
}
return count;
}
Введіть початок інтервалу a: -5
Введіть кінець інтервалу b: 5
Введіть кількість елементів n: 8
Масив: -2 3 0 4 -5 1 -3 2
S=10 K=3
Програма демонструє роботу з масивами, використання функцій для їх обробки та базові операції з елементами масиву. Код може бути модифікований для вирішення більш складних задач.
Написати функцію ProdEven, яка знаходить добуток парних елементів масиву цілих чисел.
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void RandArr(int* arr, int n, int a, int b);
void PrintArr(int* arr, int n);
int ProdEven(int* arr, int n);
int main() {
srand(time(0)); // Ініціалізація генератора випадкових чисел
int a, b, n;
cout << "Введіть початок інтервалу a: ";
cin >> a;
cout << "Введіть кінець інтервалу b: ";
cin >> b;
cout << "Введіть кількість елементів масиву n: ";
cin >> n;
int mass[n]; // Створення масиву
RandArr(mass, n, a, b); // Заповнення масиву
PrintArr(mass, n); // Виведення масиву
int product = ProdEven(mass, n); // Обчислення добутку парних елементів
if (product == -1) {
cout << "У масиві немає парних елементів";
} else {
cout << "Добуток парних елементів: " << product;
}
return 0;
}
void RandArr(int* arr, int n, int a, int b) {
for (int i = 0; i < n; i++) {
arr[i] = a + rand() % (b - a + 1);
}
}
void PrintArr(int* arr, int n) {
cout << "Масив: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
int ProdEven(int* arr, int n) {
int product = 1;
bool hasEven = false;
for (int i = 0; i < n; i++) {
if (arr[i] % 2 == 0) { // Перевірка на парність
product *= arr[i];
hasEven = true;
}
}
return hasEven ? product : -1; // Повертає -1, якщо парних елементів немає
}
Функція ProdEven виконує наступні дії:
product значенням 1 (нейтральний елемент для множення)hasEven для відстеження наявності парних елементівarr[i] % 2 == 0), множить його на producthasEven в trueВведіть початок інтервалу a: 1
Введіть кінець інтервалу b: 10
Введіть кількість елементів масиву n: 5
Масив: 3 8 5 2 7
Добуток парних елементів: 16
Введіть початок інтервалу a: 1
Введіть кінець інтервалу b: 9
Введіть кількість елементів масиву n: 4
Масив: 3 7 5 9
У масиві немає парних елементів
Дана програма демонструє роботу з масивами, включаючи генерацію випадкових чисел, виведення масиву та пошук парних елементів з обчисленням їх добутку. Спеціальна обробка випадку відсутності парних елементів робить програму більш надійною.
Написати функцію SumOddRange, яка знаходить суму непарних елементів масиву серед елементів з індексами з k1 по k2.
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void RandArr(int* arr, int n, int a, int b);
void PrintArr(int* arr, int n);
int SumOddRange(int* arr, int n, int k1, int k2);
int main() {
srand(time(0)); // Ініціалізація генератора випадкових чисел
int a, b, n;
cout << "Введіть початок інтервалу a: ";
cin >> a;
cout << "Введіть кінець інтервалу b: ";
cin >> b;
cout << "Введіть кількість елементів масиву n: ";
cin >> n;
int mass[n]; // Створення масиву
RandArr(mass, n, a, b); // Заповнення масиву
PrintArr(mass, n); // Виведення масиву
int m;
cout << "Введіть кількість елементів для аналізу m: ";
cin >> m;
if (m <= n) {
int sum = SumOddRange(mass, n, 0, m-1);
cout << "Сума непарних елементів серед перших " << m << " елементів: " << sum;
} else {
cout << "Помилка: m перевищує розмір масиву";
}
return 0;
}
void RandArr(int* arr, int n, int a, int b) {
for (int i = 0; i < n; i++) {
arr[i] = a + rand() % (b - a + 1);
}
}
void PrintArr(int* arr, int n) {
cout << "Масив: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
int SumOddRange(int* arr, int n, int k1, int k2) {
int sum = 0;
// Перевірка коректності меж діапазону
if (k1 < 0) k1 = 0;
if (k2 >= n) k2 = n - 1;
for (int i = k1; i <= k2; i++) {
if (arr[i] % 2 != 0) { // Перевірка на непарність
sum += arr[i];
}
}
return sum;
}
Функція SumOddRange виконує наступні дії:
sum значенням 0k1 менше 0, встановлює його в 0k2 більше або дорівнює n, встановлює його в n-1k1 до k2:
arr[i] % 2 != 0), додає його до сумиВведіть початок інтервалу a: 1
Введіть кінець інтервалу b: 10
Введіть кількість елементів масиву n: 6
Масив: 3 8 5 2 7 4
Введіть кількість елементів для аналізу m: 4
Сума непарних елементів серед перших 4 елементів: 8
Введіть початок інтервалу a: 1
Введіть кінець інтервалу b: 5
Введіть кількість елементів масиву n: 3
Масив: 2 3 1
Введіть кількість елементів для аналізу m: 5
Помилка: m перевищує розмір масиву
Введіть початок інтервалу a: 2
Введіть кінець інтервалу b: 8
Введіть кількість елементів масиву n: 5
Масив: 2 4 6 8 2
Введіть кількість елементів для аналізу m: 3
Сума непарних елементів серед перших 3 елементів: 0
Ця програма демонструє роботу з масивами, включаючи генерацію випадкових чисел, виведення масиву та пошук непарних елементів у заданому діапазоні. Особлива увага приділена обробці помилок, пов'язаних із виходом за межі масиву.
Написати функцію Sum з прототипом int Sum(int* arr, int n), яка знаходить суму всіх елементів масиву цілих чисел
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Num з прототипом int Num(int* arr, int n), яка знаходить кількість всіх парних елементів масиву цілих чисел
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Sum з прототипом int Sum(int* arr, int n), яка знаходить суму від’ємних елементів масиву цілих чисел
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Num з прототипом int Num(int* arr, int n), яка знаходить кількість всіх елементів масиву, що закінчуються цифрою 5.
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Prod з прототипом int Prod(int* arr, int n), яка знаходить добуток всіх елементів масиву
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Prod з прототипом int Prod(int* arr, int n), яка знаходить добуток від’ємних елементів масиву
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Sum з прототипом int Sum(int* arr, int n), яка знаходить суму елементів масиву, що закінчуються цифрою 3
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Sum з прототипом int Sum(int* arr, int n), яка знаходить суму парних елементів масиву
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Prod з прототипом int Prod(int* arr, int n, int k1, int k2), яка знаходить добуток елементів масиву з індексами з k1 по k2.
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію NumPositiv з прототипом int NumPositiv(int* arr, int n), яка знаходить кількість додатних елементів масиву.
Написати функцію NumNegative з прототипом int NumNegative(int* arr, int n), яка знаходить кількість від’ємних елементів масиву.
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію SumPositiv з прототипом int SumPositiv(int* arr, int n), яка знаходить суму додатних елементів масиву.
Написати функцію SumNegative з прототипом int SumNegative(int* arr, int n), яка знаходить суму від’ємних елементів масиву.
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Num з прототипом int Num(int* arr, int n), яка знаходить кількість двозначних елементів масиву.
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Num з прототипом int Num(int* arr, int n, int k1, int k2), яка знаходить кількість додатних чисел серед елементів з індексами з k1 по k2.
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Sum з прототипом int Sum(int* arr, int n, int k1, int k2), яка знаходить суму всіх елементів з індексами з k1 по k2.
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Sum з прототипом int Sum(int* arr, int n, int k1, int k2), яка знаходить суму від’ємних чисел серед елементів з індексами з k1 по k2.
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Num з прототипом int Num(int* arr, int n, int k1, int k2), яка знаходить кількість чисел Фібоначчи серед елементів з індексами з k1 по k2. Для визначення, чи є елемент числом Фібоначчі використовувати функцію IsFib.
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму:
Написати функцію Num з прототипом int Num(int* arr, int n, int k1, int k2), яка знаходить кількість простих чисел серед елементів з індексами з k1 по k2. Для визначення, чи є елемент простим числом використовувати функцію IsPrime.
Використовуючи цю функцію, а також функції RandArr та PrintArr написати таку програму: