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:

Neuling braucht Hilfe!

 
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
Matthias1172



Anmeldungsdatum: 29.08.2005
Beiträge: 5
Wohnort: Bühl

BeitragVerfasst am: 29.08.2005, 16:52    Titel: Neuling braucht Hilfe! Antworten mit Zitat

Hallo,
ich heiße Mathhias, bin 17 Jahre (Fast 18 ) und bin völlig neu auf dem gebiet und hab auch gleich ein Problem:
Ich habe mich ein wenig über ABSIC informiert und habe dann einen DM in €-Umrechner geschrieben, der so aussieht:

Code:

CLS
COLOR 9
PRINT "Umrechnung DM in Euro"
COLOR 15
INPUT "Eingabe DM:", dm / 1.95583
COLOR 28
Ergebnis# = dm
CASE IS < 0
PRINT "Bitte geben Sie eine positive Zahl ein! Ergebnis ungültig!
CASE IS > -1000000000#
COLOR 10
PRINT "Eingabe ungültig!"
COLOR 28
CASE ELSE
PRINT "Bitte nur Ziffern verwenden!"
END SELECT

COLOR 15
SLEEP 1
PRINT dm; "DM sind"; Ergebnis#; "Euro."


Jetzt habe ich folgende drei Probleme bzw. Fragen:
1.
Irgendwie funktioniert der Bereich
Code:

CASE ELSE
PRINT "Bitte nur Ziffern verwenden!"

nicht.
CASE ELSE bedeutet doch, dass wenn die oberen Argumente nicht erfüllt wurden, das dann der Text angezeigt wird, oder? Er wird aber nicht angezeigt, wenn ich zum Beispile Buchstaben benutze, sondern QBasic zeigt dann diese Meldung:
Zitat:
Redo from start

Wie bekomme ich das richtig hin?

2.
Was muss ich dazuschreiben, wenn er nach em Berechnen nicht beenden soll sondern wieder von vorne anfange soll ,damit man nicht nochmal starten muss?

3.
Wie kann ich diese Basic Dateien in eine exe umwandeln?

So das wars auchs chon, ich hoffe ich habe mich verständlich ausgedrückt .[/quote]
_________________
MfG: Matthias
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 29.08.2005, 17:54    Titel: Antworten mit Zitat

Hallo.

Downloade dir von www.qbasic.de aus dem Downloadbereich QuickBasic 4.5 in deutsch. Du findest es in der Rubrik "Compiler".

Ein DM>EUR Umrechner geht so:
Code:
DIM dm AS SINGLE
DIM eur AS SINGLE
DO
 INPUT "Betrag in DM: ", dm
 If dm<=0 THEN
  PRINT "Der Betrag kann nicht negativ sein und muss größer als 0 sein!"
 ELSE
  EXIT DO
 end if
LOOP
eur=dm/1.95583
PRINT "Das sind in EUR: ";
PRINT USING "#.##"; eur
SLEEP:END


Wenn du das in QuickBasic 4.5 geschrieben hast, gehst du auf "Ausführen" und dann auf EXE-Datei erstellen. Dann wählst du selbstständige EXE aus und bestätigst. Und fertig ist der Umrechner in Form einer echten EXE Datei.

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 29.08.2005, 17:56    Titel: Antworten mit Zitat

Moin,
das nächste mal bitte einen Aussagekräftigeren Titel benutzen.

Also ich weiß ja nicht welchen BASIC-Dialekt du dir da angeeignet hast, aber dies hier ist ein QuickBASIC-Forum, also hab ich den Code mal kurz für QB umgeschrieben.

Code:

CLS
COLOR 9
PRINT "Umrechnung DM in Euro"
COLOR 15
INPUT "Eingabe DM: ", dm
euro# = VAL(dm) / 1.95583 
PRINT dm; "DM sind"; euro; "Euro."


Die SELECT CASE - Anweisung ist hier allerdings irgendwie total sinnlos, wollt ich nurmal gesagt haben durchgeknallt

Die richtige Anwendung von SELECT CASE ist
Code:

INPUT "Geben sie entweder eine 1 oder eine 2 ein. --> ", zahl

SELECT CASE zahl
 CASE 1: PRINT "Eins"
 CASE 2: PRINT "Zwei"
 CASE ELSE: PRINT "FEHLER!!!!"
END SELECT

Geht natürlich genauso mit STRINGs

Hoffe ich konnte helfen

€DIT: Wieso ist Sebastian eigentlich immer schneller als alle anderen durchgeknallt
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 29.08.2005, 18:26    Titel: Antworten mit Zitat

Tum Thema .EXE-erstellen:

Das machst du so:


Steht aber auch in der MonsterFAQ.

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Xolios
aka Ray


Anmeldungsdatum: 07.12.2004
Beiträge: 589
Wohnort: Wildeshausen

BeitragVerfasst am: 29.08.2005, 18:37    Titel: Antworten mit Zitat

Hallo.

Was für ein Zufall:

Gestatten:
Matthias
17 Jahre Bald 18 happy

Ich dacht für ein Moment das wär ich happy

Gruß
Ray
_________________
www.ray-earth.de
Anm.: Neue ICQ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 29.08.2005, 18:44    Titel: Antworten mit Zitat

Oh oh, ob das schon die ersten Anzeichen von Schizophrenie sind? durchgeknallt zwinkern

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 29.08.2005, 20:57    Titel: Antworten mit Zitat

Zur Fehlermeldung "Redo from start": Wenn man bei INPUT eine Zahlenvariable angibt, so übernimmt eigentlich bereits QB selber eine Syntaxprüfung, dass die Eingabe nur Ziffern und "+-." enthält.

Willst Du aber diese Überprüfung selber machen können, so musst Du die Zahl als String mit LINE INPUT entgegennehmen, danach mit Stringfunktionen Deinen eigenen Sytaxprüfer bauen und wenn die Eingabe den Test bestanden hat, den String mit VAL() in eine Zahl umwandeln.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
OdinX



Anmeldungsdatum: 29.07.2005
Beiträge: 253
Wohnort: SG Schweiz

BeitragVerfasst am: 29.08.2005, 21:09    Titel: Re: Neuling braucht Hilfe! Antworten mit Zitat

Code:
CLS
COLOR 9
PRINT "Umrechnung DM in Euro"
COLOR 15

das ist mal richtig.

Code:
INPUT "Eingabe DM:", dm / 1.95583

und das geht so weit ich weiss nicht.

müsste so sein:
Code:
INPUT "Eingabe DM", dm
Ergebnis# = dm / 1.95583



Code:
COLOR 28

wieder richtig.


Code:
Ergebnis# = dm

sinnlos... warum nicht gleich oben bei der berechnung in Ergebnis# speichern


Code:
CASE IS < 0

"CASE" braucht SELECT CASE davor, da er sonst nicht weiss war kleiner als 0 sein soll.
also davor:
Code:
SELECT CASE dm




Code:
PRINT "Bitte geben Sie eine positive Zahl ein! Ergebnis ungültig!

richtig!


Code:
CASE IS > -1000000000#

hat keinen sinn... du lässt so nur werte kleiner als 1'000'000'000 zu
oder hast du so viel schulden? durchgeknallt
solltest wohl eher "<" verwenden.
wobei du alle zahlen kleiner als 0 eh schon ausgeschlossen hast.


Code:
COLOR 10
PRINT "Eingabe ungültig!"
COLOR 28

das ist ok

de]CASE ELSE
PRINT "Bitte nur Ziffern verwenden!"
END SELECT[/code]
durchgeknallt das programm soll doch auch noch was nützen durchgeknallt
wenn keiner der Error's in CASE aufgerufen wird, wird der hier aufgerufen.
Resultat: Jeder durchlauf ein Error durchgeknallt



Code:
COLOR 15
SLEEP 1
PRINT dm; "DM sind"; Ergebnis#; "Euro."





und jetzt noch mal der ganze code an einem:
Code:
CLS
COLOR 9
PRINT "Umrechnung DM in Euro"
COLOR 15
INPUT "Eingabe DM", dm
Ergebnis# = dm / 1.95583
COLOR 28
SELECT CASE dm
CASE IS < 0
        PRINT "Bitte geben Sie eine positive Zahl ein! Ergebnis ungültig!
CASE IS > 1000000000
        PRINT "Soviel geld haben Sie nicht!"
END SELECT
COLOR 15
SLEEP 1
PRINT dm; "DM sind"; Ergebnis#; "Euro.


Bei Eingaben von buchstaben reklamiert dann aber das programm.
Um das zu lösen entweder bei INPUT eine string-variable verwenden, oder eine ereignisverfolgung einbauen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

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

@ICC: Hexerei, fiese Zauberkünste, geballte ISDN-Power - such dir was aus! grinsen
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail 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
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