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:

Direkt beim Schreiben

 
Neues Thema eröffnen   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
hello



Anmeldungsdatum: 15.04.2010
Beiträge: 34

BeitragVerfasst am: 28.04.2010, 20:09    Titel: Direkt beim Schreiben Antworten mit Zitat

Hallo,
Ich wollte mit FreeBASIC arbeiten.

Bin bei INPUT, nicht besonders schwer grinsen
Da alles was eingegeben werden kann, nur 1-Stellig ist, wollte Ich machen, dass man, wenn man z.B. eine 3 eingibt es sofort als 3 annimmt, und man nicht noch Enter eingeben muss.

Wisst ihr was Ich meine?

Wenn nicht, dann fragen grinsen
_________________
Regards lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 28.04.2010, 20:32    Titel: Antworten mit Zitat

Hallo,

dazu kannst du INPUT als Funktion verwenden und die Länge des Eingabepuffers als Argument übergeben:
Code:
DIM AS STRING k
PRINT "Zum Beenden ESCape druecken."
DO
    k = INPUT(1)
    Print "Du hast " & k & " gedrueckt."
LOOP UNTIL k = CHR(27)

INPUT nimmt in diesem Code 1 Zeichen entgegen und liefert es als Ergebnis zurück, das dann der Variablen k zugewiesen wird.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | 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
hello



Anmeldungsdatum: 15.04.2010
Beiträge: 34

BeitragVerfasst am: 28.04.2010, 20:49    Titel: Antworten mit Zitat

Ich versteh' alles bis zur DO ... LOOP-Schleife:
Der Nutzer Sebastian hat Folgendes geschrieben:
DO
k = INPUT(1)
Print "Du hast " & k & " gedrueckt."
LOOP UNTIL k = CHR(27)


Kannst du mir noch die DO ... LOOP-Schleife noch kurz erklären, bitte für doofe = D

Und auch das was da drin steht, Ich bin noch nicht so Erfahrungsreich in FreeBASIC.

_________________
_________________
Regards lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 28.04.2010, 20:56    Titel: Antworten mit Zitat

es wird so lange eine einstellige eingabe geprüft, bis diese CHR(27) = ESC ist.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Stueber



Anmeldungsdatum: 07.07.2008
Beiträge: 202

BeitragVerfasst am: 28.04.2010, 21:00    Titel: Antworten mit Zitat

Eine Do-loop-until Schleife läuft immer wieder durch, am Ende startet sie wieder von vorne, es sei denn die Bedingung nach until ist wahr. In diesem Fall geht das Programm wieder normal weiter. k ist eine Stringvariable und input(1) liest genau ein Zeichen ein, egal ob Enter gedrückt wurde oder nicht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hello



Anmeldungsdatum: 15.04.2010
Beiträge: 34

BeitragVerfasst am: 29.04.2010, 19:21    Titel: Antworten mit Zitat

Danke, jetzt so verstanden lächeln

Danke an Beide lächeln
_________________
Regards lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hello



Anmeldungsdatum: 15.04.2010
Beiträge: 34

BeitragVerfasst am: 29.04.2010, 19:43    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
es wird so lange eine einstellige eingabe geprüft, bis diese CHR(27) = ESC ist.


Code:
 DO
k = INPUT(1)
Print "Du hast " & k & " gedrueckt."
LOOP UNTIL k = CHR(27)



Kann ich auch irgendwie so machen?:
LOOP UNTIL k = CHR(27) {oder} irgendetwas anderes

Also, kann ich ein "oder" einfügen?
_________________
Regards lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stueber



Anmeldungsdatum: 07.07.2008
Beiträge: 202

BeitragVerfasst am: 29.04.2010, 19:52    Titel: Antworten mit Zitat

Ja, das Wort heist "or":
Code:
LOOP UNTIL (k = CHR(27)) or (1 = 0)   'blödes Beispiel, 1 ist nie gleich 0 ;)

Ausserdem stehen dir noch and, not und xor zur verfügung. Mehr hier.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 29.04.2010, 19:52    Titel: Antworten mit Zitat

hello hat Folgendes geschrieben:
Kann ich auch irgendwie so machen?:
LOOP UNTIL k = CHR(27) {oder} irgendetwas anderes

Also, kann ich ein "oder" einfügen?

Code:
DIM AS STRING k
PRINT "Zum Beenden ESCape druecken."
DO
    k = INPUT(1)
    Print "Du hast " & k & " gedrueckt."
LOOP UNTIL k = CHR(27) OR k = "x" OR TIME = "13:37:00"

Die neue Schleife läuft so lange, bis entweder...

  • ESC gedrückt,
  • x gedrückt oder
  • die Uhrzeit "13:37:00" erreicht wird.

_________________

Der Markt regelt das! | 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
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4597
Wohnort: ~/

BeitragVerfasst am: 30.04.2010, 00:50    Titel: Antworten mit Zitat

Code:
die Uhrzeit "13:37:00" erreicht wird

Aber nur, wenn genau in dieser Sekunde eine Taste gedrückt wird, oder irre ich mich?
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 30.04.2010, 12:59    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Code:
die Uhrzeit "13:37:00" erreicht wird

Aber nur, wenn genau in dieser Sekunde eine Taste gedrückt wird, oder irre ich mich?

Oh ja, du hast völlig Recht. Damit das richtig funktioniert, müsste man INKEY statt INPUT nehmen. Ich wollte einfach noch ein Beispiel für eine andere Abbruchbedingung, die keinen Tastendruck auswertet, einbauen, hab aber übersehen, dass sich das in Form mit INPUT "beißt". Danke für den Hinweis.
_________________

Der Markt regelt das! | 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
MisterD



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

BeitragVerfasst am: 30.04.2010, 17:01    Titel: Antworten mit Zitat

hoho und bei allen engländern terminiert das programm nie weils da 1:37pm wird muhaha
_________________
"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
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 30.04.2010, 17:20    Titel: Antworten mit Zitat

Selbst bei denen terminiert's bei Druck auf ESC oder x. zwinkern
_________________

Der Markt regelt das! | 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
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 30.04.2010, 18:14    Titel: Antworten mit Zitat

Ist das TIME-Format nicht (mehr) standardisiert auf hh:mm:ss?
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 30.04.2010, 18:28    Titel: Antworten mit Zitat

Ich dachte es ist auf AM und PM standardisiert worden?
Bei uns in der Schule gibt es auch nur AM und PM, ich dachte das mit 24 Stunden wurde abgeschafft?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 30.04.2010, 19:14    Titel: Antworten mit Zitat

Westbeam hat Folgendes geschrieben:
Ich dachte es ist auf AM und PM standardisiert worden? [...] ich dachte das mit 24 Stunden wurde abgeschafft?

Nein, wo hast du das denn gehört?! Sofern du in Deutschland lebst, kann ich dich beruhigen: Das 24-Stunden-Zeitformat gilt und es gibt meines Wissens auch keine politischen Bestrebungen, das zu ändern. zwinkern

Da der Thread inzwischen ziemlich von der ursprünglichen Frage abkommt, "close" ich ihn an an dieser Stelle. Zum Beispiel im Trashthread können die Zeitfragen ja weiter besprochen werden. zwinkern
_________________

Der Markt regelt das! | 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   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    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