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

с++ while return - C++

Восстановить пароль Регистрация
 
MonoRec
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 84
29.11.2013, 23:40     с++ while return #1
Задание:Вводится точность e. Вычислить сумму ряда 1-1/3+1/5-1/7.... сумма Вычисления продолжать до тех пор, пока очередное слагаемое не станет меньше e. Вывести рядом пи\4 и сравнить с полученной суммой.

Наработки:

"x<=1" болжен быть меньше. Спросить "e" .Начать складывать по формуле.
Если очередное слагаемое меньше "e" , то прерывается сложение и выдаться сумма.

Помогите с код, вот мой код.

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
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int main()
{
   double sum = 0., x, e, res;
   int n = 1;
   double p =3,14;
   
   cout<<("Enter x:")<<endl;
   cin>>x;
   
   if (fabs(x) <= 1.0)
   {
 cout<<("x must be |x|>1");
      
 return 1;
   }
   cout<<("Enter e:")<<endl;;
   cin>>e;
   res = p\4;
   while (fabs(res) > e)
   {
      sum += res;
      res *= 1-1/3+1/5-1/7;
      n++;
   }
   sum *= 2;
   cout<<("Answer=")<<sum<<endl;
   system("pause");
   return 0;
}
Можете помочь исправить код.
Помогите я в ступоре что делать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2013, 23:40     с++ while return
Посмотрите здесь:

C++ В чем разница между return и return false/true
C++ Return
C++ return
Return C++
Как сделать так, что если файл существует return true, если нет - return false C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vensus
 Аватар для Vensus
41 / 23 / 9
Регистрация: 29.11.2013
Сообщений: 74
30.11.2013, 00:03     с++ while return #2
C++
1
res = p\4;
что это?
может вы имели ввиду
C++
1
res = M_PI/4
Добавлено через 5 минут
Если я правильно понял условие, то ваша программа делает что-то совсем иное... А еще не понял назначение переменное n... она по-моему не используется вообще по назначению

Добавлено через 8 минут
P.S. Нет, я все таки не понял задание... Можно оригинал увидеть?...
MonoRec
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 84
30.11.2013, 00:13  [ТС]     с++ while return #3
Вводится точность e. Вычислить сумму ряда сумма 1-1/3+1/5-1/7 .....Вычисления продолжать до тех пор, пока очередное слагаемое не станет меньше e. Вывести рядом пи/4 и сравнить с полученной суммой.
Vensus
 Аватар для Vensus
41 / 23 / 9
Регистрация: 29.11.2013
Сообщений: 74
30.11.2013, 00:35     с++ while return #4
Цитата Сообщение от MonoRec Посмотреть сообщение
Вводится точность e. Вычислить сумму ряда сумма 1-1/3+1/5-1/7 .....Вычисления продолжать до тех пор, пока очередное слагаемое не станет меньше e. Вывести рядом пи/4 и сравнить с полученной суммой.
Ооо... вот сейчас понял... Ладно, сейчас напишу программу
P.S. Просто ночью мозг уже туго соображает

Добавлено через 20 минут
MonoRec,
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
#include <iostream>
#include <stdio.h>
#include <cmath>
#include <locale>
using namespace std;
int main()
{
    locale::global(locale("Russian"));  //подключаем русский язык
    double e;   //переменная хранит значение e
    const double PI = 3.141592653589793238;
 
    while(true)     //цикл для проверки условия
    {
        cout << ("Введите число 'e': ");
        cin >> e;
        if(e <= 0)
        {
        cout<<("e должно быть больше 0...\n");
        cout << "Повторите попытку.\n";
        }
        else break;
    }
    double sum = 1;             //сумма последовательности
    double denominator = 1;     //знаменатель каждого слагаемого
    bool flag = false;          //переключатель if'а для сложения или вычитания получаемых слагаемых в последовательности
    while(e < 1.0/denominator)  //проверка циклом условия (выполняется до тех пор, пока слагаемое не станет меньше e)
    {
        
        denominator += 2;       //числитель увеличили на 2
        if(flag)                //считаем последовательность
        {
            sum += 1.0/denominator;
            flag = false;
        }
        else
        {
            sum -= 1.0/denominator;
            flag = true;
        }
    }
    cout << "Полученная сумма: " << sum << '\n';        //выводим сумму
    cout << "Сравнение полученной суммы с pi/4: ";
    if(sum < PI/4) cout << sum << " < " << PI/4;        //сравниваем сумму
    else cout << sum << " > " << PI/4;                  //с pi/4
    cout << "\n\n";
    system("pause");
    return 0;
}
MonoRec
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 84
30.11.2013, 00:39  [ТС]     с++ while return #5
Спасибо большое!
Ne_DuracK
2 / 2 / 0
Регистрация: 26.11.2013
Сообщений: 16
30.11.2013, 02:23     с++ while return #6
Это должно работать))

#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
int main()
{
int iter=0;
float a = 1, x = 1,sum = 1,eps = 0.001,c = 1, razn;
float pi= 3.14/4;
while(1)
{
x = x + 2;
c = c*(-1);
a = (1/x) * c;

sum = sum + a;

razn=abs(pi-sum);
cout<<sum<<endl<<pi<<endl;
if(razn<=eps )
{
cout<<"Good"<<endl;
break;
}

}

return 0;
}
Yandex
Объявления
30.11.2013, 02:23     с++ while return
Ответ Создать тему
Опции темы

Текущее время: 08:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru