Другие языки программирования и технологии
Сформировать файл из действительных чисел. Найти: наибольшее из значений модулей компонентов с четными номерами. С++
Сформировать файл из действительных чисел. Найти: наибольшее из значений модулей компонентов с четными номерами. С++
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>
using namespace std;
int main(int argc, char *argv[])
{
srand(static_cast <unsigned> (time(NULL)));
fstream ioFile("float.dat", ios_base::binary | ios_base::out);
int n = rand() % 191 + 10;
cout.precision(3);
for (int i = 0; i < n; i++)
{
double x = static_cast <double> (rand()) / (RAND_MAX + 1) * 200 - 100;
ioFile.write(reinterpret_cast <char*> (&x), sizeof(double));
}
ioFile.close();
setlocale(LC_ALL, "Russian");
cout << "Создан файл float.dat. Его содержимое: " << endl;
ioFile.open("float.dat", ios_base::binary | ios_base::in);
n = 0;
int iMax;
double Max = -1;
while (!ioFile.eof())
{
double x;
ioFile.read(reinterpret_cast <char*> (&x), sizeof(double));
if (!ioFile.eof())
{
cout << fixed << setw(8) << x;
if (!(++n & 1) && fabs(x) > Max)
{
Max = fabs(x);
iMax = n;
}
}
}
cout << endl << "Всего чисел: " << n << endl
<< "Наибольший модуль среди компонентов с чётными номерами = " << fixed << Max
<< endl << "у компонента с номером " << iMax;
ioFile.close();
cin.get();
return EXIT_SUCCESS;
}
<оfftор>
Впервые работаю с файлами в C++ и возможно чего-то не знаю, но вызывает недоумение, что в стандартной реализации языка, претендующего на звание системного, отсутствуют средства для работы с бинарными файлами (наиболее распространённый тип файлов в подавляющем большинстве операционных систем) без танцев с бубном. O_o
Также представилась возможность взглянуть на действительные числа, генерируемые не менее стандартной функцией rand(). Для типа double неиспользуемыми оказались 34 младших разряда в двоичном представлении. В то время как генератор, реализованный Borland, не использует 17 младших разрядов. Т. е. генератор C выдаёт действительные числа, расположенные на числовой прямой примерно в 100000 раз реже, чем генерируемые алгоритмом Borland.
Я пребываю в некотором шоке.
</оfftор>
#include <fstream>
#include <iomanip>
#include <cmath>
using namespace std;
int main(int argc, char *argv[])
{
srand(static_cast <unsigned> (time(NULL)));
fstream ioFile("float.dat", ios_base::binary | ios_base::out);
int n = rand() % 191 + 10;
cout.precision(3);
for (int i = 0; i < n; i++)
{
double x = static_cast <double> (rand()) / (RAND_MAX + 1) * 200 - 100;
ioFile.write(reinterpret_cast <char*> (&x), sizeof(double));
}
ioFile.close();
setlocale(LC_ALL, "Russian");
cout << "Создан файл float.dat. Его содержимое: " << endl;
ioFile.open("float.dat", ios_base::binary | ios_base::in);
n = 0;
int iMax;
double Max = -1;
while (!ioFile.eof())
{
double x;
ioFile.read(reinterpret_cast <char*> (&x), sizeof(double));
if (!ioFile.eof())
{
cout << fixed << setw(8) << x;
if (!(++n & 1) && fabs(x) > Max)
{
Max = fabs(x);
iMax = n;
}
}
}
cout << endl << "Всего чисел: " << n << endl
<< "Наибольший модуль среди компонентов с чётными номерами = " << fixed << Max
<< endl << "у компонента с номером " << iMax;
ioFile.close();
cin.get();
return EXIT_SUCCESS;
}

<оfftор>
Впервые работаю с файлами в C++ и возможно чего-то не знаю, но вызывает недоумение, что в стандартной реализации языка, претендующего на звание системного, отсутствуют средства для работы с бинарными файлами (наиболее распространённый тип файлов в подавляющем большинстве операционных систем) без танцев с бубном. O_o
Также представилась возможность взглянуть на действительные числа, генерируемые не менее стандартной функцией rand(). Для типа double неиспользуемыми оказались 34 младших разряда в двоичном представлении. В то время как генератор, реализованный Borland, не использует 17 младших разрядов. Т. е. генератор C выдаёт действительные числа, расположенные на числовой прямой примерно в 100000 раз реже, чем генерируемые алгоритмом Borland.
Я пребываю в некотором шоке.
</оfftор>
Похожие вопросы
- Дан файл целых чисел.Найти сумму компонент с четным значением и записать в новый файл те из них,значения которых превыша
- помогите решить задачи на паскале 1Во входном файле дана последовательность чисел. Требуется найти второе по величине чи
- Найдите наибольшее четырехзначное число, которое при делении на любое однозначное число, кроме 1,2и3, дает в остатке 3
- помогите решить задачу Во входном файле дана последовательность чисел , число (количество чисел в после
- Pascal . Дан массив вещественных чисел. Найти сумму элементов, номера которых являются простыми числами
- C++ Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны.
- Ассемблер. В заданном массиве целых чисел найти самую большую серию подряд стоящих чётных элементов.
- Помогите!!! с помощью вектора написать кодДаны действительные числа a1...,a30 Получить; а) max (a1+a30,a2+a29,...a15+a16
- Паскаль!!)) входной файл содержит два числа x и y. Выходной последнюю цифру числа x в y степени! помогите пожалуйста!
- 1. Написать программу, которая заполняет массив целых чисел размеров 20 элементов значениями роста учащихся (случайные ч