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.