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:

  1. učitati do kog broja se izvodi sabiranje (n)
  2. postaviti početnu vrijednost sume (s :=0;)
  3. ako je upisana vrijednost manja od 1 ispisati NEKOREKTNA VRIJEDNOST
    3.1. ispisati NEKOREKTNA VRIJEDNOST
    3.2. inače izračunaj sumu
  4. za i := 1 do n radi
    4.1.formirati novu vrijednost sume (s:=s+1/i;)
  5. 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