Форум программистов, компьютерный форум CyberForum.ru

Сравнение функций - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ STL и ostream_iterator http://www.cyberforum.ru/cpp-beginners/thread1024982.html
Здравствуйте, товарищи! Вопрос к знатокам библиотеки STL. Решая одну задачу в которой надо было посчитать некоторые точки, каждая из которых уникальна, решил использовать для хранения set, чтобы отсеивать одинаковые точки уже самим контейнером. Сперва использовал свою элементарную структуру Point, но компилер выдавал ошибки про отсутствие операторов вывода и сравнения. Решил юзать...
C++ Отследить ошибку Помогите найти ошибку в программе. #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv) { int n = 0, k = 0, i, r, j = 0, q1, q2, *a; a = new int ; double p; for(k = 10; k<100; k++){ http://www.cyberforum.ru/cpp-beginners/thread1024980.html
C++ Создание дерева
Помогите написать функцию создания дерева, заполняющуяся по порядку ввода элементов с лева на право
Компилятор и среда разработки. Какие лучше новичку? C++
Посоветуйте среду разработки с подсветкой синтаксиса для С++. И компилятор тоже. Пробовал Visual 2010, но как его запустить, где он вообще?
C++ Выделение памяти http://www.cyberforum.ru/cpp-beginners/thread1024968.html
int main() { FILE *fIn = NULL, *fOut =NULL; Error EMyError; CNodeStack *Start; CNodeStack *ListF = new CNodeStack; ListF->next = NULL; Start = ListF; //.................................... delete ListF;
C++ Перегрузка операций и функций Выполнить перегрузку перечисленных операций, закрепив за ними соответствующий функциональный смысл. Прямоугольная матрица +/- сложение/вычитание двух матриц,*умножение двух матриц подробнее

Показать сообщение отдельно
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 690

Сравнение функций - C++

01.12.2013, 21:53. Просмотров 311. Ответов 7
Метки (Все метки)

Здравствуйте. Прошу помощи т.к. зашел в тупик.
Задача: Требуется написать программу которая вычисляла тригонометрическую функцию двумя путями: с использованием математических функций math.h и разложением тригонометрической функции в ряд, а затем сравнить результаты вычислений с некоторой точностью эпсилон.. К сожалению не получается реализовать функцию по разложению в ряд.

Формула разложения котангенса

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include<iostream>
#include<conio.h>
#include<math.h>
void stopping();
double seq_ctg(double,double);
double mpow(double , double);
double fact(double);
using namespace std;
const double PI=3.14;
const long N=12;
int main()
{
setlocale(LC_ALL,"Rus");
double eps, xs,xe,dx,xi, myctg, cctg,delta; 
cout<<"Введите E --> ";
cin>>eps;
cout<<"Введите X start --> ";
cin>>xs;
cout<<"Введите X end --> ";
cin>>xe;
cout<<"Введите DX --> ";
cin>>dx;
if(dx<=0||xs>=xe)
stopping();
printf("|-----------------|-------------------|-----------------|-------------------|\n");
printf("|        X        |      My_ctg(x)    |       ctg(x)    |        Sigma      |\n");
printf("|-----------------|-------------------|-----------------|-------------------|\n");
for( ;xs<=xe;xs=xs+dx)
{  
   if(xs/PI!=1)
   {
   cctg=cos(xs)/sin(xs);
   myctg=seq_ctg(xs,eps);
   delta=sqrt(abs(myctg*myctg-cctg*cctg));
   printf("|    %10.6f   |     %10.6f    |    %10.6f   |     %10.6f    |\n",xs,myctg,cctg,delta);
   }
   else 
   {
       printf("|    %10.7f   |       Ошибка      |      Ошибка     |       Ошибка      |\n",xs,myctg,cctg,delta);
 
   }
}
printf("|-----------------|-------------------|-------------------------------------|\n");
cout<<"Введите X ideal --> ";
 cin>>xi;
 eps=0.1;
 printf("|-----------------|-------------------|-----------------|-------------------|\n");
 printf("|    Epsilon      |      My_ctg(x)    |       ctg(x)    |        Sigma      |\n");
 printf("|-----------------|-------------------|-----------------|-------------------|\n");
 for( ;eps>0.0000001;eps=eps/10)
{
    
      
      if(xs/PI!=1)
      {
            myctg=seq_ctg(xi,eps);
            cctg=cos(xi)/sin(xi);
            delta=sqrt(abs(myctg*myctg-cctg*cctg));
            printf("|    %10.7f   |     %10.6f    |    %10.6f   |     %10.6f    |\n",eps,myctg,cctg,delta);
       }
else
    printf("|    %10.7f   |       Ошибка      |      Ошибка     |       Ошибка      |\n",xs,myctg,cctg,delta);
 }
    printf("|-----------------|-------------------|-------------------------------------|\n");
 
 
cin.get();
cin.get();
return 0;
}
 
 double seq_ctg(double xs, double eps)
 {int n=0;
 double prov,rezult=0;
 do
 {prov=rezult;
 rezult=rezult+((mpow(-1,n)*mpow(2,2*n)*mpow(xs,2*n))/fact(2*n));
 n++;
 }
 while(abs(rezult-prov)>=eps);
 return prov/xs;
 }
 
 
 
 double fact(double x)
{
    if (x<=1) return 1;
    else return x*fact(x-1);
}
 
 double mpow(double x, double y)
{
    double r = 1;
    while((y--)>0) r*=x;
    return r;
}
 
void stopping()
   {
cout<<"Ошибка";
cin.get();
cin.get();
exit(0);
   }
Библиотечная и рядная функции слишком намного отличаются.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru