1. Par zināmā kvadrātvienādojuma atrisināšanu

Radošās komūnas licenceVisi Latvijas Universitātes Datorikas fakultātes Jauno datoriķu skolas materiāli ir licencēti. Autors Imants Gorbāns šo materiālu ir licencējis ar Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported licenci.


Kā atceraties no skolas matemātikas, kvadrātvienādojums ir šāda veida izteiksme:

a*x^2 + b*x + c = 0

Kvadrātvienādojumā ir zināmi a, b, c, bet jāaprēkina, pie kādiem x tad izpildīsies nosacījums "=0". Kvadrātvienādojuma saknes jeb atbildes aprēķina pēc skolā apgūtas formulas, ja b^2 -4*a*c >0:

x = (-b + (b^2 -4*a*c)^(1/2))/(2*a)

x = (-b - (b^2 -4*a*c)^(1/2))/(2*a)

Izteiksmes daļu, kas atrodas zem kvadrātsaknes, sauc par diskriminantu. Kā viegli ieraudzīt, ja diskriminants ir ">0", tad atrisinājums ir 2 x vērtības, un ja "=0", tad viena. Savukārt nebūtu labi aizmirst situāciju, kad diskriminants "<0", tad reālu atrisinājumu nav, jo no negatīva skaitļa šajā matemātikā kvadrātsakni izvilkt nevar. Šis paskaidrojums būtībā arī ir programmas algoritma vārdisks izklāsts.

Piemērā dotais programmas kods ir viens no īsākajiem iespējamajiem, bet tam ir trūkums - situācijās, kad atrisinājuma nav, tiek izvadīts būtībā kļūdas paziņojums, kas nav labais stils. Šajā piemērā kā sagatavē tā ir atstāts, lai pašu algoritma pamatideju maksimāli tīri paskaidrotu, bet uzlabot to vajadzētu.