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
rezervisanje prostora u memoriji (n), za smjestanje clanove niza, od ovog rezervisanog prostora moze se iskoristiti do 30 mjesta |
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 n 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 (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');
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
|
|