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:

Function blocken?!?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
exitus



Anmeldungsdatum: 22.01.2006
Beiträge: 2

BeitragVerfasst am: 22.01.2006, 13:50    Titel: Function blocken?!? Antworten mit Zitat

Moin,
Ich mach gerade eine kleines Simulation, leider gibt es jetzt schon (!) Probleme....

Ich will die Geldausgabe blockieren, WENN man in den Minus bereich fällt...

Ich habe mir das so vorgestellt:
Zitat:
geld=geld+100

input "Einkaufen",einkauf
geld=Geld-(10*einkauf)
if geld=(-geld) then print "zu wenig geld"
if geld=(+geld) then print "verbleibendes Geld: ";geld
getkey


...aber leider geht's so alles andere als gut...

Danke für eure Hilfe.
Gruß exitus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 22.01.2006, 14:02    Titel: Antworten mit Zitat

Hi evtl. gibt's noch andere Lösungen, aber hier erstmal meine:

Code:

geld=geld+100

input "Einkaufen",einkauf
geldalt=geld
geld=geld-(10*einkauf)
if left$(str$(geld),1)="-" then print "zu wenig geld": geld=geldalt else
print "verbleibendes geld: ";geld


Der Code ist ungetestet und könnte Fehler enthalten. Der alte Geldstand wird vorm Einkaufen gesichert, sodass wenn der Geldwert nach dem Einkaufen im Minusbereich ist, wieder hergestellt werden kann. lächeln

Greets,
Mao
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
exitus



Anmeldungsdatum: 22.01.2006
Beiträge: 2

BeitragVerfasst am: 22.01.2006, 14:10    Titel: Antworten mit Zitat

jop, klapt einwandfrei lächeln

Vielen Dank
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 22.01.2006, 14:17    Titel: Antworten mit Zitat

Servus.

Also, entweder versteh ich da grad was falsch, oder einer von euch steht tierisch aufm Schlauch:

Code:

input "wieviele hätt' mer denn gern?"; anzahl
if geld > (anzahl * preisprostueck) then
    geld = geld - (anzahl * preisprostueck)
    gekauftestueck = gekauftestueck + anzahl
    print "ich gratuliere zum kauf von ";anzahl;" stück!"
else
    print "tut mir leid, aber du hast zuwenig geld!"
end if


Gruß
Lutz böse Ifer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 22.01.2006, 15:32    Titel: Antworten mit Zitat

Ähh...ja, so kann man's besser schreiben. verlegen
Da meine jedoch auch funktioniert und im sauberen Stil geschrieben genausoviele Zeilen wie deine beherbergt, ist's denke ich mal nicht so sehr schlimm.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



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

BeitragVerfasst am: 22.01.2006, 17:13    Titel: Antworten mit Zitat

doch weil der compiler zählt nicht die zeilen. Vieles kann der optimieren wenn er gut gemacht ist, aber zu erkennen, dass du per stringumwandlung die zahl auf "kleiner null" prüfst, das merkt der nicht. Folglich rechnet der erst die zahl in nen string um um den dann aufzuteilen und wieder zu ner zahl zu verrechnen und zu vergleichen. Das ist recht dämlich..
_________________
"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
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
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