Pascal排列数组,带有行号
Pascal arranging array, with a row number
type
mas = array [1 .. 10000] of real;
var
n: integer;
a: mas;
Rf: text;
Procedure Skaityti;
var
i: integer;
Df: text;
begin
Assign(Df, 'duom1.txt');
Reset(Df);
Readln(Df, n);
for i := 1 to n do
Read(Df, a[i]);
Close(Df);
end;
Procedure MinMax(var min, max, nrmin, nrmax, vid: real);
var
i: integer;
begin
min := a[1];
max := a[1];
nrmin := 1;
nrmax := 1;
for i := 1 to n do
begin
if min > a[i] then
begin
min := a[i];
nrmin := i;
end;
if max < a[i] then
begin
max := a[i];
nrmax := i;
end;
vid := vid + a[i];
end;
vid := vid / n;
end;
var
min, max, nrmin, nrmax, vid: real;
begin
Skaityti;
MinMax(min, max, nrmin, nrmax, vid);
Assign(Rf, 'rez.txt');
Rewrite(Rf);
WriteLn(Rf, 'biggest amount ', max:7:2, ' number ', nrmax:7:0);
WriteLn(Rf, 'smallest amount ', min:7:2, ' number', nrmin:7:0);
WriteLn(Rf, 'average amount ', vid:7:2);
WriteLn(Rf);
WriteLn(Rf, 'number amount');
Close(Rf);
end.
这是代码,它将元素从 .txt 文件读取到数组,我创建了程序来查找它的最大和最小值。现在我需要创建一个过程来从最大到最小编写我的数组,并在它旁边写一个行号。它应该看起来像这样:
Row number value
5 1000000
6 999999
8 888888
等等..有什么想法吗?
P.S。我可以将该数组安排为从最大到最小,但行号会弄乱:/
创建一个包含两个字段的记录类型,一个用于文件中的值,另一个用于 "row" 数字。
将数组更改为该记录类型的数组。
for循环读取文件时,将读取的值赋值给记录的value域,for循环控制变量值作为"row"数
对数组进行排序时,对记录进行排序,从而使值和行保持在一起。
type
mas = array [1 .. 10000] of real;
var
n: integer;
a: mas;
Rf: text;
Procedure Skaityti;
var
i: integer;
Df: text;
begin
Assign(Df, 'duom1.txt');
Reset(Df);
Readln(Df, n);
for i := 1 to n do
Read(Df, a[i]);
Close(Df);
end;
Procedure MinMax(var min, max, nrmin, nrmax, vid: real);
var
i: integer;
begin
min := a[1];
max := a[1];
nrmin := 1;
nrmax := 1;
for i := 1 to n do
begin
if min > a[i] then
begin
min := a[i];
nrmin := i;
end;
if max < a[i] then
begin
max := a[i];
nrmax := i;
end;
vid := vid + a[i];
end;
vid := vid / n;
end;
var
min, max, nrmin, nrmax, vid: real;
begin
Skaityti;
MinMax(min, max, nrmin, nrmax, vid);
Assign(Rf, 'rez.txt');
Rewrite(Rf);
WriteLn(Rf, 'biggest amount ', max:7:2, ' number ', nrmax:7:0);
WriteLn(Rf, 'smallest amount ', min:7:2, ' number', nrmin:7:0);
WriteLn(Rf, 'average amount ', vid:7:2);
WriteLn(Rf);
WriteLn(Rf, 'number amount');
Close(Rf);
end.
这是代码,它将元素从 .txt 文件读取到数组,我创建了程序来查找它的最大和最小值。现在我需要创建一个过程来从最大到最小编写我的数组,并在它旁边写一个行号。它应该看起来像这样:
Row number value
5 1000000
6 999999
8 888888
等等..有什么想法吗?
P.S。我可以将该数组安排为从最大到最小,但行号会弄乱:/
创建一个包含两个字段的记录类型,一个用于文件中的值,另一个用于 "row" 数字。
将数组更改为该记录类型的数组。
for循环读取文件时,将读取的值赋值给记录的value域,for循环控制变量值作为"row"数
对数组进行排序时,对记录进行排序,从而使值和行保持在一起。