gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control systemdiff --git a/skripta-spa1.tex b/skripta-spa1.tex
--- a/skripta-spa1.tex
+++ b/skripta-spa1.tex
END;
END IzbaciIzListe;
+PROCEDURE IzbaciIzListeSve(VAR lista:brojevi;
+ br: CARDINAL):CARDINAL;
+(* izbacuje sve brojeve 'br' iz liste, naravno ako
+ postoje i vraca koliko ih je bilo *)
+VAR
+ temp,prethodni:brojevi;
+ brojac : CARDINAL;
+BEGIN
+ brojac := 0;
+ (* uklanjamo sa pocetka koliko je potrebno *)
+ WHILE (lista # NIL) AND (lista^.info = br) DO
+ temp:=lista;
+ lista :=lista^.veza;
+ DISPOSE(temp);
+ INC(brojac);
+ END;
+ (* trazimo u ostatku liste *)
+ IF (lista # NIL) THEN
+ temp:=lista;
+ WHILE (temp^.veza # NIL) DO
+ (* idemo do poslednjeg elementa liste *)
+ prethodni:=temp;
+ temp := temp^.veza;
+ IF temp^.info = br THEN
+ (* prevezemo listu oko elementa *)
+ prethodni^.veza:=temp^.veza;
+ DISPOSE(temp);
+ INC(brojac);
+ (* vracamo se jedan korak da bi
+ u novom krugu proverili i ovaj element *)
+ temp := prethodni;
+ END;
+ END;
+ END;
+ RETURN brojac;
+END IzbaciIzListeSve;
+
(* - procedure sa interakcijom sa korisnikom - *)
PROCEDURE IzbacivanjeEl(VAR lista:brojevi);
WriteLn;
END IzbacivanjeEl;
+PROCEDURE IzbacivanjeElSvi(VAR lista:brojevi);
+(* izbacuje sve primeke unetog broj iz liste
+ koristeci proceduru IzbaciIzListeSve *)
+VAR
+ br, ukupno:CARDINAL;
+BEGIN
+ WriteString("unesite broj za izbacivanje: ");
+ ReadCard(br);
+ ukupno := IzbaciIzListeSve(lista,br);
+ WriteString("Iz liste je izbaceno ");
+ WriteCard(ukupno,3);
+ WriteString(" el.");
+ WriteLn;
+END IzbacivanjeElSvi;
+
PROCEDURE IzbacivanjeK(VAR lista:brojevi);
(* izbacuje k-ti element iz liste *)
VAR
WriteLn;
WriteString("=============================");
WriteLn;
- WriteString("s - stampa");WriteLn;
- WriteString("u - unos");WriteLn;
- WriteString("i - izbacivanje br iz liste");
+ WriteString("s - Stampa");WriteLn;
+ WriteString("u - Unos");WriteLn;
+ WriteString("i - Izbacivanje br iz liste");
+ WriteLn;
+ WriteString("v - izbacivanje svih br iz liste");
WriteLn;
- WriteString("e - izbacivanje k-tog el.");
+ WriteString("e - izbacivanje k-tog El.");
WriteLn;
WriteString("k - stampanje k-tog elementa");
WriteLn;
- WriteString("m - minimalni broj u listi");
+ WriteString("m - Minimalni broj u listi");
WriteLn;
- WriteString("p - pretraga el. u listi");
+ WriteString("p - Pretraga el. u listi");
WriteLn;
WriteLn;
- WriteString("q - kraj rada (quit)");WriteLn;
+ WriteString("q - kraj rada (Quit)");WriteLn;
REPEAT
menu := CAP(RdKey());
- UNTIL menu IN skupZn{'S','U','E','I',
+ UNTIL menu IN skupZn{'S','U','E','I','V',
'M','K','P','Q'};
IF menu#'Q' THEN
CASE menu OF
'S' : Stampaj(lista);|
'U' : Unos(lista);|
'I' : IzbacivanjeEl(lista);|
+ 'V' : IzbacivanjeElSvi(lista);|
'E' : IzbacivanjeK(lista);|
'K' : StampajK(lista); |
'M' : StampajMinimum(lista); |