Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MODULE zad4;
- FROM FIO IMPORT File,Open,Close, Exists, RdCard;
- FROM InOut IMPORT WriteString, WriteLn, ReadString, WriteCard;
- FROM Str IMPORT Length;
- CONST
- MaxSijalica=50;
- MaxPovrsina=100;
- TYPE
- niz=ARRAY[0..MaxSijalica] OF CARDINAL;
- mat=ARRAY[0..MaxSijalica],[0..MaxPovrsina] OF CARDINAL;
- string=ARRAY[1..80] OF CHAR;
- VAR
- ime:string;
- ok:BOOLEAN;
- broj,povrs,potrosnja, red:niz;
- BrSijalica,Povrsina,UkBroj,UkPovrs:CARDINAL;
- PROCEDURE jelka(broj,povrs,potrosnja:niz; BrSijalica,Povrsina:CARDINAL; VAR red:niz; VAR UkBroj, UkPovrs:CARDINAL; VAR ok:BOOLEAN);
- VAR
- J,R,novibroj:CARDINAL;
- matrica:mat;
- BEGIN
- IF (BrSijalica>0) AND (BrSijalica<=MaxSijalica) AND (Povrsina>0) AND (Povrsina<=MaxPovrsina) THEN
- ok:=TRUE;
- FOR J:=1 TO BrSijalica DO
- IF (broj[J]<=0) OR (povrs[J]<=0) OR (potrosnja[J]<=0) THEN
- ok:=FALSE;
- END;
- END;
- ELSE
- ok:=FALSE;
- END;
- IF ok THEN
- FOR J:=0 TO BrSijalica DO
- matrica[J,0]:=0;
- END;
- FOR R:=1 TO Povrsina DO
- matrica[0,R]:=0;
- END;
- FOR J:=1 TO BrSijalica DO
- FOR R:=1 TO Povrsina DO
- matrica[J,R]:=matrica[J-1,R];
- IF R>=povrs[J] THEN
- novibroj:=matrica[J-1, R-povrs[J]]+broj[J];
- IF novibroj>matrica[J,R] THEN
- matrica[J,R]:=novibroj;
- END;
- END;
- END;
- END;
- UkPovrs:=0;
- R:=Povrsina;
- FOR J:=BrSijalica TO 1 BY -1 DO
- IF matrica[J,R]<>matrica[J-1,R] THEN
- red[J]:=1;
- UkPovrs:=UkPovrs+povrs[J];
- R:=R-povrs[J];
- ELSE
- red[J]:=0;
- END;
- END;
- UkBroj:=matrica[BrSijalica, Povrsina];
- END;
- END jelka;
- PROCEDURE Ucitaj(ime:string; VAR BrSijalica, Povrsina: CARDINAL; VAR broj,povrs, potrosnja: niz):BOOLEAN;
- VAR
- f:File;
- i:CARDINAL;
- BEGIN
- IF Exists(ime) THEN
- f:=Open(ime);
- BrSijalica:=RdCard(f);
- Povrsina:=RdCard(f);
- FOR i:=1 TO BrSijalica DO
- broj[i]:=RdCard(f);
- povrs[i]:=RdCard(f);
- potrosnja[i]:=RdCard(f);
- END;
- Close(f);
- RETURN TRUE;
- ELSE
- RETURN FALSE;
- END;
- END Ucitaj;
- PROCEDURE IspisiRedosled(red:niz; BrSijalica:CARDINAL);
- VAR
- i:CARDINAL;
- BEGIN
- WriteString("Redosled je: ");
- WriteLn;
- FOR i:=1 TO BrSijalica DO
- IF red[i]=1 THEN
- WriteCard(i,2);
- IF (i<>BrSijalica) THEN
- WriteString(",");
- END;
- END;
- END;
- END IspisiRedosled;
- BEGIN
- WriteString("Unesite fajl:");
- WriteLn;
- ReadString(ime);
- IF Length(ime)=0 THEN
- ime:='fajl1.txt';
- END;
- IF Ucitaj(ime, BrSijalica, Povrsina, broj,povrs,potrosnja) THEN
- UkPovrs:=0;
- UkBroj:=0;
- jelka(broj,povrs,potrosnja,BrSijalica,Povrsina, red,UkBroj,UkPovrs, ok);
- IF ok THEN
- IspisiRedosled(red,BrSijalica);
- WriteLn;
- WriteString("UkBroj: ");
- WriteCard(UkBroj,3);
- WriteLn;
- WriteString("UkPovrs: ");
- WriteCard(UkPovrs,3);
- WriteLn;
- ELSE
- WriteString("greska!");
- END;
- ELSE
- WriteString("Greska u ucitavanju!");
- END;
- END zad4.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement