Другие языки программирования и технологии

Написать код С++ простая лаба по информатике

Вычислить значение arcsin от 0 до .5 с шагом 0.02.
Результат записать в файл в градусах и минутах и распечатать в
виде таблицы.






Аргумент


Функция


Аргумент


Функция
// MS Visual C++ 2013
#define _USE_MATH_DEFINES
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
string asin_grad_min(double);
string fs(double, short = 2);
int main() {
setlocale(0, "");
double x, end = 0.5, dx = 0.02;
string xstr, tmp, result = "", filename = "gradmin.txt";
cout << setw(6) << "x" << setw(18) << "arcsin(x)\n\n";
for (x = 0; x <= end + dx / 2; x += dx) {
tmp = asin_grad_min(x);
xstr = fs(x);
cout << setw(8) << fixed << setprecision(2) << xstr << setw(12) << fixed << setprecision(2) << tmp << endl;
result += xstr + ' ' + tmp + '\n';
}
ofstream stream(filename.c_str());
try { if (!stream) throw runtime_error(" Не удалось записать в файл " + filename); }
catch (runtime_error const& e) {
cout << "Исключение: " << e.what() << endl;
stream.close();
}
stream << result;
stream.close();
cin.sync();
cin.get();
return 0;
}
string fs(double number, short sign) {
char buffer[26];
string num = to_string(number);
size_t pos = num.find('.') + ++sign;
size_t end = num.copy(buffer, pos, 0);
buffer[end] = 0;
string res = buffer;
return res;
}
string asin_grad_min(double sin_grad) {
if (abs(sin_grad) > 1) return "Error!";
double rad = asin(sin_grad);
double t = rad * 180 / M_PI;
int grad = int(t);
int min = int(abs(t - grad) * 60);
string mn;
if (!min) mn = "00";
else if (min < 10) mn = '0' + to_string(min);
else mn = to_string(min);
return to_string(grad) + char(-80) + mn + char(39);
}
Артур Игитян
Артур Игитян
82 933
Лучший ответ
For $i = 0 To 0.5 Step 0.02
ConsoleWrite('arcsin(' & $i & ') = ' & ASin($i) & @CRLF)
Next

arcsin(0) = 0
arcsin(0.02) = 0.0200013335733905
arcsin(0.04) = 0.0400106743539889
arcsin(0.06) = 0.0600360584452784
arcsin(0.08) = 0.080085580033659
arcsin(0.1) = 0.10016742116156
arcsin(0.12) = 0.120289882394788
arcsin(0.14) = 0.140461414709856
arcsin(0.16) = 0.160690652951911
arcsin(0.18) = 0.180986451246548
arcsin(0.2) = 0.201357920790331
arcsin(0.22) = 0.221814470496794
arcsin(0.24) = 0.242365851038963
arcsin(0.26) = 0.263022202908469
arcsin(0.28) = 0.283794109208328
arcsin(0.3) = 0.304692654015397
arcsin(0.32) = 0.32572948729463
arcsin(0.34) = 0.346916897527162
arcsin(0.36) = 0.36826789343664
arcsin(0.38) = 0.389796296474261
arcsin(0.4) = 0.411516846067488
arcsin(0.42) = 0.433445320069886
arcsin(0.44) = 0.455598673395824
arcsin(0.46) = 0.477995198518953
arcsin(0.48) = 0.500654712404588