9. Vienas iš kelių veiksmų

Kartais reikia parinkti vieną iš kelių veiksmų. Pasirinkimas vyksta, atsižvelgiant į sąlygas. Tikrinti reikia viena sąlyga mažiau negu yra galimų pasirinkimų:

Pvz.

if sąlyga1
  then if sąlyga2
         then sakinys1
         else if sąlyga3
                then sakinys2
                else sakinys3
  else if sąlyga4
        then sakinys4
        else sakinys5

Atliekamas tik vienas iš penkių sakinių, o kuris iš jų – priklauso nuo to kuri iš sąlygų teisinga.

Pvz. 9.1

Duota natūraliųjų skaičių seka. Sekos pabaigos požymis 0. Parašykime programą, kuri rastų sekos narių mažesnių už 10 sandaugą, dviženklių sekos narių kvadratų sumą, triženklių sekos narių sumą, suskaičiuotų sekos narius didesnius už 999.

 

Labai dažnai sprendžiant praktinius uždavinius naudojami realūs skaičiai. Programavimo kalbose kintamieji įgyjantys tokias reikšmes yra aprašomi realiųjų skaičių tipu real.

Į ekraną išvedant realius skaičius (dažniausiai programos rezultatus) patartina nurodyti jų tikslumą.

Pvz. writeln(‘x = ‘, x : 5 : 3)

Antrasis skaičius nurodo kiek spausdinti po kablelio skaitmenų (skaičiaus tikslumą). Pirmasis skaičius nurodo kiek vietos iš viso skiriama kintamojo reikšmei išvesti į ekraną. Jeigu nurodoma per mažai vietos, programa pati pasiima tiek kiek trūksta, kad skaičius sutilptų.

Kvadratinės šaknies traukimas Pascal programavimo kalboje žymimas sqrt. Pvz. sqrt(x)

Pvz. 9.2

Parašykime programą, kuri išspręstų kvadratinę lygtį. Lygties šaknys gali būti ne tik sveiki skaičiai, bet ir realūs. Žinome, kad sprendžiant kvadratinę lygtį reikia apskaičiuoti diskriminantą D. Jeigu jo reikšmė neigiama, tai lygtis šaknų neturi, jei D = 0, tai lygtis turi vieną šaknį, jei D teigiamas, tai lygtis turi dvi šaknis.

 

1 tikrinamasis darbas

Pvz. 9.3

Parašykime programą, kuri išspręstų duotą lygčių sistemą su dviem nežinomaisiais.



Kad parašyti programą, reikia mokėti spręsti tokią lygčių sistemą. Išnagrinėsime vieną iš sprendimo būdų. Jį naudojant yra skaičiuojami dydžiai vadinami determinantais.

D = a1b2 - a2b1 , Dx = c1b2 - c2b1 , Dy = a1c2 - a2c1

1) Jei D = 0 ir bent vienas iš skaičių Dx ir Dy nelygus nuliui, tai lygčių sistema neturi sprendinių.

2) Jei D = Dx = Dy = 0, tai lygčių sistema turi be galo daug sprendinių.

3) Jei D nelygu nuliui, tai lygčių sistema turi vieną sprendinį, skaičių porą ir .

 

Kartais, kai reikia atlikti vieną iš kelių veiksmų ir naudojame sutrumpintus sąlyginius sakinius, reikia rašyti tuščius else arba apgaubti juos begin ir end.

Pvz. Kompiuteris šiuos sakinius atliks nebūtinai taip kaip išdėstyta, todėl tokias konstrukcijas reikia naudoti atsargiai.

if sąlyga1
  then if sąlyga2
         then if sąlyga3
              then sakinys2
         else if sąlyga4
              then sakinys3
  else sakinys4

Užduotys

Nr.1
a) Duota skaičių seka, jos pabaigos požymis nulis. Parašykime programą, kuri rastų sekos narių mažesnių už 100 kvadratų sumą, triženklių sekos narių sumą, suskaičiuotų kiek sekos narių didesnių už 999 yra lyginiai.

b) Duota skaičių seka, jos pabaigos požymis nulis. Parašykime programą, kuri rastų vienženklių sekos narių sandaugą, mažesnių už 100 lyginių sekos narių kvadratų sumą, triženklių sekos narių, kurie baigiasi nuliu sumą, suskaičiuotų kiek sekos narių didesnių už 999 dalijsi iš 5.

Nr. 2
Duota natūraliųjų skaičių seka. Sekos pabaigos požymis nulis. Parašykite programą, kuri rastų kiek sekoje yra skaičių, lygių duotam skaičiui a, kiek didesnių ir kiek mažesnių už jį.

Nr. 3

Parašykite programą, kuri spręstų lygtį ax = b, kur a ir b sveiki skaičiai.