Одномерный массив. Посчитать средний возраст студентов группы - 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.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

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


СДЕЛАЙТЕ РЕПОСТ