pascal 问题 求程序或者结构

来源:百度知道 编辑:UC知道 时间:2024/06/27 06:14:00
1 怎样计算分数约分(假分数要花带分数,约成最简分数)
2 用户输入一辆车的最大载重X,输入物品量N,输入每件物品的重量和价值,要在不超载的情况下,运输一次,运的价值最大。(子、主程序,不写定义部分)

var
a,b,d:integer;
a1,b1,z:integer;

begin
read(a,b);

if a>=b then begin d:=a div b;a:=a mod b;end;{这里处理带分数}

a1:=a;
b1:=b;

while (a1<>0)and(b1<>0) do {用辗转想除法}
begin
if a1<=b1 then
b1:=b1 mod a1 else
a1:=a1 mod b1;
end;

if a1=0 then z:=b1 else z:=a1;

if d<>0 then write(d,' ');
if a<>0 then
write(a div z,' ',b div z);
end.

至于第二题嘛 我也还是新手哦 不过也自己写了一个
var
m,n:integer;
w,c:array[1..10000] of integer;
i,j,z:integer;
f:array[0..10000,0..10000] of integer;

function max(a,b:integer):integer;
begin
if a>b then exit(a) else exit(b);
end;

begin
readln(m,n);
for i:=1 to n do
readln(w[i],c[i]);

for i:=1 to m do f[0,i]:=0;
for j:=1 to n do f[j,0]:=0;

for i:=1 to n do
for j:=m downto w[i] do
begin<