В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Kosty12541
Kosty12541
05.12.2020 06:13 •  Информатика

С++ Всі роботи проводяться з файлом у бінарному режимі.
Використовувати масив не можна.
Написати такі функції:
1. Згенерувати у файл випадкові цілі числа від -100 до 100. Кількість
чисел випадкова від 1 – 100.
2. Підрахувати кількість чисел у файлі;
3. Підрахувати суму чисел у файлі;
4. Підрахувати середнє арифметичне чисел у файлі;
5. Вивести числа більші за середнє арифметичне.
6. Відсортувати числа у файлі за зростанням.
Зробити меню для тестування функцій.

Показать ответ
Ответ:
слав4552
слав4552
29.05.2023 17:59

#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;

}

// Функція для

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота