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:
- učitati do kog broja se izvodi sabiranje (n)
- postaviti početnu vrijednost sume (s :=0;)
- za i := 1 do n radi
formirati novu vrijednost sume (s:=s+i;)
- 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
|
|