7. Sąlyginis sakinys

Labai dažnai tenka išskirti duomenis pagal tam tikrus požymius. Tam naudojama Pascal konstrukcija, vadinama sąlyginiu sakiniu.

Sąlyginiu sakiniu parenkamas vienas veiksmas iš dviejų. Pasirinkimas vyksta, atsižvelgiant į sąlygą:
if sąlyga then sakinys1
          else sakinys2

Atliekamas tik vienas iš dviejų sakinių. Jeigu sąlyga tenkinama (yra teisinga), kompiuteris vykdo sakinį, einantį po žodžio then, tai yra sakinys1, jeigu sąlyga netenkinama (yra neteisinga), kompiuteris vykdo sakinį, einantį po žodžio else, tai yra sakinys2.

Pvz. 7.1
Duota skaičių seka. Sekos pabaigos požymis 0. Parašykime programą, kuri rastų teigiamų ir neigiamų sekos narių sumas.

 


Kartais, kai sąlyga teisinga, veiksmas atliekamas, o jeigu sąlyga neteisinga - neatliekamas. Tai užrašoma sutrumpintu sąlyginiu sakiniu:
if sąlyga then sakinys

Pvz. 7.2
Duota skaičių seka. Sekos pabaigos požymis 0. Parašykime programą, kuri suskaičiuotų, kiek sekoje yra lyginių narių.

 


Kartais, atsižvelgiant į sąlygą, nuėjus viena ar kita šaka, reikia atlikti po kelis veiksmus (tai vadinama sudėtiniu sakiniu). Tai nurodoma tuos veiksmus apgaubiant begin ir end, panašiai kaip ir cikle while:
if sąlyga
   then begin
          sakiniai1
        end
   else begin
          sakiniai2
        end

Pvz. 7.3
Duota skaičių seka. Sekos pabaigos požymis nulis. Parašykite programą, kuri suskaičiuotų, kiek yra teigiamų ir neigiamų sekos narių, rastų teigiamų narių sumą, o neigiamų narių - sandaugą ir kvadratų sumą.

 


Užduotys

1 tikrinamasis darbas

Nr. 1
Duota skaičių seka, jos pabaigos požymis nulis. Parašykite programą, kuri suskaičiuotų, kiek seka turi lyginių ir kiek nelyginių narių.

Nr. 2
Duota skaičių seka, jos pabaigos požymis nulis. Parašykite programą, kuri rastų lyginių skaičių sumą ir nelyginių skaičių sandaugą.

Nr. 3
Duota natūraliųjų skaičių seka. Sekos pabaigos požymis nulis. Parašykite programą, kuri :
  1. nustatytų didžiausią sekos skaičių;
  2. nustatytų didžiausią ir mažiausią sekos skaičius;
Nr. 4
Duota natūraliųjų skaičių seka. Sekos pabaigos požymis nulis. Parašyta programa, kuri turi rasti kiek sekoje yra skaičių, lygių duotam skaičiui a. Užbaikite ją ir patikrinkite su duomenimis:
25
123 25 14 45 25 56 789 25 1597 25 0

 

Turite gauti tokį rezultatą:
ka = 4

Nr. 5
Duota natūraliųjų skaičių seka. Sekos pabaigos požymis nulis Parašykite programą, kuri :
  1. patikrintų, ar visi sekos skaičiai lyginiai;
  2. patikrintų, ar sekos skaičiai įvesti didėjimo tvarka;
  3. patikrintų, ar sekos skaičiai išdėstyti nemažėjančiai;
  4. rastų, kiek sekoje yra skaičių, kurie dalijasi be liekanos iš duoto skaičiaus a.
Nr. 6
Prašykite programą, kuri rastų skaičiaus didžiausią ir mažiausią skaitmenis.

Nr. 7
Duotas natūralusis skaičius, kurio paskutinis skaitmuo ne nulis. Parašykite programą, kuri :
  1. nustatytų, kuris didesnis — duotasis ar užrašytas atbulai;
  2. rastų, kiek yra skaitmenų, lygių duotam skaičiui a;
  3. rastų, kiek yra skaitmenų, lygių pirmajam skaitmeniui;
  4. suskaičiuotų, kiek skaitmenų yra nuliai;
  5. suskaičiuotų, kiek yra lyginių skaitmenų.
Nr. 8
Duotas natūralusis skaičius, kurio paskutinis skaitmuo ne nulis. Parašykite programą, kuri :
  1. rastų, kiek turi skaitmenų, iš kurių dalijasi be liekanos, ir juos atspausdintų;
  2. nustatytų, ar duotas skaičius pirminis;
  3. rastų, kiek skaičius turi daliklių ir juos atspausdintų.
Nr. 9
Duotas natūralusis skaičius, kurio paskutinis skaitmuo ne nulis. Parašykite programą, kuri :
  1. patikrintų, ar visi skaitmenys lyginiai;
  2. patikrintų, ar visi skaitmenys lygūs;
  3. patikrintų, ar skaitmenys išdėstyti didėjančiai;
  4. patikrintų, ar skaitmenys išdėstyti nemažėjančiai.
Nr. 10
Duotas natūralusis skaičius, kurio paskutinis skaitmuo ne nulis. Parašykite programą, kuri :
  1. pašalintų iš skaičiaus nulinius skaitmenis;
  2. išmestų vidurinįjį skaitmenį (jei skaitmenų skaičius nelyginis) ir du vidurinius skaitmenis (jei skaitmenų skaičius lyginis).
Nr. 11
  1. Duotas natūralusis skaičius, kurio paskutinis skaitmuo ne nulis. Sutvarkykite programą, kuri rastų didžiausią skaičiaus skaitmenį ir nustatytų, kiek kartų jis sutinkamas skaičiuje.
    Programą patikrinkite su duomenimis:
    19795

     

    Turėtumėte gauti atsakymą:
    max = 9, km = 2

  2. Pakeiskite a atvejo programą, kad problemą išspręstume vienu ciklu.
Nr. 12
Duotas natūralusis skaičius. Parašykite programą, kuri rastų mažiausią skaičiaus skaitmenį ir nustatytų, kiek kartų jis sutinkamas skaičiuje.

Nr. 13
Duota natūraliųjų skaičių seka. Sekos pabaigos simbolis 0. Parašykite programą, kuri :
  1. nustatytų didžiausią sekos skaičių ir rastų, kelintas sekos narys jis yra;
  2. nustatytų mažiausią sekos skaičių ir rastų, kelintas sekos narys jis yra;
  3. rastų didžiausią sekos skaičių ir nustatytų, kiek kartų jis sutinkamas sekoje;
  4. rastų mažiausią sekos skaičių ir nustatytų, kiek kartų jis sutinkamas sekoje;
  5. rastų duotos skaičių sekos lyginių skaičių sumą ir sandaugą;
  6. rastų duotos skaičių sekos nelyginių skaičių sumą ir sandaugą;
  7. suskaičiuotų, kiek duotoje sekoje yra teigiamų skaičių ir rastų jų sumą ir sandaugą;
  8. suskaičiuotų, kiek duotoje skaičių sekoje yra lyginių ir kiek nelyginių skaičių ir rastų jų sumas ir sandaugas;
  9. suskaičiuotų, kiek duotoje sekoje yra skaičių, kurie baigiasi 0 (pvz. 30, 100, 5230 ir t.t.) ir rastų jų sumą;
  10. suskaičiuotų, kiek duotoje sekoje yra teigiamų ir kiek neigiamų skaičių ir rastų jų sumas.
Nr. 14
Duotas skaičių intervalas [m, n]. Parašykite programą, kuri surastų:
  1. pirmą skaičių iš intervalo, kuris dalijasi iš duoto skaičiaus a;
  2. paskutinį skaičių iš intervalo, kuris dalijasi iš duoto skaičiaus a;
  3. kiek intervale yra skaičių, kurie dalijasi iš a ir juos atspausdintų;
  4. pirmą ir paskutinį skaičius iš intervalo, kurie dalijasi iš a.