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:

Computergesteuerte mechanik in Technik
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
blabla



Anmeldungsdatum: 04.07.2006
Beiträge: 12

BeitragVerfasst am: 04.07.2006, 16:54    Titel: Computergesteuerte mechanik in Technik Antworten mit Zitat

Hi
wir haben in technik einen aufzug gebaut der eine kugel hochf
ährt und dann auswirft

naja egal ich habe mit schon einen automatischen ablauf gecodet aber ich möchte in meinem menu noch ein programmpunkt haben der den ablauf x-mal widerholt (für x soll eine zahl eingegeben werden z.B 5 und dann wird der ablauf 5-mal widerholt)


alsowie ich da hinkomm is klar aber wie ich so einen variablen loop mach weis ich net

könnt ihr mir helfen? wär fett
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kai Bareis



Anmeldungsdatum: 10.09.2004
Beiträge: 545
Wohnort: Baden Würtemberg

BeitragVerfasst am: 04.07.2006, 17:31    Titel: Antworten mit Zitat

Es gibt mehrere Arten eine Programm schleife zumachen:
Beispiel1:
Code:
For a= 1 to 5
Print "Hallo Welt"
Next

Hier wird 5 mal "Hallo Welt" ausgegeben

Beispiel 2:
Code:
a=0
Do
Print "Hallo Welt"
Loop Until a = 5



Wie du siehst ist das nichtmal so schwer. Und vieleicht beim nächsten mal ein Blick in die MonFAQ von Qbasic.de schauen.
_________________
MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
blabla



Anmeldungsdatum: 04.07.2006
Beiträge: 12

BeitragVerfasst am: 04.07.2006, 18:07    Titel: Antworten mit Zitat

ja ok ich hoff ma das datt klappt - danke für deine hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
blabla



Anmeldungsdatum: 04.07.2006
Beiträge: 12

BeitragVerfasst am: 04.07.2006, 18:08    Titel: Antworten mit Zitat

aber wie ich grad seh scheint das ja nur eine zeile zu sein ich will aber nen ganzen programmablauf (bzw bei mir ist es eine sub) xmal widerholen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 04.07.2006, 18:20    Titel: Antworten mit Zitat

Kai Bareis hat Folgendes geschrieben:
Beispiel 2:
Code:
a=0
Do
Print "Hallo Welt"
Loop Until a = 5


lachen
Code:
a=0
Do
 Print "Hallo Welt"
 a=a+1
Loop Until a = 5

zwinkern

blabla hat Folgendes geschrieben:
aber wie ich grad seh scheint das ja nur eine zeile zu sein ich will aber nen ganzen programmablauf (bzw bei mir ist es eine sub) xmal widerholen

Schön, eine kleine Sub happy . Dann kannst du es z.B. so machen:
Code:
 ? "Wie oft wiederhollen?"
Input oft
For a= 1 to oft
  derNameDerSub
Next

derNameDerSub ist durch den Subroutinennamen zu ersetzen.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
blabla



Anmeldungsdatum: 04.07.2006
Beiträge: 12

BeitragVerfasst am: 04.07.2006, 18:42    Titel: Antworten mit Zitat

hmm versth ich das richtig das ich dann maximal 9 mal widerholen kann? - hmm das is schonmal gut aber net am besten - kann man keine eingabeaufforderung machen die man mit ENTER bestätigen kann?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
blabla



Anmeldungsdatum: 04.07.2006
Beiträge: 12

BeitragVerfasst am: 04.07.2006, 18:43    Titel: Antworten mit Zitat

aso noch was - wir benutzen in der schule QB.1.1 oder so also ich weis net wie sich da die sprache ändert
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 04.07.2006, 19:07    Titel: Antworten mit Zitat

Zitat:
hmm versth ich das richtig das ich dann maximal 9 mal widerholen kann?

Ich weiss jetzt nicht auswendig wie oft, aber ein paar Tausendmal liegen sicher drin.
Zitat:
kann man keine eingabeaufforderung machen die man mit ENTER bestätigen kann?

Code testen
Genau das macht es doch?
Also gut, man muss mit Enter bestätigen, aber was du mit kann meinst versteh ich so wie so nicht.
Zitat:
aso noch was - wir benutzen in der schule QB.1.1 oder so also ich weis net wie sich da die sprache ändert

Kein Problem, ich verwende in der Regel auch QBasic 1.1.
(nur selten nehm ich eine andere Version, aber die sind ja zu grossen Teilen kompatibel, ich hatte bis her noch keine Probleme bei solch kleinen Programmen)
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
blabla



Anmeldungsdatum: 04.07.2006
Beiträge: 12

BeitragVerfasst am: 04.07.2006, 19:41    Titel: Antworten mit Zitat

hmm ich probiers eben aus - übrigens probieren
da merk ich grad das mein pc zu schnell is -

wir lassen zum verzögern den pc einfach ne runde rechnen

z.B

FOR T = 1 TO 100000 : NEXT T

allerdings stell ich grad fest das diee Pcs in unserer schule

]SOOOOOOOOOOOOOO[ lange braucht unr meiner nur ]i[

gibts da net die möglichkeit auf die pc interne uhr zuzugreifen oder etwas vergleichbares?

möglichst einfach wenns geht
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 04.07.2006, 20:02    Titel: Antworten mit Zitat

Ja, dafür gibt es Timer.
Ich such dir einen Code raus.

Edit:
Code:
SUB pause (sek AS SINGLE)
        DIM a AS DOUBLE
        a = TIMER
        DO
        LOOP UNTIL a + sek <= TIMER

END SUB

So, das sollte gehen.
Aufrufen mit pause(zeit)
zeit in Sekunden
z.B.
pause(1)
gibt 1 Sekunde.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
blabla



Anmeldungsdatum: 04.07.2006
Beiträge: 12

BeitragVerfasst am: 04.07.2006, 20:41    Titel: Antworten mit Zitat

ehrlich gesagt - ich bin schon die ganze zeit am probieren und krieg gar nix gerallt ich stell euch mal den abschnitt hier rein


SOO also das ist der dauer durchlauf

LINE3:
CLS
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT "Zum Unterbrechen S gedrueckt halten"
DO
OUT 888, 16
COLOR 4: LOCATE 12, 35: PRINT "***HOCH*** "
IF INKEY$ = "S" OR INKEY$ = "s" THEN GOTO BEENDEN
DO
S2 = (INP(ba + 6)) AND 32
IF INKEY$ = "S" OR INKEY$ = "s" THEN GOTO BEENDEN
LOOP UNTIL S2 = 32
LOCATE 12, 35: PRINT "***AUSWURF*** "
IF INKEY$ = "S" OR INKEY$ = "s" THEN GOTO BEENDEN
OUT 888, 64
FOR T = 1 TO 25000: NEXT T
LOCATE 12, 35: PRINT "***RUNTER*** "
IF INKEY$ = "S" OR INKEY$ = "s" THEN GOTO BEENDEN
OUT 888, 32
DO
IF INKEY$ = "S" OR INKEY$ = "s" THEN GOTO BEENDEN
S1 = (INP(ba + 6)) AND 16
LOOP UNTIL S1 = 16
LOCATE 12, 35: PRINT "***STOP*** "
OUT 888, 0
FOR T = 1 TO 200000: NEXT T
LOOP

SO und den will ich Xmal widerholen lassen

Hier möchte ich eine zeitverzögerung in sekunden einbauen und en x mal loop (nenn ich jetz mal so)

könnt ihr mir dazu ein beispiel machen? ich versuchs dann zu coden


EDIT

aso ich stell grad fest das ich die subs raushab und jetzt GOTO benutze


Zuletzt bearbeitet von blabla am 04.07.2006, 20:44, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
alfonsospringer



Anmeldungsdatum: 27.04.2006
Beiträge: 445

BeitragVerfasst am: 04.07.2006, 20:43    Titel: Antworten mit Zitat

Code:
FOR T = 1 TO 100000 : NEXT T



lernt man sowas noch in der schule? furchtbar, mal sehn wie gut sowas auf unterschiedlich leistungsstarken rechnern klappt. Von nem 200 MHZ zu 3,6GHZ ist das bestimmt nen großer unterschied, oder?
[/code]
_________________
Die Antworten zu fast allen Fragen des Lebens findest du entweder im MonsterFAQ oder der Befehlsreferenz - Und wenn du gar nicht mehr weiter weisst ? -> Wikipedia

ALLE RECHTSCHREIBFEHLER DIE ICH MACHE SIND BEABSICHTIGT, DAMIT DIE LEUTE, DIE SPAß DARAN HABEN SOLCHE ZU FINDEN, ETWAS ZU TUN HABEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
blabla



Anmeldungsdatum: 04.07.2006
Beiträge: 12

BeitragVerfasst am: 04.07.2006, 20:48    Titel: Antworten mit Zitat

jo schon so^^
hab 2,8 und nix geht so alles ultra fast^^
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pinkpanther



Anmeldungsdatum: 28.05.2005
Beiträge: 79
Wohnort: Wien

BeitragVerfasst am: 05.07.2006, 11:22    Titel: Antworten mit Zitat

Nur der Genauigkeit halber...

Kai Bareis schrieb:
Code:
a=0
Do
  Print "Hallo Welt"
Loop Until a = 5

Schaut nach Endlosschleife aus, denn a wird innerhalb der Schleife nie erhöht.
_________________
lG
pinkpanther lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 05.07.2006, 12:15    Titel: Antworten mit Zitat

@blabla
Ich hab mir mal erlaubt, etwas damit rum zu Basteln zwinkern
Code:
LINE3:
? "Wie oft wiederhollen?"
Input oft
CLS
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT "Zum Unterbrechen S gedrueckt halten"
for a= 1 to oft
 OUT 888, 16
 COLOR 4: LOCATE 12, 35: PRINT "***HOCH*** "
 IF lcase$(INKEY$) = "s" THEN GOTO BEENDEN
 DO
  S2 = (INP(ba + 6)) AND 32
  IF lcase$(INKEY$) = "s" THEN GOTO BEENDEN
 LOOP UNTIL S2 = 32
 LOCATE 12, 35: PRINT "***AUSWURF*** "
 IF lcase$(INKEY$) = "s" THEN GOTO BEENDEN
  OUT 888, 64
 pause(0.2) 'Keine Ahnung, was hier rein soll, bitte selbst einstellen
 LOCATE 12, 35: PRINT "***RUNTER*** "
 IF lcase$(INKEY$) = "s" THEN GOTO BEENDEN
 OUT 888, 32
 DO
  IF lcase$(INKEY$) = "s" THEN GOTO BEENDEN
  S1 = (INP(ba + 6)) AND 16
 LOOP UNTIL S1 = 16
 LOCATE 12, 35: PRINT "***STOP*** "
 OUT 888, 0
 pause(2) 'Keine Ahnung, was hier rein soll, bitte selbst einstellen
next i

SUB pause (sek AS SINGLE)
        DIM a AS DOUBLE
        a = TIMER
        DO
        LOOP UNTIL a + sek <= TIMER
END SUB


Die Pausen musst du wie gesagt selbst einstellen.
(Nacher ist es dann schön Rechner unabhängig)

Ich hab mir auch gleich erlaubt
Zitat:
INKEY$ = "S" OR INKEY$ = "s"

durch
Zitat:
lcase$(INKEY$) = "s"

zue ersetzen.
LCase bewirkt das alle grossen Buchstaben zu kleinen werden.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
blabla



Anmeldungsdatum: 04.07.2006
Beiträge: 12

BeitragVerfasst am: 06.07.2006, 08:55    Titel: Antworten mit Zitat

danke für eure hilfe - hatte es gestern auch schon in der schule irgendwann hinbekommen:

Zitat:
INPUT "Wie oft widerholen?" X

LOCATE 12, 35 : PRINT "Programm wird" x "mal widerholt
a=0
DO
MEIN ABLAUF
Statt PC zählen lassen SLEEP
A= A+1
IF A= X THEN GOTO BEENDEN
LOCATE 12, 35 : PRINT "Ablauf Nr." A
LOOP


Ehrlich gesagt - basic is ja echt easy^^ man kann da immer schön rumprobieren wenn man die grundbefehle kennt - in diesem fall kannte ich die befehle INPUT und SLEEP nicht. Sleep hat mir dann n lehrer verraten.
aber die xmal widerholung hab ich mir sleber ausgedacht. aber
ich probier auf jeden nochmal eure varianten aus zum verzögern weil das auf jeden fall genauer scheint
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
blabla



Anmeldungsdatum: 04.07.2006
Beiträge: 12

BeitragVerfasst am: 06.07.2006, 08:59    Titel: Antworten mit Zitat

Zitat:

Ich hab mir auch gleich erlaubt
Zitat:
INKEY$ = "S" OR INKEY$ = "s"

durch
Zitat:
lcase$(INKEY$) = "s"

zue ersetzen.
LCase bewirkt das alle grossen Buchstaben zu kleinen werden.


kann ich dann auch am anfang vom loop einfach das INKEY$ = A$
durch lcase$(INKEY$) = A$ ersetzen?
EDIT:
ach ich probiers einfach aus morgen^^
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
blabla



Anmeldungsdatum: 04.07.2006
Beiträge: 12

BeitragVerfasst am: 06.07.2006, 14:29    Titel: Antworten mit Zitat

sooo mein programm is heute fertig geworden - ich stells euch mal halt rein
mein erstes basic programm - ich denke der thread is dann auch fertig zum closen

Code:

DECLARE SUB pause (sek AS SINGLE)
CLS
MENU1:
CLS
SCREEN 12
COLOR 7:
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT "Hauptmenu"
PRINT ""
COLOR 9:
PRINT "1 = Manuell"
PRINT "2 = Automatikmenu"
COLOR 4:
PRINT "3 = Wartung!!!"
PRINT ""
COLOR 7:
PRINT "Q zum Beenden"

DO
D$ = LCASE$(INKEY$)
IF D$ = "1" THEN GOTO A1:
IF D$ = "3" THEN GOTO A2:
IF D$ = "2" THEN GOTO A3:
LOOP UNTIL D$ = "Q" OR D$ = "q"
OUT 888, 0
END

A1:
GOSUB MANUELL

A2:
GOTO WARTUNG

A3:
GOTO AUTOMATIK

AUTOMATIK:
CLS
COLOR 4: LOCATE 12, 35: PRINT "Bitte warten! Aufzug wird zum Startpunkt gesetzt"

DO
ba = 1016
OUT (ba + 4), 1
OUT 888, 32
S1 = (INP(ba + 6)) AND 16
LOOP UNTIL S1 = 16
OUT 888, 0


CLS
COLOR 4: LOCATE 12, 35: PRINT "Menu wird Aufgebaut.         "
pause (.5)
COLOR 4: LOCATE 12, 35: PRINT "Menu wird Aufgebaut..        "
pause (.5)
COLOR 4: LOCATE 12, 35: PRINT "Menu wird Aufgebaut...       "
pause (.5)
LOCATE 12, 35: PRINT ""
GOTO AUTOMATIK1

AUTOMATIK1:
CLS
COLOR 4
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT "Automatikmenu"
PRINT ""
COLOR 7
PRINT "1 = 1 Ablauf"
PRINT "2 = x Ablaufe"
PRINT "3 = Dauerschleife"
PRINT "H = Hauptmenu"

DO
C$ = LCASE$(INKEY$)
IF C$ = "1" THEN GOTO LINE1
IF C$ = "2" THEN GOTO LINE2
IF C$ = "3" THEN GOTO LINE3
IF C$ = "H" OR C$ = "h" THEN GOTO LINE4
LOOP

LINE4:
GOTO MENU1



LINE1:
CLS
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT "Zum Unterbrechen S gedrueckt halten"
OUT 888, 16
COLOR 4: LOCATE 12, 35: PRINT "***HOCH***    "
IF INKEY$ = "s" THEN GOTO BEENDEN
DO
IF INKEY$ = "s" THEN GOTO BEENDEN
S2 = (INP(ba + 6)) AND 32
LOOP UNTIL S2 = 32
LOCATE 12, 35: PRINT "***AUSWURF***          "
IF INKEY$ = "s" THEN GOTO BEENDEN
OUT 888, 64
pause (.5)
LOCATE 12, 35: PRINT "***RUNTER***           "
IF INKEY$ = "s" THEN GOTO BEENDEN
OUT 888, 32


DO
IF INKEY$ = "S" OR INKEY$ = "s" THEN GOTO BEENDEN
S1 = (INP(ba + 6)) AND 16
LOOP UNTIL S1 = 16
LOCATE 12, 35: PRINT "***STOP***             "
OUT 888, 0
pause (1)
LOCATE 12, 35: PRINT "Menu wird geladen"
pause (2)
GOTO AUTOMATIK1


LINE2:
CLS
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
INPUT "Bitte geben sie die gewuenschte Anzahl an Durchlaufen ein"; X
g = 0


DO
COLOR 7
CLS
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT "Programm wurde gestartet mit"; X; "Ablaufen"
PRINT "Zum Unterbrechen S gedrueckt halten"
PRINT "Ablauf Nr."; g + 1
OUT 888, 16
COLOR 4: LOCATE 12, 35: PRINT "***HOCH***      "
IF INKEY$ = "s" THEN GOTO BEENDEN
DO
S2 = (INP(ba + 6)) AND 32
IF INKEY$ = "s" THEN GOTO BEENDEN
LOOP UNTIL S2 = 32
LOCATE 12, 35: PRINT "***AUSWURF***            "
IF INKEY$ = "s" THEN GOTO BEENDEN
OUT 888, 64
pause (.5)
LOCATE 12, 35: PRINT "***RUNTER***             "
IF INKEY$ = "s" THEN GOTO BEENDEN
OUT 888, 32
DO
IF INKEY$ = "s" THEN GOTO BEENDEN
S1 = (INP(ba + 6)) AND 16
LOOP UNTIL S1 = 16
LOCATE 12, 35: PRINT "***STOP***               "
OUT 888, 0
g = g + 1
IF g = X THEN GOTO BEENDEN
pause (2)
LOOP


LINE3:
CLS
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""

PRINT "Zum Unterbrechen S gedrueckt halten"
DO
OUT 888, 16
COLOR 4: LOCATE 12, 35: PRINT "***HOCH***      "
IF INKEY$ = "s" THEN GOTO BEENDEN
DO
S2 = (INP(ba + 6)) AND 32
IF INKEY$ = "s" THEN GOTO BEENDEN
LOOP UNTIL S2 = 32
LOCATE 12, 35: PRINT "***AUSWURF***            "
IF INKEY$ = "s" THEN GOTO BEENDEN
OUT 888, 64
pause (.5)
LOCATE 12, 35: PRINT "***RUNTER***             "
IF INKEY$ = "s" THEN GOTO BEENDEN
OUT 888, 32
DO
IF INKEY$ = "s" THEN GOTO BEENDEN
S1 = (INP(ba + 6)) AND 16
LOOP UNTIL S1 = 16
LOCATE 12, 35: PRINT "***STOP***               "
OUT 888, 0
pause (2)
LOOP


BEENDEN:
CLS
COLOR 4:
LOCATE 12, 35: PRINT "***PROGRAMMABLAUF BEENDET!!! -- BITTE WARTEN!!!*** "
OUT 888, 0
pause (2)
GOTO AUTOMATIK


MANUELL:
CLS
SCREEN 12
COLOR 7
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT "Manuelle Steuerung mit Anschlag"
PRINT "Tastenbelgeung:"
PRINT ""
COLOR 9
PRINT "1 = Hoch"
PRINT "2 = Runter"
PRINT "3 = Auswurf"
COLOR 14
PRINT "4 = Stop"
PRINT "H = Hauptmenu"
GOTO MANUELL2

MANUELL2:
DO
ba = 1016
OUT (ba + 4), 1
S1 = (INP(ba + 6)) AND 16
S2 = (INP(ba + 6)) AND 32
S3 = (INP(ba + 6)) AND 64
a$ = LCASE$(INKEY$)

IF a$ = "1" THEN OUT 888, 16:
COLOR 4: IF a$ = "1" THEN LOCATE 12, 35: PRINT "***HOCH***                            "
IF a$ = "2" THEN OUT 888, 32:
COLOR 4: IF a$ = "2" THEN LOCATE 12, 35: PRINT "***RUNTER***                          "
IF a$ = "3" THEN OUT 888, 64:
COLOR 4: IF a$ = "3" THEN LOCATE 12, 35: PRINT "***AUSWURF***                         "
IF a$ = "4" THEN OUT 888, 0:
COLOR 4: IF a$ = "4" THEN LOCATE 12, 35: PRINT "***STOP***                            "
IF a$ = "H" OR a$ = "h" THEN GOTO ENDE2
IF S1 = 16 THEN GOTO AKTION1
IF S2 = 32 THEN GOTO AKTION2
LOOP

AKTION1:
COLOR 4: LOCATE 12, 35: PRINT "***ANSCHLAG UNTEN***            "
OUT 888, 16
pause (.05)
OUT 888, 0
GOTO MANUELL2:

AKTION2:
COLOR 4: LOCATE 12, 35: PRINT "***ANSCHLAG OBEN***             "
OUT 888, 32
pause (.05)
OUT 888, 0
GOTO MANUELL2:

ENDE2:
OUT 888, 0
GOTO MENU1






WARTUNG:
CLS
SCREEN 12
COLOR 4
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT ""
PRINT "Wartungsmodus!!! Kein Anschlag vorhanden!!!"
PRINT "Tastenbelegung:"
PRINT ""
COLOR 9
PRINT "1 = Hoch"
PRINT "2 = Runter"
PRINT "3 = Auswurf"
COLOR 14
PRINT "4 = Stop"
PRINT ""
PRINT "H = Hauptmenu"

DO
a$ = LCASE$(INKEY$)
IF a$ = "1" THEN OUT 888, 16:
COLOR 4: IF a$ = "1" THEN LOCATE 12, 35: PRINT "***HOCH***     "
IF a$ = "2" THEN OUT 888, 32:
COLOR 4: IF a$ = "2" THEN LOCATE 12, 35: PRINT "***RUNTER***   "
IF a$ = "3" THEN OUT 888, 64:
COLOR 4: IF a$ = "3" THEN LOCATE 12, 35: PRINT "***AUSWURF***  "
IF a$ = "4" THEN OUT 888, 0:
COLOR 4: IF a$ = "4" THEN LOCATE 12, 35: PRINT "***STOP***     "
IF a$ = "h" OR a$ = "H" THEN OUT 888, 0
IF a$ = "h" OR a$ = "H" THEN GOTO ENDE4
LOOP

ENDE4:
OUT 888, 0
GOTO MENU1

SUB pause (sek AS SINGLE)
DIM a AS DOUBLE
a = TIMER
DO
LOOP UNTIL a + sek <= TIMER

END SUB
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Ecki



Anmeldungsdatum: 28.06.2006
Beiträge: 121

BeitragVerfasst am: 06.07.2006, 16:00    Titel: Antworten mit Zitat

Michael Frey hat Folgendes geschrieben:

Ich weiss jetzt nicht auswendig wie oft, aber ein paar Tausendmal liegen sicher drin.

Jep, Michael. Man kann eine normale For-Next-schleife in QB 32677-mal wiederholen. grinsen
Für einige meiner Programme ist das immer noch zu wenig. geschockt
_________________
MFG,
Infection 93
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



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

BeitragVerfasst am: 06.07.2006, 16:12    Titel: Antworten mit Zitat

@blabla:
Hey, du Betrüger! grinsen
Schreibst, dass ein Menü aufgebaut wird und dann wartet der Computer nur 'ne halbe Sekunde. zwinkern lachen

@Ecki:
Zum Beispiel?
_________________
Eine handvoll Glück reicht nie für zwei.
--
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 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