12.71.-1 Napisati program za izračunavanje sume harmonijskog niza:
1 + 1/2 + 1/3 + ... + 1/n
Opis rješenja: Prije sabiranja mora se postaviti početna vrijednost sume s da bi se izvršilo ispravno sabiranje, jer računar dodjeljuje slučajne vrijednosti promjenljivim. Na početku se ispituje da li je upisana vrijednost n pozitivna da bi se mogla izračunti suma.
Tekstualni algoritam:
- učitati do kog broja se izvodi sabiranje (n)
- postaviti početnu vrijednost sume (s :=0;)
- ako je upisana vrijednost manja od 1 ispisati NEKOREKTNA VRIJEDNOST
3.1. ispisati NEKOREKTNA VRIJEDNOST
3.2. inače izračunaj sumu
- za i := 1 do n radi
4.1.formirati novu vrijednost sume (s:=s+1/i;)
- ispisati izračunatu vrijednost sume (WRITELN ('Suma=',s);)
Tabela 12.71.1. Suma recipročnih vrijednosti prirodnih brojeva od 1 do n
Listing programa |
Ekran |
Opis |
PROGRAM Suma_1_n_rec; |
|
Naslov programa |
VAR |
|
Promjenljive |
i, n : INTEGER; |
|
|
s : REAL; |
|
|
BEGIN |
|
|
WRITELN('Suma 1/i'); |
Suma 1/i |
Naslov programa |
s := 0; |
|
Početna vrijednost sume s |
WRITE('Do broja '); |
Do broja |
|
READLN(n); |
3 |
|
IF n < 1 THEN
|
|
Provjera upisane vrijednosti |
WRITELN('Nekorektna vrijednost'); |
|
Nekorektna vrijednost |
ELSE |
|
Ispravna |
FOR i := 1 TO n DO |
|
Promjena i |
s := s + 1/i; |
|
Uvećanje sume |
WRITELN ('Suma niza 1/i =',s:7:5); |
Suma niza 1/i=1.83333 |
Ispis sume |
END. |
|
Kraj programa |
Listing programa:
PROGRAM Suma_1_n_rec;
VAR
i, n : INTEGER;
s : REAL;
BEGIN
WRITELN('Suma 1/i');
s := 0;
WRITE('Do broja ');
READLN(n);
IF n < 1 THEN
WRITELN('Nekorektna vrijednost');
ELSE
FOR i := 1 TO n DO
s := s + 1/i;
WRITELN ('Suma niza 1/i =',s:7:5);
END.
Daljnji rad: Napisati program za ispis vlastitog imena.
Index
|