Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет работы №4 (913).docx
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
78.82 Кб
Скачать

5. Текст программы на Паскале

Program Work_4;

var vr,i,j,n,z,v,tmp,k,a,b,p,w:integer;

Sr:real;

Dev : text;

name: string;

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

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

var F:vector; l:vector2;

Procedure Part_1 (a,b,n:integer; var F:vector);

var i:integer;

Begin

writeln('------- PART 1 --------');

{Вычислить значения 39 элементов одномерного целочисленного массива F в интервале (-7,8) с использованием генератора случайных чисел }

writeln;

If Vr<>1 then randomize;

for i:=1 to n do

begin

F[i]:= a+ROUND((b-a)*RANDOM(100)/100);

write(F[i]:4,' ');

end

end;

Procedure Part_2(n:integer; Sr:real; F:vector);

var i,k,P:integer;

Begin

writeln('------- PART 2 --------');

{ Вычислить среднегеометрическое значение положительных элементов третьей четверти массива }

writeln;

P:=1;

k:=0;

For i:=1+ 2*n div 4 to 3*n div 4 do

If (F[i]>0) then begin

k:=k+1;

P:=P*F[i];

end;

if P<0 then

P:=-1*P;

Sr:=exp((1/k)*ln(P));

writeln(' среднегеометрическое значение положительных элементов третьей четверти массива равно ', Sr:4:3);

Writeln(dev, ‘среднегеометрическое значение положительных элементов третьей четверти массива равно ',Sr:4:3);

end;

Procedure Part_3(n,a,b:integer; F:vector);

var i,x,c:integer;

begin

writeln('------- PART3 --------');

{Определить значение, самое близкое к заданному числу С среди элементов нечетных по номеру второй половины массива}

Writeln('C= ') ;

Read(C);

For i:=1+n div 2 to n do

If (i mod 2 = 1) and (abs(f[i]-c)<abs(f[i+1]-c)) then begin

x:=F[i];

end;

writeln('элемент,самый близкий к заданному числу С среди элементов нечетных по номеру второй половины массива:',x);

writeln(dev,'элемент,самый близкий к заданному числу С среди элементов нечетных по номеру второй половины массива:',x);

end;

Procedure Part_4(n:integer; var F:vector; l:vector2);

var i,y,x,p,v,tmp:integer;

begin

writeln;

writeln('------- PART4 --------');

{ Упорядочить положительные элементы последней четверти массива по убыванию квадратов }

write(dev,'Упорядоченный массив: положительные элементы последней четверти массива по убыванию квадратов ');

writeln;

x:=trunc(1+ 3*n div 4);

y:=n;

p:=0;

w:=1;

for i:=x to y do

begin

if F[i]>0 then

begin

v:=F[i];

l[w]:=v;

p:=p+1;

w:=w+1;

end

end;

writeln;

for i:= 1 to p-1 do

for j:= i+1 to p do

if (sqr(l[i])) < (sqr(l[j])) then begin

tmp:= l[i];

l[i]:= l[j];

l[j]:= tmp;

end;

for i:= 1 to p do

begin

write(l[i],' ');

write(dev,l[i],' ');

end;

end;

Begin

writeln('для вывода на экран введите con');

writeln('для вывода на принтер введите prn');

write('для вывода в файл введите его адрес: ');

readln(name);

Assign(Dev,name);

Rewrite(Dev);

write('введите вариант расчета Vr => ');

readln(Vr);

if Vr=0 then

begin

n:=16; a:=-3; b:=4;

f[1] := 1; f[2] := 0; f[3] :=-3; f[4] := 2; f[5] := 0;

f[6] :=-3; f[7] := 4; f[8] := 3; f[9] := 2; f[10]:= 0;

f[11]:= 0; f[12]:= 4; f[13]:= 0; f[14]:=-2; f[15]:=-1;

f[16]:=-1;

end

else

begin

Write('Введите n,a,b => '); readln(n,a,b);

Part_1(a,b,n,f);

writeln;

end;

writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');

writeln(dev,'Исходный массив:');

For i:=1 to n do

begin

write(dev,f[i]:3);

if i = n div 2 then writeln(dev);

end;

writeln(dev);

writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');

Part_2(n,Sr,f);

writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');

Part_3(n,a,b,f);

writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');

Part_4(n,f,l);

writeln(dev);

writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++');

close(dev);

end.

6. Результаты расчета

Результаты расчета тестового примера:

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

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

1, 0, -3, 2, 0, -3, 4, 3,

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

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

среднегеометрическое значение положительных элементов третьей четверти массива равно 2.828

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

самое близкое к заданному числу С среди элементов нечетных по номеру второй половины массива: 2

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

Упорядоченный массив: положительные элементы последней четверти массива по убыванию квадратов

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

Результаты контрольного расчёта совпали с результатами ручного тестового расчёта, что подтверждает правильность программы.

Результаты расчёта для заданных значений исходных данных (c Randomize).

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

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

-5 -3 1 -2 1 -3 -5 0 -5 6 4 6 -7 4 2 -2 0 -2 2 2 8 5 3 1 1 8 -2 7 -5 2 2 3 -4 -1 -2 0 4 -4 -6 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

среднегеометрическое значение положительных элементов третьей четверти массива равно 3.281

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

самое близкое к заданному числу С среди элементов нечетных по номеру второй половины массива: 4

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

Упорядоченный массив: положительные элементы последней четверти массива по убыванию квадратов 4 3 2 2

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