Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Текст программы на Паскале ⇐ ПредыдущаяСтр 4 из 4 Program Work_4; {Работа №4, вариант №666, гр.АЭ-04-01, Иванов И.И.} Type vector=array[1..100] of integer; var Vr, n, i, a, b: integer; R: vector; Dev: text; name: string; Sg: real;
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_2(n:integer; R:vector; var Sg:real); var i,k:integer; P:real; Begin P:=1; k:=0; For i:=n div 2 + 1 to n do If (r[i]<>0) and (not odd(i)) then begin P:=P*r[i]; k:=k+1; end; If k>0 then If P>0 then Sg:=exp(1/k*ln(P)) else If odd(k) then Sg:=-exp(1/k*ln(abs(P))) else Sg:=0 else Sg:=0; end;
Procedure Part_3(n,a,b:integer; R:vector); var i,k,M:integer; Begin M:=maxint; { Наибольшее значение переменной целого типа в Паскале = 32767 } k:=0; For i:=n div 3+1 to 2*n div 3 do If ((r[i]<a/2.0) or (r[i]>b/2.0)) and (M>abs(r[i])) then begin M:=abs(r[i]); k:=i; end; If k>0 then begin writeln(dev,'Наименьшее по модулю значение M = ',m:3); write(dev,'имеют R[',k:2,'] = ',r[k]:2); For i:=k+1 to 2*n div 3 do If abs(r[i])=M then write(dev,' R[',i:2,'] = ',r[i]:2); writeln(dev); end else writeln(dev,'Нет нужных элементов'); 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 writeln('для вывода на экран введите con'); writeln('для вывода на принтер введите prn'); write('для вывода в файл введите его адрес: '); readln(name); Assign(Dev,name); Rewrite(Dev); 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(dev,'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++'); writeln(dev,'Исходный массив:'); For i:=1 to n do begin write(dev,r[i]:3); if i = n div 2 then writeln(dev); end; writeln(dev); writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++'); part_2(n,r,sg); writeln(dev,'Среднегеометрическое Sg=',Sg:7:4); writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++'); part_3(n,a,b,r); writeln(dev,'++++++++++++++++++++++++++++++++++++++++++++++++++++++++'); part_4(n,R); writeln(dev,'Упорядоченный массив:'); for i:=1 to n do begin write(dev,r[i]:3); if i = n div 2 then writeln(dev); end; writeln(dev); writeln(dev,'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++'); close(dev); end.
|