8.1.. Izračunati i ispisati sumu prvih n prirodnih brojeva. Koristiti FOR petlju.

Opis rješenja: Početna vrijednost sume s (0). FOR petlja obezbjeđuje promjenu vrijednosti kontrolne varijable i od jedan (1) do n. Formiranje sume se izvodi unutar FOR petlje. Izraz s:=s+i je računarski ,a ne matematički izraz. Njim se predstavlja dinamika promjene vrijednosti varijable s. Desni dio izraza (s+i) predstavalja uvećanje vrijednosti varijable s za vrijednost kontrolne varijable i. Izračunata vrijednost se pridružuje varijabli s. Zato se izraz s:=s+i čita s i postaje s+i tj. s prima vrijednost s+i. Postupak se ponavlja sve dok je i<= n.

Opis programa: Po učitavanju broja n do kog se izvodi sabiranje postavlja se početna vrijednost sume s (0). Sa naredbom FOR je formirana petlja koja mijenja vrijednosti kontrolne varijable i od jedan (1) do n. Formiranje sume s je obezbjeđeno unutar ove petlje. Pri prvom prolazu kroz petlju se na vrijednost sume (nula) dodaje vrijednost varijable i (jedan) (s+i=1+0=1). Izračunata vrijednost se pridružuje varijabli s (s:=1). Postupak se ponavlja za i=2 (s+i=2+1=3) i tako redom dok i ne postane veće od n. Na kraju je ispis izračunate sume s.

Tekstualni algoritam:

  1. učitati do kog broja se izvodi sabiranje (n)
  2. postaviti početnu vrijednost sume (s :=0;)
  3. za i := 1 do n radi
    formirati novu vrijednost sume (s:=s+i;)
  4. ispisati izračunatu vrijednost sume (WRITELN ('Suma=',s);)

Tabela 8.2. Sumu prvih n prirodnih brojeva - FOR petlja

Tekstualni algoritam 

Listing programa:

Ekran

 

PROGRAM PP4_2;

 

 

VAR

 

 

  i, n, s: Integer;

 

 

BEGIN

 

 

  Write('Do broja n ');

 

1. učitati broj (n)

  Readln(n);

Do broja 3

2. početna vrijednost sume (s=0)

  s := 0;

 

3. za i=1 do n radi

  FOR i := 1 TO n DO

 

3.1. formirati novu sumu (s=s+i)

    s := s + i;

 

4. ispisati izračunatu sumu s

  Writeln('Suma do ', n, ' je ', s);

Suma do 3 je 6

 

END.

 

Listing programa:

PROGRAM p08112001;
USES
  WinCrt;
VAR
  i, n, s : INTEGER;
BEGIN
  WRITE('Do broj  ');
  READLN( n );
  s := 0;
  FOR i := 1 TO n DO
    s := s + i;
  WRITELN('n = ', n, '  suma ', s );
END.

Ispis na ekranu:

Index