unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type
TForm1 =
class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses NInts;
// unsere eigene formatkonstante....
const
NStrFormatTT: TStrFormat = (
Base: 16;
Plus: '
';
Minus: '
-';
Zero: '
';
Comma: '
,';
DigitsPerBlock: 0;
BlockSep: '
';
BlockPadding: '
';
DigitsPerLine: 0;
LineSep: #13#10;
LinePadding: '
';
DigitsChars: '
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/';
FormatChars: '
/\-+;:#~"()[]?_<>!§$%&{}''
'#13#10#9;
LeftAlign: False;
Offset: 0;
Precision: 0;
);
procedure TForm1.Button1Click(Sender: TObject);
var
IIWurzel1,IIRest1: IInteger;
IIWurzel2,IIRest2: IInteger;
IIData,IINewData: IInteger;
Bits,Count: Integer;
begin
Bits:=$ff;
//Länge in bits
NRnd(IIData,Bits);
//Zahl Generieren
//schleife um 255 mal die wurzel zu ziehen
for Count:=1
to $FF
do begin
Memo1.Lines.Add('
');
Memo1.Lines.Add('
');
Memo1.Lines.Add(IntToStr(Count)+'
-('+IntToHex(Count,2)+'
)te Wurzel ---------');
Memo1.Lines.Add('
0. Zahl : '+NStr(IIData,NStrFormatTT));
Memo1.Lines.Add('
');
// 1. die wurzel ziehen und das ergebnis + rest anzeigen
NRoot(IIWurzel1,IIRest1,IIData,Count);
Memo1.Lines.Add('
1. Ergebnis : '+NStr(IIWurzel1,NStrFormatTT));
Memo1.Lines.Add('
1. Rest : '+NStr(IIRest1,NStrFormatTT));
//gegenrechnen..... potenz bilden + rest addieren und anzeigen
NPow(IINewData,IIWurzel1,Count);
NAdd(IINewData,IIRest1);
Memo1.Lines.Add('
1. Prüfung : '+NStr(IINewData,NStrFormatTT));
// der 2. lange/andere weg
// die wurzel ziehen und das ergebnis + rest anzeigen
NRoot(IIWurzel2,IIData,Count);
NPow(IINewData,IIWurzel2,Count);
NSub(IIRest2,IIData,IINewData);
Memo1.Lines.Add('
');
Memo1.Lines.Add('
2. Ergebnis : '+NStr(IIWurzel2,NStrFormatTT));
Memo1.Lines.Add('
2. Rest : '+NStr(IIRest2,NStrFormatTT));
//gegenrechnen..... potenz bilden und rest addieren und anzeigen
NPow(IINewData,IIWurzel2,Count);
NAdd(IINewData,IIRest2);
Memo1.Lines.Add('
2. Prüfung : '+NStr(IINewData,NStrFormatTT));
end;
end;
end.