Одномерный массив. Посчитать средний возраст студентов группы - Free Pascal

Формулировка задачи:

Дан массив строк, каждая из которых содержит дату рождения студентов отдельной группы. Посчитать средний возраст студентов группы. Пожалуйста, укажите на ошибку. Программа не работает, указывает на неправильный тип переменной sr. Тем не менее, если sr будет иметь типа extended или real, то результат вычислений выдает неверный. Заранее спасибо.
program z65;
const
        max=100;
var
        date:array[1..max] of string;
        vozr:array[1..max] of string;
        vozr_val:array[1..max] of integer;        sr:integer;
        sr,i,n:integer;
begin
        n:=0;
        read(n);
        for i:=1 to n do
                       begin
                        readln(date[i]);
                        writeln;
                        vozr[i]:=copy(date[i],6,4);
                        val(vozr[i],vozr_val[i]);
                        vozr_val[i]:=2017-vozr_val[i];
                       end;
        sr:=0;
        for i:=1 to n do
                                sr:=sr+vozr_val[i];
        sr:=sr/n;
        writeln(sr);
 
end.

Код к задаче: «Одномерный массив. Посчитать средний возраст студентов группы - Free Pascal»

textual
program z65;
Uses sysutils;
 
const
        max=100;
var
        date:array[0..max] of string;
        vozr_val_1:string;
        vozr_val_2:string;
        vozr_val_3:string;
        sr,i,n:integer;
        years,months,days,year,month,day:real;
begin
        n:=0;
        years:=0;
        months:=0;
        days:=0;
        year:=0;
        month:=0;
        day:=0;
 
        read(n);
        for i:=0 to n do
                       begin
                        readln(date[i]);
                        writeln;
                        vozr_val_1:=copy(date[i],7,4);
                        vozr_val_2:=copy(date[i],1,2);
                        vozr_val_3:=copy(date[i],4,2);
 
                        val(vozr_val_1,year);
                        val(vozr_val_2,day);
                        val(vozr_val_3,month);
                        years:=years + year;
                        months:=months + month;
                        days:=days + day;
                       end;
 
        years:=2017 - (years*365.25 + month*30.4375 + days)/(n*365.25);
 
        writeln(years);
end.

12   голосов, оценка 3.750 из 5


СОХРАНИТЬ ССЫЛКУ