Помогите написать прогу
От: ilya-b-80  
Дата: 11.10.07 21:11
Оценка: :))) :)))
Срочно нужна помощь. Только сегодня установил прогу для программирования на c++ и пока не очень понимаю, я вроде решил немного, надо только составить программу.
Задание
1) (sin(a+b)-cosa*sinb)/(cos(a-b)-sina*sinb)
2) Дробь A/B является правильной.


Re: Помогите написать прогу
От: ДимДимыч Украина http://klug.org.ua
Дата: 11.10.07 21:37
Оценка:
Здравствуйте, ilya-b-80, Вы писали:

IB8>Срочно нужна помощь.


http://www.programmersclub.ru/main
http://valera.asf.ru/cpp/book/
и вообще, http://google.com
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re: Помогите написать прогу
От: Sashaka Россия  
Дата: 12.10.07 06:04
Оценка:
Здравствуйте, 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
Re[2]: Помогите написать прогу
От: VsevolodC Россия  
Дата: 12.10.07 06:39
Оценка:
Здравствуйте, Sashaka, Вы писали:
S>#include <math.h>
S>#include <iostream>
S>int main(int argc, char* argv[])
S>{
S>    using namespace std;
S>    double a=0.,b=0.;
S>    cout << "Enter a b :";
    cin>>>a>>b;
S>    double nom = (sin(a+b)-cos(a)*sin(b));
S>    double denom = (cos(a-b)-sin(a)*sin(b));
S>    cout << "Result: " << nom/denom << (fabs(nom)<fabs(denom) ? " true" : " false") << endl;
S>    return 0;
S>}

введи a = PI / 2; b = PI / 2;
Re[3]: Помогите написать прогу
От: Sashaka Россия  
Дата: 12.10.07 07:21
Оценка:
Result: 1.#INF false
и что?
Re[4]: Помогите написать прогу
От: VsevolodC Россия  
Дата: 12.10.07 07:43
Оценка:
Здравствуйте, Sashaka, Вы писали:

S>Result: 1.#INF false

S>и что?
непорядок
Re: Помогите написать прогу
От: Кодт Россия  
Дата: 12.10.07 10:58
Оценка: :)
Здравствуйте, ilya-b-80, Вы писали:

IB8> Только сегодня установил прогу для программирования на c++ и пока не очень понимаю,

IB8> я вроде решил немного,

Ну? И где твоё решение? Не считая блок-схемы из трёх пунктов — ввод, вычисление, вывод?

А то как-то неудобно получается.

Мы тут понапишем всякого... Реально можно всякого понаписать — вычисления с наперёд заданной точностью, над комплексными числами, символьные, со всевозможными проверками (предусловие о правильности дроби a/b; ситуации деления x/0 и 0/0), нахождение погрешности вычислений (это важно, например, когда делитель близок к нулю)... Проделаем дофига работы, а тебе это будет не надо.

Опять же, средства ввода-вывода: сишный scanf/printf; STL-ные std::cin>>, std::cout<<; командная строка...

Раз ты только-только сел за С++, то неплохо уяснить для себя: что ты уже умеешь, чему ты учишься и какой объём помощи нужен.

Удачи!
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re: Помогите написать прогу
От: Кодт Россия  
Дата: 12.10.07 10:58
Оценка: 12 (3) +1
Здравствуйте, ilya-b-80, Вы писали:

Вообще же, в символьном виде
f(a,b) = (sin(a+b)-cosa*sinb)/(cos(a-b)-sina*sinb)

sx === sin x
cx === cos x

s(a+b) = sa*cb + ca*sb
c(a-b) = ca*cb + sa*sb

s(a+b)-ca*sb = sa*cb + ca*sb - ca*sb = sa*cb
c(a-b)-sa*sb = ca*cb + sa*sb - sa*sb = ca*cb

f(a,b) = (sa*cb)/(ca*cb)

Отсюда видно, что f(a,b) = tg a, но область определения не содержит точки, где cos b == 0 (т.е. b = (k+0.5)*П).

Поэтому эффективное вычисление этой функции сводится к вычислению тангенса средствами математической библиотеки языка.
Лобовое же решение — даст стремительный рост погрешности, особенно, когда b близко к особым точкам.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[2]: Помогите написать прогу
От: ilya-b-80  
Дата: 07.11.07 05:31
Оценка: -1
Решите только второе задание(Дробь А/В является правильной): линейную схему, контрольный пример.
Re[3]: Помогите написать прогу
От: Кодт Россия  
Дата: 07.11.07 09:29
Оценка: 2 (2) :)
Здравствуйте, 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)
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[4]: Помогите написать прогу
От: ilya-b-80  
Дата: 07.11.07 22:15
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, 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)

Спасибо огромное, не могу этот бред месяц сдать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.