Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MODULE bla;
- FROM InOut IMPORT WriteString, WriteLn, WriteCard, ReadCard;
- FROM FIO IMPORT File, Exists, Open, Close, Create, RdCard, WrCard, WrStr, RdStr, WrLn, RdItem, EOF;
- FROM Str IMPORT Compare;
- TYPE
- string = ARRAY [1..100] OF CHAR;
- element = RECORD
- br : CARDINAL;
- imePisca : string;
- imeKnjige : string;
- END;
- tniz = ARRAY [0..1000] OF element;
- VAR
- niz : tniz;
- n : CARDINAL;
- PROCEDURE ucitaj( ime : string; VAR niz : tniz; VAR n : CARDINAL ) : BOOLEAN;
- VAR
- ulaz : File;
- rez : BOOLEAN;
- i : CARDINAL;
- BEGIN
- rez := FALSE;
- IF Exists( ime ) THEN
- ulaz := Open( ime );
- n := RdCard( ulaz );
- i := 1;
- EOF := FALSE;
- WHILE (i <= n) AND ( NOT EOF ) DO
- niz[i].br := RdCard(ulaz);
- RdItem( ulaz , niz[i].imePisca );
- RdItem( ulaz , niz[i].imeKnjige );
- INC( i );
- END;
- IF (i - 1) = n THEN rez := TRUE; END;
- Close( ulaz );
- END;
- RETURN rez;
- END ucitaj;
- PROCEDURE snimi( ime : string; VAR niz : tniz; VAR n : CARDINAL );
- VAR
- izlaz : File;
- i : CARDINAL;
- BEGIN
- izlaz := Create( ime );
- WrCard( izlaz, n, 0 ); WrLn(izlaz );
- FOR i := 1 TO n DO
- WrCard( izlaz, niz[i].br, 0); WrLn( izlaz );
- WrStr( izlaz, niz[i].imePisca ); WrLn( izlaz );
- WrStr( izlaz, niz[i].imeKnjige ); WrLn( izlaz );
- END;
- Close( izlaz );
- END snimi;
- PROCEDURE sortiraj( VAR niz : tniz; n : CARDINAL; polje : CARDINAL );
- PROCEDURE comp( i, j : CARDINAL ) : BOOLEAN;
- BEGIN
- IF polje = 1 THEN
- RETURN niz[i].br > niz[j].br;
- ELSIF polje = 2 THEN
- RETURN Compare( niz[i].imeKnjige, niz[j].imeKnjige ) > 0;
- ELSIF polje = 3 THEN
- RETURN Compare( niz[i].imePisca, niz[j].imePisca ) > 0;
- END;
- END comp;
- VAR
- i, j, min : CARDINAL;
- temp : element;
- BEGIN
- FOR i := 1 TO n - 1 DO
- temp := niz[i];
- min := i;
- FOR j := i + 1 TO n DO
- IF comp( min, j ) THEN
- min := j;
- temp := niz[min];
- END;
- END;
- IF i # min THEN
- niz[min] := niz[i];
- niz[i] := temp;
- END;
- END;
- END sortiraj;
- VAR
- polje : CARDINAL;
- BEGIN
- IF ucitaj( "knjige12.txt" , niz, n ) THEN
- WriteString("--- sortiraj po( unesi broj od 1 do 3 )---"); WriteLn;
- ReadCard( polje ); WriteLn;
- IF ( polje >= 1 ) AND ( polje <= 3 ) THEN
- sortiraj( niz, n, polje );
- snimi( "sortirano.txt", niz, n );
- WriteString("---sortirano i snimljeno---"); WriteLn;
- ELSE
- WriteString("---sortiranje nije moguce po tom polju---"); WriteLn;
- END;
- ELSE
- WriteString("---Ucitavanje nije uspelo!!!---"); WriteLn;
- END;
- END bla.
Add Comment
Please, Sign In to add comment