Консультация № 168988
05.06.2009, 13:27
0.00 руб.
0 6 3
Зраствуйте уважаемые эксперты прошу вас мне помочь !!!
Делал делал и всё не работает :(

1) Написать программу для вычисления значений выражения для вводимых с клавиатуры А, В и С.

пробовал использовать мат. функцию Cotan Cot (ctg с подключённой Math.h почмуто эти функции неопределяются)

Приложение:
//---------------------------------------------------------------------------
#include "conio.h"
#include "vcl.h"
#include "math.h"
#include "iostream.h"

#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
double ctan (double f1) {1/tan(f1);}
int main(int argc, char* argv[])
{
float a=0,b=0,c=0,,sum=0;
//-------------Ввод данных--------------------------------------------------------------
cout << "Enter A,B,C: "; cin >> a,b,c; cout << '\n';

//-------------Вычисления--------------------------------------------------------------

sum=cos(exp(tan(a/(b+c))) + sin(exp(1/(tan(b/a)+2))) / sqrt (tan((a-3)/(2*b)) * (1/tan((b+4)/(2*c)))
/ tan((a-3)/2*b) * tan((b+4)/2*c)) / ((2+4*(c*c)) - sqrt(b+cos(c)))) + log(c)/tan(a-b)+5
/ tan(a/sqrt(c) * tan(a+b/c));
getch ();
return 0;
}
//---------------------------------------------------------------------------

Обсуждение

Неизвестный
05.06.2009, 13:43
общий
это ответ
Здравствуйте, 3user3.
Подправил :

double ctan (double f1) { return 1/tan(f1);}
int main(int argc, char* argv[])
{
float a=0,b=0,c=0,sum=0;
//-------------Ввод данных--------------------------------------------------------------
cout << "Enter A,B,C: "; cin >> a>>b>>c; cout << '\n';

//-------------Вычисления--------------------------------------------------------------

sum=cos(exp(tan(a/(b+c))) + sin(exp(1/(tan(b/a)+2))) / sqrt (tan((a-3)/(2*b)) * (1/tan((b+4)/(2*c)))
/ tan((a-3)/2*b) * tan((b+4)/2*c)) / ((2+4*(c*c)) - sqrt(b+cos(c)))) + log(c)/tan(a-b)+5
/ tan(a/sqrt(c) * tan(a+b/c));
getch ();
return 0;
}
Неизвестный
05.06.2009, 14:04
общий
Ну и как работает у меня нет
Неизвестный
05.06.2009, 14:18
общий
вводим 1 2 3
sum = 17.05762

на всякий случчай еще раз исходники :
//---------------------------------------------------------------------------

#include <vcl.h>
#include "conio.h"
#include "vcl.h"
#include "math.h"
#include "iostream.h"
#pragma hdrstop


//---------------------------------------------------------------------------
double ctan (double f1) { return 1/tan(f1);}
#pragma argsused
int main(int argc, char* argv[])
{
float a=0,b=0,c=0,sum=0;
//-------------Ввод данных--------------------------------------------------------------
cout << "Enter A,B,C: "; cin >> a>>b>>c; cout << '\n';

//-------------Вычисления--------------------------------------------------------------

sum=cos(exp(tan(a/(b+c))) + sin(exp(1/(tan(b/a)+2))) / sqrt (tan((a-3)/(2*b)) * (1/tan((b+4)/(2*c)))
/ tan((a-3)/2*b) * tan((b+4)/2*c)) / ((2+4*(c*c)) - sqrt(b+cos(c)))) + log(c)/tan(a-b)+5
/ tan(a/sqrt(c) * tan(a+b/c));
printf("%f",sum);
getch ();
return 0;
}
Неизвестный
05.06.2009, 14:41
общий
это ответ
Здравствуйте, 3user3.
Код:

#include <iostream>
#include <cmath>

using namespace std;

double ctg(double x)
{
return 1/tan(x);
}

int main()
{
double a,b,c;
cout<<"a,b,c=";
cin>>a>>b>>c;
double res=(cos(exp(tan(a/(b+c))))+sin(exp(ctg(b/a))+2))/(sqrt(tan((a-3)/2/b)*ctg((b+4)/2/c)/(2+4*c*c-sqrt(b+cos(c))))+(log(c)/tan(a-b)+5)/tan(a/sqrt(c))/ctg((a+b)/c));
cout<<"result="<<res<<endl;
system("PAUSE");
return 0;
}
Неизвестный
05.06.2009, 14:47
общий
AMV007:
Проверьте знаменатель Вашего выражения.
Неизвестный
06.06.2009, 11:50
общий
это ответ
Здравствуйте, 3user3.

вот, оптимизированная функция. можно конечно все в одну строку запихнуть - это не сложно. Но так и отлаживать проще и можно объяснить всё..
Код:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
double Solve(double a, double b, double c)
{
double t4 = tan(a / (b + c));
double t5 = exp(t4);
double t6 = cos(t5);
double t9 = 0.1e1 / tan(b / a);
double t11 = exp(t9 + 0.2e1);
double t12 = sin(t11);
double t17 = tan((a - 0.3e1) / b / 0.2e1);
double t19 = 0.1e1 / c;
double t22 = 0.1e1 / tan((b + 0.4e1) * t19 / 0.2e1);
double t24 = c * c;
double t26 = cos(c);
double t28 = sqrt(b + t26);
double t32 = log(c);
double t34 = tan(a - b);
double t38 = sqrt(c);
double t41 = tan(a / t38);
double t46 = 0.1e1 / tan((a + b) * t19);
double t50 = sqrt(t17 * t22 / (0.2e1 + 0.4e1 * t24 + t28) + (t32 / t34 + 0.5e1) / t41 / t46);
return (t6 + t12 / t50);
}

int main(int argc, char *argv[])
{
double a = 0,b = 0,c = 0,ret = 0;
system("chcp 1251");
printf("\nВведите A: "); scanf("%lf",&a);
printf("Введите B: "); scanf("%lf",&b);
printf("Введите C: "); scanf("%lf",&c);
ret = Solve(a, b,c);
printf("F(A,B,C) = %lf\n",ret);
system("PAUSE");
return EXIT_SUCCESS;
}
Форма ответа