Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет_пом_РГР_2_БМТ.doc
Скачиваний:
4
Добавлен:
20.08.2019
Размер:
350.21 Кб
Скачать

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 равным нулю.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]