Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROGRAM zad1_30_6_2011;
- CONST max_duz = 255;
- TYPE niz = array [1..max_duz] of char;
- {slicno bi bilo i sa string[255]}
- FUNCTION ucitaj(VAR a:niz; VAR n:integer):boolean;
- VAR i: integer;
- BEGIN
- writeln('Unesite duzinu niza: ');
- readln(n);
- IF (n > 0) AND (n <= max_duz) THEN
- BEGIN
- writeln('Unesite niz: ');
- FOR i:= 1 TO n DO
- readln(a[i]);
- ucitaj:= true; {ucitavanje uspelo}
- END
- ELSE ucitaj:= false; {nije uspelo}
- END;
- PROCEDURE ispisi(a:niz; n:integer);
- VAR i:integer;
- BEGIN
- FOR i:= 1 TO n DO
- write(a[i], ' ');
- END;
- PROCEDURE izbaciDuplikate(VAR a:niz; VAR n:integer);
- VAR i,j,k:integer;
- BEGIN
- {Uporedjuje se svaki element niza, sa svim narednim
- elementima. Ako medju narednim elementima nadjemo
- neki koji je jednak tekucem elementu on ce biti izbacen.
- Zapravo u nizu ostavljamo samo one elemente koji su
- razliciti od tekuceg.}
- FOR i:= 1 TO n-1 DO BEGIN
- {Posto cemo umesto da izbacujemo elemente koji su jednaki
- prepisivati one koji su razliciti (jer nam je tako brze i
- lakse) promenljivu k koristimo da nam ukaze koje je sledece
- mesto na koje se prepisuje element. Niz koji citamo,
- takodje pomatramo kao odrediste, tako sto prvo procitamo
- element, i ako zadovoljava uslov smestimo ga na
- odgovarajuce mesto k (sto u pocetku moze biti isti element
- koji smo procitali. Nakon nekog vremen, posto se nece
- prepisati svi elementi, k koje ukazuje na “prazno mesto”
- ce nam zaostati za brojacem j koji ispituje elemente za
- prepisivanje, i tako zapravo izbacujemo duplikate}
- k:=i+1;
- FOR j:= i+1 TO n DO BEGIN
- IF a[j] <> a[i] THEN BEGIN
- a[k]:= a[j]; k:= k+1;
- END;
- END;
- {Niz se skratio jer smo izbacili neke elemente. Kako je k
- pokazivalo na sledecu slobodno poziciju, novu duzinu niza
- dobijemo tako sto k umanjimo za jedan.}
- n:= k+1;
- END;
- END;
- VAR a: niz;
- n: integer;
- BEGIN
- WHILE ucitaj(niz,n) DO BEGIN
- izbaciDuplikate(niz,n);
- ispisi(a,n);
- END;
- END.
Add Comment
Please, Sign In to add comment