我有一个小代码,我想按字段初始化一个记录数组,然后在屏幕上输出这些记录。
数据类型:
类型 等级= 1..5; 人=记录 名称:字符串[16]; …
在循环结束时,您应该将记录分配给数组。请注意,与类不同,分配记录 副本 记录中的数据,它没有 参考 记录。所以不是你拥有的,而是做:
for I := 1 to N do begin //write('Gender?'); readln(j); R.isMale:=j>=0; <= This works just fine write('Name? '); readln(R.Name); write('Gender? '); readln(j); R.isMale := j >= 0; write('Grades? '); for j := 1 to 5 do read(R.grades[J]); readln(R.grades[6]); // readln reads the end-of-line too. writeln; Table[I] := R; // copy the data from R into the table end;
那样,来自记录的数据 R 被复制到表中。没有必要复制 R 从循环开始时的表开始,因为表格无论如何都是空的。
R
与类不同,使用这样的记录,您也可以执行以下操作:
write('Name? '); readln(Table[I].Name); write('Gender? '); readln(j); Table[I].isMale := j >= 0; // etc...
在最后一个循环中:
Writeln(I, ' ', Table[I].Name, ' ', Table[I].IsMale);
没有使用 R 一点都不