Найти сумму всех элементов массива, имеющих четные индексы — Pascal(Паскаль)

Program var1;
 uses crt;
 
 const m=5;
       n=5;
 type mas=array [1..m] of integer;
 
 var a:mas; i:integer;
 
function summa(a:mas):integer;
var
s,i:integer;
 
begin
 s:=0;
 i:=2;
  repeat
     s:=s+a[i];
     i:=i+2;
  until i>n;
 summa:=s;
end;
 
function vivod(a:mas):integer;
var
i:integer;
begin
clrscr;
 randomize;
 writeln ('исходный массив');
  for i:=1 to m do
   A[i]:=random(20);
    for i:=1 to m do
     write (A[i],' ');
     writeln;
     write('Summa: ',summa(a));
     end;
 
    begin
    vivod(a);
 readkey;
end.

Вариант 2

Program var1;
 uses crt;
 
 const m=5;
       n=5;
 type mas=array [1..m] of integer;
 
 var a:mas;
procedure summa;
var
s,i:integer;
 
begin
 s:=0;
 i:=2;
  repeat
     s:=s+a[i];
     i:=i+2;
  until i>n;
  write('Summa: ',s);
 end;
 
procedure massiv;
var
i:integer;
begin
clrscr;
 randomize;
 writeln ('исходный массив');
  for i:=1 to m do
   A[i]:=random(20);
    for i:=1 to m do
     write (A[i],' ');
     writeln;
     end;
 
     begin
     massiv;
     summa;
 readkey;
end.

Вариант 3

Program var1;
 uses crt;
 
 const m=5;
       n=5;
 type mas=array [1..m] of integer;
      func=function(a:mas):integer;
 var a:mas;
 
function summa(a:mas):integer; far;
var
s,i:integer;
 
begin
 s:=0;
 i:=2;
  repeat
     s:=s+a[i];
     i:=i+2;
  until i>n;
 summa:=s;
end;
 
procedure massiv(a:mas; oper:func);
var
i:integer;
begin
clrscr;
 randomize;
 writeln ('исходный массив');
  for i:=1 to m do
   A[i]:=random(20);
    for i:=1 to m do
     write (A[i],' ');
     writeln;
     write('Summa: ',oper(a));
     end;
 
     begin
     massiv(a,summa);
 readkey;
end.
0

Leave a Comment

1 + 5 =