Таблица переменных алгоритма вычисления среднеарифметического значения ( Part _2)
Смысл переменных | Обозначение | Тип переменной | Примечания | ||
в алгоритме | в программе |
|
| ||
Входные данные: | |||||
Размер массива | n | n | Целый | nÎN | |
Массив | t | t | Одномерный массив | tiÎ[a;b] | |
Промежуточные данные: |
i |
i |
Целый |
i= | |
Номер элемента массива | |||||
Количество нужных элементов | k | k | Целый | k≥0 | |
Сумма | P | P | Целый | PÎ Z | |
Выходные данные: | St | St | Вещественный | StÎ R | |
Среднеарифметическое значение |
Таблица переменных алгоритма определения максимального элемента ( Part _3)
Смысл переменных | Обозначение | Тип переменной | Примечания | ||
в алгоритме | в программе |
|
| ||
Входные данные: | |||||
Размер массива | n | n | Целый | nÎN | |
Наименьшее значение элемента | a | a | Целый | ||
Наибольшее значение элемента | b | b | Целый | ||
Массив | t | t | Одномерный массив | tiÎ[a;b] | |
Промежуточные данные: |
i |
i |
Целый |
i= | |
Номер элемента массива | |||||
Результаты: | k | k | Целый |
| |
Номер максимального элемента | |||||
Значение максимального элемента | M | m | Целый |
Таблица переменных алгоритма упорядочения массива ( Part _4)
Смысл переменных | Обозначение | Тип переменной | Примечания | ||
в алгоритме | в программе |
|
| ||
Входные данные: | |||||
Размер массива | n | n | Целый | 1<n<100 | |
Массив | t | t | Одномерный массив | tiÎ[a;b] | |
Промежуточные данные: |
i |
i |
Целый |
i= | |
Номер первого элемента в неупорядоченной части массива | |||||
Номер следующего элемента в неупорядоченной части массива | j | j | Целый |
j= ![]() | |
Номер нужного элемента | k | k | Целый | kÎ Z | |
Буфер обмена | buf | buf | Целый | ||
Выходные данные: | t | t | Одномерный массив |
| |
Вектор |
5. Текст программы на Паскале
Program Lab_4;
Type vector=array[1..100] of integer;
var Vt, n, i, a, b: integer;
t: vector;
St: real;
Procedure Part_1(Vt,n,a,b:integer; var t:vector);
var i:integer;
Begin
If Vt<>1 then randomize;
for i:=1 to n do t[i]:=a+Round((b-a)*Random(100)/100);
end;
Procedure Part_2(n:integer; t:vector; var St:real);
var i,P,k:integer;
Begin
k:=0; P:=0; St:=0;
For i:=n div 2 + 1 to 3*n div 4 do
if odd(i) then
begin
P:=t[i]+P;
k:=k+1;
end;
if k<>0 then St:=P/k;
end;
Procedure Part_3(n,a,b:integer; t:vector);
var i,k,m:integer;
Begin
M:=-maxint-1;
k:=0;
For i:=n div 2 + 1 to n do
If (t[i]<0) and (M<t[i]) then
begin
M:=t[i];
k:=i;
end;
If k>0 then
begin
writeln('Максимальный элемент второй половины массива M = ',m:3);
write('имеют T[',k,'] = ',t[k]:2);
For i:=k+1 to n do
If (t[i]=m) and (t[i]<0) then write(' T[',i,'] = ',t[i]:2);
end
else writeln('Нет нужных элементов');
end;
Procedure Part_4(n:integer; var t:vector);
var i,j,k,buf:integer;
Begin
For i:=1 to n-1 do
If i mod 3=0 then
begin
For j:=i+1 to n do
If j mod 3=0 then
If sqr(t[j])>sqr(t[i]) then begin
buf:=t[i];
t[i]:=t[j];
t[j]:=buf;
end;
end;
end;
Begin
write('Введите вариант расчета Vt => ');
readln(Vt);
if Vt=0 then
begin
n:=12; a:=-1; b:=3;
t[1] := 0; t[2] := 2; t[3] :=1; t[4] := 0; t[5] := 1;
t[6] := -1; t[7] := 3; t[8] := 0; t[9] := -1; t[10]:= 0;
t[11]:= 1; t[12]:= 3;
end
else
begin
Write('Введите n,a,b => '); readln(n,a,b);
Part_1(Vt,n,a,b,t);
end;
writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
writeln('Исходный массив:');
For i:=1 to n do
begin
write(t[i],' ');
end;
writeln();
writeln('++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
part_2(n,t,St);
if St>0 then writeln('Среднее арифметическое St=',St:7:4)
else writeln('Для среднего арифметического нет нужных элементов');
writeln('++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
part_3(n,a,b,t);
writeln();
writeln('++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
part_4(n,t);
writeln('Упорядоченный массив:');
for i:=1 to n do
begin
write(t[i],' ');
end;
writeln();
writeln('+++++++++++++++++++++++++++++++++++++++++++++++++++++++++');
end.
6. Результаты расчета
Результаты расчета тестового примера:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Исходный массив:
0 2 1 0 1 -1 3 0 -1 0 1 3
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Среднее арифметическое St= 1.0000
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Максимальный элемент второй половины массива M = -1
имеют T[9] = -1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Упорядоченный массив:
0 2 3 0 1 -1 3 0 -1 0 1 1
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Результаты контрольного расчёта совпали с результатами ручного тестового расчёта, что подтверждает правильность программы.
Результаты расчёта для заданных значений исходных данных (без Randomize).
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Исходный массив:
-5 -6 -5 -2 1 -1 -3 8 4 4 6 6 -4 6 5 -5 1 3 -3 4 4 2 -6 5 3 -2 -7 8 0 -7 -6 -3 -5 -2 2 3
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Для среднего арифметического нет нужных элементов
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Максимальный элемент второй половины массива M = -2
имеют T[26] = -2 T[34] = -2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Упорядоченный массив:
-5 -6 -7 -2 1 -7 -3 8 6 4 6 5 -4 6 -5 -5 1 5 -3 4 -5 2 -6 4 3 -2 4 8 0 3 -6 -3 3 -2 2 -1
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Результаты расчёта для заданных значений исходных данных (c Randomize).
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Исходный массив:
1 2 -6 0 -3 -3 3 -1 0 -6 3 -3 -7 -1 -6 1 5 3 -2 -3 -5 -6 7 0 -2 -2 8 6 8 -7 -1 8 6 6 7 3
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Среднее арифметическое St= 1.2000
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Максимальный элемент второй половины массива M = -1
имеют T[31] = -1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Упорядоченный массив:
1 2 8 0 -3 -7 3 -1 -6 -6 3 -6 -7 -1 6 1 5 -5 -2 -3 -3 -6 7 3 -2 -2 -3 6 8 3 -1 8 0 6 7 0
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Результаты расчёта для n=100, a=-1, b=20 c Randomize.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Исходный массив:
12 15 5 13 5 12 1 -1 15 8 3 10 8 20 4 16 5 18 3 20 20 17 3 4 3 11 11 8 13 19 6 10 18 0 19 20 9 8 14 11 3 4 17 4 2 6 17 16 8 0 10 15 15 3 19 15 11 0 9 13 0 13 6 16 1 12 12 7 0 4 6 17 3 12 15 15 -1 19 1 17 14 15 20 12 8 10 16 14 1 3 8 8 19 0 10 10 18 0 2 10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Среднее арифметическое St= 8.2308
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Максимальный элемент второй половины массива M = -1
имеют T[77] = -1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Упорядоченный массив:
12 15 20 13 5 20 1 -1 19 8 3 19 8 20 19 16 5 18 3 20 18 17 3 17 3 11 16 8 13 16 6 10 15 0 19 15 9 8 14 11 3 14 17 4 13 6 17 12 8 0 12 15 15 12 19 15 11 0 9 11 0 13 10 16 1 10 12 7 10 4 6 6 3 12 5 15 -1 4 1 17 4 15 20 4 8 10 3 14 1 3 8 8 2 0 10 2 18 0 0 10
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++