Срочно нужна помощь. Только сегодня установил прогу для программирования на c++ и пока не очень понимаю, я вроде решил немного, надо только составить программу.
Задание
1) (sin(a+b)-cosa*sinb)/(cos(a-b)-sina*sinb)
2) Дробь A/B является правильной.
Здравствуйте, ilya-b-80, Вы писали:
IB8>Срочно нужна помощь. Только сегодня установил прогу для программирования на c++ и пока не очень понимаю, я вроде решил немного, надо только составить программу.
#include <math.h>
#include <iostream>
int main(int argc, char* argv[])
{
using namespace std;
double a=0.,b=0.;
cout << "Enter a b :";
cin>>a>>b;
double nom = (sin(a+b)-cos(a)*sin(b));
double denom = (cos(a-b)-sin(a)*sin(b));
cout << "Result: " << nom/denom << (fabs(nom)<fabs(denom) ? " true" : " false") << endl;
return 0;
}
в контрольном примере ошибка cos2sin1 надо cos1sin1 и sin2sin1 надо sin1sin1
Здравствуйте, ilya-b-80, Вы писали:
IB8> Только сегодня установил прогу для программирования на c++ и пока не очень понимаю, IB8> я вроде решил немного,
Ну? И где твоё решение? Не считая блок-схемы из трёх пунктов — ввод, вычисление, вывод?
А то как-то неудобно получается.
Мы тут понапишем всякого... Реально можно всякого понаписать — вычисления с наперёд заданной точностью, над комплексными числами, символьные, со всевозможными проверками (предусловие о правильности дроби a/b; ситуации деления x/0 и 0/0), нахождение погрешности вычислений (это важно, например, когда делитель близок к нулю)... Проделаем дофига работы, а тебе это будет не надо.
Опять же, средства ввода-вывода: сишный scanf/printf; STL-ные std::cin>>, std::cout<<; командная строка...
Раз ты только-только сел за С++, то неплохо уяснить для себя: что ты уже умеешь, чему ты учишься и какой объём помощи нужен.
Отсюда видно, что f(a,b) = tg a, но область определения не содержит точки, где cos b == 0 (т.е. b = (k+0.5)*П).
Поэтому эффективное вычисление этой функции сводится к вычислению тангенса средствами математической библиотеки языка.
Лобовое же решение — даст стремительный рост погрешности, особенно, когда b близко к особым точкам.
Здравствуйте, ilya-b-80, Вы писали:
IB8>Решите только второе задание(Дробь А/В является правильной): линейную схему, контрольный пример.
Что значит "решите"?!
— Так вы что, и конфеты за меня есть будете?
— Ага!
f(a,b) = tg a, при условии b != (k+0.5)*П
Известно, что a/b — правильная дробь. То есть, можно предположить, что:
— a,b — целые; тем самым, мы не попадаем в выколотые точки — ни по b, ни по a
— 0<=a<b и НОД(a,b)=1
Если в задачу входит проверка входных условий, то схема выглядит так:
1) читаем a,b как целые числа
2) если a<0 или b<a, посылаем всех нафиг и выходим
3) если НОД(a,b)>1, посылаем и выходим
4) выводим tg(a) и выходим
А если проверка не нужна, то
1) читаем a,b как целые числа
2) выводим tg(a)
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, ilya-b-80, Вы писали:
IB8>>Решите только второе задание(Дробь А/В является правильной): линейную схему, контрольный пример.
К>Что значит "решите"?! К>- Так вы что, и конфеты за меня есть будете? К>- Ага!
К>
К>f(a,b) = tg a, при условии b != (k+0.5)*П
К>Известно, что a/b — правильная дробь. То есть, можно предположить, что: К>- a,b — целые; тем самым, мы не попадаем в выколотые точки — ни по b, ни по a К>- 0<=a<b и НОД(a,b)=1
К>Если в задачу входит проверка входных условий, то схема выглядит так: К>1) читаем a,b как целые числа К>2) если a<0 или b<a, посылаем всех нафиг и выходим К>3) если НОД(a,b)>1, посылаем и выходим К>4) выводим tg(a) и выходим
К>А если проверка не нужна, то К>1) читаем a,b как целые числа К>2) выводим tg(a)