Здравствуйте, гость ( Вход | Регистрация )
Oct 6 2007, 16:36
Сообщение
#1
|
|
![]() Продвинутый пользователь ![]() ![]() ![]() Группа: Posters Сообщений: 220 Регистрация: 17.8.2007 Из: Чебы Пользователь №: 8,614 |
задание : f=(m*tg(t)+|c*sin(t)|)^1/3
Помогите плиз чо в этой программе не так ? (после компиляции и выполнения, результат f=1 при любых значениях t) #include <stdlib.h> #include <iostream.h> #include <math.h> #include <conio.h> #pragma argsused int main(int argc, char* argv[]) {const double m=2.0,c=-1.0; double t,f; cout<<"Vvedite t "; cin>>t; f=pow(m*tan(t)+abs(c*sin(t)),(1/3)); cout<<"f ravno "<<f; getch(); } -------------------- В голове один мотив - ЧЕМПИОН ЛОКОМОТИВ
|
|
|
|
![]() |
| Гость_mix_* |
Oct 7 2007, 10:53
Сообщение
#2
|
|
Guests |
У тебя тут ошибка "тоньше" чем я думал. Взял я и открыл все таки VC++ и поглядел, ошибка у тебя именно с преобразованиями типов, то что я написал выше тож было бы правдой еслиб pow имел только реализацию с целым вторым аргументом, типа
float pow(float, int) но как оказалось pow имеет реализацию и дробным показателем Штука вот в чем: 1 / 3 - означает не одну треть, это значит что ты делишь целую еденицу на целую тройку, и результат тож целый, а именно нуль. Сделай так pow(...., 0.33333333333) или лучше так pow(...., 1.0 / 3.0) Тут ещё есть момент со входными данными, первый аргумент у pow не должен быть отрицательным, почему не могу точно сказать, могу лиш предположить что вещественная степень высчитывается через что то, что не умеет хавать числа меньше нуля (например натуральный логарифм). Вобщем по эксперементируй, попробуй задать угол t = 12 и t = 45, увидишь что в первом случае первый аргумент отрицательный и ответ какая то хрень, а во втором все чики-пуки. |
|
|
|
L0K0motiv Хелп Oct 6 2007, 16:36
Vitamin_C #include <stdlib.h>
int abs(int x);
Возможн... Oct 6 2007, 17:34
L0K0motiv Цитата(Vitamin_C @ Oct 6 2007, 18:34) #in... Oct 6 2007, 18:01
Vitamin_C #include <math.h>
double fabs(double x); Oct 6 2007, 17:37
Vitamin_C В качестве аргумента функции int abs(int x) - цело... Oct 6 2007, 19:58
mix Цитата(L0K0motiv @ Oct 6 2007, 17:36) Пом... Oct 6 2007, 20:48
L0K0motiv Не подскажете тогда как по-другому реализовать кор... Oct 6 2007, 20:55
Vitamin_C Попробуй заменить
f=pow(m*tan(t)+abs(c*sin(t)),(1... Oct 6 2007, 21:05
L0K0motiv И еще вопрос все C++ Builderы такие глючные ? (у м... Oct 6 2007, 21:08
Vitamin_C Visual C++ был
Че получилось? Oct 6 2007, 21:10
L0K0motiv Цитата(Vitamin_C @ Oct 6 2007, 22:10) Че ... Oct 6 2007, 21:12
Vitamin_C Фуннкция объявлена как:
#include <math.h>
do... Oct 6 2007, 21:15
L0K0motiv Цитата(Vitamin_C @ Oct 6 2007, 22:15) Фун... Oct 6 2007, 21:21
L0K0motiv В Borl. C++ Builder 6 2 версии pow : Prototype
do... Oct 6 2007, 21:24
Gobbs Кодf=pow(m*tan(t)+abs(c*sin(t... Oct 7 2007, 10:03
mix блин, пожизни пока я пишу ответ кто нить уже все н... Oct 7 2007, 10:54
L0K0motiv Спасибо всем !!! Oct 7 2007, 12:51
L0K0motiv Мда.............. Появилась еще одна проблемка.
За... Dec 23 2007, 21:23
Amp Может и не совсем удачное. Первое, что в голову пр... Dec 23 2007, 21:48
L0K0motiv Amp, спасибо тебе.
Пойду удивлю училку. ))))
Прост... Dec 23 2007, 23:22
aligatr-kil Привет всем ! Помогите пожалуйсто переделать п... Dec 23 2007, 23:30![]() ![]() |
|
Текстовая версия | Сейчас: 28th November 2025 - 03:50 |