Var
a: array[1..100] of integer;
k, i, n: integer;
begin
read(n);
for i := 1 to N do
begin
A[i] := random(40) - 20;
if (a[i] mod 3 = 0) and (a[i] mod 5 > 0) then
k := k + 1;
Write(a[i], ' ');
end;
WriteLn();
WriteLn(k);
end.
Пишу задание вторым номером, поэтому постараюсь на качество.
Нам нужно найти сначала сумму всего роста, потом поделить его на общее количество учеников. Потом сопоставить каждый элемент со средним числом и высчитать количество высоких учеников.
Будет это выглядить так:
uses crt; //Если используете паскаль ABC, это строка нужна для удобства
Var a: array [1..25] of real; i,otvet: integer; h,s:real;
//Объявляем переменные. Массив,среднее число и суммарный рост - любые числа. Сам ответ - целые числа
Begin
For i:=1 to 25 do begin
Writeln('Введите рост ученика номер ',i); readln(a[i]);
//Здесь мы вводим рост с клавиатуры
end;
For i:=1 to 25 do
s:=s+a[i];
//находим суммарный рост всех учеников
h:=s/25;
// делим на их количество. Теперь переменная h - это средний рост
For i:=1 to 25 do
if a[i]>h then otvet:=otvet+1;
// А здесь проверяем каждый элемет массива. Если он выше значения среднего роста, мы прибавляем единицу к переменной "otvet". Там мы считаем количество высоких уч.
Writeln('Средний рост в классе равен ',h);
Writeln('Количество высоких учеников в классе равно ',otvet);
//вывод данных
end.
1)
uses crt;
var x,y,pr:integer;
begin
read(y,x);
pr:=1;
repeat
pr:=pr*y;
x:=x-1;
until x=0;
write(pr);
end.
2)
uses crt;
var
a:array[1..10] of integer;
pr,i,k:integer;
begin
for i:=1 to 10 do
read(a[i]);
clrscr;
pr:=1;
for i:=1 to 10 do
begin
if a[i]<0 then k:=k+1;
if a[i]>0 then pr:=pr*a[i];
end;
writeln('Исходный массив: ');
for i:=1 to 10 do
write(a[i],' ');
writeln;
if k<>0 then writeln('Отрицательных элементов: ',k) else writeln('Отрицательных элементов нет');
write('Произведение положительных элементов равно: ',pr);
end.
Как-то так. Надеюсь поймёшь. Должно быть правильно)