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

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

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

Добрый день!(а точнее вечер) Немогли бы объяснить почему зацикливается программа? - C++

22.11.2010, 00:00. Просмотров 389. Ответов 3
Метки нет (Все метки)

Вычислить и вывести на экран в виде таблицы значения функции F на интервале
от Хнач. до Хкон. с шагом dX.
F= a*x*x +b*x +c(при a<0 и с не равном 0)
F=-a/(x-c)(при a>0 и с=0)
F=a(x+c)(в остальных случаях)
где а,b, с — действительные числа.
Функция F должна принимать действительное значение, если выражение
Ац И (Вц ИЛИ Сц)
не равно нулю, и целое значение в противном случае. Через Ац, Вц и Сц обозначены
целые части значений а, Ь, с, операции И и ИЛИ — поразрядные. Значения
а, b, с, Хнач., Хкон., dX ввести с клавиатуры.
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
#include <iostream>
using namespace std;
int main()
{
 
    int a, b, c;
    cout << "vvedite a = ";
    cin >> a;
    cout << "vvedite b = ";
    cin >> b;
    cout << "vvedite c = ";
    cin >> c;
    int x1, x2;
    cout << "vvedite x nachalnoe = ";
    cin >> x1;
    cout << "vvedite x konechnoe = ";
    cin >> x2;
    int dx;
    cout << "vvedite chag = ";
    cin >> dx;
    int p;
    p = x2 / dx;
 
            
                for (int i=0; i<p; i++)
                {
                    while ( x2 > i*dx)
                    {
                    if (a!=0 && b!=0 && c!=0)
                    { double f;
 
 
                            if ( a<0 && c!=0 )
                            {f = a * (x1 + i * dx) + (x1 + i * dx) + c;
                            }
                            if ( a>0 && c==0 )
                            {f = -a / ((x1 + i * dx)+c);
                            }
                            else 
                            {f = a * ((x1 + i * dx) + c);
                            }
                            cout << f ;
                    }
                    else
                    { int f;
 
                            if ( a<0 && c!=0 )
                            {f = a * (x1 + i * dx) * (x1 + i * dx) + (x1 + i * dx) + c;
                            }
                            if ( a>0 && c==0 )
                            {f = -a / ((x1 + i * dx)+c);
                            }
                            else 
                            {f = a * ((x1 + i * dx) + c);
                            }
                            cout << f ;
                
                    }
                    
                 }
                }
            
        
system ("pause");
return 0;
 
 
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2010, 00:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Добрый день!(а точнее вечер) Немогли бы объяснить почему зацикливается программа? (C++):

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

Почему зацикливается программа? - C++
Нужно найти сумму элементов матрицы 4x4 на побочной диагонали. Если поразмышлять, любой элемент побочной диагонали удовлетворяет уравнению...

Добрый вечер! если онлайн практика по С++ - C++
Всем добрый вечер учусь на курсах программирования все хорошо, но мало практики. Хотелось бы узнать если онлайн практики или или хорошие...

Добрый вечер. Ребят, нужен ваш совет - C++
Добрый вечер.Ребят,посоветуйте пожалуйста, хочу начать учить C++ по книге &quot;ЯЗЫК ПРОГРАММИРОВАНИЯ C++. БАЗОВЫЙ КУРС&quot; (Издательство:Вильямс;...

Добрый вечер, прошу помощи по строкам и лексемам (strtok) - C++
суть в чем... Строка будет скопирована из формул в экселе. По типу &quot;=ЕСЛИ(A1&gt;=12; 3;...&quot; ит.п. Пытаюсь игнорировать пробелы, деля строку...

Добрый день , не могу понять почему не работает system("clr")? - C++
#include&lt;iostream&gt; #include&lt;string&gt; // getline #include&lt;cstdlib&gt; // system using namespace std; void main() { int a ; char d;...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
22.11.2010, 03:37 #2
А точно зацикливается? Может вы просто вводите очень большой x2 и очень маленький dx, т.е. p будет очень большим и программа будет очень долго выполняться (с учётом того, что каждую итерацию вложенного цикла происходит выводи на консоль - операция медленная).
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
22.11.2010, 06:30 #3
Michanya, Вот смотрите, Вы начали цикл:
for (int i=0; i<p; i++)
{
Сейчас i равна 0 и соответственно входя в следующий цикл:
while ( x2 > i*dx)
условие x2>i*dx у Вас выполняется.
Внутри цикла
while ( x2 > i*dx)
у вас не меняется ни i, ни x2, ни dx. И соответственно он бесконечен.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
22.11.2010, 13:42 #4
Цитата Сообщение от Michanya Посмотреть сообщение
если выражение
Ац И (Вц ИЛИ Сц)
не равно нулю
Цитата Сообщение от Michanya Посмотреть сообщение
операции И и ИЛИ — поразрядные
тобишь & - и, | - или
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2010, 13:42
Привет! Вот еще темы с ответами:

Добрый вечер! Передача в функцию константного значения и обьявление им массива - C++
Вот у меня есть функция с объявленым массивом внутри: f(const int &amp;C) { int mass; } Где тут ошибка ? Ведь размер массива...

Цикл зацикливается, точнее не хочет дальше идти - C++
Тут нужно сделать так, чтоб появилась таблице, где первое число остается прежним, 1-2-3-4-5, а другие умножаются на 10, 100, 1000. И не...

Добрый вечер, как сделать задержку экрана, после введенных цифр? - C++
#include &quot;StdAfx.h&quot; #include &lt;stdio.h&gt; void pr1() { int a,b,c,d; printf(&quot;\n&quot;); printf(&quot;vvevitu a,b,c \n:&quot;); ...

Почему программа себя странно ведет: зацикливается после ввода значений? - C++
Зацикливается после воода значений. Подскажите пожалуйста в чем может быть проблема. #include &lt;fstream&gt; #include &lt;iostream&gt; ...


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

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

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