Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Zahlendarstellung ab Sechs Stellen falsch
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Matze001



Anmeldungsdatum: 03.05.2006
Beiträge: 28

BeitragVerfasst am: 03.05.2006, 18:50    Titel: Zahlendarstellung ab Sechs Stellen falsch Antworten mit Zitat

hallo,

mal wieder ein Anfänger.... peinlich durchgeknallt mit dem Kopf durch die Mauer wollen

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. mit den Augen rollen

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
Benutzer-Profile anzeigen Private Nachricht senden
otti



Anmeldungsdatum: 28.02.2005
Beiträge: 112
Wohnort: Wildberg

BeitragVerfasst am: 03.05.2006, 19:04    Titel: Antworten mit Zitat

wie lautet den die fehlermeldung?

vllt. liegts au am datentyp,probier einfach mal single
Code:

dim xyz as single


grüße otti
_________________
Gute Musik lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 03.05.2006, 19:19    Titel: Antworten mit Zitat

@otti
Wir sind im QBasic teil des Forum -> Standard Typ ist single zwinkern.

@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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Matze001



Anmeldungsdatum: 03.05.2006
Beiträge: 28

BeitragVerfasst am: 03.05.2006, 19:57    Titel: Antworten mit Zitat

Michael Frey hat Folgendes geschrieben:
@otti
Wir sind im QBasic teil des Forum -> Standard Typ ist single zwinkern.

@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 durchgeknallt


Ach ja...hier ma das "ganze" Prog.:
Ob es gut is kein Plan...is mein erstes was Text ausgibt, bzw verarbeitet mit den Augen rollen
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 peinlich
_________________
<xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 03.05.2006, 20:13    Titel: Antworten mit Zitat

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 böse 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
Benutzer-Profile anzeigen Private Nachricht senden
Matze001



Anmeldungsdatum: 03.05.2006
Beiträge: 28

BeitragVerfasst am: 03.05.2006, 20:15    Titel: Antworten mit Zitat

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 böse 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... lachen durchgeknallt ... 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.... peinlich durchgeknallt mit dem Kopf durch die Mauer wollen



Bitte so einfach wie möglich ausdrücken und am besten erklären...vielen Dank! mit den Augen rollen
_________________
<xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 03.05.2006, 21:03    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Matze001



Anmeldungsdatum: 03.05.2006
Beiträge: 28

BeitragVerfasst am: 03.05.2006, 21:07    Titel: Antworten mit Zitat

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 grinsen
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 mit dem Kopf durch die Mauer wollen


MfG

Matze001
_________________
<xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 03.05.2006, 21:34    Titel: Antworten mit Zitat

Du kannst dir das ganze DIM AS LONG... ersparen, indem du an den Beginn deines Codes ein
Code:
DEFLNG A-Z

schreibst. Somit werden alle Variablen, die nicht explizit deklariert werden, auf den Datentyp LONG gesetzt. lächeln

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 03.05.2006, 21:43    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Matze001



Anmeldungsdatum: 03.05.2006
Beiträge: 28

BeitragVerfasst am: 03.05.2006, 21:49    Titel: Antworten mit Zitat

jb hat Folgendes geschrieben:
Du kannst dir das ganze DIM AS LONG... ersparen, indem du an den Beginn deines Codes ein
Code:
DEFLNG A-Z

schreibst. Somit werden alle Variablen, die nicht explizit deklariert werden, auf den Datentyp LONG gesetzt. lächeln

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 happy
_________________
<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
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 03.05.2006, 22:00    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Matze001



Anmeldungsdatum: 03.05.2006
Beiträge: 28

BeitragVerfasst am: 03.05.2006, 22:02    Titel: Antworten mit Zitat

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 grinsen 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
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 03.05.2006, 22:05    Titel: Antworten mit Zitat

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 lächeln

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Matze001



Anmeldungsdatum: 03.05.2006
Beiträge: 28

BeitragVerfasst am: 03.05.2006, 22:18    Titel: Antworten mit Zitat

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 lächeln

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
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 04.05.2006, 07:22    Titel: Antworten mit Zitat

Jetzt mal im ernst:
Du willst wohl kaum 6 Milliarden als 6000000000 darstellen, sonst muss ja dein Benutzer/Spieler die Nullen zählen durchgeknallt

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Matze001



Anmeldungsdatum: 03.05.2006
Beiträge: 28

BeitragVerfasst am: 04.05.2006, 15:56    Titel: Antworten mit Zitat

Aha ok ich werde es mal testen... und ja das Programm ist ja genau dafür da um den Bleistift und Zettel (und Taschenrechner durchgeknallt ) 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
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 04.05.2006, 17:44    Titel: Antworten mit Zitat

Oder du machst das ganze auf String-Basis und zähslt einfach die Stellen (natürlich ohne Komma)...

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Matze001



Anmeldungsdatum: 03.05.2006
Beiträge: 28

BeitragVerfasst am: 04.05.2006, 19:08    Titel: Antworten mit Zitat

jb hat Folgendes geschrieben:
Oder du machst das ganze auf String-Basis und zähslt einfach die Stellen (natürlich ohne Komma)...

jb


Hilfä happy 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 mit dem Kopf durch die Mauer wollen weinen durchgeknallt
_________________
<xyz> Es gibt ein Leben außerhalb des Internet!!
<yxz> wtf?
<yxz> link?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 05.05.2006, 16:59    Titel: Antworten mit Zitat

Na, du nimmst als Zahlen einfach Strings, d.h. Zeichenketten.
Diese können eine Länge von 32.000 Zeichen haben, sollte also reichen grinsen
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
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.

 Impressum :: Datenschutz