会pascal和c++的进来.

来源:百度知道 编辑:UC知道 时间:2024/05/05 20:19:53
RT,
帮忙将下面的c语言翻译成pascal 多谢,重重加分啊..
#include <iostream.h>
#include <fstream.h>

ifstream fin("stick.in");
ofstream fout("stick.out");
int l[1001],w[1001],pl[1001],pw[1001];
int n,p;

void main() {
int i,j,t;
fin>>n;
for (i=1;i<=n;i++) fin>>l[i]>>w[i];
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++)
if (l[i]<l[j]||(l[i]==l[j]&&w[i]<w[j])) {
t=l[i];
l[i]=l[j];
l[j]=t;
t=w[i];
w[i]=w[j];
w[j]=t;
}
p=0;
for (i=1;i<=n;i++) {
for (j=1;j<=p;j++)
if (pl[j]>=l[i]&&pw[j]>=w[i])
break;
if (pl[j]>=l[i]&&pw[j]>=w[i]) {
pl[j]=l[i];
pw[j]=w[i];
} else {
pl[++p]=l[i];
pw[p]=w[i];
}
}
fout<<p<<endl;
}

多谢,在线等.

program Noname0(input,output);

var
fin:FILE of integer;
fout:FILE of integer;
pw,l,w,pl:array[1..1001]of integer;
i,j,t,n,p:integer;
begin
assign(fin,'stick.in');
assign(fout,'stick.out');
reset(fin);
read(fin,n);
for i:=1 to n do read(fin,l[i],w[i]);
close(fin);
for i:=1 to n do
for j:=i+1 to n do
if (l[i]<l[j]) and (w[i]<w[j]) then begin
t:=l[i];
l[i]:=l[j];
l[j]:=t;
t:=w[i];
w[i]:=w[j];
w[j]:=t;
end;
p:=0;
for i:=1 to n do begin
for j:=1 to p do
if (pl[j]>=l[i]) and (pw[j]>=w[i]) then break;
if (pl[j]>=l[i])and (pw[j]>=w[i]) then begin
pl[j]:=l[i];
pw[j]:=w[i];
end else begin
pl[++p]:=l[i];
pw[p]:=w[i];
end;
end;
rewrite(fout);
wri