X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=spa2-teorijske-vezbe.git;a=blobdiff_plain;f=01.%20Dvosmerni%20recnik%2FXDS%2FRECNIKTEST.MOD;fp=01.%20Dvosmerni%20recnik%2FXDS%2FRECNIKTEST.MOD;h=e1b97a29c1a651e2b85dd0581b87532cb8b2bdcd;hp=0000000000000000000000000000000000000000;hb=8a74ce20c68b61b8992a348e34c43671116e9549;hpb=a35f3e51789ace81cea01e548963568da918635f diff --git a/01. Dvosmerni recnik/XDS/RECNIKTEST.MOD b/01. Dvosmerni recnik/XDS/RECNIKTEST.MOD new file mode 100644 index 0000000..e1b97a2 --- /dev/null +++ b/01. Dvosmerni recnik/XDS/RECNIKTEST.MOD @@ -0,0 +1,141 @@ +MODULE RecnikTest; + + FROM RecnikATP IMPORT + String, Recnik, Inicijalizuj, Ubaci, Izbaci, Sadrzaj, Prevedi, Unisti; + FROM IO IMPORT + WrLn, WrStr, RdStr, WrCard, RdChar, WrChar, RdInt; + + + VAR + R: Recnik; + Rec, Prevod: String; + Izbor: CHAR; + Izb : INTEGER; + Ok, Duplikat, Domaca, StrNaDom: BOOLEAN; + +PROCEDURE Clr(r : CARDINAL); +VAR + i : CARDINAL; +BEGIN + FOR i:=1 TO r DO + WrLn; + END; +END Clr; + +PROCEDURE Clear(); +BEGIN + Clr(40); +END Clear; + + PROCEDURE Meni(VAR Izbor: CHAR); + TYPE + Slova = SET OF CHAR; + VAR + i: CARDINAL; + BEGIN + Clear; + FOR i:= 1 TO 8 DO + WrLn; + END; + WrStr(' P --- prevod reci'); WrLn; + WrStr(' B --- broj reci u recniku'); WrLn; + WrStr(' U --- ubacivanje nove reci i njenog prevoda u recnik'); WrLn; + WrStr(' I --- izbacivanje reci i njenog prevoda iz recnika'); WrLn; + WrStr(' S --- sekvencijalni prikaz recnika'); WrLn; + WrStr(' Q --- kraj rada'); + Clr(7); + REPEAT + Izbor:= CAP(RdChar()); + UNTIL Izbor IN Slova {'P', 'B', 'U', 'I', 'S', 'Q'}; + Clear; + END Meni; + + PROCEDURE Pauza; + VAR + c: CHAR; + BEGIN + WrLn; + WrStr('Enter za nastavak');WrLn; + (* visak RdChar-ova zbog Entera i sl *) + c := RdChar(); + c := RdChar(); + c := RdChar(); + END Pauza; + +BEGIN + Inicijalizuj(R); + REPEAT + Meni(Izbor); + CASE Izbor OF + 'P': REPEAT + WrStr('1) prevod strane reci'); WrLn; + WrStr('2) prevod domace reci'); WrLn; + WrLn; + WrStr("Unesite '1' ili '2' --- "); + Izb:= RdInt(); + WrLn; + UNTIL (Izb = 1) OR (Izb = 2); + StrNaDom:= Izb = 1; + IF StrNaDom THEN + WrStr('Unesite stranu rec ---- '); + RdStr(Rec); + Prevedi(StrNaDom, Rec, Prevod, R, Ok); + IF Ok THEN + WrStr('Prevod ---------------- '); + WrStr(Prevod); + ELSE + WrStr('Zadata rec se ne nalazi u recniku.'); + END; + ELSE + WrStr('Unesite domacu rec ---- '); + RdStr(Rec); + Prevedi(StrNaDom, Rec, Prevod, R, Ok); + IF Ok THEN + WrStr('Prevod ---------------- '); + WrStr(Prevod); + ELSE + WrStr('Zadata rec se ne nalazi u recniku.'); + END; + END; + Pauza; | + 'B': WrStr('Recnik raspolaze fondom od '); + WrCard(R.BrojReci, 1); + WrStr(' reci.'); + Pauza; | + 'U': WrStr('Unesite novu domacu rec ----- '); + RdStr(Rec); + WrStr('Unesite njen prevod -------- '); + RdStr(Prevod); + Ubaci(Rec, Prevod, R, Duplikat); + IF Duplikat THEN + WrStr('U recniku se vec nalazi data rec.'); + ELSE + WrStr('Upisano.'); + END; + Pauza; | + 'I': WrStr('Unesite rec --- '); + RdStr(Rec); + REPEAT + WrStr('uneta rec je'); WrLn; + WrStr('1) strana'); WrLn; + WrStr('2) domaca'); WrLn; + WrLn; + WrStr("Unesite '1' ili '2' --- "); + Izb:= RdInt(); + WrLn; + UNTIL (Izb = 1) OR (Izb = 2); + Domaca:= Izb = 1; + Izbaci(Rec, R, Domaca, Ok); + IF Ok THEN + WrStr('Izbrisano.') + ELSE + WrStr('Rec se nije ni nalazila u recniku.') + END; + Pauza; | + 'S': Sadrzaj(R); + Pauza| + ELSE ; + END; + UNTIL Izbor = 'Q'; + Unisti(R); +END RecnikTest.