Realizacja algorytmu rozwiązywania równania kwadratowego w pascalu

 Algorytm rozwiązywania równania kwadratowego

Algorytm rozwiązywania równania kwadratowego

program Rownanie_kwadratowe;
 
procedure liniowe(a: double; b: double);
var x: double;
begin
  if a=0 then
    if b=0 then
      writeln('Rownanie tozsamosciowe')
    else
      writeln('Rownanie sprzeczne')
  else begin
    x:=-b/a;
    writeln('Rownanie liniowe, x = ',x);
  end;
end;
 
var a,b,c,delta,x,x1,x2: double;
begin
  write('a = ');
  readln(a);
  write('b = ');
  readln(b);
  write('c = ');
  readln(c);
  if a=0 then 
    liniowe(b,c)
  else begin
    delta:=b*b-4*a*c;
    if delta<0 then
      writeln('Brak rozwiazan')
    else
    if delta=0 then begin
      x:=-b/(2*a);
      writeln('Jedno podwojne rozwiazanie x = ',x);
    end else begin
      x1:=(-b+sqrt(delta))/(2*a);
      x2:=(-b-sqrt(delta))/(2*a);
      writeln('x1 = ',x1);
      writeln('x2 = ',x2);
    end;
  end;
end.

 

Linia programu Opis Blok algorytmu
 1 Każdy program w pascalu musi się zaczynać słowem kluczowym program poprzedzającym nazwę programu, nie wnosi nic do realizacji algorytmu. -
3 - 15 Deklarujemy i definiujemy procedurę liniowe, realizującą algorytm rozwiązywania równania liniowego. 4
17 Deklarujemy wszystkie używane w programie głównym zmienne. W pascalu musimy to zrobić przed słowem kluczowym begin, rozpoczynającym część operacyjną kodu. -
18 Początek kodu programu. 1
19 - 24 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
25 Sprawdzamy, czy współczynnik a jest równy 0. Jeśli tak mamy do czynienia z równaniem liniowym. 3
26 W tej linii znajdziemy się tylko wtedy, gdy a = 0, czyli gdy równanie jest równaniem liniowym. Wywołujemy procedurę 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
27 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. -
28 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 Obliczamy i zapisujemy w zmiennej x rozwiązanie równania (jedno, podwójne - delta = 0). 9
34 Wyświetlamy obliczony wynik. 10
35 Rozpoczynamy blok programu realizowany w sytuacji gdy nie był spełniony warunek delta = 0 (oraz wcześniejsze delta < 0 i a  ≠ 0). -
36 - 37 Obliczamy rozwiązania i ich wartości przypisujemy do zmiennych x1 i x2. 11
38 - 39 Wyświetlamy obliczony wynik - dwa rozwiązania równania kwadratowego. 12
40 - 41 Zamykamy bloki instrukcji złożonych. -
42 Koniec realizacji programu. 13