Напишете функция, която намира и отпечатва решенията на квадратно уравнение.
По желание: Напишете функция, която намира решенията на квадратно уравнение, но ги връща като резултат.
Напишете функция, която намира и отпечатва решенията на квадратно уравнение.
По желание: Напишете функция, която намира решенията на квадратно уравнение, но ги връща като резултат.
[c] за С++ програми [/c]
[pascal] за паскал [/pascal]

за Къде се намира точка
за Вмъкване и изтриване на елемент *
за Позицията на X




за Броят на максималните елементи




за Броят на максималните елементи
за Пари за закуска




за Ученици с дадена оценка




за По-големи от средното| П | В | С | Ч | П | С | Н |
|---|---|---|---|---|---|---|
| « февр. | ||||||
| 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 | ||||||
#include <cstdlib> #include <iostream> #include <math.h> using namespace std; void kvadratno(double a,double b,double c) { double d,x,y; d=pow(b,2)+4*a*c; cout<<"D:"<<d<<endl; if (d<0) cout<<"nqma re6enie ! "<<endl; else if (d==0) cout<<"x=0 !"; else{ x=(-b+sqrt(d))/(2*a); cout<<"x:"<<x<<endl; y=(-b-sqrt(d))/(2*a); cout<<"y:"<<y<<endl; } } int main(int argc, char *argv[]) { double a,b,c; cout<<"a:"; cin>>a; cout<<"b:"; cin>>b; cout<<"c:"; cin>>c; kvadratno(a,b,c); system("PAUSE"); return EXIT_SUCCESS; }Миро, при d=0 решението не е 0, а -b/(2*a).
#include <cstdlib> #include <iostream> #include <math.h> using namespace std; int lineino(int a, int b, double &x) { if ((a==0)&&(b!=0)) return -2;//ako a=0 b!=0 nqma reshenie if ((a!=0)&&(b==0)) return -1;//ako b=0 vsqko x e reshenie if ((a!=0)&&(b!=0)) { x=(-b/a);//i to e -b/a return 0;//ima reshenie } } int kvadratno(int a, int b, int c, double &x1, double &x2)//a,b,c parametri na uravnenieto , x1,x2 resheniqta //1- 2 korena , 0- 1 koren , -1-vsqko x, -2-nqma reshenie { double d; d=pow(b,2)-4*a*c; if (a==0) return lineino(b,c,x1); //-2 NR -1 vsqko x 0 reshenie else if (d==0) { x1=-b/2*a; return 0; }//ima edin koren else if (d<0) return -3; else { x1=((-b+sqrt(d))/2*a); x2=((-b-sqrt(d))/2*a); return 1; } } int main(int argc, char *argv[]) { int a,b,c; double x1,x2; cin>>a>>b>>c; switch (kvadratno(a,b,c,x1,x2)) { case 1 : cout<<"x1="<<x1<<" x2="<<x2;break; case 0 : cout<<"x1="<<x1;break; case -1 :cout<<"Vsqko x e reshenie";break; case -2 :cout<<"Nqma reshenie";break; case -3 :cout<<"Nqma realni koreni";break; } cout<<endl; system("PAUSE"); return EXIT_SUCCESS; }Добре! Харесва ми и това, че във функцията за квадратно уравнение използваш функцията за линейно уравнение, за да опростиш кода и…
#include <cstdlib> #include <iostream> #include <math.h> using namespace std; void KVU(int a,int b,int c,double &x1,double &x2) { float D; D=sqrt(b*b-4*a*c); if (D>0) { x1=(-b+D)/2*a; x2=(-b-D)/2*a; cout<<"x1= "<<x1<<endl; cout<<"x2= "<<x2<<endl; } if (D==0){ x1=-b/2*a; cout<<"x1= "<<x1<<endl; } if (D<0) cout<<"Nqma re6enie \n"; } int main(int argc, char *argv[]) { int a,b,c; double x1,x2; cout<<"Vyvedete koeficientite na kvadratno uravnenie: \na: "; cin>>a; cout<<"b: "; cin>>b; cout<<"c: "; cin>>c; cout<<endl; KVU(a,b,c,x1,x2); system("PAUSE"); return EXIT_SUCCESS; }Макса, не си разгледал варианта a=0. Освен това x1 и x2 не е нужно да са декларирани като параметри, защото така или иначе в главната програма не може да се прецени кой от случаите е – дали има корени въобще и колко са – един или два. Така че няма и как да се използват стойностите които връщат.