11.1. Učitati i ispisati članove niza.

Opis programa: Program omogućuje upis i ispis članova niza. Broj članova je definisan sa CONST n=5 (linija 2 i  3). Indeks je cjelobrojna vrijednost (linija 5). Niz je
definisan (linija 6) kao skup od n cjelobrojnih vrijednosti. Ispis naslova programa je u liniji 8. FOR petlja linije 9 do 13 su za  upis članova niza. Sa naredbom WRITE iz linije 11 se ispisuje indeks, a upis vrijednosti člana niza je naredbom READLN(X[i]); (linija 12). Ispis  se izvodi. FOR petlja obezbjeđuje promjenu indeksa (linije 14) dok ispis indeksa i vrijednosti člana niza je naredbom WRITELN('X[',i,'] = ',X[i]); u liniji 15.

N a p o m e n a: Prednost definisanja broja članova kao n omogućuje da ako se ukaže potreba za promjenom broja članova, promjena se izvodi samo na jednom mjestu i ponovo se kompajlira program. To je jednostavnije nego promjena vrijednosti broja članova niza u cijelom programu.

Tekstualni algoritam:
1.  broj članova niza n=5
2.  dimenzionisati niz
3.  za i = 1 do n radi
3.1. upis i-tog člana niza
4.  za i = 1 do n radi
4.1. ispisati i-ti član niza

Tabela 10.3. Niz-ulaz izlaz - Izvođenje programa

**

Listing programa

Memorija

i   x1  x2  x3

Ekran

9   

FOR i := 1 TO n DO

1

 

10  

BEGIN

 

 

11  

WRITE(i,'-->');

 

 

12  

READLN(X[i]);

    3

3

13  

END;

 

 

9   

FOR i := 1 TO n DO

2

 

10  

BEGIN

 

 

11  

WRITE(i,'-->');

        7

7

12  

READLN(X[i]);

 

 

13  

END;

 

 

9   

FOR i := 1 TO n DO

3

 

10  

BEGIN

 

 

11  

WRITE(i,'-->');

   

 

12  

READLN(X[i]);

            2

2

13  

END;

 

 

14  

FOR i := 1 TO n DO

1

 

15  

WRITELN('X[',i,']=',X[i]);

 

X[1]=3

14  

FOR i := 1 TO n DO

2

 

15  

WRITELN('X[',i,']=',X[i]);

 

X[2]=7

14  

FOR i := 1 TO n DO

3

 

15  

WRITELN('X[',i,']=',X[i]);

 

X[3]=2

Tabela 10.4. Niz - ulaz izlaz

**

Listing programa

Opis

1   

PROGRAM NIZ_IO;

Naslov programa

2   

CONST

Deklarisanje

3   

  n = 3;

Broj članova niza

4   

VAR

Promjenljive

5   

 i : INTEGER;

Indeks

6   

 X : ARRAY [1..n] OF INTEGER;

Niz

7   

BEGIN

 

8   

  WRITELN('Ulaz i izlaz niza');

Naslov

9   

  FOR i := 1 TO n DO  šulazć

 

10  

    BEGIN

 

11  

      WRITE(i,' --> ');

 

12  

      READLN(X[i]);

Upis članova niza

13  

    END;

 

14  

  FOR i := 1 TO n DO  šizlazć

Petlja

15  

    WRITELN('X[',i,'] = ',X[i]);

Ispis na ekran

16

END.

Kraj programa

Listing programa:

I Verzija
PROGRAM p10111001;
USES
  WinCrt;
CONST
  n = 3;          { broj clanova niza }
VAR               { deklarisanje promjenljivih }
 i : INTEGER;                  { cjelobrojne promjenljive }
 X : ARRAY [1..n] OF INTEGER;  { rezervisanje prostora u memoriji (3 za ovaj slucaj), za smjestanje clanove niza, od ovog rezervisanog prostora moze se iskoristiti do 30 mjesta -  za ovaj slucaj su cjelobrojne vrijednosti }
BEGIN
  WRITELN('Ulaz i izlaz niza');

                                       { ucitavanje clanova niza }
  WRITELN('Ucitavanje clanova niza');
  FOR i := 1 TO n DO         { ponavljaj za i=1 do n - pocetak petlje }
    BEGIN               
      WRITE(i,' --> ');      { ispis indeksa }
      READLN(X[i]);          { ucitavanje clana niza }
    END;

                                   { ispis clanova niza }
  WRITELN('ispis clanova niza');
  FOR i := 1 TO n DO  {izlaz}      { ponavljaj za i=1 do n - pocetak petlje }
    WRITELN('X[',i,'] = ',X[i]);   { ispis clana niza }
END.

II Verzija       
PROGRAM p10111001;
USES
  WinCrt;
CONST
  maxn = 30;          { maksimalan broj clanova niza }
VAR                              { deklarisanje promjenljivih }
 i, n : INTEGER;                 { cjelobrojne promjenljive }
 X : ARRAY [1..maxn] OF INTEGER; { rezervisanje prostora u memoriji (30 za ovaj slucaj), za smjestanje clanove niza, od ovog rezervisanog prostora moze se iskoristiti do 30 mjesta -  za ovaj slucaj su cjelobrojne vrijednosti }
BEGIN
  WRITELN('Ulaz i izlaz niza');
  WRITE('Broj clanova niza 1-30 ');    { navodimo koliko smo rezervisali prostora }
  READLN(n);                           { broj clanova niza }
                       { ucitavanje clanova niza }
  FOR i := 1 TO n DO          { ponavljaj za i=1 do n - pocetak for petlje }
    BEGIN
      WRITE(i,' --> ');       { indeks clana niza }
      READLN(X[i]);           { ucitavamo vrijednosti za clanove  niza od prvog clana niza X[1] do X[n] }
    END;
                                   { ispis clanova niza }
  WRITELN('Ispis clanova niza');
  FOR i := 1 TO n DO  {izlaz}      { ponavljaj za i=1 do n - pocetak petlje }
    WRITELN('X[',i,'] = ',X[i]);   { ispis clana niza }
END.

Ispis na ekranu:

Index