![]() |
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 |
Re: Noob braucht hilfe!!
Erst mal herzlich willkommen in der DP !!
Du solltes deiner Frage einen aussagekräftigeren Titel verpassen. Zitat:
..poste doch mal den Code wie weit du alleine gekommen bist |
Re: Noob braucht hilfe!!
Hi,
erstmal gebe bitte deinem Beitrag einen passenderen Namen. Hilfe braucht hier nahezu jeder. (Siehe dazu auch ![]() Zu den Begriffen for und integer wird dir die Hilfe (Wort markieren und dann STRG+F1) helfen können. Chris |
Re: Noob braucht hilfe!!
Ok also hier der Quelltext:
Delphi-Quellcode:
Und ausserdem:
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; 1,2,4,16,256,65536,4.294.967.296 [edit=sakura] [delphi]-Tags eingefügt. Mfg, sakura[/edit] |
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
Dieses Thema wurde von "FuckRacism" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Hat doch was mit Delphi zu tun. |
Re: Wie zeige ich diese Zahl:4.294.967.296 an?
Zitat:
nicht quadrieren, sondern von Feld zu Feld verdoppeln ;) Edit: bei 64 Feldern wird das trotzdem nicht reichen mit Integer.. ..also int64 benutzen |
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; |
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; |
Re: Wie zeige ich diese Zahl:4.294.967.296 an?
Achso, dann stimmt mein Beispiel nicht. :(
|
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] |
Re: Wie zeige ich diese Zahl:4.294.967.296 an?
Zitat:
..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.... |
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 |
Re: Wie zeige ich diese Zahl:4.294.967.296 an?
Hi,
nimm int64 und erfreu dich dran. Das müsste reichen. Chris |
Re: Wie zeige ich diese Zahl:4.294.967.296 an?
Zitat:
... falls es aber doch das alte Schachbrettmärchen ist und dies dargestellt werden soll, reicht int64 genau auf den Punkt genau aus..sonst nicht |
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:
erkennt jemand die Folge
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 2^(2^(x - 1)) kann das sein ??? |
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! |
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 :( |
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... |
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! |
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! |
Re: Wie zeige ich diese Zahl:4.294.967.296 an?
Alle integers ausser der von i auf int64 stellen
|
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 |
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