Таблица переменных алгоритма вычисления среднеарифметического значения ( 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

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