Вычислить среднее арифметическое значение тех элементов одномерного массива, которые попадают в интервал - Turbo Pascal (33786)

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

1)Дано: Вычислить среднее арифметическое значение тех элементов одномерного массива, которые попадают в интервал от –2 до 10. Размерность массива –25. Заполнение массива осуществить случайными числами от -5 до 15. 2)
Program zadacha;
Uses crt;
Var mas:array[1..25] of shortint;
    a,c,d:integer; b:real;
Begin
clrscr;
a:=0; b:=0; c:=0; d:=0;
randomize;
while a<25 do begin
            a:=a+1;
            mas[a]:=random(21-5);
            writeln('mas[',a,']= ',mas[a]);
            if (mas[a]>=-2) and (mas[a]<=10) then begin
            c:=c+mas[a];
            d:=d+1;
            end;
end;
writeln;
writeln(' = ',c);
writeln('сумма элеметов от -2 до 10 = ',d);
b:=c/d;
writeln('среднее арифметическое элеметнов от -2 до 10 =',b);
readln;
end.
3)Проблема Программа считает только массив целых чисел, при попытке смены внизу происходит ерор 26 тайп мисматч на строчке mas[a]:=random(21-5);
Program zadacha;
Uses crt;
Var mas:array[1..25] of [B][U]shortint[/U](ЗАМЕНА НА REAL)[/B];
    [U][B]a,c,d:integer; b:real;[/B][/U][B](ЗАМЕНА НА a:integer; b,c,d:real; )[/B]
Begin
clrscr;
a:=0; b:=0; c:=0; d:=0;
randomize;
while a<25 do begin
            a:=a+1;
            mas[a]:=random(21-5);
            writeln('mas[',a,']= ',mas[a]);
            if (mas[a]>=-2) and (mas[a]<=10) then begin
            c:=c+mas[a];
            d:=d+1;
            end;
В чем ошибка

Код к задаче: «Вычислить среднее арифметическое значение тех элементов одномерного массива, которые попадают в интервал - Turbo Pascal (33786)»

textual
Uses crt;
Var mas:array[1..25] of real;
    a:integer; b,c,d:real;
Begin
clrscr;
a:=0; b:=0; c:=0; d:=0;
randomize;
while a<25 do begin
            a:=a+1;
            mas[a]:=random(21-5);
            writeln('mas[',a,']= ',mas[a]);
            if (mas[a]>=-2) and (mas[a]<=10) then begin
            c:=c+mas[a];
            d:=d+1;
            end;
end;
writeln;
writeln(' = ',c);
writeln('сумма элеметов от -2 до 10 = ',d);
b:=c/d;
writeln('среднее арифметическое элеметнов от -2 до 10 =',b);
readln;
end.

7   голосов, оценка 3.857 из 5


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