8.2.. Prebrojati prirodne brojeve iz intervala od k do n koji su djelivi sa 3. Za generisanje prirodnih brojeva koristiti WHILE petlju.

Opis rješenja: Izbor djeljivih sa 3 se izvodi logičkim izrazom i MOD 3=0. Logički izraz je istinit kad pri dijeljenju broja sa 3 nema ostatka (ostatat=0), formira se nova vrijednost brojača. Početna vrijednost brojača je nula (br:=0). Vrijednost brojača se uvaćava za jedan (br+1) kad je logički izraz i MOD 3=0 istinit.

Opis programa: Početne vrijednosti brojača br:=0 i kontrolne varijable i:=k. Provjera djeljivosti broja sa 3 se izvodi logičkim izrazom i MOD 3=0. Logički izraz je istinit ako pri djeljenju nema ostatka. Brojač br se uvećava za jedan (br+1) za svaki broj koji je djeljiv sa 3. Vrijednost se pridružuje varijabli br. Petlja se ponavlja za sve vrijednosti upisanog intervala (k, n). Ispis izračunate vrijednosti brojača je na kraju.

Tabela 8.8. Prebrojati prirodne brojeve od k do n djelive sa 3

Tekstualni algoritam 

Listing programa:

Ekran

 

PROGRAM PP8_8;

 

 

VAR

 

 

  i, k, n, br: Integer;

 

 

BEGIN

 

 

  REPEAT

 

1. granice intervala (k, n)

    Write('Granice intervala ');

 

 

    Readln(k, n);

Granice 2 16

2. ako su pogrešne granice (k>n), idi na 1

  UNTIL k<n;

 

3. postaviti početne vrijednosti brojača

  br := 0 ;

 

i kontrolne varijable i

  i := k;

 

4. dok je i<=n radi

  WHILE i <= n DO

 

 

    BEGIN

 

4.1. ako je broj i djeljiv sa 3 uvećati brojač

      IF i MOD 3 = 0 THEN

 

 

        br := br + 1;

 

4.2. uvećati kontrolnu varijablu i

      i := i + 1;

 

 

    END;  (* while *)

 

5. ispis izračunatu vrijednosti brojača

  Writeln('Od ', k, ' do ', n, ' ima ', br, ' brojeva djeljivih sa 3');

Od 2 do 16 ima 5 brojeva djeljivih sa 3

 

END.

 

Listing programa:

PROGRAM P08212074;
USES
  WinCrt;
VAR
  i, k, n, br: Integer;
BEGIN
  REPEAT
    Write('Granice intervala ');
    Readln(k, n);
  UNTIL k<n;
  br := 0 ;
  i := k;
  WHILE i <= n DO
    BEGIN
      IF i MOD 3 = 0 THEN 
        br := br + 1;
      i := i + 1;
    END;  (* while *)
  Writeln('Od ', k, ' do ', n, ' ima ', br, ' brojeva djeljivih sa 3');
END.

Ispis na ekranu:
 

Index