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

3.2 Алгоритм получения элементов вектора

1

Vr – вариант расчёта

n – количество элементов

a – нижняя граница

b – верхняя граница

2

нет

3

да

4

5

6

R(1:n) - вектор

Текст программы:

Program RGR_2_1;

{РГР №2, вариант №555, гр.БМТ1-11-08, Иванов И.И.}

Type vector=array[1..100] of integer;

var Vr, n, i, a, b: integer;

R: vector;

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;

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('++++++++++++++++++++++++++++++++++++++++++++++++++++++++');

End.

введите вариант расчета Vr => 0

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Исходный массив:

1 0 -3 2 0 -3 4 3

2 0 0 4 0 -2 -1 -1 1

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

введите вариант расчета Vr => 1

Введите n,a,b => 33 -7 6

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Исходный массив:

4 -5 5 1 -2 -6 6 -4 3 1 -3 2 3 -6 4 -4

-2 -6 -2 -1 -3 6 2 0 -2 -6 5 1 1 2 2 5 -4

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

введите вариант расчета Vr => 2

Введите n,a,b => 33 -7 6

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Исходный массив:

-2 5 5 -2 -2 3 0 -1 -7 0 -3 1 4 -2 -3 5

0 3 -3 5 2 -5 -5 -1 -1 3 -6 -6 -2 6 -5 4 5

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Часть 2. Вычислить среднегеометрическое значение четных по номеру элементов второй половины массива.

Среднегеометрическое значение ненулевых элементов заданного массива A = {a1, a2, a3, …, an} вычисляется по формуле

где К-количество ненулевых элементов в массиве.

Для вычисления среднегеометрического значения сначала нужно выделить в общем виде номера элементов второй половины. Номер первого элемента второй половины вычисляется по формуле [n/2]+1 (квадратные скобки обозначают операцию выделения целой части значения выражения. Использование данной операции при определении номеров элементов в большинстве случаев позволяет равномерно разделить массив на части): [17/2] + 1 = [8,5] + 1 = 8 + 1 = 9.

Запишем элементы второй половины

x9 x10 x11 x12 x13 x14 x15 x16 x17

2 0 0 4 0 -2 -1 -1 1

Выделим подчёркиванием нужные элементы: чётные по номеру, ненулевые значения.

Нужных элементов к = 3, их произведение 4*(-2)*(-1) = 8. Среднегеометрическое значение Sg = .

При вычислении Sg могут возникнуть следующие проблемы:

  1. Не будет нужных элементов ( к = 0 ), например, если все чётные по номеру элементы равны 0. В этом случае нужно принять Sg = 0.

  2. Потребуется извлечь корень чётной степени из отрицательного значения произведения ( например, если x16 = 1 ). Это некорректная операция, нужно принять Sg = 0.

Выявленные возможные проблемы нужно учесть при разработке алгоритма.

Можно записать математическую формулировку задачи данной части:

где: k – количество нужных (четных по номеру, ненулевых) элементов во второй половине массива R; - произведение нужных элементов.

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