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

Программа для вычисления значения функции. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Запрет ввода числа с точкой http://www.cyberforum.ru/cpp-beginners/thread169880.html
Как запретить ввод десятичных чисел? Напрягает, из-за этого прога падает. Плюс, не нашел вариантов проверки на наличие у числа десятичной части. Спасайте:(
C++ Дано действительное число а.Вычислить f(a) Доброе время суток. Кто может решить задачу.Дано действительное число а.Вычислить f(a),если f(x)={x^2,при-2≤x<2, {4,в_противном_случае http://www.cyberforum.ru/cpp-beginners/thread169866.html
Что такое This и с чем его едят C++
Доброго дня/ночи Вот пытаюсь выкурить мануалы по теме "this". Прочитал надцать листов литературы, но так особо не могу понять - this возвращает только адрес обьекта, в котором он содержится? вот пример, над которым я сижу #include<iostream> using namespace std; class ClassTMP { private: int data; public:
C++ Работа с масивом
Всем доброго времени суток! В общем вот задача: есть таблица с 4-мя полями,(номер, наименование, тип, кол-во) последнее заполнено целочисленными значениями. Табличка или вводится вручную или из файла. Небходимо в обеспечить линейный и бинарный поиск по интервалу(границы вводит пользователь), а так же сортировку методом Шелла и шейкерную сортировку(это вроде пузырька, да??). помогите кто чем...
C++ Вывод результата в дочернем потоке http://www.cyberforum.ru/cpp-beginners/thread169843.html
Имеется программа которая вычисляет три суммы для i, j, k. Программа разбита на два потока. Главный и дочерний. Нужно вывести результат вычислений в главном потоке. Посмотрите пожалуйста код, правильно ли я сделал ? Нужно обязательно использовать семафоры при выводе результата в дочернем потоке. #include <iostream> #include <pthread.h> #include <semaphore.h> #include <conio.h> int S=0; int...
C++ Недопустимые локальные определения функций Вот почитал еще немного литературы и решил попробовать написать прогу. #include <iostream> #include <string.h> #include <iostream> int main(){ setlocale(LC_ALL,"Russian"); class Subd{ private: подробнее

Показать сообщение отдельно
dyap
2 / 2 / 0
Регистрация: 20.09.2010
Сообщений: 58
11.10.2010, 17:15  [ТС]     Программа для вычисления значения функции.
Народ, нужна помощь. Вообщем нам усложнили задачу и теперь нужно функцию для нахождения синуса и косинуса свою использовать. Косинус нам дали, синус написал сам. Но программа не работает. Посмотрите, пожалуйста, что не так?
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
 
double Cosin ( double x )//Функция нахождения косинуса
{
    double p,s,n;//описываем переменные
    const double e = 0.5E-8;//задаём константу е
    const double pi = 3.1415926535897932384626433832795;//задаём константу pi
 
    while (( x >= 2*pi ) || ( x <= - 2*pi ))
    {
        if ( x < 0 )
            x = x + 2*pi;
            else 
            x = x - 2*pi;
    }
    p = 1;
    s = 1;
    n = 0;
    
    while ( fabs ( p ) >= e )
    {
        p = ( -p*x*x ) / (( n + 1 ) * ( n+2 ));
        s = p + s;
        n += 2;
    }
        
    return s;
}
 
double Sinus (double x)// функция нахождения синуса
{   
    double p,s,n;
    const double e = 0.5E-8;//задаём константу е
    const double pi = 3.1415926535897932384626433832795;//задаём константу pi
    
    while (( x >= 2*pi ) || ( x <= - 2*pi ))
    {
        if ( x < 0 )
            x = x + 2*pi;
            else 
            x = x - 2*pi;
    }
    p=1;
    s=1;
    n=0;
    while (fabs ( p ) >= e)
    {
        p=(-p*x*x)/(2*n*(2*n+1));
        s=s+p;
        n += 2;
    }
    return s;
    
 
}
 
double zn ( double x, double n ) 
        {
                double r = 1, q = 1, s;
                while ( r <= n ) 
                {
                        q = q*x*x;
                        r ++;
                }
                s = q*n / ( 2*n+2 );
                return s;
        }
void main ()
{
        setlocale ( LC_ALL,".1251" );
        double x,m,t,u,i,k,a,b,h,sum,j;
 
        printf ( "Введите значение a \n             " );
        scanf ( "%lf",&a );
 
        printf ( "Введите значение b \n             " );
        scanf ( "%lf",&b );
 
        printf ( "Введите значение шага (h) \n             " );
        scanf ( "%lf",&h );
 
        printf ( "Введите значение m\n             " );
        scanf (" %lf",&u );
 
        if ( h == 0 )//Сравниваем H с нулём
        {
                printf ( "\n\n\n Ошибка ввода !  шаг (H) не равен нулю      \n\n\n" );
                goto str;//переходим в конец програмы
        }
        if ( h < 0 )//Сравниваем H с нулём
        {
                printf ( "\n\n\n Ошибка ввода !  шаг (H) только положительный   \n\n\n" );
                goto str;//переходим в конец програмы
        }
                //составление шапки таблицы
        printf ( "  ----------------------------------------------------\n" );
        printf ( "  | Значение переменной X |        Сумма             |\n" );  
        printf ( "  ----------------------------------------------------\n" );
        
        k = 1;
        if ( a <= b )
        {
        
                for ( i = a; i <= b; i += h )//цикл прохождения Х от A до B с шагом H
                {   
                        j = 0;
                        sum = 0;
                        for ( x = 1; x <= u; x ++ )//цикл прохождения переменной M от 1 до введеного числа М,т.е. нахождение колличества членов в сумме
                        {
                                k = i;
                                k = k*x;
                                m =Cosin (k)/ Sinus (k);//вызываем функцию ctng и присваеваем её значение переменой M
                                t = zn (i,x);//вызываем функцию zn и присваеваем её значение переменой t
                                sum = sum + m*t;//нахождение суммы
                                j = j + Cosin(k)/ Sinus (k);
                        }
                //вывод значений Х и суммы в таблице
                
                printf ( "  |%16.4lf       |%25.4lf |\n",i,sum,j );
                printf ( "  -----------------------------------------------------\n" );
                }
        }
                
        else if ( a > b ) 
        {
                for ( i = a; i >= b; i -= h )//цикл прохождения Х от A до B с шагом H
                {   
                        j = 0;
                        sum = 0;
                        for ( x = 1; x <= u; x ++ )//цикл прохождения переменной M от 1 до введеного числа М,т.е. нахождение колличества членов в сумме
                        {
                                k = i;
                                k = k*x;
                                m = Cosin (k)/Sinus (k);//вызываем функцию ctng и присваеваем её значение переменой M
                                t = zn (i,x);//вызываем функцию zn и присваеваем её значение переменой t
                                sum = sum + m*t;
                                j = j + Cosin(k)/Sinus (k);
                        }
                //вывод значений Х и суммы в таблице
                
                printf ( "  |%16.4lf       |%25.4lf|%25.4lf |\n" );
                printf ( "  --------------------------------------------------\n" );
                }
        }
str:;
}
 
Текущее время: 05:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru