C++
Завдання 1. Напишіть програму, яка створює двовимірний
масив і заповнює його за таким принципом: користувач
вводить число (наприклад, 3) перший елемент масиву
приймає значення цього числа, наступний елемент масиву приймає значення цього числа помноженого на 2
(тобто 6 для нашого прикладу), третій елемент масиву —
попередній елемент помножений на 2 (тобто 6*2=12 для
нашого прикладу). Створений масив вивести на екран.
Завдання 2. Напишіть програму, яка створює двовимірний
масив і заповнює його за таким принципом: користувач
вводить число (наприклад, 3) перший елемент масиву
приймає значення цього числа, наступний елемент масиву
приймає значення цього числа + 1 (тобто 4 для нашого
прикладу), третій елемент масиву — попередній елемент
+ 1 (тобто 5 для нашого прикладу). Створений масив
вивести на екран.
Завдання 3. Створіть двовимірний масив. Заповніть його
випадковими числами і покажіть на екран. Користувач
вибирає кількість зрушень і положення (вліво, вправо,
вгору, вниз). Виконати зрушення масиву і показати на
екран отриманий результат. Зрушення циклічне.
Тиждень 10
1
Наприклад, якщо ми маємо такий масив.
1 2 0 4 5 3
4 5 3 9 0 1
і користувач вибрав зрушення на 2 розряди вправо, то
ми отримаємо:
5 3 1 2 0 4
0 1 4 5 3 9.
Ответ:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
const int ROWS = 2;
const int COLS = 6;
void fillArray(int arr[][COLS], int rows, int cols) {
srand(time(NULL));
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
arr[i][j] = rand() % 10;
cout << arr[i][j] << » «;
}
cout << endl;
}
}
void shiftArray(int arr[][COLS], int rows, int cols, int shift, string direction) {
int tempArr[ROWS][COLS];
if (direction == «left») {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
tempArr[i][(j — shift + cols) % cols] = arr[i][j];
}
}
} else if (direction == «right») {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
tempArr[i][(j + shift) % cols] = arr[i][j];
}
}
} else if (direction == «up») {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
tempArr[(i — shift + rows) % rows][j] = arr[i][j];
}
}
} else if (direction == «down») {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
tempArr[(i + shift) % rows][j] = arr[i][j];
}
}
}
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
arr[i][j] = tempArr[i][j];
}
}
cout << endl << «Array after » << shift << » shift(s) » << direction << «:» << endl;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
cout << arr[i][j] << » «;
}
cout << endl;
}
}
int main() {
int arr[ROWS][COLS];
fillArray(arr, ROWS, COLS);
int shift;
string direction;
cout << «Enter shift value: «;
cin >> shift;
cout << «Enter shift direction (left, right, up, down): «;
cin >> direction;
shiftArray(arr, ROWS, COLS, shift, direction);
return 0;
}