Naredba for..downto

     

 

Osim petlje for..to postoji i petlja for..downto. Ona je također petlja s unaprijed poznatim brojem ponavljanja.

Naredba for..downto razlikuje se od petlje for..to samo po tome što se brojač mijenja od veće ka manjoj vrijednosti. Sve ostalo što vrijedi za for..to vrijedi i za for..downto.

Dakle opći oblik naredbe je:

for i:=pocetna downto konacna do

     naredba;

Brojač i mijenja se od početne vrijednosti do konačne umanjujući se za 1. Također uvijek mora biti početna vrijednost veća ili jednaka konačnoj. U protivnom naredbe u petlji se neće nikada izvršiti.

Ako umjesto jedne naredbe treba ponoviti neki blok naredbi onda je opći oblik petlje

for i:=pocetna downto konacna do

begin

    naredba_1;

    naredba_2;

    .....

    naredba_n;

end;

Tijek izvršavanja for..to petlje:

  1. brojač se postavlja na početnu vrijednost
  2. uspoređuje se vrijednost brojača sa konačnom vrijednošću.
  3. ako je vrijednost brojača veća ili jednaka konačnoj vrijednosti izvršava se naredba (blok naredbi) u petlji. Brojač se smanjuje za 1 i ponavlja se točke 2.
  4. ako je brojač manji od konačne vrijednosti izlazimo iz petlje i nastavljamo program s prvom naredbom koja slijedi iza petlje.

Pogledajmo što će se ispisati ako primjere riješene sa for..to napišemo sa for..downto:

Primjer 1:

Napomena: brojaču moramo zamijeniti početnu i konačnu vrijednost jer ako ostaje 1 downto 5 naredbe u petlji neće se niti jednom izvršiti.

for i:=5 downto 1 do

      writeln('sutra je novi dan');

Isto kao i sa for..to na zaslon će se ispisati 5 puta tekst
"Sutra je novi dan".

Primjer 2:

for i:= 20 to 1 do
       write(i:3 );

Na zaslon će se ispisati brojevi od 20 prema 1.

Zadatak 1:

Napišite program koji će ispisati sve djelitelje učitanog prirodnog broja.

Napomena:
Djelitelji učitanog broja su svi on s kojima je učitani broj dijeljiv. Npr učitamo 24, njegovi djelitelji su: 1, 2, 3, 4, 6, 8, 12, 24.

U sljedećoj lekciji pogledajte kako pisati petlju u petlji!