- •Часть 3. Определить наименьший по модулю элемент среди не принадлежащих отрезку [a/2;b/2] элементов второй трети массива.
- •3.1 Основной алгоритм
- •Часть 1. Вычислить значения 33 элементов одномерного целочисленного массива r в интервале (-7,6) с использованием генератора случайных чисел.
- •3.2 Алгоритм получения элементов вектора
- •Часть 2. Вычислить среднегеометрическое значение четных по номеру элементов второй половины массива.
- •3.3 Алгоритм вычисления среднегеометрического значения
- •Часть 3. Определить наименьший по модулю элемент среди не принадлежащих отрезку [a/2;b/2] элементов второй трети массива.
- •Запишем элементы второй трети массива:
- •При решении данной задачи могут быть следующие ситуации:
- •3.4 Алгоритм определения минимального по модулю элемента среди не принадлежащих [a/2,b/2] элементов второй трети массива
- •Дополнение к части 4. Упорядочить элементы массива r по возрастанию значений.
- •Часть 4. Упорядочить не отрицательные элементы третьей четверти массива по убыванию обратных значений.
- •3.5 Упорядочение массива
3.3 Алгоритм вычисления среднегеометрического значения
нет
да
Текст программы:
Program RGR_2_2;
{РГР №2, вариант №555, гр.БМТ1-11-08, Иванов И.И.}
Type vector=array[1..100] of integer;
var Vr, n, i, a, b: integer;
R: vector;
Sg: real;
Procedure Part_1(Vr,n,a,b:integer; var R:vector);
var i:integer;
Begin
If Vr<>1 then randomize;
for i:=1 to n do r[i]:=a+Round((b-a)*Random(100)/100);
end;
Function Part_2(n:integer; R:vector):real;
var i,k:integer;
P:real;
Begin
P:=1;
k:=0;
For i:=n div 2 + 1 to n do
If (r[i]<>0) and (not odd(i)) then
begin
P:=P*r[i];
k:=k+1;
end;
If k>0 then
If P>0 then Sg:=exp(1/k*ln(P))
else
If odd(k) then Sg:=-exp(1/k*ln(abs(P)))
else Sg:=0
else Sg:=0;
Part_2:=Sg;
end;
Begin
write('введите вариант расчета Vr => ');
readln(Vr);
if Vr=0 then
begin
n:=17; a:=-3; b:=4;
r[1] := 1; r[2] := 0; r[3] :=-3; r[4] := 2; r[5] := 0;
r[6] :=-3; r[7] := 4; r[8] := 3; r[9] := 2; r[10]:= 0;
r[11]:= 0; r[12]:= 4; r[13]:= 0; r[14]:=-2; r[15]:=-1;
r[16]:=-1; r[17]:= 1;
end
else
begin
Write('Введите n,a,b => '); readln(n,a,b);
Part_1(Vr,n,a,b,r);
end;
writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
writeln('Исходный массив:');
For i:=1 to n do
begin
write(r[i]:3);
if i = n div 2 then writeln;
end;
writeln;
writeln('++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
Sg:=part_2(n,r);
writeln('Среднегеометрическое Sg=',Sg:7:4);
writeln('++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
end.
введите вариант расчета Vr => 0
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Исходный массив:
1 0 -3 2 0 -3 4 3
2 0 0 4 0 -2 -1 -1 1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Среднегеометрическое Sg= 2.0000
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
введите вариант расчета Vr => 1
Введите n,a,b => 33 -7 6
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Исходный массив:
-2 6 3 -4 -5 6 1 -3 3 4 -7 -5 -6 -5 -3 -3
4 -2 5 -5 1 -4 4 -4 -1 -2 4 -6 -5 1 -5 -3 2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Среднегеометрическое Sg= 0.0000
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
введите вариант расчета Vr => 2
Введите n,a,b => 33 -7 6
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Исходный массив:
-7 1 1 5 5 -3 -7 4 -2 -6 4 4 -4 4 -3 1
-4 5 -4 2 -3 -5 -5 -6 4 3 -4 4 5 -5 3 -6 -1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Среднегеометрическое Sg= 4.2577
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Дополнительно к части 2. Среднегармоническое значение положительных элементов заданного множества A = {a1, a2, a3, …, an} вычисляется по формуле
где К - количество положительных элементов в множестве.
Если все элементы множества имеют положительные значения, то справедливо условие
Ga <= Pa <= Sa.
Если множество пустое (А = ø) или в нём нет нужных элементов (к = 0), принять значение Sa, Qa, Pa или Ga равным нулю.