Помогите решит задачу, оплата за решение имеется, помогите!
Дан файл f, компоненты которого являются целыми числами. Число компонент файла делится на 100. Записать в файл g наибольшее значение первых ста компонент файла f, затем— следующих ста компонент и т. д.
Дан файл f, компоненты которого являются целыми числами. Число компонент файла делится на 100. Записать в файл g наибольшее значение первых ста компонент файла f, затем— следующих ста компонент и т. д.
Ответ
0
(0 оценок)
0
Ответ:
Условие задачи:
Компоненты файла f – вещественные числа.
Записать в файл g наибольшее значение первых десяти компонент, затем следующих десяти и т.д.
Алгоритм:
1. Записываем вещественные числа в файл f.txt.
2. Открываем файл f.txt для чтения.
3. Задаем начальное значение DBL_MIN для поиска первого максимума.
4. Инициализируем счетчик k нулем (для подсчета всех чисел в файле f.txt).
5. Пробегаем циклом по файлу (c помощью потока >>).
6. Подсчитываем количество чисел с помощью счетчика k.
7. Ищем первый максимум и выводим его в файл g.txt при условии, что k % 10 == 0 (то есть, первые десять чиел найдены).
8. Снова задаем начальное значение DBL_MIN для поиска следующего максимума (если условие k % 10 == 0 снова выполнено, выводим максимум).
9. Повторяем проверку k % 10 == 0 пока числа в файле не закончатся (при этом, выводим максимум для каждого набора из десяти).
10. Закрываем оба файла.
Решение:
*/
#include <iostream> //Заголовочный файл с классами, функциями и переменными для организации ввода-вывода
#include <fstream> //Заголовочный файл для использования части библиотеки iostream, связанную с файловым вводом/выводом
#include <float.h> //Заголовочный файл для задания наибольшего минимального значения типа double (константа DBL_MIN)
using namespace std; //Пространство имен
int main() {
ifstream fin("f.txt"); //Создаем объект типа ifstream (открываем текстовый файл f.txt для чтения)
ofstream fout("g.txt"); //Создаем объект типа ofstream (открываем текстовый файл g.txt для записи)
double n; //Объявляем переменную вещественного типа (хранит числа в файле f.txt при считывании)
double max; //Объявляем еще одну переменную вещественного типа (хранит искомые максимумы)
int k; //Объявляем переменную целого типа (счетчик чисел из файла f.txt)
max = DBL_MIN; //Инициализируем начальное значение для максимума
k = 0; //Инициализируем счетчик нулем
while (fin >> n) { //Пробегаем по файлу (перебираем числа)
k++; //Увеличиваем счетчик на единицу для каждого встретившегося числа
if (n > max) {
max = n; //Находим максимум среди первых десяти чисел
}
if (k % 10 == 0) { //Условие проверки для каждых десяти чисел из файла
fout << max << "n"; //Выводим найденные максимумы в файл g.txt (для каждого набора из десяти чисел)
max = DBL_MIN; //Снова инициализируем значения max (для поиска следующего максимума)
}
}
fin.close(); //Закрываем файл f.txt (необходимо для правильной работы с файлом)
fout.close(); //Закрываем файл g.txt (необходимо для правильной работы с файлом)
system("pause"); //Функция задержки экрана консоли
return 0; //Функция main() возвратила ноль при успешном выполнении программы (то есть, в коде выше ошибок не было)
}
Объяснение: