ТЕСТУВАННЯ З МОВИ ПРОГРАМУВАННЯ PASCAL
Практична робота 37.
Алгоритми
знаходження максимумів виразів на множині цілих чисел
Завдання 1.Створити та
реалізувати алгоритм мовою програмування Pascal,
що знаходить найбільше значення виразу -3х-5у
при таких обмеженнях: -10<х<10; -10<y<10; 2x-3y<=5; 5x-2y<=8.
Program MAX1;
var
a,b:array[1..1000] of integer;
z, k,x,y,i,m,p: integer;
begin k:=0; p:=-1000;
for x:= -9 to 9 do begin writeln(x, ' =x');
for
y:= -9 to 9 do begin writeln(y,
' =y');
m:=-3*x-5*y; writeln(-3*x-5*y, ' =-3*x-5*y');
if
((2*x-3*y)<=5)and((5*x-2*y)<=8)and(m>p) then begin
k:=k+1; a[k]:=x;
b[k]:=y; writeln(' k= ', k);
writeln(' a[k]:=', a[k]); writeln(' b[k]:=',
b[k]);
writeln(' значення виразу: - 3*x-5*y =',
-3*a[k]-5*b[k]);
end;
end; end;
for i:= 1 to k do
writeln(' x=a[i]= ', a[i], ' y=b[i]= ', b[i], ' i=', i, ' -3*a[i]-5*b[i]=',-3*a[i]-5*b[i], ' 5*x-2*y=',5*a[i]-2*b[i], ' 2*x-3*y=', 2*a[i]-3*b[i]);
z:=-3*a[1]-5*b[1];
for i:= 1 to k do begin if
(z<(-3*a[i]-5*b[i]))
then z:=-3*a[i]-5*b[i]; end;
writeln(' найбільше
значення виразу: -3*x-5*y=', z, ' кількість кроків k=', k);
writeln(' ***'); end.
Завдання 2.Створити та
реалізувати алгоритм мовою програмування Pascal,
що знаходить найбільше значення виразу -7х+8у
при таких обмеженнях: -20<х<20; -5<y<5; x-3y<=12; -x+3y<=10.
Program MAX2;
var
a,b:array[1..1000] of integer;
z, k,x,y,i,m,p: integer;
begin k:=0; p:=-1000;
for x:= -20 to 20 do begin writeln(x, ' =x');
for
y:= -5 to 5 do begin writeln(y,
' =y');
m:=-7*x+8*y; writeln(-7*x+8*y, ' =-7*x+8*y');
if
((x-3*y)<=12)and((-x+3*y)<=10)and(m>p) then
begin
k:=k+1; a[k]:=x;
b[k]:=y; writeln(' k= ', k);
writeln(' a[k]:=', a[k]); writeln(' b[k]:=',
b[k]);
writeln(' значення виразу: - 7*x+8*y =',
-7*a[k]+8*b[k]);
end;
end; end;
for i:= 1 to k do
writeln(' x=a[i]= ', a[i], '
y=b[i]= ', b[i], ' i=', i,
'
-7*a[i]+8*b[i]=',-3*a[i]-5*b[i],
' x-3*y=', a[i]-3*b[i],
' -x+3*y=',
-a[i]+3*b[i]);
z:=-7*a[1]+8*b[1];
for i:= 1 to k do begin if
(z<(-7*a[i]+8*b[i])) then z:=-7*a[i]+8 *b[i]; end;
writeln('
найбільше значення виразу: -7*x+8*y=', z, '
кількість кроків k=', k);
writeln(' ***'); end.
Немає коментарів:
Дописати коментар