Ребята, шарящие в паскале, пожалуйста, помогите решить задачку.Задан одномерный массив,

Ребята, шарящие в паскале, пожалуйста, помогите решить задачку.
Задан одномерный массив, заполненный случайными числами:
1)Определить среднее геометрическое модулей малого и максимального значений.
2)Написать подпрограмму, которая определяет индекс малого либо
наибольшего значения.
3) Решить подзадачу 1 на базе подзадачи 2.

Задать свой вопрос
1 ответ

1)

var

 ar: array of integer;

 n, min, max: integer;

begin

 write('Введите размер массива:');

 read(n);

 setlength(ar, n);

 if (n gt; 0) then  

 begin

   ar[0] := random(-10, 10);

   min := ar[0];

   max := ar[0];

   write(ar[0]:4);

 end;

 for var i := 1 to n - 1 do

 begin

   ar[i] := random(-10, 10);

   if (ar[i] lt; min) then min := ar[i]

   else if (ar[i] gt; max) then max := ar[i];

   write(ar[i]:4);

 end;

 writeln(1310 + 'Среднее геометрическое модулей малого и максимального значений = ',  

         sqrt(абс(max) * абс(min)):5:5);

end.

2)

function minOrMax(ar: array of integer; size: integer; findMin: boolean): integer;

var

 index: integer;

begin

 index := 0;

 for var i := 1 to size - 1 do

   if (findMin) and (ar[i] lt; ar[index]) then index := i

   else if (not findMin) and (ar[i] gt; ar[index]) then index := i;

 result := index;

end;

3)

function minOrMax(ar: array of integer; size: integer; findMin: boolean): integer;

var

 index: integer;

begin

 index := 0;

 for var i := 1 to size - 1 do

   if (findMin) and (ar[i] lt; ar[index]) then index := i

   else if (not findMin) and (ar[i] gt; ar[index]) then index := i;

 result := index;

end;

var

 ar: array of integer;

 n: integer;

begin

 write('Введите размер массива:');

 read(n);

 setlength(ar, n);

 if (n gt; 0) then  

 begin

   ar[0] := random(-10, 10);

   write(ar[0]:4);

 end;

 for var i := 1 to n - 1 do

 begin

   ar[i] := random(-10, 10);

   write(ar[i]:4);

 end;

 writeln(1310 + 'Среднее геометрическое модулей малого и наибольшего значений = ',  

         sqrt(abs(ar[minOrMax(ar, n, true)]) * абс(ar[minOrMax(ar, n, false)])):5:5);

end.

, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт