Модуль
unit unit1;
interface
uses crt;
const nmax=100;
type mas=array[1..nmax] of real;
procedure Vvod(var v:mas;var k:byte);
procedure Kol(v:mas;k:byte);
procedure Summa(var v:mas;k:byte);
implementation
procedure Vvod;
var i:byte;
begin
repeat
write('Размер массива до ',nmax,' = ');
readln(k);
until k in [1..nmax];
writeln('Введите ',k,' элементов массива:');
for i:=1 to k do
begin
write('el[',i,']=');
readln(v[i]);
end;
clrscr;
writeln('Массив:');
for i:=1 to k do
write(v[i]:0:2,' ');
writeln;
writeln;
end;
procedure Kol;
var i,b:byte;
begin
writeln('Элементы большие своего индекса:');
b:=0;
for i:=1 to k do
if v[i]>i then
begin
write(v[i]:0:2,' ');
b:=b+1;
end;
writeln;
if b=0 then writeln('Таких элементов нет!')
else writeln('Их количество=',b);
writeln;
end;
procedure Summa;
var s:real;
i,f:byte;
begin
writeln('Элементы массива с дробной чачтью:');
s:=0;f:=0;
for i:=1 to k do
if frac(v[i])>0 then
begin
f:=1;
write(v[i]:0:2,' ');
s:=s+v[i];
end;
writeln;
if f=0 then writeln('Таких элементов нет!')
else writeln('Их сумма=',s:0:2);
end;
end.
Программа
uses crt,unit1;
var x:mas;
n:byte;
begin
clrscr;
Vvod(x,n);
Kol(x,n);
Summa(x,n);
readln
end.