• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Функции И Массивы

  • Автор темы OlgaN
  • Дата начала
O

OlgaN

ЗадаН массив целого типа А[1.99]. Оформить в виде функции вычисление среднего арифметического тех элементов матрицы, значения которых больше Х и меньше Y. Вывод среднего выполнить во внешнем блоке.
 
I

IgorSh

Как я понил вопрос, числа задаются в промежутке от 1 до 99. Если я некорректно понял вопрос напишите. Среднее арифмитическое считается с округлением.

Program SredArifm;
VAR
A:array[1..100] of integer;
i,N,res,x,y:integer;
function SredArifm(x,y:integer):integer;
var
j,s:integer;
begin
s:=1;
for i:=x to y do
s:=s+A;
res:=S div 2;
end;
BEGIN
readln(N); ///кол-во чисел в массиве 1..99,1..200
for i:=1 to n do ///формирование массива
begin
A[1]:=1;
A[i+1]:=A+1;
end;
for i:=1 to n do
write(A,' ');
readln(x,y);
SredArifm(x,y);
writeln(res);
END.
 
G

gpatron

Как я понил вопрос, числа задаются в промежутке от 1 до 99. Если я некорректно понял вопрос напишите. Среднее арифмитическое считается с округлением.

Program SredArifm;
VAR
A:array[1..100] of integer;
i,N,res,x,y:integer;
function SredArifm(x,y:integer):integer;
var
j,s:integer;
begin
s:=1;
for i:=x to y do
s:=s+A;
res:=S div 2;
end;
BEGIN
readln(N); ///кол-во чисел в массиве 1..99,1..200
for i:=1 to n do ///формирование массива
begin
A[1]:=1;
A[i+1]:=A+1;
end;
for i:=1 to n do
write(A,' ');
readln(x,y);
SredArifm(x,y);
writeln(res);
END.

не совсем корректная реализация алгоритма.. есть ошибки:
вместо:
Код:
function SredArifm(x,y:integer):integer;
var
j,s:integer;
begin
s:=1;
for i:=x to y do
s:=s+A[i];
res:=S div 2;
end;
должно быть:
Код:
function SredArifm(x,y:integer):integer;
var s:integer;
begin
s:=0;
for i:=x to y do s:=s+A[i];
SredArifm:=S div (y-x);
end;

также при заполнении массива, вместо:
Код:
for i:=1 to n do  ///формирование массива
begin
A[1]:=1;
A[i+1]:=A[i]+1;
end;
должно быть:
Код:
A[1]:=1;
for i:=1 to n-1 do  ///формирование массива
begin
A[i+1]:=A[i]+1;
end;
ну или так:
Код:
for i:=1 to n do  ///формирование массива
begin
A[i]:=i;
end;


а вообще скорее всего ты не так понял:
массив размерностью [1..99] т.е. 99 элементов. В массиве могут быть различные целые числа, не только от 1 до 99.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!