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

Цикл(Доработать прогу для решения квадратных уравнений) - C++

Восстановить пароль Регистрация
 
Chernobyl
211 / 211 / 67
Регистрация: 30.09.2012
Сообщений: 526
10.04.2013, 18:40     Цикл(Доработать прогу для решения квадратных уравнений) #1
Написал прогу для решения квадратных уравнений,но как известно она вычисляет только раз и потом уже закрывается,а я захотел сделать так,чтобы можна было решать уравнения, вводя по 3 коэфициенты, сколь угодно раз.По сути,сделал я это при помощи do...while, по идеи вышло,но каким еще способом можно сделать так?
Вот мой код.
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
# include <iostream>
# include <string>
# include <vector>
# include <algorithm>
# include <cmath>
# include <windows.h>
using namespace std;
int main()
{
SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout <<"Введите коэфициенты a,b,c" <<endl ;
    double a, b, c ;
    cin >> a >> b >> c;
    do{
    double d=(b*b)-(4*(a*c));
    double f=sqrt(d);
    if (d>0) cout << "x1 = " << (-b + f)/2/a <<" x2 = " << ( -b - f)/2/a <<endl ;
    if (d==0) cout <<"x = " << -b/2/a <<endl ;
    if (d<0) cout <<"Дискриминант меньше нуля.Корней нет." <<endl ;
    }while(cin >> a >> b >> c);
 
    system("pause");
    return 0;
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GetVariable
 Аватар для GetVariable
163 / 119 / 5
Регистрация: 17.03.2013
Сообщений: 283
10.04.2013, 18:42     Цикл(Доработать прогу для решения квадратных уравнений) #2
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 <iostream>
# include <string>
# include <vector>
# include <algorithm>
# include <cmath>
# include <windows.h>
 
using namespace std;
 
int main()
{
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    cout <<"Введите коэфициенты a,b,c" <<endl ;
 
    double a, b, c ;
    do
    {
    cin >> a >> b >> c;
 
        double d=(b*b)-(4*(a*c));
        double f=sqrt(d);
        if (d>0) cout << "x1 = " << (-b + f)/2/a <<" x2 = " << ( -b - f)/2/a <<endl;
        if (d==0) cout <<"x = " << -b/2/a <<endl ;
        if (d<0) cout <<"Дискриминант меньше нуля.Корней нет." <<endl;
 
    }
    while(true);
 
    system("pause");
    return 0;
}
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
10.04.2013, 18:51     Цикл(Доработать прогу для решения квадратных уравнений) #3
Chernobyl,

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
# include <iostream>
# include <string>
# include <vector>
# include <algorithm>
# include <cmath>
# include <windows.h>
 
using namespace std;
 
int main()
{
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    cout <<"Введите коэфициенты a,b,c" <<endl ;
 
    int punkt;
    double a, b, c ;
    do
    {
        cin >> a >> b >> c;
 
        double d=(b*b)-(4*(a*c));
        double f=sqrt(d);
        if (d>0) cout << "x1 = " << (-b + f)/2/a <<" x2 = " << ( -b - f)/2/a <<endl;
        if (d==0) cout <<"x = " << -b/2/a <<endl ;
        if (d<0) cout <<"Дискриминант меньше нуля.Корней нет." <<endl;
 
        cout <<"Вы хотите продолжить (1 - да, 2 нет)? ";
            cin >> punkt;
 
    }
    while(punkt != 2);
 
    system("pause");
    return 0;
}
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 928
Завершенные тесты: 1
10.04.2013, 18:56     Цикл(Доработать прогу для решения квадратных уравнений) #4
Никак. Только через infinity loop. Можно только причесать.
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
#include <cmath>
#include <iostream>
 
int main()
{
    for ( ;; )
      {
      double a, b, c;
      std::cin >> a >> b >> c;
 
      double d = (b * b) - 4 * a * c;
      double f = sqrt(d);
 
      if (d > 0)
        std::cout << "x1 = " << (-b + f) / (2 * a) << ", x2 = " << (-b - f) / (2 * a) << std::endl;
      else if (d == 0)
        std::cout << "x = " << -b / (2 * a) << std::endl;
      else
        std::cout << "Error" << std::endl;
 
      char exit;
      std::cout << "For exit type e" << std::endl;
      std::cin >> exit;
 
      if (exit == 'e')
        break;
 
      std::cin.unget(); //return previous simbol to stream
      }
 
    getchar();
    getchar();
 
    return 0;
 
}
Yandex
Объявления
10.04.2013, 18:56     Цикл(Доработать прогу для решения квадратных уравнений)
Ответ Создать тему
Опции темы

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