10. Ciklas for | ||
for i := m to n do
{i yra ciklo kintamasis, m ciklo kintamojo pradinė reikšmė}
begin {n yra ciklo kintamojo galinė reikšmė} sakinys1 sakinys2 sakinys3 . . . sakinysp {paskutinis sakinys} end Kompiuteris, kiekvieną kartą atlikęs sakinius, padidina vienetu i reikšmę ir tai daro tol kol ji tampa lygi galinei reikšmei. Tada sakiniai atliekami paskutinį kartą ir vykdomi tolimesni programoje nurodyti veiksmai. Ciklas for atliekamas n – m + 1 kartą (t.y. sakiniai tarp begin ir end bus atliekami tiek kartų). Iš čia galima matyti, kad jei m lygu n, tai ciklas atliekamas tik vieną kartą, o jei m > n, tai neatliekamas nei karto. Konstrukcija for yra vadinama žinomo kartojimų skaičiaus ciklu. Ciklo kintamojo reikšmė keičiama automatiškai. Jį galima naudoti kartojamuose sakiniuose, bet negalima jam priskirti kitos reikšmės. Pvz. 10.1 Duotas natūraliųjų skaičių intervalas [m, n]. Parašykime programą, kuri rastų intervalo skaičių sumą.
program suma; var m, n, i : integer; sum : longint; begin read(m, n); sum := 0; for i := m to n do sum := sum + i; writeln('sum = ', sum) end. 1 tikrinamasis darbas Pvz. 10.2 Duotas natūraliųjų skaičių intervalas [m, n]. Parašykime programą, kuri rastų intervalo skaičių kvadratų sumą, suskaičiuotų kiek yra skaičių dalių iš a arba iš b bei juos visus atspausdintų vienoje eilutėje.
program interval;
var m, n, a, b, d : integer; sum : longint; begin writeln('Įveskite intervalo galus'); read(m, n); writeln('Įveskite skaičius a ir b'); readln(a, b); d := 0; sum := 0; for i := m to n do begin sum := sum + i * i; if (i mod a = 0) or (i mod b = 0) then begin d := d + 1; write(' ', i, ' ') end end; writeln; writeln('sum = ',sum, ' d = ', d) end. Užduotys Nr.1 Naudodami ciklą for parašykite programą, kuri apskaičiuotų: a) intervalo [m; n] skaičių sumą ir jų kvadratų sumą; b) intervalo [m; n] skaičių sumą ir sandaugą; c) intervalo [m; n] lyginių skaičių sumą ir sandaugą; d) intervalo [m; n] nelyginių skaičių sumą ir lyginių skaičių sandaugą; e) kiek intervalo [m; n] skaičių baigiasi 0. Nr. 2Programuotojui moka a litų atlyginimą. Darbdavys pažadėjo kiekvieną mėnesį padidinti atlyginimą x litų, parašykite programą (būtinai naudodami ciklą for), kuri surastų: a) koks atlyginimas bus po metų; b) koks atlyginimas bus po n mėnesių; c) koks atlyginimas bus po m metų. Nr. 3 Parašyta programa, kuri turi rasti sumą n dėmenų sudarytų iš vienetų (paskutinis dėmuo sudarytas iš n vienetų). 1 + 11 + 111 + … + 11…1; Programoje vietoje tritaškių įrašykite trūkstamas dalis. program suma;
Nr. 4 var d, sum: longint; n, ... : integer; begin writeln('Įveskite n'); read(...); d := 0; sum := 0; for i := 1 to ... do begin d := d * ... + ...; sum := ... + d end; writeln('... = ', ...) end. Parašykite programą sumai rasti: 1*3 + 3*5 + 5*7 + … + n*(n + 2). |
||