Вопрос № 171324: Здравствуйте! У меня возниклапроблемма. Есть задание: Запросить начальный аргумент в градусах и приращение изменения аргумента, (1рад=1гр*P/180) для вычисления функций Sin(x), записав в первый типизированный файл значения аргумента; во вто...
Вопрос № 171324:
Здравствуйте! У меня возниклапроблемма. Есть задание: Запросить начальный аргумент в градусах и приращение изменения аргумента, (1рад=1гр*P/180) для вычисления функций Sin(x), записав в первый типизированный файл значения аргумента; во второй - значения функций Sin(x). Организовать вывод данных из файлов. Я разобрался с типизированными файлами ввод/вывод, проблемма с вычислением значения функции Sin(x). Подскажите пожалуйста как решить эту задачу. Заранее благодарю.
Отвечает Micren, Бакалавр :
Здравствуйте, Грибанов Фёдор. Понятие типизированного файла к C++ не совсем применимо. В паскале, например, есть file of type. В C++ есть текстовые и бинарные потоки. Программа. C++. MS Visual Studio 2008. Данные, вводимые в градусах, приводятся к радианам и дальше вся обработка и вывод идет в радианах. Поскольку не сказано о конечном угле считается в пределах окружности.
// Тип данных с которым будем работать typedef double datatype;
// Шаблонная футкция для ввода с подсказко
й template<class T> T input(const char* const message); // Считает синусы и выводит все по файлам void calculate_and_save(datatype x,datatype delta,fstream& arg_out,fstream& val_out); // Читает из файлов и выводит на экран void read_and_print(fstream& arg_in,fstream& val_in);
int main() { try { setlocale(LC_ALL,"russian_russia");
// Вводим данные datatype x=input<datatype>("Введите начальное значение(x):")*M_PI/180.0; datatype
delta=input<datatype>("Введите приращение аргумента(delta):")*M_PI/180.0; // Режим открытия файлов const ios::openmode mode=ios::binary|ios::out|ios::in|ios::trunc; // Открываем fstream argument_out("argument.dat",mode); fstream value_out("value.dat",mode); // Вычисляем и сохраняем calculate_and_save(x,delta,argument_out,value_out); // Читаем и печатаем read_and_print(argument_out,valu
e_out); } catch(exception& e) { cout<<"Возникло исключение:"<<e.what()<<endl; } catch(...) { cout<<"Необработанное исключение"<<endl; }
Ответ отправил: Micren, Бакалавр
Ответ отправлен: 14.08.2009, 02:14
Оценка ответа: 5 Комментарий к оценке: Благодарю за ответ, Вы мне очень помогли. Во всём разобрался, теперь стало всё понятно, ещё раз спасибо за то что ответили на мой вопрос.
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 253214
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Veder, 1-й класс :
Здравствуйте, Грибанов Фёдор! Для вычисления синуса какого-либо аргумента используйте стандартную функцию double sin(double a)
Для ее использования вам надо подключить библиотеку #include <math.h>
Ответ отправил: Veder, 1-й класс
Ответ отправлен: 16.08.2009, 18:09
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 253266
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.