Задание 1.
В файле лежат три целых числа — это стороны треугольника. Считайте их в три переменные, найдите периметр, и площадь (формула Герона) треугольника. Ответы запишите в новый файл.
Задание 2.
В файле лежат три целых числа. Считайте их в три переменные. Запишите в новый файл, расположив по возрастанию.
Другие языки программирования и технологии
Программирование С++(работа с файлами) Подробное описание
#include <fstream>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
bool task1(const string& source, const string& save) {
ifstream ifs(source);
if (ifs.is_open()) {
double a, b, c;
ifs >> a >> b >> c;
ifs.close();
ofstream ofs(save);
if (ofs.is_open()) {
auto p = a + b + c;
auto s = p / 2;
double x = s * (s - a) * (s - b) * (s - c);
try {
if (x <= 0) throw invalid_argument("Triangle does not exist!");
} catch (invalid_argument& e) {
cerr << e.what() << '\n';
ofs.close();
return true;
}
ofs << p << ' ' << sqrt(x);
ofs.close();
} else {
cout << "Failed to create file " << save << '\n';
return true;
}
} else {
cout << "Could not open file " << source << '\n';
return true;
}
return false;
}
bool task2(const string& source, const string& save) {
ifstream ifs(source);
if (ifs.is_open()) {
int box[3];
ifs >> box[0] >> box[1] >> box[2];
ifs.close();
ofstream ofs(save);
if (ofs.is_open()) {
sort(begin(box), end(box));
ofs << box[0] << ' ' << box[1] << ' ' << box[2];
ofs.close();
} else {
cout << "Failed to create file " << save << '\n';
return true;
}
} else {
cout << "Could not open file " << source << '\n';
return true;
}
return false;
}
int main() {
string source = "numbers.txt"; // файл с тремя целыми числами
string save1 = "triangle.txt";
string save2 = "range.txt";
auto err1 = task1(source, save1); // первое задание
auto err2 = task2(source, save2); // второе задание
if (err1 || err2) cin.get(); // на случай возникших ошибок
}
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
bool task1(const string& source, const string& save) {
ifstream ifs(source);
if (ifs.is_open()) {
double a, b, c;
ifs >> a >> b >> c;
ifs.close();
ofstream ofs(save);
if (ofs.is_open()) {
auto p = a + b + c;
auto s = p / 2;
double x = s * (s - a) * (s - b) * (s - c);
try {
if (x <= 0) throw invalid_argument("Triangle does not exist!");
} catch (invalid_argument& e) {
cerr << e.what() << '\n';
ofs.close();
return true;
}
ofs << p << ' ' << sqrt(x);
ofs.close();
} else {
cout << "Failed to create file " << save << '\n';
return true;
}
} else {
cout << "Could not open file " << source << '\n';
return true;
}
return false;
}
bool task2(const string& source, const string& save) {
ifstream ifs(source);
if (ifs.is_open()) {
int box[3];
ifs >> box[0] >> box[1] >> box[2];
ifs.close();
ofstream ofs(save);
if (ofs.is_open()) {
sort(begin(box), end(box));
ofs << box[0] << ' ' << box[1] << ' ' << box[2];
ofs.close();
} else {
cout << "Failed to create file " << save << '\n';
return true;
}
} else {
cout << "Could not open file " << source << '\n';
return true;
}
return false;
}
int main() {
string source = "numbers.txt"; // файл с тремя целыми числами
string save1 = "triangle.txt";
string save2 = "range.txt";
auto err1 = task1(source, save1); // первое задание
auto err2 = task2(source, save2); // второе задание
if (err1 || err2) cin.get(); // на случай возникших ошибок
}
В каком формате лежат числа? Текст? Бинарный? Если бинарный, то какой - int, float, double?
Бинарные int в файлах .dat: repl.it/repls/ImpressiveDutifulRuby
Похожие вопросы
- В чём лучше развиваться: Дизайн или Программирование? (суть вопроса более подробно в описании)
- С++ ПРОГРАММИРОВАНИЕ. работа с файлами
- Программирование на C++.Работа с файлами.
- Delphi, работа с файлами
- С/C++ работа с файлами, удаление и вывод на экран заранее не известных файлов
- Работа с файлами. PascalABC.
- С++ работа с файлами, как достать отдельно слова из файла
- совершенно безграмотна в программировании. Нужно было написать программу, которая (+ описание)
- Как разделить "Диск C" на два ?? [Полное и Подробное Описание]
- Работа с файлами в АССЕМБЛЕРЕ. Надо считывать файл, путь указывает пользователь при запуске программу. Помогите!
# include < fstream >
# include < cmath >
double geron(double a, double b, double c )
{
double p = 0.5 * ( a + b + c ) ;
return sqrt( p * ( p - a ) * ( p - b ) * ( p - c ) ) ;
}
int main( )
{
std::ifstream in_file("given.dat" ) ;
double a, b, c ;
in_file >> a >> b >> c ;
std::ofstream out_file("geron.dat") ;
out_file << geron( a, b, c ) << std::endl ;
return 0 ;
}