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

Зацикливание + вопрос об огородах - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Произведение элементов массива http://www.cyberforum.ru/cpp-beginners/thread284501.html
Помогите решить 1ое задание пожалуйста. Срочно надо...
C++ Работа с файлами, матрицы Может кто нибудь сможет помочь! Сам вобще ничё не понимаю а сдавать надо! Буду очень благодарен!!! ______________________________ В файле «file.in» дана матрица вещественных чисел. Написать программу, которая считывает эту матрицу и каждый элемент заменяет на символ, соответствующий целой части текущего элемента (если целая часть элемента матрицы превышает 256, то заменить на «0»).... http://www.cyberforum.ru/cpp-beginners/thread284490.html
Вопрос к программистам, имеющим опыт C++
Прошу прощения - возможно, подобные вопросы задавались много раз. Хотелось бы узнать, как и с чего вы начинали. Расскажите, пожалуйста. Про первые программы (из тех что посерьёзнее - в смысле, не простой вывод рисунка на экран), о том, как подходили к изучению чего-то нового(например, WinAPI и т. п.). Что по-вашему нужно обязательно изучить из основ(построение алгоритмов, например, или основы...
Тема: "Указатели". C++
Составить программу, моделирующую тасование карт в колоде. Принять количество карт равным 52. После тасования раздается 5 карт. Требуется определить, находится ли на руках две запрошенные карты. помогите пожалуйста.
C++ c++ mysql книга http://www.cyberforum.ru/cpp-beginners/thread284474.html
Хочу свою игра перевести на Mysql. Если какое-то масштабная книга про это? Хочу иметь глубокие знанию в этом. Добавлено через 4 часа 10 минут Нужно не просто про MySQL (просто про нее я на данный момент уже читаю), а про применении MySQL на С++.
C++ Количество отр.элементов в строках Помогите решить 3ю задачу..Срочно надо.. подробнее

Показать сообщение отдельно
vortexx1
 Аватар для vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
27.04.2011, 17:08     Зацикливание + вопрос об огородах
Здравствуйте. Написал программу, которая решает квадратные уравнения.

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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#include <conio.h>    //
                      //
#include <iostream>   // 
using namespace std;  //
                      //
#include <math.h>     //                  
////////////////////////
 
int main ()
{
    cout << "Hi! Thank you for using this application!" << endl;
    cout << "_________________________________________\n" << endl;
    
    // объявляем переменные
    double a;   // коэффициент А
    double b;   // коэффициент Б
    double c;   // коэффициент С
    double d;   // дискриминант
    double x1;  // первый икс
    double x2;  // второй икс
    double x;   // икс, для случаев, где на выходе имеем один ответ
    double y;   // корень из дискриминанта
    double ca;  // переменная с/а (строка 121)
    double xx;  // переменная (x * x (строка 127 и далее)) 
      
 
    // просим ввести коэффициенты
    cout << "\nEnter the first coefficient (a): ";
    cin >> a;
    
    cout << "Enter the second coefficient (b): ";
    cin >> b;
    
    cout << "Enter the third coefficient (c): ";
    cin >> c;
    
    // показываем, какое уравнение получилось
    // при различных коэффициентах (сравниваем с нулём)
    if ( a > 0 && b > 0 && c > 0 )
       cout << "\nYour equation is: " << a << "x^2 + " << b << "x + " << c
            << " = 0" << endl;
    
    if ( a < 0 && b < 0 && c < 0 )
       cout << "\nYour equation is: " << a << "x^2 - " << -b << "x - " << -c
            << " = 0" << endl;
            
    if ( a < 0 && b > 0 && c > 0 )
       cout << "\nYour equation is: " << a << "x^2 + " << b << "x + " << c
       << " = 0" << endl;
       
    if ( a > 0 && b < 0 && c > 0 )
       cout << "\nYour equation is: " << a << "x^2 - " << -b << "x + " << c
       << " = 0" << endl;
       
    if ( a > 0 && b > 0 && c < 0 )
       cout << "\nYour equation is: " << a << "x^2 + " << b << "x - " << -c
       << " = 0" << endl;
       
    if ( a < 0 && b < 0 && c > 0 )
       cout << "\nYour equation is: " << a << "x^2 - " << -b << "x + " << c
       << " = 0" << endl;
       
    if ( a > 0 && b < 0 && c < 0 )
       cout << "\nYour equation is: " << a << "x^2 - " << -b << "x - " << -c
       << " = 0" << endl;
       
    if ( a < 0 && b > 0 && c < 0 )
       cout << "\nYour equation is: " << a << "x^2 + " << b << "x - " << -c
            << " = 0" << endl;
    // сделали, идём дальше
 
 
    // предусматриваем случаи, когда коэффициенты равны нулю
        // если а = 0
    if ( a == 0 )
       cout << "\nThis is not quadratic equation!" << endl;
       
       // если б = 0 
    if ( b == 0 && c > 0 )
       cout << "\nYour eqution is: " << a << "x^2 + " << c << " = 0" << endl;
       
    if ( b == 0 && c < 0 )
       cout << "\nYour eqution is: " << a << "x^2 - " << -c << " = 0" << endl;
       
       // если с = 0
    if ( c == 0 && b > 0 )
       cout << "\nYour equation is: " << a << "x^2 + " << b << " = 0" << endl;
       
    if ( c == 0 && b < 0 )
       cout << "\nYour equation is: " << a << "x^2 - " << -b << " = 0" << endl;
 
      // если и б, и с = 0
    if ( a != 0 && b == 0 && c == 0 )
       cout << "\nI'm sorry, but " << a << " isn't 0!" << endl;
    // уравнение показали
    
    // решения для полного уравнения
    if ( a != 0 && b != 0 && c != 0 && d >= 0 )
      {
           // ищем дискриминант и выводим его
           d = (b * b) - (4 * a * c);
           cout << "Discriminant is: " << d << endl;
           
           // решение для дискриминанта < 0
           if ( d < 0 )
             cout << "\nEquation has no solution, because D < 0  :(" << endl;
           
           // решение для дискриминанта = 0
           if ( d == 0 )
            {
             x = -b / (2 * a);
            }
           
           // решения для дискриминанта > 0
           if ( d > 0 )
            {
             y = sqrt (d);   // корень из дискриминанта
             x1 = (-b - y) / (2 * a);
             x2 = (-b + y) / (2 * a);
             cout << "\nx1 is: " << x1 << endl;
             cout << "x2 is: " << x2 << endl;
            }
      }
      
    // для Б = 0 (уравнения вида ax^2 +- c = 0)
    if ( a != 0 && b == 0 && c != 0 && d >= 0 )
      {
           xx = -c / a;
           ca = -c/a;
           
           if (xx > 0)
             {
             x1 = -(sqrt (ca));
             x2 = (sqrt (ca));
             cout << "x1 is: " << x1 << endl;
             }
             
           if (xx < 0)
             cout << "\nI'm sorry, but your equation has no solution :( " << endl;
             
           if (xx == 0)
             cout << "\nx = 0" << endl;   
      }
      
      
    // решения для С = 0 (уравнения вида ax^2 +- bx = 0)
    if ( a != 0 && b != 0 && c == 0 && d != 0 )
      {
           cout << "\nx1 is: 0" << endl;
           
           x2 = (-b / a);
            cout << "x2 is: " << x2 << endl;
      }    
    // закончили!
    
    cout << "\n_________________________________________\n" << endl;
 
     
   getch ();
   return 0;
}
Если что, скачать уже скомпилированную можно [ссылка удалена]

Вопросы:
1. Много ли я ходил огородами при написании программы? Если да, то как можно было бы сделать проще?

2. Как сделать так, чтобы после выдачи ответа программа спрашивала, мол "Хотите выйти из приложения? (да/нет)", и если "нет", то опять просила бы вывести коэффициенты и т. д.? Желательно, используя оператор while (для циклов я пока только его знаю).

Заранее благодарен.

 Комментарий модератора 
Внимательно читаем правила!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru