Дана одномерная матрица A[1:35]. Нужно выяснить сумму и количество элементов, кратных 2, находящихся в диапазоне от -12 до +7 и сумму и количество элементов, кратных 3 находящихся в диапазоне от 5 до 21. Вычисление суммы или количества элементов в заданном диапазоне и заданной кратности реализовать одной функцией и одной процедурой — Pascal(Паскаль)

uses crt;
const n=35;
type mas=array[1..n] of integer;
function SumKol(a:mas;d:byte;i1,i2:integer;var k:byte):integer;
var i:byte;
    s:integer;
begin
s:=0;k:=0;
for i:=1 to n do
if (a[i] mod d=0)and(a[i]>=i1)and(a[i]<=i2) then
 begin
  s:=s+a[i];
  k:=k+1;
 end;
SumKol:=s;
end;
var a:mas;
    i,kol:byte;
    sum:integer;
begin
clrscr;
randomize;
writeln('Массив:');
for i:=1 to n do
 begin
  a[i]:=random(41)-15;
  write(a[i]:4);
 end;
writeln;
writeln;
sum:=SumKol(a,2,-12,7,kol);
writeln('Сумма кратных 2 из интервала [-12,7]=',sum,' количество=',kol);
writeln;
sum:=SumKol(a,3,5,21,kol);
writeln('Сумма кратных 3 из интервала [5,21]=',sum,' количество=',kol);
readln
end.

Следующий вариант

uses crt;
const n=35;
type mas=array[1..n] of integer;
procedure SumKol(a:mas;d:byte;i1,i2:integer;var s:integer;var k:byte);
var i:byte;
begin
s:=0;k:=0;
for i:=1 to n do
if (a[i] mod d=0)and(a[i]>=i1)and(a[i]<=i2) then
 begin
  s:=s+a[i];
  k:=k+1;
 end;
end;
var a:mas;
    i,kol:byte;
    sum:integer;
begin
clrscr;
randomize;
writeln('Массив:');
for i:=1 to n do
 begin
  a[i]:=random(41)-15;
  write(a[i]:4);
 end;
writeln;
writeln;
SumKol(a,2,-12,7,sum,kol);
writeln('Сумма кратных 2 из интервала [-12,7]=',sum,' количество=',kol);
writeln;
SumKol(a,3,5,21,sum,kol);
writeln('Сумма кратных 3 из интервала [5,21]=',sum,' количество=',kol);
readln
end.

Leave a Comment

5 + 4 =