8.3.. Izračunati i ispisati sumu prvih n prirodnih brojeva. Koristiti REPEAT petlju.

Opis rješenja: Početna vrijednost varijable s (suma) je 0, a kontrolne varijable i jedan (1). Vrijednost sume s se uvećava za vrijednost kontrolne varijable i (s+i=0+1=1). Izračunata vrijednost se pridružuje varijabli s sa izrazom (s=s+i) (odnosno s:=s+i). Vrijednost kontrolne varijable i se uvećava za 1 te se dodaje na vrijednost sume s (s+i=1+2=3). Ovo je nova vrijednost sume s. Proces uvećanja kontrolne varijable i i dodavanja na vrijednost sume se ponavlja sve dok je vrijednost kontrolne varijable i manja ili jednaka n.

Opis programa: Vrijednost varijable n (koliko će se sabrati brojeva) se upisuje na početku.  Zatim se postavljaju početne vrijednosti varijable s (s:=0) i varijable i (i:=1). REPEAT petlja počinje sa izrazom s:=s+i. Računar izvodi prvo desni dio ovog izraza. Vrijednost varijable s se uvećava za vrijednost varijable i (s+i). Ova vrijednost se pridružuje varijabli s. Zatim se uvećava vrijednost varijable i. Petlja se ponavlja sve dok vrijednost varijable i ne bude veća od n. Izračunata vrijednost s se ispisuje na kraju programa.
Postavljanje početne vrijednosti sume je u liniji 8, a uvećanje vrednosti sume je u liniji 11. Ispis vrijednosti sume u liniji 14.

Tabela 8.30. Suma do n

**

Listing programa

Ekran

Opis

1

PROGRAM Suma_1_n;

 

Naslov programa

2

VAR

 

Promjenljive

3

  i, n, s : Integer;

 

 

4

BEGIN

 

Početak programa

5

  WRITELN('Suma 1_n');

1-n

Naslov

6

  WRITE('Do broja ');

Do broja

 

7

  READLN(n);

3

 

8

  s := 0;

 

Početne vrijednosti sume

9

  i:= 1;

 

Početne vrijednosti i

10

  REPEAT

 

Početak petlje

11

    s: = s + i;

 

Uvećanje sume

12

    i := i + 1;

 

Slijedeći

13

  UNTIL i>n;

 

? Kraj petlje

14

  WRITELN('Suma 1_ ',n,' je ',s);

Suma 1_3 je 6

Ispis sume

Listing programa:

PROGRAM p08312001;
{suma prvih N prirodnih brojeva}
USES
  WinCrt;
VAR                   { deklarisanje promjenljivih }
  i, n, s : Integer;  { cjelobrojne promjenljive }
BEGIN
  WRITELN('Suma 1_n');
  WRITE('Do broja ');
  READLN(n);
  s := 0;          { pocetna vrijednost sume }
  
  i:=1;                 { pocetna vrijednost kontrolne varijable }
  REPEAT                { pocetak repeat petlje - radi/ponavljaj }
    s := s + i;         { suma s postaje stara vrijednost sume uvecana za vrijednost i }   
    i := i + 1;         { slijedeca vrijednost kontrolne varijable i }
  UNTIL i > n;          { ponavljaj sve dok nebude i > n - kraj repeat petlje }
  
  WRITELN('Suma 1_ ',n,' je ',s);
END.

Ispis na ekranu:

Index