PROGRAM 22
PROGRAM INTEGER_OPTIMIZATION_PROBLEM;
{ANTHONY F. ORITZ, ASSIGNMENT 7B, JULY 14, 1994}
{THIS PROGRAM COMPUTES AND DISPLAYS THE OPTIMIZATION INTEGER.}
USES CRT;
VAR
X, Y, Z, XMAX, YMAX, ZMAX: INTEGER;
FMAX: REAL;
PROCEDURE INITIALIZE (VAR FMAX: REAL; VAR XMAX, YMAX, ZMAX: INTEGER);
BEGIN
FMAX := -15000;
XMAX := 0;
YMAX := 0;
ZMAX := 0;
END;
FUNCTION F (VAR X, Y, Z: INTEGER): REAL;
BEGIN
F := 80 * X + 160 * Y - 200 * Z - 15000;
END;
FUNCTION INBOUNDS: BOOLEAN;
BEGIN
IF (X + 3 * Y + 5 * Z <= 200) AND (X + Y + Z <= 100) AND (X + Z <= 60) THEN
INBOUNDS := TRUE
ELSE
INBOUNDS := FALSE;
END;
PROCEDURE TESTFORMAX;
BEGIN
IF F (X, Y, Z) > FMAX THEN
BEGIN
FMAX := F (X, Y, Z);
XMAX := X;
YMAX := Y;
ZMAX := Z;
END;
END;
PROCEDURE PRINTRESULTS;
BEGIN
WRITELN ('THE MAXIMUM FUNCTION IS ', FMAX:1:2, ' WHICH OCCURES WHEN X, Y, AND Z = ',XMAX:3,',',YMAX:3,',',ZMAX:3, '.');
WRITELN;
END;
PROCEDURE PAUSE;
BEGIN
WRITE ('PRESS ENTER KEY TO CONTINUE. ');
READLN;
END;
BEGIN
CLRSCR;
INITIALIZE (FMAX, XMAX, YMAX, ZMAX);
FOR X := 0 TO 60 DO
FOR Y := 0 TO 66 DO
FOR Z := 0 TO 40 DO
IF INBOUNDS = TRUE THEN
TESTFORMAX;
PRINTRESULTS;
PAUSE;
END.
{ OUTFILE: PROG22.OUT }
THE MAXIMUM FUNCTION IS -3000.00 WHICH OCCURES WHEN X, Y, AND Z = 50, 50, 0.
PRESS ENTER KEY TO CONTINUE.
BACK TO COMP151 PAGE.