C++ 1. Створіть двовимірний масив. Заповніть його випадковими числами і покажіть на екран. Користувач…
C++
1. Створіть двовимірний масив. Заповніть його
випадковими числами і покажіть на екран. Користувач
вибирає кількість зрушень і положення (вліво, вправо,
вгору, вниз). Виконати зрушення масиву і показати на
екран отриманий результат. Зрушення циклічне.
Тиждень 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 <fstream>
#include <cstdlib>
#include <ctime>
#include <vector>
#include <algorithm>
using namespace std;
// Функція для генерації випадкових чисел та запису їх у файл
void generateRandomNumbers(const string& filename)
{
ofstream file(filename, ios::binary);
if (!file)
{
cout << «Помилка при відкритті файлу.» << endl;
return;
}
srand(static_cast<unsigned int>(time(nullptr)));
int count = rand() % 100 + 1; // Випадкова кількість чисел від 1 до 100
for (int i = 0; i < count; ++i)
{
int num = rand() % 201 — 100; // Випадкове число від -100 до 100
file.write(reinterpret_cast<const char*>(&num), sizeof(int));
}
file.close();
}
// Функція для підрахунку кількості чисел у файлі
int countNumbers(const string& filename)
{
ifstream file(filename, ios::binary);
if (!file)
{
cout << «Помилка при відкритті файлу.» << endl;
return 0;
}
file.seekg(0, ios::end);
int fileSize = file.tellg(); // Розмір файлу в байтах
int numCount = fileSize / sizeof(int); // Кількість чисел
file.close();
return numCount;
}
// Функція для підрахунку суми чисел у файлі
int calculateSum(const string& filename)
{
ifstream file(filename, ios::binary);
if (!file)
{
cout << «Помилка при відкритті файлу.» << endl;
return 0;
}
int sum = 0;
int num;
while (file.read(reinterpret_cast<char*>(&num), sizeof(int)))
{
sum += num;
}
file.close();
return sum;
}
// Функція для підрахунку середнього арифметичного чисел у файлі
double calculateAverage(const string& filename)
{
int count = countNumbers(filename);
int sum = calculateSum(filename);
if (count > 0)
{
return static_cast<double>(sum) / count;
}
return 0.0;
}
// Функція для виведення чисел більших за середнє арифметичне
void printNumbersAboveAverage(const string& filename)
{
double average = calculateAverage(filename);
ifstream file(filename, ios::binary);
if (!file)
{
cout << «Помилка при відкритті файлу.» << endl;
return;
}
int num;
while (file.read(reinterpret_cast<char*>(&num), sizeof(int)))
{
if (num > average)
{
cout << num << » «;
}
}
file.close();
cout << endl;
}
// Функція для