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


textual

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

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

Источник
Похожие ответы