unit my_input; interface uses crt; const dmaxarray=8; dmaxarray_short=20; type tdarray=array [1..dmaxarray,1..dmaxarray] of real; type tshortdarray=array [1..dmaxarray_short,1..dmaxarray_short] of real; procedure inputmass(var ma : array of real;mn :integer); procedure inputmass2(var ma : tdarray;mn,mk :integer); function findmin(ma : array of real;var mi:integer;mk:integer;mn:integer):real; function findmax(ma : array of real;var mi:integer;mk:integer;mn:integer):real; procedure showmass(ma : array of real;mn:integer); procedure showmass2 (ma:tdarray;mn,mk:integer); procedure showmass3 (ma:tshortdarray;mn,mk:integer); procedure sortmass1(var ma : array of real;mn : integer); procedure sortmass2(var ma : array of real;mn : integer); procedure sortmass3(var ma:array of real;mn:integer;mk:integer); procedure concmass(ma,mb:array of real;na,nb :integer;var mc:array of real); function findinmass(ma : array of real;mn,mk:integer;mf:real):integer; procedure summass2(a,b:tdarray;mn,mk:integer;var c:tdarray); procedure multmass2(a,b:tdarray;mn,mp,mk:integer;var c:tdarray); procedure min(var a, b :real); procedure max(var a, b:real); function determinator(ma:tdarray;mn:integer):real; procedure inputshort(var a:shortint); procedure inputint(var a:integer); procedure inputlong(var a:longint); procedure inputreal(var a:real); procedure inputsingle(var a:single); procedure inputdouble(var a:double); procedure inputext(var a:extended); procedure clear; procedure wait; implementation procedure inputshort(var a:shortint); var rk : integer; begin {$I-} repeat readln(a); rk:=IoResult; if rk<>0 then writeln('YOU ARE WRONG! REPEAT, PLEASE.'); until rk=0 end; procedure inputint(var a:integer); var rk : integer; begin {$I-} repeat readln(a); rk:=IoResult; if rk<>0 then writeln('YOU ARE WRONG! REPEAT, PLEASE.'); until rk=0 end; procedure inputlong(var a:longint); var rk : integer; begin {$I-} repeat readln(a); rk:=IoResult; if rk<>0 then writeln('YOU ARE WRONG! REPEAT, PLEASE.'); until rk=0 end; procedure inputreal(var a:real); var rk : integer; begin {$I-} repeat readln(a); rk:=IoResult; if rk<>0 then writeln('YOU ARE WRONG! REPEAT, PLEASE.'); until rk=0 end; procedure inputsingle(var a:single); var rk : integer; begin {$I-} repeat readln(a); rk:=IoResult; if rk<>0 then writeln('YOU ARE WRONG! REPEAT, PLEASE.'); until rk=0 end; procedure inputdouble(var a:double); var rk : integer; begin {$I-} repeat readln(a); rk:=IoResult; if rk<>0 then writeln('YOU ARE WRONG! REPEAT, PLEASE.'); until rk=0 end; procedure inputext(var a:extended); var rk : integer; begin {$I-} repeat readln(a); rk:=IoResult; if rk<>0 then writeln('YOU ARE WRONG! REPEAT, PLEASE.'); until rk=0 end; procedure clear; begin while keypressed do readkey; end; procedure wait; begin clear; repeat until keypressed; end; Procedure inputmass(var ma : array of real;mn :integer); var i : integer; begin writeln('INPUT ARRAY'); for i:=1 to mn do begin write('INPUT ELEMENT ',i,':'); inputreal(ma[i]); end; end; Procedure inputmass2(var ma : tdarray;mn,mk :integer); var i,j : integer; begin writeln('INPUT ARRAY [',mn,',',mk,']'); for i:=1 to mn do for j:=1 to mk do begin write('INPUT ELEMENT [',i,',',j,'] :'); inputreal(ma[i][j]); end; end; procedure showmass (ma:array of real;mn:integer); var i : integer; begin for i:=1to mn do write(ma[i]:9:3,' '); writeln; end; procedure showmass2 (ma:tdarray;mn,mk:integer); var i,j : integer; begin writeln('MATRIX [',mn,',',mk,']'); for i:=1to mn do begin for j:=1to mk do write(ma[i,j]:9:3,' '); writeln; end; writeln; end; procedure showmass3 (ma:tshortdarray;mn,mk:integer); var i,j : integer; begin for i:=1to mn do begin for j:=1to mk do write(ma[i,j]:3:0,' '); writeln; end; writeln; end; function findmax(ma : array of real;Var mi : integer;mk:integer;mn : integer) : real; var i : integer; max : real; begin mi:=mk; max:=ma[mk]; for i:=mk+1 to mn do if ma[i]>max then begin max:=ma[i]; mi:=i; end; findmax:=max; end; function findmin(ma : array of real;Var mi : integer;mk:integer;mn : integer) : real; var i : integer; min : real; begin mi:=mk; min:=ma[mk]; for i:=mk+1 to mn do if ma[i]b then begin c:=a; a:=b; a:=c; end; end; procedure max(var a, b:real); var c : real; begin if ama[i+1] then begin c:=ma[i]; ma[i]:=ma[i+1]; ma[i+1]:=c; flag:=true; end; end; if not flag then break; end; end; procedure sortmass3(var ma:array of real;mn:integer;mk:integer); var i,j,k,c : integer; x : real; flag : boolean; begin if mnj) do if ma[i]=x then dec(j) else begin mix(ma[i],ma[j]); inc(i);dec(j); end; sortmass3(ma,mn,i); sortmass3(ma,i+1,mk); end; end; procedure concmass(ma,mb:array of real;na,nb :integer;var mc:array of real); var i,j,ii,k : integer; begin i:=1;j:=1;k:=1; while (i<=na)and(j<=nb) do if ma[i]>mb[j] then begin mc[k]:=mb[j]; inc(j);inc(k); end else begin mc[k]:=ma[i]; inc(i);inc(k); end; if j>nb then for ii:=i to na do begin mc[k]:=ma[ii]; inc(k); end else for ii:=j to nb do begin mc[k]:=mb[ii]; inc(k); end; end; function findinmass(ma : array of real;mn,mk:integer;mf:real):integer; var ss : integer; begin if mn=mk then if abs(ma[mn]-mf)<0.0001 then findinmass:=mn else findinmass:=-11 else begin ss:=(mn+mk)div 2; if abs(mf-ma[ss])<0.0001 then findinmass:=ss else if mfk then begin det:=-1*det; for i:=k to mn do begin c:=mb[i,k]; mb[i,k]:=mb[i,nstr]; mb[i,nstr]:=c; end; end; det:=mb[k,k]*det; for i:=mn downto k do mb[k,i]:=mb[k,i]/mb[k,k]; for j:=k+1 to mn do begin for i:=mn downto k do begin mb[j,i]:=mb[j,i]-mb[k,i]*mb[j,k]; end; end; end; end; det:=det*mb[mn,mn]; end; determinator:=det; end; end.