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

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

Войти
Регистрация
Восстановить пароль
 
triadec_96
12 / 12 / 1
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
#1

Зацикливание в программе - C++

28.02.2013, 20:52. Просмотров 469. Ответов 8
Метки нет (Все метки)

Задание:
Протабулировать функцию, использовав цикл с предусловием. Аргументы и результаты вывести на экран в виде таблицы (для значений х, в которых функция не существует вывести "-" и использовать оператор перехода на следующую итерацию).членов ряда с точностью ε для заданной последовательности х. Во внешнем цикле для подачи аргумента х использовать оператор цикла с предусловием, во внутреннем - вычислить сумму для конкретного х с точностью до ε, используя оператор цикла с послеусловие; вывести на печать значение S, х, n.

Думаю,что идёт зацикливание.
Вот код,который я написал.
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
 using namespace std;
 
int main()
{
    double x,n,S;
   x=0.3;
    cout<<"Input n"<<endl; 
    cin>>n;
  while (x<=0.7)
  {
      do
      {
           S+=(((n*n)+1)/(n))*((pow(double(x), n))/(pow(double(2), n)));
      } while (x<=0.7);
   x+=0.1;
  }
  cout.precision(5); 
  cout<<S;
 getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2013, 20:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Зацикливание в программе (C++):

Зацикливание в программе - C++
Здравствуйте! Помогите, пожалуйста. У меня в программе требует проверить, нечетное ли положительное число введено. И пока не введут...

зацикливание - C++
Не выдает нужного результата происходит зацыкливание // wer.cpp : Defines the entry point for the console application. // ...

Зацикливание - C++
Вобщем, проверял уже 100 раз. Думаю причина в моем неумении работать с файлами. Почти все переменные, объявленные в этой процедуре,...

Зацикливание - C++
Помогите разобраться while (point &gt;= min &amp;&amp; point &lt;= max || prodal &gt;= min &amp;&amp; prodal &lt;= max) { cin &gt;&gt; point; sobestoimostb = point...

зацикливание в C++ - C++
Подскажите, пожалуйста, как зациклить программу, чтобы при попытке набрать другой символ выдавалось сообщение с ошибкой и происходило...

Зацикливание - C++
Всем доброго времени суток. Написал прогу по определению кратности второго числа относительно первого. // Кратность второго числа по...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
28.02.2013, 21:06 #2
C++
1
2
3
4
do
      {
           S+=(((n*n)+1)/(n))*((pow(double(x), n))/(pow(double(2), n)));
      } while (x<=0.7);
Здесь вам нужно считать сумму ряда с заданной погрешностью e, поэтому условие while (x<=0.7); неверное.

Добавлено через 44 секунды
причем зацикливаетесь вы именно в этом цикле
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.02.2013, 21:09 #3
В do while x не меняется, поэтому и нет выхода. И S задайте первоначальное значение, а то компилятор ругается.
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
28.02.2013, 21:10 #4
должно быть как-то так
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
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    double x,n,S;
    x=0.3;
    cout<<"Input n"<<endl;
    cin>>n;
    double e=0;
    cout << "eps ? ";
    cin >>e;
    while (x<=0.7)
    {
        do
        {
            S+=(((n*n)+1)/(n))*((pow(double(x), n))/(pow(double(2), n)));
            eps = ...
 
        } while (eps>e);
        x+=0.1;
    }
    cout.precision(5);
    cout<<S;
    return 0;
}
Kill100
404 / 270 / 37
Регистрация: 11.12.2010
Сообщений: 1,148
Завершенные тесты: 1
28.02.2013, 21:12 #5
Вырви глаз
Это что?
C++
1
2
3
4
5
6
7
8
9
10
while (x<=0.7)
    {
        do
        {
            S+=(((n*n)+1)/(n))*((pow(double(x), n))/(pow(double(2), n)));
            eps = ...
 
        } while (e<=eps);
        x+=0.1;
    }
В обще верно будет
C++
1
2
3
4
5
  while (x<=0.7)
  {
           S+=(((n*n)+1)/(n))*((pow(double(x), n))/(pow(double(2), n)));
   x+=0.1;
 }
triadec_96
12 / 12 / 1
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
28.02.2013, 21:41  [ТС] #6
Цитата Сообщение от Kill100 Посмотреть сообщение
Вырви глаз
Это что?
C++
1
2
3
4
5
6
7
8
9
10
while (x<=0.7)
    {
        do
        {
            S+=(((n*n)+1)/(n))*((pow(double(x), n))/(pow(double(2), n)));
            eps = ...
 
        } while (e<=eps);
        x+=0.1;
    }
В обще верно будет
C++
1
2
3
4
5
  while (x<=0.7)
  {
           S+=(((n*n)+1)/(n))*((pow(double(x), n))/(pow(double(2), n)));
   x+=0.1;
 }
Мне нужно цыкл в цыкле.

Добавлено через 6 минут
Цитата Сообщение от Kill100 Посмотреть сообщение
Вырви глаз
Это что?
C++
1
2
3
4
5
6
7
8
9
10
while (x<=0.7)
    {
        do
        {
            S+=(((n*n)+1)/(n))*((pow(double(x), n))/(pow(double(2), n)));
            eps = ...
 
        } while (e<=eps);
        x+=0.1;
    }
В обще верно будет
C++
1
2
3
4
5
  while (x<=0.7)
  {
           S+=(((n*n)+1)/(n))*((pow(double(x), n))/(pow(double(2), n)));
   x+=0.1;
 }
eps это что?
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
28.02.2013, 22:58 #7
Цитата Сообщение от Kill100 Посмотреть сообщение
Вырви глаз
Это что?
по условию ему нужно считать формулу через ряд, если я правильно понял, с определенной точностью в каждой точке. Так что ничего вырывать не нужно, особенно глаз, для здоровья вредно.

triadec_96, 'это погрешность, которую вы получаете и сравниваете с заданной. Например, вычисляете два последовательных значения и вычисляете абсолютное значение разности, вам, скорее всего нужно еще n менять во внутреннем цикле, например умножать на 2, или прибавлять что-то, все зависит от вашей функции.
triadec_96
12 / 12 / 1
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
01.03.2013, 01:56  [ТС] #8
Цитата Сообщение от vua72 Посмотреть сообщение
вам, скорее всего нужно еще n менять во внутреннем цикле, например умножать на 2, или прибавлять что-то, все зависит от вашей функции.
Видимо в условии не написано что делать с n.
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
01.03.2013, 10:47 #9
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
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
 
using namespace std;
 
int main() {
    double x=0.3,
            n=1,
            S=0,
            Sk=0,
            eps=0.000001;
    cout << "\n Summa ryada\n";
    while (x <= 0.7) {
        n=1, Sk=0, S=0;
        do {
            Sk = (((n * n) + 1) / (n))
                    * ((pow(x, n)) / (pow(2, n)));
            S+=Sk;
        n++;
        } while (Sk>eps);
        cout << "x= "<<x<<" S="<<S<<" n="<<n<<endl;
        x += 0.1;
    }
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2013, 10:47
Привет! Вот еще темы с ответами:

Зацикливание - C++
помогите исправить ошибку пожалуйста! у меня зацикливается она! # include &quot;stdafx.h&quot; # include &lt;stdio.h&gt; #include &lt;time.h&gt; ...

Scanf зацикливание - C++
Почему зацикливается при вводе символа? int a; while (scanf_s(&quot;%d&quot;, &amp;a) != EOF) { ... }

Зацикливание класса - C++
int readmass(char* file) { FILE *mass =fopen(file,&quot;r&quot;); if( mass==NULL) { cout&lt;&lt;&quot;Не возможно открыть файл&quot;&lt;&lt;endl; ...

Зацикливание проверки - C++
Доброго времени суток! 1) Хотелось бы узнать почему не срабатывает проверка в цикле? 2) Можно ли обойтись без цикла и темболее уж без...


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

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

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