У цій главі скомпоновані задачі таких типів:
Функція може повертати:
Зрозуміло, що функція завжди знайде найбільше чи найменше серед усіх чисел масиву. Але якщо ми виконуємо пошук серед чисел із деякою ознакою, то пошук може не увінчатися успіхом, якщо раптом взагалі немає чисел із такою ознакою. Тоді функція і повертає число -1.
Напишіть функцію з прототипом int IndMin(int* arr, int n), яка знаходить індекс першого мінімального елемента у масиві.
Напишіть програму, яка:
#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 IndMin(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); // Заповнення масиву
cout << "Згенерований масив: ";
PrintArr(mass, n); // Виведення масиву
int index = IndMin(mass, n); // Пошук індексу мінімального елемента
cout << "Мінімальний елемент: " << mass[index]
<< " з індексом " << index;
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) {
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
int IndMin(int* arr, int n) {
int minIndex = 0; // Початкове значення - перший елемент
for (int i = 1; i < n; i++) {
if (arr[i] < arr[minIndex]) { // Порівняння з поточним мінімумом
minIndex = i; // Оновлення індексу мінімального елемента
}
}
return minIndex;
}
Функція IndMin виконує наступні дії:
minIndex значенням 0 (індекс першого елемента)arr[i] < arr[minIndex])minIndex поточним індексомВведіть початок інтервалу a: 10
Введіть кінець інтервалу b: 20
Введіть кількість елементів масиву n: 5
Згенерований масив: 15 12 18 11 14
Мінімальний елемент: 11 з індексом 3
Введіть початок інтервалу a: 5
Введіть кінець інтервалу b: 10
Введіть кількість елементів масиву n: 6
Згенерований масив: 7 5 8 5 9 6
Мінімальний елемент: 5 з індексом 1
Ця програма демонструє пошук першого мінімального елемента в масиві. Особливістю реалізації є те, що у випадку наявності кількох однакових мінімальних значень повертається індекс першого з них. Програма коректно обробляє масиви будь-якого розміру (при n > 0).
Напишіть функцію з прототипом int IndMax(int* arr, int n), яка серед парних чисел масиву знаходить індекс останнього максимального елемента.
Напишіть програму, яка:
#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 IndMax(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); // Заповнення масиву
cout << "Згенерований масив: ";
PrintArr(mass, n); // Виведення масиву
int index = IndMax(mass, n); // Пошук останнього максимального парного елемента
if (index == -1) {
cout << "Парні елементи відсутні";
} else {
cout << "Останній максимальний парний елемент: " << mass[index]
<< " з індексом " << index;
}
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) {
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
int IndMax(int* arr, int n) {
int maxIndex = -1; // Індекс останнього максимального парного елемента
int maxEvenValue = -1; // Значення максимального парного елемента
for (int i = 0; i < n; i++) {
if (arr[i] % 2 == 0) { // Перевірка на парність
if (maxIndex == -1 || arr[i] >= maxEvenValue) {
maxEvenValue = arr[i];
maxIndex = i;
}
}
}
return maxIndex;
}
Функція IndMax виконує наступні дії:
maxIndex = -1 (якщо парних елементів не знайдено)maxEvenValue = -1 (початкове значення)arr[i] % 2 == 0):
maxEvenValue та maxIndexВведіть початок інтервалу a: 1
Введіть кінець інтервалу b: 10
Введіть кількість елементів масиву n: 6
Згенерований масив: 3 8 5 2 8 7
Останній максимальний парний елемент: 8 з індексом 4
Введіть початок інтервалу a: 1
Введіть кінець інтервалу b: 9
Введіть кількість елементів масиву n: 5
Згенерований масив: 3 7 5 9 1
Парні елементи відсутні
Введіть початок інтервалу a: 5
Введіть кінець інтервалу b: 15
Введіть кількість елементів масиву n: 8
Згенерований масив: 6 12 7 12 9 10 12 11
Останній максимальний парний елемент: 12 з індексом 6
Ця програма демонструє пошук останнього максимального парного елемента в масиві. Особливістю реалізації є те, що у випадку наявності кількох однакових максимальних значень повертається індекс останнього з них. Програма коректно обробляє випадок відсутності парних елементів у масиві.
Напишіть функцію з прототипом int IndMin (int* arr, int n), яка серед чисел Фібоначчі масиву знаходить індекс останнього мінімального елемента.
Напишіть програму, яка:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;
void RandArr(int* arr, int n, int a, int b);
void PrintArr(int* arr, int n);
bool IsFib(int n);
int IndMin(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); // Заповнення масиву
cout << "Згенерований масив: ";
PrintArr(mass, n); // Виведення масиву
int index = IndMin(mass, n); // Пошук останнього мінімального числа Фібоначчі
if (index == -1) {
cout << "Числа Фібоначчі відсутні";
} else {
cout << "Останнє мінімальне число Фібоначчі: " << mass[index]
<< " з індексом " << index;
}
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) {
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
bool IsFib(int n) {
if (n < 0) return false;
// Число є Фібоначчі, якщо (5*n^2 + 4) або (5*n^2 - 4) є ідеальним квадратом
int test1 = 5 * n * n + 4;
int test2 = 5 * n * n - 4;
int sqrt1 = sqrt(test1);
int sqrt2 = sqrt(test2);
return (sqrt1 * sqrt1 == test1) || (sqrt2 * sqrt2 == test2);
}
int IndMin(int* arr, int n) {
int minIndex = -1; // Індекс останнього мінімального числа Фібоначчі
int minFibValue = -1; // Значення мінімального числа Фібоначчі
for (int i = 0; i < n; i++) {
if (IsFib(arr[i])) { // Перевірка чи є число Фібоначчі
if (minIndex == -1 || arr[i] <= minFibValue) {
minFibValue = arr[i];
minIndex = i;
}
}
}
return minIndex;
}
Перевіряє, чи є число числом Фібоначчі:
Знаходить останнє мінімальне число Фібоначчі в масиві:
Введіть початок інтервалу a: 1
Введіть кінець інтервалу b: 20
Введіть кількість елементів масиву n: 8
Згенерований масив: 1 8 13 5 21 2 3 4
Останнє мінімальне число Фібоначчі: 2 з індексом 5
Введіть початок інтервалу a: 4
Введіть кінець інтервалу b: 10
Введіть кількість елементів масиву n: 5
Згенерований масив: 6 7 8 9 10
Числа Фібоначчі відсутні
Введіть початок інтервалу a: 1
Введіть кінець інтервалу b: 15
Введіть кількість елементів масиву n: 7
Згенерований масив: 1 1 2 3 5 1 8
Останнє мінімальне число Фібоначчі: 1 з індексом 5
Ця програма демонструє пошук останнього мінімального числа Фібоначчі в масиві. Особливістю реалізації є ефективна перевірка чисел на приналежність до послідовності Фібоначчі та коректна обробка випадку відсутності таких чисел у масиві.
Напишіть функцію з прототипом int IndMax(int* arr, int n), яка знаходить індекс першого максимального елемента у масиві.
Напишіть програму, яка:
Напишіть функцію з прототипом int IndMax(int* arr, int n), яка серед від'ємних чисел масиву знаходить індекс останнього максимального елемента.
Напишіть програму, яка:
Напишіть функцію з прототипом int IndMin(int* arr, int n), яка серед додатних чисел масиву знаходить індекс першого мінімального елемента.
Напишіть програму, яка:
Напишіть функцію з прототипом int IndMax(int* arr, int n), яка серед однозначних чисел масиву знаходить індекс першого максимального елемента.
Напишіть програму, яка:
Напишіть функцію з прототипом int IndMin(int* arr, int n), яка серед двозначних чисел масиву знаходить індекс останнього мінімального елемента.
Напишіть програму, яка:
Напишіть функцію з прототипом int IndMax(int* arr, int n), яка серед непарних чисел масиву знаходить індекс останнього максимального елемента.
Напишіть програму, яка:
Напишіть функцію з прототипом int IndMin(int* arr, int n), яка серед парних чисел масиву знаходить індекс першого мінімального елемента.
Напишіть програму, яка:
Напишіть функцію з прототипом int IndMax(int* arr, int n), яка серед чисел масиву, які кратні 3, знаходить індекс першого максимального елемента.
Напишіть програму, яка:
Напишіть функцію з прототипом int IndMin(int* arr, int n), яка серед чисел масиву, які кратні 5, знаходить індекс останнього мінімального елемента.
Напишіть програму, яка:
Напишіть функцію з прототипом int IndMax(int* arr, int n), яка серед чисел масиву, які закінчуються на цифру 3, знаходить індекс останнього максимального елемента.
Напишіть програму, яка:
Напишіть функцію з прототипом int IndMin (int* arr, int n), яка серед чисел масиву, які закінчуються на цифру 5, знаходить індекс першого мінімального елемента.
Напишіть програму, яка:
Напишіть функцію з прототипом int IndMax (int* arr, int n), яка серед чисел масиву які починаються на цифру 2 знаходить індекс першого максимального елемента. Для обчислення першої цифри числа використовувати функцію FirstDig.
Напишіть програму, яка:
Напишіть функцію з прототипом int IndMin (int* arr, int n), яка серед чисел масиву які починаються на цифру 1 знаходить індекс останнього мінімального елемента. Для обчислення першої цифри числа використовувати функцію FirstDig
Напишіть програму, яка:
Напишіть функцію з прототипом int Min(int* arr, int n), яка знаходить мінімальний елемент у масиві.
Напишіть функцію з прототипом int NumMin(int* arr, int n, int x), яка знаходить у масиві кількість елементів які дорівнюють х.
Напишіть програму, яка:
Напишіть функцію з прототипом int Max(int* arr, int n), яка знаходить максимальний елемент у масиві.
Напишіть функцію з прототипом int NumMax(int* arr, int n, int x), яка знаходить у масиві кількість елементів які дорівнюють х.
Напишіть програму, яка:
Напишіть функцію з прототипом int IndMin(int* arr, int n), яка знаходить індекс першого мінімального елемента у масиві.
Напишіть функцію з прототипом int IndMax(int* arr, int n), яка знаходить індекс першого максимального елемента у масиві.
Напишіть програму, яка:
Напишіть функцію з прототипом int Max(int* arr, int n), яка знаходить максимальний елемент у масиві.
Напишіть функцію з прототипом int Min(int* arr, int n), яка знаходить мінімальний елемент у масиві.
Напишіть програму, яка: