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

вычислить синус без математических библиотек с точностью 0,001 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вводится строка текста. Удалить слова с i-oro по j-ый номер. Разделители сохранить. Номера вводятся дополнительно. http://www.cyberforum.ru/cpp-beginners/thread279983.html
17. Вводится строка текста. Удалить слова с i-oro по j-ый номер. Разделители сохранить. Номера вводятся дополнительно. я всё никак не могу написать чтобы элемент удалился( Название темы должно...
C++ подскажите приветствую народ, подскажите что делать. вообщем учусь за границей (в чехии если быть точным) на программиста, из-за фокусов с языком, бывает не все понятно. читаю самоучитель Сэмюеля П.... http://www.cyberforum.ru/cpp-beginners/thread279982.html
C++ Синтакисис статик поля
class A { potected: int i; A (int i); const static A a; }; A::A (int i) { this->i=i;
Не могу разобраться как работает данная программа C++
Помогите пожалуйста разобраться как работает данная программа ниже дано задание и готовый листинг. Я запутался тут с этими указателями. Реализовать программу демонстрирующую решение поставленной...
C++ Не работает operator + http://www.cyberforum.ru/cpp-beginners/thread279959.html
пишу программку, а оператор+ не работает как надо, вместо суммы выдаёт всякий бред....может кто знает, что здесь не так? Matrix Matrix::operator+(const Matrix second) { if(m!=second.m ||...
C++ Шаблоны, "invalid iterator range" написать шаблонную функцию которая копирует значения с интервала template<typename T> void copy(T* dst, const T* begin, const T* end) { for(int i =0 ; (begin + i) < end ; i++) dst = begin; }... подробнее

Показать сообщение отдельно
Alekcandr9
0 / 0 / 0
Регистрация: 12.04.2011
Сообщений: 12

вычислить синус без математических библиотек с точностью 0,001 - C++

20.04.2011, 12:48. Просмотров 2269. Ответов 2
Метки (Все метки)

Здравствуйте уважаемые форумчане, как то я задавал вопрос как вычислить синус без библиотеки "cmath", но сходив в университет, обнаружил, что неправильно записал условие, которое звучит так:

Вычислить синус вводимого угла, без использования математических библиотек, с точностью 0,001.

Посидевши за ПК 1 час допёр вот до такого кода:

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
#include "stdafx.h"
#include "iostream"
#define PI 3,141592653589793238
using namespace std;
 
double fact(double n){//Функция вычисления факториала
    double f=1,b=2*n+1;
    int i;
    for(i=0;i<=b;i++){
        f=f*i;
    if(i==0){f=1;}
                     }
    return f;}
 
double pow(double x, double n){//Функция вычисления x^2n+1
    double X=1, b=2*n+1;
    int i;
    for(i=1;i<=b;i++){X=X*x;}
 
    return X;}
 
int main(){
    double x,n,power,factorial,sin=0;
    cout<<"Enter x: "; cin>>x;
    x=x*PI/180;
    do{
        for(n=0;;n++){sin=sin+((-1/(factorial=fact(x)))*(power=pow(x,n)));}//Цикл без ограничения n, я думал что ограничение задасться в цикле while 
      }while(((-1*power)/factorial)>=0.001);//Цикл с постусловием, выполняемый до тех пор пока: (-1*power)/factorial)>=0.001
        
    cout<<sin<<"\n";
    
    system("pause");
 
    return 0;}
Попрошу проанализировать код и указать все неточности, при запуске и вводе значения x ничего не происходит, как я понял получился бесконечный цикл и скорее всего это вот эта строка:
C++
1
for(n=0;;n++){sin=sin+((-1/(factorial=fact(x)))*(power=pow(x,n)));}
, вопрос как сделать так чтобы цикл
C++
1
for(n=0;;n++)
распространял своё действие и на функции??++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru