Блог для маленьких школьников и их родителей
ШколаЛа

С++ Всі роботи проводяться з файлом у бінарному режимі. Використовувати масив не можна. Написати такі…

Автор:
Предмет: Информатика
Уровень: студенческий

С++

Всі роботи проводяться з файлом у бінарному режимі.

Використовувати масив не можна.

Написати такі функції:

1. Згенерувати у файл випадкові цілі числа від -100 до 100. Кількість

чисел випадкова від 1 – 100.

2. Підрахувати кількість чисел у файлі;

3. Підрахувати суму чисел у файлі;

4. Підрахувати середнє арифметичне чисел у файлі;

5. Вивести числа більші за середнє арифметичне.

6. Відсортувати числа у файлі за зростанням.

Зробити меню для тестування функцій.

Ответов к вопросу: 1
  • king722
    21.11.2024 | 18:47

    Ответ:
    #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;
    }

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

Ответить на вопрос:
:p :-p 8) 8-) :lol: =( :( :-( :8 ;) ;-) :(( :o:
Нажимая на кнопку я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.