У цій главі скомпоновані задачі таких типів:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2), яка заповнює масив arr2 на основі елементів масиву arr1 за наступним правилом: якщо індекс елемента масиву arr1 парний, то відповідний елемент масиву arr2 дорівнює квадрату елемента з arr1, інакше — подвоєному значенню елемента з arr1. Кількість елементів у обох масивах дорівнює 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);
void GetArr(int* arr1, int n, int* arr2);
int main() {
srand(time(0)); // Ініціалізація генератора випадкових чисел
int a, b, n;
cout << "Введіть початок інтервалу a: ";
cin >> a;
cout << "Введіть кінець інтервалу b: ";
cin >> b;
cout << "Введіть кількість елементів масиву n: ";
cin >> n;
int mass1[n], mass2[n]; // Оголошення двох масивів
RandArr(mass1, n, a, b); // Заповнення першого масиву
cout << "Початковий масив: ";
PrintArr(mass1, n); // Виведення першого масиву
GetArr(mass1, n, mass2); // Заповнення другого масиву
cout << "Результуючий масив: ";
PrintArr(mass2, n); // Виведення другого масиву
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;
}
void GetArr(int* arr1, int n, int* arr2) {
for (int i = 0; i < n; i++) {
if (i % 2 == 0) { // Якщо індекс парний
arr2[i] = arr1[i] * arr1[i]; // Квадрат елемента
} else { // Якщо індекс непарний
arr2[i] = arr1[i] * 2; // Подвоєне значення
}
}
}
Функція GetArr виконує наступні дії:
arr1i % 2 == 0), записує у arr2 квадрат елемента з arr1arr2 подвоєне значення елемента з arr1arr2Введіть початок інтервалу a: 1
Введіть кінець інтервалу b: 5
Введіть кількість елементів масиву n: 6
Початковий масив: 3 2 4 1 5 2
Результуючий масив: 9 4 16 2 25 4
Пояснення: - Елементи з парними індексами (0, 2, 4): 3²=9, 4²=16, 5²=25 - Елементи з непарними індексами (1, 3, 5): 2×2=4, 1×2=2, 2×2=4
Введіть початок інтервалу a: 10
Введіть кінець інтервалу b: 20
Введіть кількість елементів масиву n: 5
Початковий масив: 12 15 18 11 14
Результуючий масив: 144 30 324 22 196
Ця програма демонструє роботу з двома масивами, де елементи другого масиву формуються на основі елементів першого масиву за певним правилом. Особливістю є використання індексу елемента для визначення способу його трансформації.
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2), яка заповнює масив arr2 на основі елементів масиву arr1 за наступним правилом: спочатку з масиву arr1 в масив arr2 переписуються всі парні елементи, а потім всі непарні. Кількість елементів у обох масивах дорівнює 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);
void GetArr(int* arr1, int n, int* arr2);
int main() {
srand(time(0)); // Ініціалізація генератора випадкових чисел
int a, b, n;
cout << "Введіть початок інтервалу a: ";
cin >> a;
cout << "Введіть кінець інтервалу b: ";
cin >> b;
cout << "Введіть кількість елементів масиву n: ";
cin >> n;
int mass1[n], mass2[n]; // Оголошення двох масивів
RandArr(mass1, n, a, b); // Заповнення першого масиву
cout << "Початковий масив: ";
PrintArr(mass1, n); // Виведення першого масиву
GetArr(mass1, n, mass2); // Заповнення другого масиву
cout << "Відсортований масив (спочатку парні, потім непарні): ";
PrintArr(mass2, n); // Виведення другого масиву
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;
}
void GetArr(int* arr1, int n, int* arr2) {
int currentIndex = 0; // Індекс для запису наступного елемента
// Спочатку записуємо всі парні елементи
for (int i = 0; i < n; i++) {
if (arr1[i] % 2 == 0) {
arr2[currentIndex++] = arr1[i];
}
}
// Потім записуємо всі непарні елементи
for (int i = 0; i < n; i++) {
if (arr1[i] % 2 != 0) {
arr2[currentIndex++] = arr1[i];
}
}
}
Функція GetArr виконує наступні дії:
currentIndex = 0 для запису наступного елемента у arr2arr1:
arr1[i] % 2 == 0)arr2 на поточну позицію currentIndexcurrentIndex на 1arr1:
arr1[i] % 2 != 0)arr2 на поточну позицію currentIndexcurrentIndex на 1Введіть початок інтервалу a: 1
Введіть кінець інтервалу b: 10
Введіть кількість елементів масиву n: 8
Початковий масив: 3 8 5 2 7 4 9 6
Відсортований масив (спочатку парні, потім непарні): 8 2 4 6 3 5 7 9
Введіть початок інтервалу a: 15
Введіть кінець інтервалу b: 25
Введіть кількість елементів масиву n: 5
Початковий масив: 16 19 22 17 24
Відсортований масив (спочатку парні, потім непарні): 16 22 24 19 17
Ця програма демонструє роботу з двома масивами, де другий масив формується з першого шляхом розділення елементів на парні та непарні. Особливістю є те, що парні елементи йдуть першими, а непарні - після них, зберігаючи при цьому початкову кількість елементів.
Напишіть функцію з прототипом void SplitArr(int* arr1, int n, int* arr2, int* arr3) яка розділяє масив arr1 на масиви arr2 та arr3 за наступним правилом: першу половину масиву arr1 переписує в масив arr2, другу половину масиву arr1 переписує в масив arr3. У масиві arr1 кількість елементів 2*n, у масивах arr2 та arr3 кількість елементів 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);
void SplitArr(int* arr1, int n, int* arr2, int* arr3);
int main() {
srand(time(0)); // Ініціалізація генератора випадкових чисел
int a, b, n;
cout << "Введіть початок інтервалу a: ";
cin >> a;
cout << "Введіть кінець інтервалу b: ";
cin >> b;
cout << "Введіть значення n (розмір половинок масиву): ";
cin >> n;
int mass1[2*n], mass2[n], mass3[n]; // Оголошення масивів
RandArr(mass1, 2*n, a, b); // Заповнення основного масиву
cout << "Початковий масив: ";
PrintArr(mass1, 2*n); // Виведення основного масиву
SplitArr(mass1, 2*n, mass2, mass3); // Розділення масиву
cout << "Перша половина масиву: ";
PrintArr(mass2, n); // Виведення першої половини
cout << "Друга половина масиву: ";
PrintArr(mass3, n); // Виведення другої половини
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;
}
void SplitArr(int* arr1, int n, int* arr2, int* arr3) {
int half = n / 2; // Розмір кожної половини
// Копіюємо першу половину в arr2
for (int i = 0; i < half; i++) {
arr2[i] = arr1[i];
}
// Копіюємо другу половину в arr3
for (int i = 0; i < half; i++) {
arr3[i] = arr1[half + i];
}
}
Функція SplitArr виконує наступні дії:
arr1 (розмір кожної половини)arr1 (від 0 до half-1) в масив arr2arr1 (від half до n-1) в масив arr3Введіть початок інтервалу a: 1
Введіть кінець інтервалу b: 10
Введіть значення n (розмір половинок масиву): 4
Початковий масив: 3 8 5 2 7 4 9 6
Перша половина масиву: 3 8 5 2
Друга половина масиву: 7 4 9 6
Введіть початок інтервалу a: 10
Введіть кінець інтервалу b: 20
Введіть значення n (розмір половинок масиву): 3
Початковий масив: 12 15 18 11 14 17
Перша половина масиву: 12 15 18
Друга половина масиву: 11 14 17
Ця програма демонструє роботу з масивами, де один великий масив розділяється на два менших однакового розміру. Особливістю є те, що розмір вихідного масиву точно вдвічі більший за розміри масивів-призначень, що гарантує коректне розділення без втрати даних.
Напишіть функцію з прототипом void JoinArr(int* arr1, int n, int* arr2, int m, int* arr3), яка об'єднує елементи масивів arr1 та arr2 у масив arr3.
Правило заповнення масиву arr3: спочатку переписати всі елементи з масиву arr1 в масив arr3, потім дописати в масив arr3 всі елементи з масиву arr2. У масиві arr1 кількість елементів n, у масиві arr2 кількість елементів m, у масиві arr3 кількість елементів n+m.
Напишіть програму, яка:
#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);
void JoinArr(int* arr1, int n, int* arr2, int m, int* arr3);
int main() {
srand(time(0)); // Ініціалізація генератора випадкових чисел
int a, b, n, m;
cout << "Введіть початок інтервалу a: ";
cin >> a;
cout << "Введіть кінець інтервалу b: ";
cin >> b;
cout << "Введіть розмір першого масиву n: ";
cin >> n;
cout << "Введіть розмір другого масиву m: ";
cin >> m;
int mass1[n], mass2[m], mass3[n+m]; // Оголошення масивів
RandArr(mass1, n, a, b); // Заповнення першого масиву
cout << "Перший масив: ";
PrintArr(mass1, n); // Виведення першого масиву
RandArr(mass2, m, a, b); // Заповнення другого масиву
cout << "Другий масив: ";
PrintArr(mass2, m); // Виведення другого масиву
JoinArr(mass1, n, mass2, m, mass3); // Об'єднання масивів
cout << "Об'єднаний масив: ";
PrintArr(mass3, n+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) {
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
void JoinArr(int* arr1, int n, int* arr2, int m, int* arr3) {
// Копіюємо елементи з першого масиву
for (int i = 0; i < n; i++) {
arr3[i] = arr1[i];
}
// Копіюємо елементи з другого масиву
for (int i = 0; i < m; i++) {
arr3[n + i] = arr2[i];
}
}
Функція JoinArr виконує наступні дії:
arr1 (розмір n) у початок масиву arr3arr2 (розмір m) у масив arr3Введіть початок інтервалу a: 1
Введіть кінець інтервалу b: 10
Введіть розмір першого масиву n: 3
Введіть розмір другого масиву m: 4
Перший масив: 5 2 8
Другий масив: 3 7 1 9
Об'єднаний масив: 5 2 8 3 7 1 9
Введіть початок інтервалу a: 10
Введіть кінець інтервалу b: 20
Введіть розмір першого масиву n: 2
Введіть розмір другого масиву m: 2
Перший масив: 15 12
Другий масив: 18 14
Об'єднаний масив: 15 12 18 14
Ця програма демонструє операцію конкатенації (об'єднання) двох масивів в один. Особливістю реалізації є те, що спочатку записуються всі елементи першого масиву, а потім - всі елементи другого масиву, що забезпечує збереження початкового порядку елементів у об'єднаному масиві.
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2), яка заповнює масив arr2 на основі елементів масиву arr1 за наступним правилом:
Кількість елементів у обох масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2), яка заповнює масив arr2 на основі елементів масиву arr1 за наступним правилом:
Кількість елементів у обох масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2), яка заповнює масив arr2 на основі елементів масиву arr1 за наступним правилом:
Кількість елементів у обох масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2), яка заповнює масив arr2 на основі елементів масиву arr1 за наступним правилом:
Кількість елементів у обох масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2), яка з масиву arr1 переписує в масив arr2 всі елементи таким чином:
Кількість елементів у обох масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2), яка з масиву arr1 переписує в масив arr2 всі елементи таким чином:
Кількість елементів у обох масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2), яка з масиву arr1 переписує в масив arr2 всі елементи таким чином:
Кількість елементів у обох масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2), яка з масиву arr1 переписує в масив arr2 всі елементи таким чином:
Кількість елементів у обох масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2, int* arr3), яка заповнює масив arr3 на основі елементів масивів arr1 та arr2 таким чином: arr3[i]=arr1[i]+ arr2[i].
Кількість елементів у всіх масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2, int* arr3), яка заповнює масив arr3 на основі елементів масивів arr1 та arr2 таким чином: arr3[i]=arr1[i]*arr2[i].
Кількість елементів у всіх масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2, int* arr3), яка заповнює масив arr3 на основі елементів масивів arr1 та arr2 таким чином:
Кількість елементів у всіх масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2, int* arr3), яка заповнює масив arr3 на основі елементів масивів arr1 та arr2 таким чином:
Кількість елементів у всіх масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2, float* arr3), яка заповнює масив arr3 на основі елементів масивів arr1 та arr2 таким чином: arr3[i] є середнім арифметичним відповідних елементів arr1[i] та arr2[i]
Напишіть функцію з прототипом void PrintArrFloat(float arr,int n) яка виводить на екран масив дійсних чисел.
Кількість елементів у всіх масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2, int* arr3), яка заповнює масив arr3 на основі елементів масивів arr1 та arr2 за формулами:
arr3[0]=arr1[0]+arr2[n-1] arr3[1]=arr1[1]+arr2[n-2] … arr3[n-1]=arr1[n-1]+arr2[0] |
Кількість елементів у всіх масивах дорівнює n.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2, int m, int* arr3), яка заповнює масив arr3 на основі елементів масивів arr1 та arr2 таким чином:
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2, int* arr3), яка розділяє масив arr1 на масиви arr2 та arr3 таким чином: елементи з парними індексами переписуються у масив arr2, з непарними в масив arr3.
Напишіть програму, яка:
Напишіть функцію з прототипом void GetArr(int* arr1, int n, int* arr2, int &m, int* arr3, int &k), яка розділяє масив arr1 на масиви arr2 та arr3 таким чином: парні елементи переписуються у масив arr2, непарні в масив arr3.
Напишіть програму, яка: