12-01-2007, 06:19 PM
program bbsort_with_name;
uses crt;
var x,y,n,temp, temprank :integer;
tempname : string;
a: array[1..10] of integer;
name: array[1..10] of string;
rank: array[1..10] of integer;
procedure enter;
begin
for x:=1 to n do begin
write('no. ',x,' ');
readln(name[x]);
a[x]:=random(100);
end
end;
procedure sort;
begin
for x:=1 to n-1 do
for y:=1 to n-x do
if a[y] <= a[y+1] then begin
temp:=a[y]; a[y]:=a[y+1]; a[y+1]:=temp;
tempname:= name[y]; name[y]:= name[y+1]; name[y+1]:= tempname
end;
end;
procedure sortname;
begin
for x:=1 to n-1 do
for y:=1 to n-x do
if name[y] >= name[y+1] then begin
tempname:= name[y]; name[y]:= name[y+1]; name[y+1]:= tempname;
temprank:= rank[y]; rank[y]:= rank[y+1]; rank[y+1]:= temprank;
temp:=a[y]; a[y]:=a[y+1]; a[y+1]:=temp
end;
end;
procedure output;
begin
for x:=1 to n do writeln(name[x]:10,a[x]:4,rank[x]:4);
end;
Begin
randomize;
clrscr;
n:=10;
enter;
sort;
for x:=1 to n do rank[x]:=x; (* assign rank *)
sortname;
output
End.
uses crt;
var x,y,n,temp, temprank :integer;
tempname : string;
a: array[1..10] of integer;
name: array[1..10] of string;
rank: array[1..10] of integer;
procedure enter;
begin
for x:=1 to n do begin
write('no. ',x,' ');
readln(name[x]);
a[x]:=random(100);
end
end;
procedure sort;
begin
for x:=1 to n-1 do
for y:=1 to n-x do
if a[y] <= a[y+1] then begin
temp:=a[y]; a[y]:=a[y+1]; a[y+1]:=temp;
tempname:= name[y]; name[y]:= name[y+1]; name[y+1]:= tempname
end;
end;
procedure sortname;
begin
for x:=1 to n-1 do
for y:=1 to n-x do
if name[y] >= name[y+1] then begin
tempname:= name[y]; name[y]:= name[y+1]; name[y+1]:= tempname;
temprank:= rank[y]; rank[y]:= rank[y+1]; rank[y+1]:= temprank;
temp:=a[y]; a[y]:=a[y+1]; a[y+1]:=temp
end;
end;
procedure output;
begin
for x:=1 to n do writeln(name[x]:10,a[x]:4,rank[x]:4);
end;
Begin
randomize;
clrscr;
n:=10;
enter;
sort;
for x:=1 to n do rank[x]:=x; (* assign rank *)
sortname;
output
End.