Помогите исправить ошибку в программе. Паскаль
Нужно составить программу, выдающую "День рождения класса" (среднее арифметическое дат и месяцев). Почему то он считает только первого ученика. Не знаю как исправить. Паскаль АВС. (массив не вводить).
Код:
program pro1;
uses
op, obrabotki;
var
sved: svedd;
begin
assign(sved, 'lep_zar');
vvod(sved);
vivod(sved);
count(sved);
end.
Код:
unit obrabotki;
interface
uses
op;
procedure vvod(var sved: svedd);
procedure vivod(var sved: svedd);
procedure count(var sved: svedd);
implementation
procedure vvod(var sved: svedd);
var
i, n: integer;
Lepsved:klass;
begin
rewrite(sved);
repeat
writeln('Ââåäèòå êîëè÷åñòâî ó÷åíèêîâ:');
readln(n);
until n in [1..maxk];
for i := 1 to n do
begin
writeln(i, '-é ó÷åíèê: ');
with lepsved do
begin
write('Ôàìèèÿ ó÷åíèêà: ');
readln(secname);
write('Èíèöèàëû: ');
readln(io);
write('Ââåäèòå äåíü: ');
readln(day);
write('Ââåäèòå ìåñÿö: ');
readln(month);
write('Ââåäèòå ãîä ðîæäåíèÿ:');
readln(year);
write(sved, lepsved);
end;
end;
close(sved);
end;
procedure vivod(var sved: svedd);
var
i, n: integer;
lepsved: klass;
begin
reset(sved);
writeln('-----------------------------');
writeln('Ó÷åíèê': 10, 'Äàòà': 10);
writeln('-----------------------------');
while not eof(sved) do
begin
read(sved, lepsved);
with lepsved do
begin
write(lepsved.secname: 5);
write(' ', lepsved.io: 3);
write(' ', lepsved.day: 2);
write('.', lepsved.month: 2);
writeln('.', lepsved.year: 4);
end;
end;
write('--------------------------------');
close(sved);
end;
procedure count(var sved: svedd);
var
q, w, i, n: integer; z, x: real;
lepsved: klass;
begin
reset(sved);
read(sved, lepsved);
WriteLn;
q := 0;
w := 0;
for i := 1 to n do
begin
q := q + lepsved.day;
w := w + lepsved.month;
end;
z := q / n;
x := w / n;
WriteLn(' Average date: ', z:0:0, ' ', x:0:0);
close(sved); assign(sved, 'lep_zar');
end;
end.
Код:
unit op;
interface
const
maxk = 10;
type
klass = record
secname: string[20];
io: string[5];
day: 1..31;
month: 1..12;
year: 1995..2007;
end;
svedd = file of klass;
implementation
end.
|