AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Unbegrenzt viele Nachkommastellen

Ein Thema von c113plpbr · begonnen am 8. Dez 2003 · letzter Beitrag vom 9. Aug 2011
 
Benutzerbild von Dano
Dano

Registriert seit: 12. Aug 2004
49 Beiträge
 
#11

Re: Unbegrenzt viele Nachkommastellen

  Alt 9. Okt 2004, 01:02
hi Hagen

sorry das die antwort so lange warten ließ, aber das RL fordert meine ganze zeit

also:
ich habe mal fix ein demoprogramm gemacht wo einmal mit
function NRoot(var A,R: IInteger; const B: IInteger; E: Integer): Boolean; overload;
die wurzel + rest gebildet wird und dann eine gegenrechnung zur prüfung
das ist alles was mit "1." im memo erscheint


und dann einmal mit
function NRoot(var A: IInteger; const B: IInteger; E: Integer): Boolean; overload;
wo ich den rest selber bilde indem ich die wurzel wieder potenziere und von ausgangswert subtrahiere
und eine gegenrechnung zur prüfung mache
das ist "2." im memo

Delphi-Quellcode:
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.
also button und memo ist klar.... also brauchst nur den button-event + die format-const kopieren

Zitat:
33-(21)te Wurzel ---------
0. Zahl : 5EC275847C9568C0F6998624E8F5DBC9F9758AA33D5E7A398D 0F808AE024E781

1. Ergebnis : D1
1. Rest : C65A03E5049A58BE0EB105020E815EFEFA99A0E3A4D3FD449A D2490E18728F
1. Prüfung : 51F1890A395EC0F891CC6914EC61F25E4BAA985176F3B502C8 FF97535AC61D60

2. Ergebnis : D1
2. Rest : D97467E283B422122DBCE14FEA26ACAACC58BF2AA0F993408A ABB8093773CB0
2. Prüfung : 5EC275847C9568C0F6998624E8F5DBC9F9758AA33D5E7A398D 0F808AE024E781


81-(51)te Wurzel ---------
0. Zahl : 5EC275847C9568C0F6998624E8F5DBC9F9758AA33D5E7A398D 0F808AE024E781

1. Ergebniss : 8
1. Rest : 1F75847C9568C0F6998624E8F5DBC9F9758AA33D5E7A398D0F 808AE024E781
1. Prüfung : 2775847C9568C0F6998624E8F5DBC9F9758AA33D5E7A398D0F 808AE024E781

2. Ergebniss : 8
2. Rest : 5EBA75847C9568C0F6998624E8F5DBC9F9758AA33D5E7A398D 0F808AE024E781
2. Prüfung : 5EC275847C9568C0F6998624E8F5DBC9F9758AA33D5E7A398D 0F808AE024E781


255-(FF)te Wurzel ---------
0. Zahl : 5EC275847C9568C0F6998624E8F5DBC9F9758AA33D5E7A398D 0F808AE024E781

1. Ergebniss : 1
1. Rest : 18
1. Prüfung : 19

2. Ergebniss : 1
2. Rest : 5EC275847C9568C0F6998624E8F5DBC9F9758AA33D5E7A398D 0F808AE024E780
2. Prüfung : 5EC275847C9568C0F6998624E8F5DBC9F9758AA33D5E7A398D 0F808AE024E781
und das sind mal 3 beispiele wo es nicht klappt

ich hoffe das dir das hilft

mfg Dano

ps: im memo habe ich Courier als font.... das machts übersichtlicher
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz