#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
float calcDiscriminant(float a, float b, float c){
float Discriminant = (b*b) - 4*a*c;
return sqrt(Discriminant);
}
int main () {
float a, b, c;
cout << "Please enter your nember:\n";
cout << "\na = ";
cin >> a;
cout << "\nb = ";
cin >> b;
cout << "\nc = ";
cin >> c;
cout << "\nYou Discriminant: " << calcDiscriminant(a, b, c);
float D = calcDiscriminant(a, b, c);
if(D > 0){
cout << "\nDiscriminant > 0";
}
else if(D < 0){
cout <<"\nDiscriminant < 0";
}
float x1, x2;
float x[2];
x[1] = (-1*b) - calcDiscriminant(a, b, c);
x[2] = (-1*b) + calcDiscriminant(a, b, c);
cout << "\n\nx1 = " << x[1] / (2*a);
cout << "\n\nx2 = " << x[2] / (2*a);
getch();
return 0;
}
Другие языки программирования и технологии
Проверти правильность программы на C++
Синтаксически верно, семантически нет - считать будет в большинстве случаев неправильно, написано ужасно - половина лишнего.
#include <iostream>
using namespace std;
float calcDiscriminant(float, float, float);
int main ()
{
float a, b, c;
cout << "\n Please enter your nember:\n";
cout << "\n a = "; cin >> a;
cout << " b = "; cin >> b;
cout << " c = "; cin >> c;
float D = calcDiscriminant(a, b, c);
if(D > 0)
{
cout << "\n Discriminant > 0";
float x1, x2;
x1 = -b - D;
x2 = -b + D;
cout << "\n\n x1 = " << x1 / (2 * a);
cout << "\n x2 = " << x2 / (2 * a);
}
else if(D < 0) cout << "\n Discriminant < 0";
else cout << "\n x = " << -b / (2 * a);
cin.get(); cin.get();
return 0;
}
float calcDiscriminant(float a, float b, float c)
{
float D = b * b - 4 * a * c;
if (b * b >= 4 * a * c)
return sqrt(D);
else
return D;
}
using namespace std;
float calcDiscriminant(float, float, float);
int main ()
{
float a, b, c;
cout << "\n Please enter your nember:\n";
cout << "\n a = "; cin >> a;
cout << " b = "; cin >> b;
cout << " c = "; cin >> c;
float D = calcDiscriminant(a, b, c);
if(D > 0)
{
cout << "\n Discriminant > 0";
float x1, x2;
x1 = -b - D;
x2 = -b + D;
cout << "\n\n x1 = " << x1 / (2 * a);
cout << "\n x2 = " << x2 / (2 * a);
}
else if(D < 0) cout << "\n Discriminant < 0";
else cout << "\n x = " << -b / (2 * a);
cin.get(); cin.get();
return 0;
}
float calcDiscriminant(float a, float b, float c)
{
float D = b * b - 4 * a * c;
if (b * b >= 4 * a * c)
return sqrt(D);
else
return D;
}
Неправильно.
Проверка на знак дискриминанта должны осуществляться до вычисления его корня. Ты получишь ошибку при уравнение без корней.
//Вызов из кода
cout << "\nYou Discriminant: " << calcDiscriminant(a, b, c);
//Что происходит в функции
float Discriminant = (b*b) - 4*a*c; //отрицательно, не корней.
return sqrt(Discriminant); //Ошибка, попытка вычислить корень отрицательного числа.
Проверка на знак дискриминанта должны осуществляться до вычисления его корня. Ты получишь ошибку при уравнение без корней.
//Вызов из кода
cout << "\nYou Discriminant: " << calcDiscriminant(a, b, c);
//Что происходит в функции
float Discriminant = (b*b) - 4*a*c; //отрицательно, не корней.
return sqrt(Discriminant); //Ошибка, попытка вычислить корень отрицательного числа.
1. "Your Discriminant", а не "you" (вы дискриминант)
2. перемести float D = calcDiscriminant(a, b, c); выше и выводи
float D = calcDiscriminant(a, b, c);
cout << "\nYou Discriminant: " << D;
3. в условии if( D>0) фигурные скобки не нужны
4. в elseif тоже
5. нет проверки D на 0, в этом случае один корень, а при < 0 их вообще нет!
6. не надо умножать на -1, можно написать -b
7. В С++ используется <cmath>, а не <math.h>
8. Зачем getch(), если подключили conio.h, пиши while(!kbhit());
9. Что такое nember?? number или member =)
10 ИНДЕКСАЦИЯ МАССИВА С 0 !!!x[0], x[1]
11. То, что ты выводишь как дискриминант - это его корень, а не дискриминант.
2. перемести float D = calcDiscriminant(a, b, c); выше и выводи
float D = calcDiscriminant(a, b, c);
cout << "\nYou Discriminant: " << D;
3. в условии if( D>0) фигурные скобки не нужны
4. в elseif тоже
5. нет проверки D на 0, в этом случае один корень, а при < 0 их вообще нет!
6. не надо умножать на -1, можно написать -b
7. В С++ используется <cmath>, а не <math.h>
8. Зачем getch(), если подключили conio.h, пиши while(!kbhit());
9. Что такое nember?? number или member =)
10 ИНДЕКСАЦИЯ МАССИВА С 0 !!!x[0], x[1]
11. То, что ты выводишь как дискриминант - это его корень, а не дискриминант.
Решает, блин, квадрарные уравнения
Решает правильно вроде, но стиль оставляет желать ...
и отсутствует несколько проверок
Решает правильно вроде, но стиль оставляет желать ...
и отсутствует несколько проверок
Похожие вопросы
- Программа на C++ в Windows Form
- Не могу настроить codeBlock для написания программ на c++.
- Написал программу в c++. Отправил на другой компьютер. Выдало ошибку потому
- Помогите с программой Dev C++
- Помогите написать программу на C/C++
- как написать такую программу для c++?
- Я зная C++ (уровень - днище) написал полноценную программу на C# за 7 дней. А программисты C# могут так же на C++?
- Помогите написать программу по C++
- Программа на C++
- помогите написать программу на c++