- •Часть 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.5 Упорядочение массива
Текст программы:
Program RGR_2_4;
{РГР №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;
Procedure Part_4(n:integer; var R:vector);
var i,j,k,buf:integer;
Begin
For i:=n div 2 + 1 to 3*n div 4 - 1 do
If r[i]>=0 then
begin
k:=i;
For j:=i+1 to 3*n div 4 do
If r[j]>=0 then
If 1/(r[j]+0.1e-30) > 1/(r[k]+0.1e-30) then k:=j;
buf:=r[i];
r[i]:=r[k];
r[k]:=buf;
end;
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('++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
part_4(n,R);
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
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Упорядоченный массив:
1 0 -3 2 0 -3 4 3
0 0 2 4 0 -2 -1 -1 1
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
введите вариант расчета Vr => 1
Введите n,a,b => 33 -7 6
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Исходный массив:
1 -5 2 -4 0 5 5 -2 -6 -5 -6 -7 -4 -6 2 -2
2 -6 -1 1 -5 -2 -1 -7 -2 1 0 -4 6 -1 6 0 1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Упорядоченный массив:
1 -5 2 -4 0 5 5 -2 -6 -5 -6 -7 -4 -6 2 -2
1 -6 -1 2 -5 -2 -1 -7 -2 1 0 -4 6 -1 6 0 1
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
введите вариант расчета Vr => 2
Введите n,a,b => 33 -7 6
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Исходный массив:
5 -2 -2 -1 -7 2 -2 -6 -3 0 1 2 6 -5 3 -3
1 0 4 -1 1 3 1 6 -6 5 -5 0 -2 -6 -2 -6 -5
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Упорядоченный массив:
5 -2 -2 -1 -7 2 -2 -6 -3 0 1 2 6 -5 3 -3
0 1 1 -1 1 3 4 6 -6 5 -5 0 -2 -6 -2 -6 -5
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++