Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie zeige ich diese Zahl:4.294.967.296 an? (https://www.delphipraxis.net/16246-wie-zeige-ich-diese-zahl-4-294-967-296-a.html)

Devil-Shark 13. Feb 2004 15:33


Wie zeige ich diese Zahl:4.294.967.296 an?
 
Hi Leute,
ich hätte da mal eine frage mein Informatiklehrer hat uns eine Aufgabe gegeben ein Progrmm zu einer Märchenaufgabe zu schreiben.
Also die Aufgabe ist es liegt ein Schachbret vor (64 Felder) und auf dem ersten feld liegt eine Goldmünze auf dem 2 liegen 2 auf dem 3 liegen 4 auf dem 4 liegen 16 und so wird die Zahl pro Feld mal 2 genommen!
Mein prog. funktioniert kann aber nur 7 Felder anzeigen da das achte Feld eine Zahl mit 14.000.000.000 ist.
Also wie kann ich das machen dass, das programm diese Zahlen anzeigt?

Ausserdem muss ich, glaube ich, mit int arbeiten da sonst die Wiederholung mit FOR...TO...DO nicht funzt.

Also was muss ich machen???

Und bitte nicht zu Fachsprachlich sonst rall ich nichts!

MFG Devil-Shark

Tyrael Y. 13. Feb 2004 15:37

Re: Noob braucht hilfe!!
 
Erst mal herzlich willkommen in der DP !!

Du solltes deiner Frage einen aussagekräftigeren Titel verpassen.

Zitat:

Mein prog. funktioniert kann aber nur 7 Felder anzeigen da das achte Feld eine Zahl mit 14.000.000.000 ist.
:shock: da ist eindeutig was falsch, da 2^8 niemals so eine Zahl ergibt

..poste doch mal den Code wie weit du alleine gekommen bist

CalganX 13. Feb 2004 15:39

Re: Noob braucht hilfe!!
 
Hi,
erstmal gebe bitte deinem Beitrag einen passenderen Namen. Hilfe braucht hier nahezu jeder. (Siehe dazu auch hier.)

Zu den Begriffen for und integer wird dir die Hilfe (Wort markieren und dann STRG+F1) helfen können.

Chris

Devil-Shark 13. Feb 2004 15:45

Re: Noob braucht hilfe!!
 
Ok also hier der Quelltext:

Delphi-Quellcode:
var
Felder,Feld: integer;
i:integer;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
    ListBox1.Items.Clear;
    Felder:=strtoint(Edit1.text);
    if Felder = 1 then ListBox1.Items.Add('1')else begin
      ListBox1.Items.Add('1');
      ListBox1.Items.Add('2');
      Feld := 2;
      for i := 1 to Felder-2 do
      begin
        feld := sqr(feld);
        Application.ProcessMessages;
        listbox1.items.add(inttostr(feld));
      end;
   end;
end;
Und ausserdem:
1,2,4,16,256,65536,4.294.967.296

[edit=sakura] [delphi]-Tags eingefügt. Mfg, sakura[/edit]

LukasVT 13. Feb 2004 15:45

Re: Noob braucht hilfe!!
 
Also, ich hab im bei dem Programm geholfen, also sag ich dazu auch hier
mal was. Die Zahlen höhren schon bei ca. 65000 auf, aber der Bereich von Integer
geht ja eigentlich viel weiter. Deshalb wüsste ih jetzt auch nicht wie das geht.
Ich hab mir gedacht das ein Problem mit der IntToStr funktion sein könnte.

DP-Maintenance 13. Feb 2004 15:47

DP-Maintenance
 
Dieses Thema wurde von "FuckRacism" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Hat doch was mit Delphi zu tun.

Tyrael Y. 13. Feb 2004 15:50

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
Zitat:

Und ausserdem:
1,2,4,16,256,65536,4.294.967.296
das stimmt nicht... 1, 2, 4, 8, 16, 32, 64, 128,...

nicht quadrieren, sondern von Feld zu Feld verdoppeln ;)

Edit:
bei 64 Feldern wird das trotzdem nicht reichen mit Integer..

..also int64 benutzen

Matze 13. Feb 2004 15:51

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
Hier mal ein Baby-Beispiel: ;)

Delphi-Quellcode:
uses Math; //falls du das nehmen darfst

...

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
  for i := 1 to 64 do
  begin
    ListBox1.Items.Add(IntToStr(i) + ': ' + FloatToStr(Power(2, i)));
  end;
end;

Devil-Shark 13. Feb 2004 15:52

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
es geht ja nicht um mal 2 sondern mal sich selbst!!

also x:=x*x;

Matze 13. Feb 2004 15:54

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
Achso, dann stimmt mein Beispiel nicht. :(

CalganX 13. Feb 2004 15:54

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
Hi,
Grundlagen der Mathematik: x * x = x^2

Ausgabe von Powercalc
Code:
1^2
   1
2^2
   4
3^2
   9
4^2
   16
6^2
   36
7^2
   49
8^2
   64
9^2
   81


:gruebel:

Chris

[edit]Aber wenn du das so machen willst, wie du das beschrieben hast, also das vorherige Ergebnis quardrieren, dann ist klar, dass es nicht geht. Einfach longint bzw. int64 statt integer verwenden.[/edit]

Tyrael Y. 13. Feb 2004 15:56

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
Zitat:

es geht ja nicht um mal 2 sondern mal sich selbst!!
also x:=x*x;
..bist du dir wirklich sicher?

..wenn es das indische Märchen ist und das jetzt dargestellt werden soll geht es dort nur ums verdoppeln nicht quadrieren..

falls du doch quadrieren sollst, dann mal gute Nacht, weil ab Feld 10 gibt es kein Datentyp, daß dies darstellen kann....

Devil-Shark 13. Feb 2004 15:57

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
2*2=4
x ist dann 4
4*4=16
x ist dann 16
16*16=256
x ist dann 256

so steht das auf dem sch*** Blatt das wir bekommen haben.
Vieleicht hat mein Lehrer das auch nur falsch gemacht.

x*x=neux
neux*neux=neux1 und so weiter

CalganX 13. Feb 2004 16:02

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
Hi,
nimm int64 und erfreu dich dran. Das müsste reichen.

Chris

Tyrael Y. 13. Feb 2004 16:02

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
Zitat:

2*2=4
x ist dann 4
4*4=16
x ist dann 16
16*16=256
x ist dann 256

so steht das auf dem sch*** Blatt das wir bekommen haben.
Vieleicht hat mein Lehrer das auch nur falsch gemacht.

x*x=neux
neux*neux=neux1 und so weiter
...wenn das alles stimmen sollte, dann sag deinem Info-Lehrer er soll dir erst mal nen Datentyp prorammieren mit dem du diese Zahl darstellen kannst, weil int64 von –2^63..2^63–1 geht und das dir das nicht ausgereicht hat für 64 Felder

... falls es aber doch das alte Schachbrettmärchen ist und dies dargestellt werden soll, reicht int64 genau auf den Punkt genau aus..sonst nicht

neolithos 13. Feb 2004 16:05

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
Ich möchte die Münzen nicht habe!

Das nimmt zu große Dimensionen an
Code:
1 - 2^0  * 2^0  = 2^0
2 - 2^1  * 2^1  = 2^2
3 - 2^2  * 2^2  = 2^4
4 - 2^4  * 2^4  = 2^8
5 - 2^8  * 2^8  = 2^16
6 - 2^16 * 2^16 = 2^32
7 - 2^32 * 2^32 = 2^64
erkennt jemand die Folge

2^(2^(x - 1)) kann das sein ???

Devil-Shark 13. Feb 2004 16:05

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
OK ich sag es ihm!
Noch eine frage welche sachen muss ich jetzt alle auf int64 stellen weil mit dem inttostr komme ich noch immer durcheinander!

LukasVT 13. Feb 2004 16:05

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
Eine kleine Frage:
Könnte man nicht als Datentyp nur noch strings nehmen,
und dann das Quadrieren der Strings von Hand durchführen?

@Chakotay1308: Mit int64 geht es auch nicht :(

Neg 13. Feb 2004 16:07

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
:gruebel:

Wenn du immer quadrierst, und nicht verdoppelst, wie kommst du denn dann vom ersten Feld1 = 1 Münze nach Feld2 = 2 Münzen? Also, irgendwo kann da was nicht richtig sein...

neolithos 13. Feb 2004 16:07

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
Kann das mal jemand prüfen was ich darüber geschrieben habe!

Falls das stimmt brauch man nichts groß zu rechnen sondern kann die Zahl gleich ausgeben!

Devil-Shark 13. Feb 2004 16:09

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
Ich hab die Unit doch kopiert!
Das habe ich mit If...Then... gelöst!

Tyrael Y. 13. Feb 2004 16:09

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
Alle integers ausser der von i auf int64 stellen

Tyrael Y. 13. Feb 2004 16:12

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
@neolithos wenn mcih meine Mathe Kentnisse nicht im Stich lassen, würd ich sagen stimmt, die Folge ist richtig

Edit: shit doch im Stich gelassen :stupid: , die Folge stimmt nicht

1 - 2^0 * 2^0 = 2^0 = 1
2 - 2^1 * 2^1 = 2^2 = 4 <--- falsch, muss ne 2 sein
3 - 2^2 * 2^2 = 2^4
4 - 2^4 * 2^4 = 2^8
5 - 2^8 * 2^8 = 2^16
6 - 2^16 * 2^16 = 2^32
7 - 2^32 * 2^32 = 2^64

1 - 1
2 - 2
3 - 4
4 - 16
5 - 256
6 - ~65000
7 - ~4 Milliarden

neolithos 13. Feb 2004 16:17

Re: Wie zeige ich diese Zahl:4.294.967.296 an?
 
Dann könnte man als Ergebnis

2 ^ 2 ^ 63

Schreiben.

Jetzt sollte das Horner-Schema weiterhelfen.
Denn das ganze stellt ja "nur" ein Bitverschiebung dar.

Hexadezimal bedeutet das

eine 1 mit 2^59 nullen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:35 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