 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Matze001
Anmeldungsdatum: 03.05.2006 Beiträge: 28
|
Verfasst am: 03.05.2006, 18:50 Titel: Zahlendarstellung ab Sechs Stellen falsch |
|
|
hallo,
mal wieder ein Anfänger....
also ich habe ein kleines Prog. geschrieben.
Dieses Programm besteht aus zwei Teilen,
einem welches eine Eingabeauffordrung ist,
und einem welcher die Eingaben verarbeitet
(z.B. die erste Eingabe mal 250 nimmt und dann anzeigt).
Das Problem ist, das ab einer Darstellung der Ziffern ab Sechs
Stellen immer etwas wie EE+1D kommt,was ich aber vermeiden will.
Ich habe schon einige Foren und FAQ´s durchstöbert
und nur einen Tip gefunden : Print using .... ,
bei mir funktioniert diese Funktion aber nicht.
Ich multiplizieredie Ziffern, welche dargestellt werden sollen, erst im Printbefehl.
Hier ein kleiner Ausschnitt der Eingabeaufforderung:
INPUT "Wie viele Rohstoffe hat dein Gegner?", xyz
Hier der Teil der Darstellung:
PRINT "xyz"
LOCATE 3, 20
PRINT xyz * 200
LOCATE 3, 50
PRINT xyz * 250
Wenn nun das Ergebnis von xyz*200 mehr Stellen als Sechs hat tritt das Problem auf.
Es ist so, dass bei der Verwendung des Programms zu 99% Zahlen mit mind. 6 Stellen herrauskommen.
So werden mir auch zu 99% diese Ergebnisse angezeigt.
Vielen Dank schon einmal für die Hilfe!
MfG
Matze001 _________________ <xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link? |
|
Nach oben |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 03.05.2006, 19:04 Titel: |
|
|
wie lautet den die fehlermeldung?
vllt. liegts au am datentyp,probier einfach mal single
grüße otti _________________ Gute Musik
 |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 03.05.2006, 19:19 Titel: |
|
|
@otti
Wir sind im QBasic teil des Forum -> Standard Typ ist single .
@Matze001
Code: | DIM xyz AS LONG
CLS
INPUT "Wie viele Rohstoffe hat dein Gegner?", xyz
PRINT "xyz"
LOCATE 3, 20
PRINT xyz * 200
LOCATE 3, 50
PRINT xyz * 250 |
So vielleicht?
Zitat: | Es ist so, dass bei der Verwendung des Programms zu 99% Zahlen mit mind. 6 Stellen herrauskommen. |
Wenn die Zahlen so gross sind, gehe ich davon aus das sieh kein Komma haben/brauchen.
Das DIM xyz AS LONG bewirkt, das xyz als Lange Zahl ohne Komma behandelt wird. |
|
Nach oben |
|
 |
Matze001
Anmeldungsdatum: 03.05.2006 Beiträge: 28
|
Verfasst am: 03.05.2006, 19:57 Titel: |
|
|
Michael Frey hat Folgendes geschrieben: | @otti
Wir sind im QBasic teil des Forum -> Standard Typ ist single .
@Matze001
Code: | DIM xyz AS LONG
CLS
INPUT "Wie viele Rohstoffe hat dein Gegner?", xyz
PRINT "xyz"
LOCATE 3, 20
PRINT xyz * 200
LOCATE 3, 50
PRINT xyz * 250 |
So vielleicht?
Zitat: | Es ist so, dass bei der Verwendung des Programms zu 99% Zahlen mit mind. 6 Stellen herrauskommen. |
Wenn die Zahlen so gross sind, gehe ich davon aus das sieh kein Komma haben/brauchen.
Das DIM xyz AS LONG bewirkt, das xyz als Lange Zahl ohne Komma behandelt wird. |
So hat es leider keinen Sinn, da ich 25 Variablen habe die so dargestellt werden müssen, und wenn ich zwei oder mehr aufzähle ( DIM xyz, yxz AS LONG) sagt er mir "Doppelte Definition" ... und 25 mal DIM AS LONG zu schreiben is doch net Sinn der Sache
Ach ja...hier ma das "ganze" Prog.:
Ob es gut is kein Plan...is mein erstes was Text ausgibt, bzw verarbeitet
Code: |
CLS
WIDTH 80, 50
INPUT "Wie viel B?rgerwehr hat dein Gegner?", bw
INPUT "Wie viele Soldaten hat dein Gegner?", sd
INPUT "Wie viele Grenadiere hat dein Gegner?", gr
INPUT "Wie viele Fallschirmspringer hat dein Gegner?", fs
INPUT "Wie viele Naviseals hat dein Gegner?", ns
PRINT
INPUT "Wie viele Luchs hat dein Gegner?", lu
INPUT "Wie viele Gepard hat dein Gegner?", ge
INPUT "Wie viele Keiler hat dein Gegner?", ke
INPUT "Wie viele Leos hat dein Gegner?", le
INPUT "Wie viele Abrams hat dein Gegner?", ab
PRINT
INPUT "Wie viele Jagt-U-Boote hat dein Gegner?", ju
INPUT "Wie viele Ballis hat dein Gegner?", ba
INPUT "Wie viele Kreuzer hat dein Gegner?", kr
INPUT "Wie viele Schlachtschiffe hat dein Gegner?", sc
INPUT "Wie viele Flugzeugtr„ger hat dein Gegner?", ft
PRINT
INPUT "Wie viele Mi24 hat dein Gegner?", mi
INPUT "Wie viele Apachees hat dein Gegner?", ap
INPUT "Wie viele F14 hat dein Gegner?", f1
INPUT "Wie viele F22 hat dein Gegner?", f2
INPUT "Wie viele B2-Spirit hat dein Gegner?", b2
PRINT
INPUT "Wie viele Bunker hat dein Gegner?", bk
INPUT "Wie viele Minenfelder hat dein Gegner?", mf
INPUT "Wie viele Wasserminen hat dein Gegner?", wm
INPUT "Wie viele K?stenbatterien hat dein Gegner?", kb
INPUT "Wie viele Flak hat dein Gegner?", fl
CLS
PRINT "Einheiten"
LOCATE 1, 20
PRINT "Attwert"
LOCATE 1, 50
PRINT "Deffwert"
PRINT
PRINT "B?rgerwehr"
LOCATE 3, 20
PRINT bw * 1
LOCATE 3, 50
PRINT bw * 1
PRINT "Soldaten"
LOCATE 4, 20
PRINT sd * 2
LOCATE 4, 50
PRINT sd * 2
PRINT "Grenadiere"
LOCATE 5, 20
PRINT gr * 5
LOCATE 5, 50
PRINT gr * 3
PRINT "Fallschirmspringer"
LOCATE 6, 20
PRINT fs * 6
LOCATE 6, 50
PRINT fs * 5
PRINT "Naviseals"
LOCATE 7, 20
PRINT ns * 8
LOCATE 7, 50
PRINT ns * 10
PRINT
PRINT "Luchs"
LOCATE 9, 20
PRINT lu * 25
LOCATE 9, 50
PRINT lu * 20
PRINT "Gepard"
LOCATE 10, 20
PRINT ge * 120
LOCATE 10, 50
PRINT ge * 150
PRINT "Keiler"
LOCATE 11, 20
PRINT ke * 40
LOCATE 11, 50
PRINT ke * 50
PRINT "Leos"
LOCATE 12, 20
PRINT le * 100
LOCATE 12, 50
PRINT le * 120
PRINT "Abrams"
LOCATE 13, 20
PRINT ab * 150
LOCATE 13, 50
PRINT ab * 200
PRINT
PRINT "Jadt-U-Boote"
LOCATE 15, 20
PRINT ju * 400
LOCATE 15, 50
PRINT ju * 500
PRINT "Ballistische U-Boote"
LOCATE 16, 20
PRINT bu * 300
LOCATE 16, 50
PRINT bu * 200
PRINT "Kreuzer"
LOCATE 17, 20
PRINT kr * 200
LOCATE 17, 50
PRINT kr * 250
PRINT "Schlachtschiffe"
LOCATE 18, 20
PRINT sc * 800
LOCATE 18, 50
PRINT sc * 1000
PRINT "Flugzeugträger"
LOCATE 19, 20
PRINT ft * 1250
LOCATE 19, 50
PRINT ft * 600
PRINT
PRINT "MI-24"
LOCATE 21, 20
PRINT mi * 180
LOCATE 21, 50
PRINT mi * 150
PRINT "Apachees"
LOCATE 22, 20
PRINT ap * 220
LOCATE 22, 50
PRINT ap * 200
PRINT "F14"
LOCATE 23, 20
PRINT f1 * 200
LOCATE 23, 50
PRINT f1 * 100
PRINT "F22"
LOCATE 24, 20
PRINT f2 * 400
LOCATE 24, 50
PRINT f2 * 200
PRINT "B2-Spirit"
LOCATE 25, 20
PRINT b2 * 1500
LOCATE 25, 50
PRINT b2 * 800
PRINT
PRINT "Bunker"
LOCATE 27, 20
PRINT bk * 30
LOCATE 27, 50
PRINT bk * 50
PRINT "Minenfelder"
LOCATE 28, 20
PRINT mf * 50
LOCATE 28, 50
PRINT mf * 40
PRINT "Wasserminen"
LOCATE 29, 20
PRINT wm * 60
LOCATE 29, 50
PRINT wm * 80
PRINT "K?stenbatterien"
LOCATE 30, 20
PRINT kb * 100
LOCATE 30, 50
PRINT kb * 150
PRINT "Flak"
LOCATE 31, 20
PRINT fl * 150
LOCATE 31, 50
PRINT fl * 200
print
Print "Gesammt"
locate 33,20
print bw * 1+sd * 2+gr * 5+fs * 6+ns * 8+lu * 25+ge * 120+ke * 40+le * 100+ab * 150+ju * 400+bu * 300+kr * 200+sc * 800+ft * 1250+mi * 180+ap * 220+f1 * 200+f2 * 400+b2 * 1500+bk * 30+mf * 50+wm * 60+kb * 100+fl * 150
locate 33,50
print bw * 1+sd * 2+gr * 3+fs * 5+ns * 10+lu * 20+ge * 150+ke * 50+le * 120+ab * 200+ju * 500+bu * 200+kr * 250+sc * 1000+ft * 600+mi * 150+ap * 200+f1 * 100+f2 * 200+b2 * 800+bk * 50+mf * 40+wm * 80+kb * 150+fl * 200
sleep
|
Edit: Bitte nicht von dem am Ende irritieren lassen, da werden die Gesammten Att bzw. Deffwerte zusammengefast, ich weis es sieht sch***ön aus  _________________ <xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link? |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 03.05.2006, 20:13 Titel: |
|
|
Nix für ungut, Single-Daten haben nun mal nen paar Promille Fehler, das lässt sich schlicht und ergreifend nicht ändern. Mit DOUBLE wirds genauer, aber langsamer. Um die "Du hast noch 6.0000001 Gold" zu vermeiden brauchst du entweder nen Datentyp, der nur INTEGER (also Ganzzahlen) speichert verwenden, oder du musst den Single-Wert runden.
Lutz Ifer
Ps... ähm, kann das sein, dass Du Sinn und Zweck des Einrückens a) nicht verstanden hast, oder für b) künsterlische Zwecke missbrauchst? _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
Matze001
Anmeldungsdatum: 03.05.2006 Beiträge: 28
|
Verfasst am: 03.05.2006, 20:15 Titel: |
|
|
Lutz Ifer hat Folgendes geschrieben: | Nix für ungut, Single-Daten haben nun mal nen paar Promille Fehler, das lässt sich schlicht und ergreifend nicht ändern. Mit DOUBLE wirds genauer, aber langsamer. Um die "Du hast noch 6.0000001 Gold" zu vermeiden brauchst du entweder nen Datentyp, der nur INTEGER (also Ganzzahlen) speichert, oder du musst den Single-Wert runden.
Lutz Ifer
Ps... ähm, kann das sein, dass Du Sinn und Zweck des Einrückens a) nicht verstanden hast, oder für b) künsterlische Zwecke missbrauchst? |
Mit dem Einrücken hatte ich langeweile....also b... ... und wie genau müsste es denn aussehen wenn man es nach deiner Methode machen würde? Schreib ma eine von den Ausgabezeilen um, wäre sehr nett!
Edit: Bei deinem Link : Fatal error: Maximum execution time of 10 seconds exceeded in /home/htdocs/web39/html/showwiki.php on line 137
Edit No.2 : Ach ja nur nochma so Matze001 hat Folgendes geschrieben: |
mal wieder ein Anfänger....
|
Bitte so einfach wie möglich ausdrücken und am besten erklären...vielen Dank!  _________________ <xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link? |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 03.05.2006, 21:03 Titel: |
|
|
einrücken geht allgemein so, dass man bei sachen innerhalb unmittelbar zusammenhängender Elemente (FOR ... NEXT, DO ... LOOP, IF..THEN ... END IF) einfach um 1 oder 4 oder auch nen Tabulator eindrückt damit man das ende einer Schleife oder sowas gut finden kann:
Code: | 'MeinProgramm.bas:
variable=5
DO
PRINT "Hallo"
FOR n = 1 TO variable
PRINT LTRIM$(RTRIM$(STR$(variable-n)))+"... "
SLEEP 1
IF INKEY$<>"" THEN END
NEXT n
PRINT "Tschüss"
PRINT
PRINT
SLEEP 1
IF INKEY$<>"" THEN END
LOOP |
_________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Matze001
Anmeldungsdatum: 03.05.2006 Beiträge: 28
|
Verfasst am: 03.05.2006, 21:07 Titel: |
|
|
MisterD hat Folgendes geschrieben: | einrücken geht allgemein so, dass man bei sachen innerhalb unmittelbar zusammenhängender Elemente (FOR ... NEXT, DO ... LOOP, IF..THEN ... END IF) einfach um 1 oder 4 oder auch nen Tabulator eindrückt damit man das ende einer Schleife oder sowas gut finden kann:
Code: | 'MeinProgramm.bas:
variable=5
DO
PRINT "Hallo"
FOR n = 1 TO variable
PRINT LTRIM$(RTRIM$(STR$(variable-n)))+"... "
SLEEP 1
IF INKEY$<>"" THEN END
NEXT n
PRINT "Tschüss"
PRINT
PRINT
SLEEP 1
IF INKEY$<>"" THEN END
LOOP |
|
Oh sry hab mich mies ausgedrückt
Das mit dem beschreiben war net fürs Einrücken, das kann ihc (hier brauchte ich es aber net, also nur um es n bissle netter, übersichtlicher zu machen)...ich meine eigendlich ob du mal deine Version coden könntest mit dem Komplettanzeigen der Zahlen....aber es war von mir falsch formuliert also liegt der Fehler 100% bei mir
MfG
Matze001 _________________ <xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link? |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 03.05.2006, 21:34 Titel: |
|
|
Du kannst dir das ganze DIM AS LONG... ersparen, indem du an den Beginn deines Codes ein
schreibst. Somit werden alle Variablen, die nicht explizit deklariert werden, auf den Datentyp LONG gesetzt.
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 03.05.2006, 21:43 Titel: |
|
|
Matze001... Ich spreche Deutsch - was sprichst Du?
Was hälst Du von Grammatik?
Rück anständig ein.
Benutze "DEFLNG A-Z" oder "DEFINT A-Z".
Benutze "PRINT USING".
Zitat: | ich meine eigendlich ob du mal deine Version coden könntest mit dem Komplettanzeigen der Zahlen |
Schau ich so aus wie deine Sekretärin?
Benutz die Referenz oder die MosterFAQ, oder eine der Tausend "Jetzt lerne ich QBasic-Seiten" - dafür sind sie da.
Und bitte: Benutz NoPaste _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
Matze001
Anmeldungsdatum: 03.05.2006 Beiträge: 28
|
Verfasst am: 03.05.2006, 21:49 Titel: |
|
|
jb hat Folgendes geschrieben: | Du kannst dir das ganze DIM AS LONG... ersparen, indem du an den Beginn deines Codes ein
schreibst. Somit werden alle Variablen, die nicht explizit deklariert werden, auf den Datentyp LONG gesetzt.
jb |
Danke hat mir sehr geholfen, nun eun neues Problem....kurz vor dem Ende komm "Überlauf", da einige Zahlen in die Mrd. gehn können und dann mal 40 oder 50genommen werden, kann man das abstellen oder rechnet der sich dann tot?
Ach ja ...nochmal ne kleine Aktualisierung
Code: | DEFLNG A-Z
CLS
WIDTH 80, 50
INPUT "Wie viel B?rgerwehr hat dein Gegner?", bw
INPUT "Wie viele Soldaten hat dein Gegner?", sd
INPUT "Wie viele Grenadiere hat dein Gegner?", gr
INPUT "Wie viele Fallschirmspringer hat dein Gegner?", fs
INPUT "Wie viele Naviseals hat dein Gegner?", ns
PRINT
INPUT "Wie viele Luchs hat dein Gegner?", lu
INPUT "Wie viele Gepard hat dein Gegner?", ge
INPUT "Wie viele Keiler hat dein Gegner?", ke
INPUT "Wie viele Leos hat dein Gegner?", le
INPUT "Wie viele Abrams hat dein Gegner?", ab
PRINT
INPUT "Wie viele Jagt-U-Boote hat dein Gegner?", ju
INPUT "Wie viele Ballis hat dein Gegner?", ba
INPUT "Wie viele Kreuzer hat dein Gegner?", kr
INPUT "Wie viele Schlachtschiffe hat dein Gegner?", sc
INPUT "Wie viele Flugzeugtr„ger hat dein Gegner?", ft
PRINT
INPUT "Wie viele Mi24 hat dein Gegner?", mi
INPUT "Wie viele Apachees hat dein Gegner?", ap
INPUT "Wie viele F14 hat dein Gegner?", f1
INPUT "Wie viele F22 hat dein Gegner?", f2
INPUT "Wie viele B2-Spirit hat dein Gegner?", b2
PRINT
INPUT "Wie viele Bunker hat dein Gegner?", bk
INPUT "Wie viele Minenfelder hat dein Gegner?", mf
INPUT "Wie viele Wasserminen hat dein Gegner?", wm
INPUT "Wie viele K?stenbatterien hat dein Gegner?", kb
INPUT "Wie viele Flak hat dein Gegner?", fl
CLS
PRINT "Einheiten"
LOCATE 1, 20
PRINT "Attwert"
LOCATE 1, 50
PRINT "Deffwert"
PRINT
PRINT "B?rgerwehr"
LOCATE 3, 20
PRINT bw * 1
LOCATE 3, 50
PRINT bw * 1
PRINT "Soldaten"
LOCATE 4, 20
PRINT sd * 2
LOCATE 4, 50
PRINT sd * 2
PRINT "Grenadiere"
LOCATE 5, 20
PRINT gr * 5
LOCATE 5, 50
PRINT gr * 3
PRINT "Fallschirmspringer"
LOCATE 6, 20
PRINT fs * 6
LOCATE 6, 50
PRINT fs * 5
PRINT "Naviseals"
LOCATE 7, 20
PRINT ns * 8
LOCATE 7, 50
PRINT ns * 10
PRINT
PRINT "Luchs"
LOCATE 9, 20
PRINT lu * 25
LOCATE 9, 50
PRINT lu * 20
PRINT "Gepard"
LOCATE 10, 20
PRINT ge * 120
LOCATE 10, 50
PRINT ge * 150
PRINT "Keiler"
LOCATE 11, 20
PRINT ke * 40
LOCATE 11, 50
PRINT ke * 50
PRINT "Leos"
LOCATE 12, 20
PRINT le * 100
LOCATE 12, 50
PRINT le * 120
PRINT "Abrams"
LOCATE 13, 20
PRINT ab * 150
LOCATE 13, 50
PRINT ab * 200
PRINT
PRINT "Jadt-U-Boote"
LOCATE 15, 20
PRINT ju * 400
LOCATE 15, 50
PRINT ju * 500
PRINT "Ballistische U-Boote"
LOCATE 16, 20
PRINT bu * 300
LOCATE 16, 50
PRINT bu * 200
PRINT "Kreuzer"
LOCATE 17, 20
PRINT kr * 200
LOCATE 17, 50
PRINT kr * 250
PRINT "Schlachtschiffe"
LOCATE 18, 20
PRINT sc * 800
LOCATE 18, 50
PRINT sc * 1000
PRINT "Flugzeugträger"
LOCATE 19, 20
PRINT ft * 1250
LOCATE 19, 50
PRINT ft * 600
PRINT
PRINT "MI-24"
LOCATE 21, 20
PRINT mi * 180
LOCATE 21, 50
PRINT mi * 150
PRINT "Apachees"
LOCATE 22, 20
PRINT ap * 220
LOCATE 22, 50
PRINT ap * 200
PRINT "F14"
LOCATE 23, 20
PRINT f1 * 200
LOCATE 23, 50
PRINT f1 * 100
PRINT "F22"
LOCATE 24, 20
PRINT f2 * 400
LOCATE 24, 50
PRINT f2 * 200
PRINT "B2-Spirit"
LOCATE 25, 20
PRINT b2 * 1500
LOCATE 25, 50
PRINT b2 * 800
PRINT
PRINT "Bunker"
LOCATE 27, 20
PRINT bk * 30
LOCATE 27, 50
PRINT bk * 50
PRINT "Minenfelder"
LOCATE 28, 20
PRINT mf * 50
LOCATE 28, 50
PRINT mf * 40
PRINT "Wasserminen"
LOCATE 29, 20
PRINT wm * 60
LOCATE 29, 50
PRINT wm * 80
PRINT "K?stenbatterien"
LOCATE 30, 20
PRINT kb * 100
LOCATE 30, 50
PRINT kb * 150
PRINT "Flak"
LOCATE 31, 20
PRINT fl * 150
LOCATE 31, 50
PRINT fl * 200
x = 1 + sd * 2 + gr * 5 + fs * 6 + ns * 8 + lu * 25 + ge * 120 + ke * 40 + bw * 1 + le * 100
x1 = ab * 150 + ju * 400 + bu * 300 + kr * 200 + sc * 800
y = ft * 1250 + mi * 180 + ap * 220 + f1 * 200 + f2 * 400 + b2 * 1500 + bk * 30
y1 = mf * 50 + wm * 60 + kb * 100 + fl * 150
a = bw * 1 + sd * 2 + gr * 3 + fs * 5 + ns * 10 + lu * 20 + ge * 150 + ke * 50
a1 = le * 120 + ab * 200 + ju * 500 + bu * 200
b = kr * 250 + sc * 1000 + ft * 600 + mi * 150 + ap * 200 + f1 * 100 + f2 * 200
b1 = b2 * 800 + bk * 50 + mf * 40 + wm * 80 + kb * 150 + fl * 200
PRINT
PRINT "Gesammt"
LOCATE 33, 20
PRINT x + x1 + y + y1
LOCATE 33, 50
PRINT a + a1 + b + b1
SLEEP
|
Edit: Bitte lasst mich wegen en letzten Variablenbelegungen leben  _________________ <xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link?
Zuletzt bearbeitet von Matze001 am 03.05.2006, 22:00, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 03.05.2006, 22:00 Titel: |
|
|
LONG entspricht 32Bit, d.h. 2^16 (da die Zahl vorzeichenbehalfet ist).
Wenn dir 65536 zu wenig sind, dann benutze freeBASIC, da gibt es zum Beispiel einen
unsigned-Datentypen ULONG, der hat dann richtige 2^32, also 4.294.967.296...
Aber warum rechnest du mit so hohen Zahlen?
Sind diese in deinem Strategie-Spiel (ich denke mal es ist sowas Ähnliches) überhaupt nötig?
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
Matze001
Anmeldungsdatum: 03.05.2006 Beiträge: 28
|
Verfasst am: 03.05.2006, 22:02 Titel: |
|
|
jb hat Folgendes geschrieben: | LONG entspricht 32Bit, d.h. 2^16 (da die Zahl vorzeichenbehalfet ist).
Wenn dir 65536 zu wenig sind, dann benutze freeBASIC, da gibt es zum Beispiel einen
unsigned-Datentypen ULONG, der hat dann richtige 2^32, also 4.294.967.296...
Aber warum rechnest du mit so hohen Zahlen?
Sind diese in deinem Strategie-Spiel (ich denke mal es ist sowas Ähnliches) überhaupt nötig?
jb |
Ja sind sie...weil wenn mein Gegner 3Mille Soldaten hat und n bissle hiervon und davon...das wird irgenwann n bissle viel kann man das vllt. in Subroutinen auslagern und so umgehen? _________________ <xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link? |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 03.05.2006, 22:05 Titel: |
|
|
Nene, Datentypen haben damit nichts zu tun...
Kannst du nicht einfach DOUBLEs nehmen? Beispiel:
Code: |
DIM Zahl AS DOUBLE
' 1.234567 Milliarden
Zahl = 1.234567
PRINT "Soldaten: "; Zahl; "Milliarden."
|
Verstehst du, wie ich's meine? Auf diese Weise lässt sich eine unnötige Speicherauslastung vermeiden
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
Matze001
Anmeldungsdatum: 03.05.2006 Beiträge: 28
|
Verfasst am: 03.05.2006, 22:18 Titel: |
|
|
jb hat Folgendes geschrieben: | Nene, Datentypen haben damit nichts zu tun...
Kannst du nicht einfach DOUBLEs nehmen? Beispiel:
Code: |
DIM Zahl AS DOUBLE
' 1.234567 Milliarden
Zahl = 1.234567
PRINT "Soldaten: "; Zahl; "Milliarden."
|
Verstehst du, wie ich's meine? Auf diese Weise lässt sich eine unnötige Speicherauslastung vermeiden
jb |
leider nur halb^^ weil ich da net weis wie ich die einzelnen Sachen durch die Inputs verändern soll mit deinem Prog. _________________ <xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link? |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 04.05.2006, 07:22 Titel: |
|
|
Jetzt mal im ernst:
Du willst wohl kaum 6 Milliarden als 6000000000 darstellen, sonst muss ja dein Benutzer/Spieler die Nullen zählen
Eine Idee habe ich:
In der einen Variabel speicherst du die Zahl und in einer anderen die grössenordung.
Etwa so:
Code: | 'Eingabe
PRINT " 0 = "
PRINT " 1 = Tausend"
PRINT " 2 = Millionen"
PRINT " 3 = Millarden"
INPUT ein
PRINT "Wie viele ";
SELECT CASE ein
CASE 0
PRINT "";
CASE 1
PRINT "Tausend";
CASE 2
PRINT "Millionen";
CASE 3
PRINT "Milliarden";
END SELECT
PRINT " sind es?"
INPUT anzahl
'Ausgabe
PRINT "Sie haben "; anzahl;
SELECT CASE ein
CASE 0
PRINT "";
CASE 1
PRINT "Tausend";
CASE 2
PRINT "Millionen";
CASE 3
PRINT "Milliarden";
END SELECT
PRINT " Einheiten"
SLEEP |
Das
Code: | SELECT CASE ein
CASE 0
PRINT "";
CASE 1
PRINT "Tausend";
CASE 2
PRINT "Millionen";
CASE 3
PRINT "Milliarden";
END SELECT |
kann man dann in einer Subroutine ablegen.
Das Rechnen must du dann einfach mit selbst geschriebenen Subroutinen vornehmen. |
|
Nach oben |
|
 |
Matze001
Anmeldungsdatum: 03.05.2006 Beiträge: 28
|
Verfasst am: 04.05.2006, 15:56 Titel: |
|
|
Aha ok ich werde es mal testen... und ja das Programm ist ja genau dafür da um den Bleistift und Zettel (und Taschenrechner ) zu ersetzen...weil ich immernoch Spionageberichte auf diese Art ausrechne... Es ist halt so das die Angriffkraft der Einheiten mal in die Mrd. geht....da kann ich nix dran ändern.... ich teste mal ob ich es so besser hin bekomme... _________________ <xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link? |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 04.05.2006, 17:44 Titel: |
|
|
Oder du machst das ganze auf String-Basis und zähslt einfach die Stellen (natürlich ohne Komma)...
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
Matze001
Anmeldungsdatum: 03.05.2006 Beiträge: 28
|
Verfasst am: 04.05.2006, 19:08 Titel: |
|
|
jb hat Folgendes geschrieben: | Oder du machst das ganze auf String-Basis und zähslt einfach die Stellen (natürlich ohne Komma)...
jb |
Hilfä wie das nun wieder... das is mein erstes Programm (man merkt es , ja^^) ... n kleines Beispiel ma wieder wäre net , ich könnt mich selbst  _________________ <xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link? |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 05.05.2006, 16:59 Titel: |
|
|
Na, du nimmst als Zahlen einfach Strings, d.h. Zeichenketten.
Diese können eine Länge von 32.000 Zeichen haben, sollte also reichen
Das dumme ist nur, dass du dir dazu alle Berechnungen selber schreiben müsstest.
Schau die am besten mal die BEfehle zur Stringmanipulation an, d.h. MID$(), LEFT$(), RIGHT$(), LEN(), INSTR(), LCASE$(), UCASE$().
Damit kommst du schon weiter.
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|