Люди добрые, большая просьба помочь с решением трех задач в Паскале.
1. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, позволяющий найти среднее арифметическое нечётных трехзначных чисел, записанных в этом массива. Если ни одного такого числа нет, нужно вывести сообщение об этом. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
const N=30;
var a: array [l..N] of integer;
i,j,s: integer;
begin
for i:=l to N do readln(a[i]);
...
end.
2.Дан целочисленный массив из 40 элементов, все элементы которого – целые числа в интервале от -500 до 500. Опишите на русском языке или на одном из языков программирования алгоритм, который находит среднее арифметическое всех положительных элементов массива, которые кратны первому элементу (делятся нацело на первый элемент). Гарантируется, что первый элемент массива положительный. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
const N=40;
var a: array [l..N] of integer;
i,x,y: integer;
s: real;
begin
for i:=l to N do readln(a[i]);
...
end.
3. Опишите на русском языке или одном из языков программирования алгоритм подсчета числа элементов, равных максимальному, в числовом массиве из 30 элементов.
Answers & Comments
const N=30;
var a: array [1..N] of integer;
i,j,s: integer;
begin
for i:=1 to N do readln(a[i]);
for i:=1 to N do
if (a[i]>99)and(a[i]<1000) then
if (a[i] mod 2)<>0 then
begin
s:=s+a[i];
j:=j+1;
end;
if j=0 then writeln('в массиве нет нечётных трехзначных чисел')
else writeln('среднее арифметическое нечётных трехзначных чисел: ',s/j);
end.
задача 2
const N=40;
var a: array [1..N] of integer;
i,x,y: integer;
s: real;
begin
for i:=1 to N do readln(a[i]);
x:=abs(a[1]);
for i:=1 to N do
if (a[i]>0)and((a[i] mod x)=0) then
begin
y:=y+1;
s:=s+a[i];
end;
if y=0 then writeln('в массиве нет нечётных трехзначных чисел')
else writeln('среднее арифметическое положительных чисел кратных первому элементу: ',s/y);
end.
задача 3
const N=30;
var a: array [1..N] of integer;
i,s,m: integer;
begin
for i:=1 to N do readln(a[i]);
m:=a[1];
for i:=2 to N do
if a[i]>m then m:=a[i];
for i:=1 to N do
if a[i]=m then s:=s+1;
if s=1 then writeln('в массиве только один максимальный элемент')
else writeln('число элементов, равных максимальному: ',s-1);
end.