Realizacja algorytmu rozwiązywania równania kwadratowego w C++

Algorytm rozwiązywania równania kwadratowego

Przykład realizacji algorytmu rozwiązywania równania kwadratowego

#include <iostream>
#include <math.h>
using namespace std;
void liniowe(float a, float b){
  if(a==0)
    if(b==0)
      cout<<"Rownaie tozsamosciowe"<<endl;
    else
      cout<<"Rownanie sprzeczne"<<endl;
  else{
    float x;
    x=-b/a;
    cout<<"x = "<<x;
  }
}
int main(void){
  float a, b, c;
  cout<<"a = ";
  cin>>a;
  cout<<"b = ";
  cin>>b;
  cout<<"c = ";
  cin>>c;
  if(a==0)
    liniowe(b, c);
  else{
    float delta;
    delta=b*b-4*a*c;
    if(delta<0)
      cout<<"Brak rozwiazan"<<endl;
    else
    if(delta==0){
      float x;
      x=-b/(2*a);
      cout<<"Jedno podwojne rozwiazanie x = "<<x<<endl;
    } else{
      float x1, x2;
      x1=(-b+sqrt(delta))/(2*a);
      x2=(-b-sqrt(delta))/(2*a);
      cout<<"x1 = "<<x1<<endl;
      cout<<"x2 = "<<x2<<endl;
    }
  }
}

 

Linia programu Opis Blok algorytmu
 1 Dołączamy plik nagłówkowy biblioteki iostream (strumieni wejścia-wyjścia). Jest to niezbędne, gdyż w dalszej części programu będziemy chcieli mieć możliwość pisania na ekranie (cout) i wczytywania danych wejściowych z klawiatury (cin). -
2 Dołączamy plik nagłówkowy biblioteki math (biblioteki matematycznej). W programie będziemy korzystali z funkcji sqrt (pierwiastek kwadratowy) zdefiniowanej w tej bibliotece. -
3 Informujemy kompilator, że będziemy używać w programie nazw zdefiniowanych w przestrzeni nazw std (będą to: cin, cout, endl), gdybyśmy tego nie uczynili konieczne byłoby używanie dłuższego zapisu nazw kwalifikowanych (std::cin, std::cout, std::endl). -
4 - 15 Deklarujemy i definiujemy funkcję liniowe, realizującą algorytm rozwiązywania równania liniowego. 4
16 Początek funkcji main. Wykonanie programu w języku C++ rozpoczyna się od funkcji main. 1
17 Deklarujemy zmienne a, b, c; każda zmienna przed użyciem musi zostać zadeklarowana. -
18 - 23 Wypisujemy na ekranie komunikaty zachęty dla użytkownika i wczytujemy wprowadzone przez niego wartości współczynników a, b i c do odpowiednich, wcześniej zadeklarowanych, zmiennych. 2
24 Sprawdzamy, czy współczynnik a jest równy 0. Jeśli tak mamy do czynienia z równaniem liniowym. 3
25 W tej linii znajdziemy się tylko wtedy, gdy a = 0, czyli gdy równanie jest równaniem liniowym. Wywołujemy funkcję liniowe(b, c), realizującą algorytm rozwiązywania równania liniowego. Warto zwrócić uwagę, że współczynnik przy pierwszej potędze zmiennej x oznaczony jest symbolem b, a wyraz wolny - c (tradycyjnie w równaniu liniowym używa się odpowiednio a i b). 4
26 else, czyli w przeciwnym przypadku. W tym miejscu rozpoczyna się rozwiązanie równania, gdy a ≠ 0, czyli gdy faktycznie mamy do czynienia z równaniem kwadratowym. -
27 - 28 Deklarujemy i obliczamy wartość zmiennej delta. 5
29 Sprawdzamy czy delta < 0. 6
30 Gdy delta < 0 wypisujemy odpowiedni komunikat o braku rozwiązań. 7
31 Tutaj rozpoczyna się blok programu realizowany gdy delta nie jest mniejsza od zera, czyli gdy równanie posiada rozwiązania (jedno lub dwa). -
32 Sprawdzamy czy delta = 0. 8
33 Deklarujemy zmienną x, w której umieścimy rozwiązanie (jedno, podwójne - delta = 0). -
34 Obliczamy i zapisujemy w zmiennej x rozwiązanie równania. 9
35 Wyświetlamy obliczony wynik. 10
36 Rozpoczynamy blok programu realizowany w sytuacji gdy nie był spełniony warunek delta = 0 (oraz wcześniejsze delta < 0 i a  ≠ 0). -
37 Deklarujemy zmienne x1 i x2, w których umieścimy rozwiązania równania. -
38 - 39 Obliczamy rozwiązania i ich wartości przypisujemy do zmiennych x1 i x2. 11
40 - 41 Wyświetlamy obliczony wynik - dwa rozwiązania równania kwadratowego. 12
42 - 43 Zamykamy bloki instrukcji złożonych. -
44 Nawias klamrowy kończący funkcję main, a więc realizację całego programu. 13