Pentru a rezolva o ecuație pătratică, problema pe pascal, programare pentru incepatori

Redactare. Sunt numere reale a. b și c. și amenda de 0. Rezolva pătratic ecuația ax 2 + bx + c = 0 sau raportează că nu există soluții reale.

Decizie. De la algebră știm că:

uravnenieax pătrat 2 + bx + c = 0, vyrazhenieD = b 2 - 4 ac - discriminant:

- esliD> 0 are două soluții. ;

- esliD = 0 are o soluție unică;

- esliD <0, не имеет действительных решений.

Prin urmare, avem nevoie pentru a calcula discriminante (notoriu pentru variabila lui d reală de tip real) și, în funcție de valoarea sa de a organiza o sucursală. În primul rând, trebuie să verificați dacă ecuația are soluții reale (pentru a face capul variabilelor x 1 și x 2 tipuri de reale). Dacă este așa, și dacă discriminante nu este egal cu zero, vom calcula ambele soluții conform formulelor, iar daca discriminantul este zero, atunci vom calcula o soluție unică. În cazul în care nu există soluții reale, obținem un mesaj text despre el. Algoritmul de bază este ilustrată prin următoarea diagramă de flux:

Pentru a rezolva o ecuație pătratică, problema pe pascal, programare pentru incepatori

Trei bloc nedescifrate sunt declarații de ieșire standard. Să le examinăm în detaliu.

1) În derivarea celor două rădăcini ale expresiei va fi după cum urmează:

x1: = (-b + sqrt (d)) / 2 * a;

x2: = (-b - sqrt (d)) / 2 * a;

writeln ( 'x1 =', x1: 4: 2, 'x2 =' x2: 4: 2);

În acest caz, expresia afișată ar arata astfel: „x = 1 m. x 2 = n“. care este evidențiat în albastru constante de text fără echivoc, care sunt luate din lista de argumente pentru writeln. Valorile calculate x 1 și x 2. Mai mult decât atât, rădăcinile sunt obținute într-o formă formatat primul număr după colon specifică o lățime câmp pentru variabila de ieșire cu o perioadă (când deficitul domeniu va extinde programul), iar numărul de după colon doilea - - roșu numărul de caractere afișat fracționată (nu poate fi modificată în timpul funcționării programului);

2) În derivarea aceeași rădăcină - este afișată toate la fel, doar o singură rădăcină:

3) În absența rădăcinilor reale ale mesajului:

writeln ( 'Nu există soluții reale!');

Ca rezultat, interior inclusive corp condițională va arăta astfel:

în cazul în care d <> 0 apoi începe

x1: = (-b + sqrt (d)) / 2 * a;

x2: = (-b - sqrt (d)) / 2 * a;

writeln ( 'x1 =', x1: 4: 2, 'x2 =' x2: 4: 2)

articole similare