Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 1 KB
program muveletek;
uses
SysUtils, Math;
Const
ben = 3;
bet : array [1..ben] of integer = (5,6,7);
bec = 42;
Var
x,i : integer;
s : string;
Procedure muvelet(ertek,szint:integer;hogy:string);
Var
z : array [1..4] of integer;
Begin
If szint=ben then
Begin
z[1]:=ertek + bet[szint];
z[2]:=ertek - bet[szint];
z[3]:=ertek * bet[szint];
z[4]:=ertek div bet[szint];
If abs(x-bec)>abs(bec-z[1]) then
Begin
x:=z[1];
s:=hogy+'+'+IntToStr(bet[szint]);
End;
If abs(x-bec)>abs(bec-z[2]) then
Begin
x:=z[2];
s:=hogy+'-'+IntToStr(bet[szint]);
End;
If abs(x-bec)>abs(bec-z[3]) then
Begin
x:=z[3];
s:=hogy+'*'+IntToStr(bet[szint]);
End;
If abs(x-bec)>abs(bec-z[4]) then
Begin
x:=z[4];
s:=hogy+'/'+IntToStr(bet[szint]);
End;
End else
Begin
muvelet(ertek + bet[szint],szint+1,hogy+'+'+IntToStr(bet[szint])+')');
muvelet(ertek - bet[szint],szint+1,hogy+'-'+IntToStr(bet[szint])+')');
muvelet(ertek * bet[szint],szint+1,hogy+'*'+IntToStr(bet[szint])+')');
muvelet(ertek div bet[szint],szint+1,hogy+'/'+IntToStr(bet[szint])+')');
End;
End;
Procedure kiir;
Begin
Writeln(bec,'-hez a legkozelebbi eloallithato ertek: ',#13#10,s,'=',x);
Writeln('A ,,tavolsag'''': ',abs(bec-x));
Readln;
End;
begin
s:='';
For i:=1 to ben-2 do s:=s+'(';
s:=s+IntToStr(bet[1]);
muvelet(bet[1],2,s);
kiir;
end.