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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Levondk
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 11
#1

Вычисление sin. Подкорректировать код. - C++

21.12.2012, 22:56. Просмотров 441. Ответов 5
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include "conio.h"
#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;
const int Maximum=450;
void main()
{
        int k=1,kk=1;
        double x;
        cin>>x;
        long double Function=x,Summ=Function;
        for(int i=1;i<=Maximum;i++)
        {
                Function *= -1*x*x/((2*i)*(2*i+1));
                Summ+=Function;
        }
        cout<<setprecision(60)<<Summ;
        getch();
}
Эта программа должна считать синус Х, когда вводим Х. Вообще требуется, чтобы после запятой было 100 символов (моя прога считает 20 и еще 21 нулей почему-то), для этого нужно ввести массивы. Нашел тут что-то типа этого (действия в столбик) : http://acm.mipt.ru/twiki/bin/view/Al...ArithmeticsCPP , но не знаю, как внедрить массивы в мою программу.. Может кто-то может внедрить, чтобы после запятой были больше или ровно 100 символов, но не меньше.. И главное, чтобы в программе кроме iostream , math.h , iomanip, string ничего не использовалось..насколько это возможно?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2012, 22:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление sin. Подкорректировать код. (C++):

Подкорректировать код (сортировка распределением) - C++
Вечер добрый, знатоки. Компилятор ошибку не отлавливает. Ошибка логическая и вылет программы происходит при входе в цикл: while (j &gt; (l...

Можете немного подкорректировать код? - C++
Данная программы выводит на экран такой треугольник: 1 12 123 1234 ... 1234..n

подкорректировать код(логин и пароль) - C++
Доброго времени суток господа. Помогите подкорректировать код пожалуйста. Нужно что бы в данном коде было несколько вариантов логинов и...

подкорректировать код (найти ошибки) - C++
программа должна найти первые буквы слов. Проблема заключается в цикле. Не пойму как сделать чтоб работала правильно #include&lt;iostream.h&gt;...

В файл записывается мусор. Подкорректировать код - C++
Нужна помощь! В общем организована БД со структурами и целый перечень функций, которые её обслуживают. Всё работало, но что как-то...

Подкорректировать код нахождения суммы ряда - C++
помогите,пожалуйста, подкорректировать код под мою задачу. понимаю,что легко, но я никогда не работала с с++ #include &lt;stdio.h&gt; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
radamaerl
27 / 6 / 1
Регистрация: 20.12.2012
Сообщений: 39
22.12.2012, 00:16 #2
вообще то через ряд считается с заданной точностью эпсилон
чего именно 450 членов ряда считать?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void main()
{
        int k=1,kk=1;
        double x;
        cin>>x;
        long double Function=0,Summ=0;
double eps;
cin>>eps;
while(fabs(Function)>eps) 
{
 
 
}
        for(int i=1;i<=Maximum;i++)
        {
                Function *= -1*x*x/((2*i)*(2*i+1));
                Summ+=Function;
        }
        cout<<setprecision(60)<<Summ;
        getch();
}
Добавлено через 14 минут
пардон не то
глюки сайта
0
Mun
7 / 7 / 7
Регистрация: 21.12.2012
Сообщений: 46
22.12.2012, 00:16 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <math.h>
#include<iomanip>
using namespace std;
 
main()
{
    setlocale(0,"");
   long double x, y;
    cout << "Введите x: ";
    cin >> x;
    y=sin(x);
    cout << setprecision(110) << y;
    return 0;
}


Не знаю чем не понравился более удобный метод.
0
radamaerl
27 / 6 / 1
Регистрация: 20.12.2012
Сообщений: 39
22.12.2012, 00:20 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void main()
{
   int i=1;
   double x;
   cin>>x;
   long double Function=x,Summ=0;
   double eps;
   cin>>eps;
   while(fabs(Function)>eps)
   {
      Summ+=Function;
      Function *= -1*x*x/((2*i)*(2*i+1));
      i++;
   }
   cout<<setprecision(60)<<Summ;
   getch();
}
0
Levondk
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 11
22.12.2012, 16:52  [ТС] #5
Цитата Сообщение от Mun Посмотреть сообщение
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <math.h>
#include<iomanip>
using namespace std;
 
main()
{
    setlocale(0,"");
   long double x, y;
    cout << "Введите x: ";
    cin >> x;
    y=sin(x);
    cout << setprecision(110) << y;
    return 0;
}


Не знаю чем не понравился более удобный метод.

Вот что делает ваша программа. (2 скрина )http://data1.floomby.com/files/share...ck2CMULBxg.png и http://data1.floomby.com/files/share...WjveiWDLAw.png
И не понятно, зачем столько нулей? вот если бы вместо нулей была бы точность.. Да и в моей программе использованы библиотеки, которых нельзя использовать.. Можно только iostream , math.h , iomanip, string и может еще 1-2, которых я забыл.

Добавлено через 2 минуты
Цитата Сообщение от radamaerl Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void main()
{
   int i=1;
   double x;
   cin>>x;
   long double Function=x,Summ=0;
   double eps;
   cin>>eps;
   while(fabs(Function)>eps)
   {
      Summ+=Function;
      Function *= -1*x*x/((2*i)*(2*i+1));
      i++;
   }
   cout<<setprecision(60)<<Summ;
   getch();
}
вот с этим проблемы.
C++
1
while(fabs(Function)>eps)
Что такое fabs ? и еще, зачем эпсилион, если нужно высчитать синус какого-то угла с точностью 100 (предположим).

Добавлено через 6 минут
еще раз пересмотрел вашу программу..
Цитата Сообщение от Mun Посмотреть сообщение
y=sin(x);
Так вся идея в том, что я должен синус считать, а не функция из библиотеки... И если вы использовали какую-то функцию из библиотеки, то хорошо бы его вытащить в сам файл cpp , чтобы всё на виду было.

Добавлено через 12 минут
radamaerl, И еще проверил, эпсилион вообще тут бессмысленно вводить, ваша программа работает так же, как и предыдущая (без эпсилиона там), с огромным количество нулей... мне нужно точность 100, а он делает точность 20 и еще 20 нулей. Поэтому мне и нужно в массивы записывать чилса, чтобы без проблем большие числа хранились..но как потом эти массивы внедрить в программу...?

Добавлено через 15 часов 35 минут
Тема всё еще актуальна((жду экспертов..
0
radamaerl
27 / 6 / 1
Регистрация: 20.12.2012
Сообщений: 39
22.12.2012, 23:59 #6
есть понятие вычисление суммы бесконечного ряда с заданной точностью эпсилон
эпсилон соответственно маленький должен быть чтобы точнее было
я тебе написал функцию вычисления твоей функции через ряд с заданной точностью эпсилон
в твоем понимании точность 100 это 100 знаков после запятой
если тебе надо вывести сто знаков после запятой на тебе пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <iomanip>
#include <math.h>
#include <stdlib.h>
 
using namespace std;
int main()
{
   
  double i=1;
  cout << setiosflags(ios::fixed) << setprecision(100)<<sin(i);
  
   system("pause");
}
дальше сам
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2012, 23:59
Привет! Вот еще темы с ответами:

Вычисление sin(x)/x - C++
Доброго время суток. Написать программу вычисления sin(x)/x используя разложения в ряд: ...

вычисление sin - C++
Здравствуйте, подскажите как работает синус в си++ путаюсь получить угол треугольникак но не как , как в си записать sin(arg)=1/2; что...

Сортировка 2-х последовательностей в новую без создания массива(нужно подкорректировать код) - C++
Уважаемые, задача такова:Даны 2 последовательности a1&lt;=a2&lt;=a3..&lt;=a(n)и 2 последовательность (b1&lt;=b2&lt;=b3...&lt;=b(n)).и так далее,вывести на...

Рекурсивное вычисление x!-sin(x) - C++
помогите пожалуйста написать программу s=x!-sin(x)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.12.2012, 23:59
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru