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:

Eine Do/Loop Schleife im Hintergrund laufen lassen

 
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
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 24.02.2005, 17:39    Titel: Eine Do/Loop Schleife im Hintergrund laufen lassen Antworten mit Zitat

Hi,
ich habe folgendes Problem, ich bin gerade dabei eine Art Office Programm zu programmieren.

Nun soll oben links die Zeit angezeigt werden:

Also z.b:

Code:

DO
LOCATE 1
PRINT time$
LOOP


Diese Schleife soll also "aktiviert" bleiben, während das eingentliche Programm weiterläuft ! Es gibt bestimmt ne ganz einfache Lösung - aber ich kommt net drauf mit dem Kopf durch die Mauer wollen !

Vielen Dank schonmal im Vorraus zwinkern
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Thomas Antoni



Anmeldungsdatum: 12.10.2004
Beiträge: 220
Wohnort: Erlangen

BeitragVerfasst am: 24.02.2005, 17:44    Titel: Steht doch in der QB-MonsterFAQ! Antworten mit Zitat

Siehe www.qbasic.de -> QB-MonsterFAQ -> Datum/Uhrzeit ... -> Wie kann man die Uhrzeit unabhägig vom Hauptprogramm anzeigen.

Bei Einsteigerfragen bitte immer erst die QB-monsterFAQ um Rat fragen.

Und hier das Programm:

Code:

'*************************************************************************
' ONTIMER.BAS = Uhrzeitanzeige mit ON TIMER unabhaengig vom Hauptprogramm
' ===========
' (c)Hawkynt, 1999
'*************************************************************************
CLS
ON TIMER(1) GOSUB TIRQ1   'Timer-Interruptrogrammbearbeitung scharfmachen
TIMER ON
GOTO TIMEBRK:             'Uhrzeitbearbeitung ueberspringen
'
TIRQ1:
X% = POS(0)               'Cursorposition sichern
Y% = CSRLIN
LOCATE 1, 50
PRINT STRING$(8, 32);
LOCATE 1, 50
PRINT TIME$;
LOCATE Y%, X%              'Cursorposition wieder herstellen
RETURN
'
TIMEBRK: 'Hauptprogramm: Zahlenkolonne anzeigen
DO: i = i + 1: LOCATE 1, 1: PRINT i: LOOP WHILE INKEY$ = ""
         'Abbruch mit beliebiger Tastenbetaetigung

_________________
+++ Die beliebte QBasic CD-ROM von QBasic.de - 670 MB QBasic-Stuff mit komfortabler HTML-Oberfläche. Für nur 5 EUR bestellbar auf www.antonis.de/qbcdueb.htm +++
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 24.02.2005, 18:06    Titel: Antworten mit Zitat

Wo wir grade bei Einsteigerfragen sind:

Gibt es in QB ne Variable für PI (<-- Das Mathematische PI - die Kreisrundungszahl) ? Immer 3,......... einzutippen dauert zu lange und ist ungenau !

(Hab in der MoNFAQ nachgeguckt aber nix gefunden)
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 24.02.2005, 18:13    Titel: Antworten mit Zitat

PI# = 4 * ATN(1)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 24.02.2005, 18:24    Titel: Antworten mit Zitat

Lustig, dass der, der die Linkliste für Programmierer eine solche Frage stellt.

Aber gibt einem wieder Mut -> Nobody is perfect
_________________
Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
dreael
Administrator


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

BeitragVerfasst am: 24.02.2005, 21:42    Titel: Antworten mit Zitat

Zum Titelthema ist vielleicht folgender Artikel aus meiner Sammlung passend:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/EreignisSchleife.html

Zum Thema Benutzeroberfläche fürs Office-Programm kann ich mit

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BildschirmMasken.html

noch dienen - gerade der Ersatz für INPUT ist an dieser Stelle noch wichtig.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Thomas Antoni



Anmeldungsdatum: 12.10.2004
Beiträge: 220
Wohnort: Erlangen

BeitragVerfasst am: 24.02.2005, 22:30    Titel: Pi ist doch in der MonsterFAQ Antworten mit Zitat

Zitat:
Gibt es in QB ne Variable für PI (<-- Das Mathematische PI - die Kreisrundungszahl) ? Immer 3,......... einzutippen dauert zu lange und ist ungenau !

(Hab in der MoNFAQ nachgeguckt aber nix gefunden)


Unter "Zahlen verarbeiten ...| Wie verwende ich die Kreiskonstante Pi?" ist doch genau Deine Frage beantwortet.

Ich habe mir zu dem Thema übrigens noch Folgendes für die QB-MonsterFAQ vorgemerkt:

Code:


Frage deutsch
~~~~~~~~~~~~~~
Wie berechne ich die Zahl Pi auf 1000 Stellen genau? ?


Question English
~~~~~~~~~~~~~~
How to calculates Pi with 1000 decimal digits?


Antwort 1
~~~~~~~~~
[ von Thomas Antoni, 18.3.2004 ]

Das leistet das folgende Programm von "someone42":

'********************************************************
' GETPI.BAS - Calculates Pi with 1000 decimal digits
' =========   Berechnet Pi auf 100 Dezimalstellen genau
'
' Calculates the first thousand digits of PI. It is
' possible to calculate more, but for some weird
' unknown reason all digits after about 2400 are bogus.
' Uses 4096-bit numbers! (And it's possible to use more.)
'
' This programm also provides Add, Subtract, Muliply
' and Divide for vera long numbers!!!
'
' (c) someone42 - www.angelfire.com/tx5/someone42/
'*********************************************************
DECLARE SUB BigMul (op1 AS STRING, op2 AS INTEGER)
DECLARE SUB BigAdd (op1 AS STRING, op2 AS STRING)
DECLARE SUB BigSub (op1 AS STRING, op2 AS STRING)
DECLARE SUB BigDiv (op1 AS STRING, op2 AS INTEGER)
DIM SHARED x AS STRING * 512
DIM SHARED x2 AS STRING * 512
DIM SHARED x3 AS STRING * 512
DIM SHARED x4 AS STRING * 512
CLS
x = CHR$(1) + CHR$(0) + STRING$(510, 0)
BigDiv x, 5
x3 = x
PRINT "Calculating atn(1/5):";
FOR a = 0 TO 878
  LOCATE 1, 22: PRINT a + 1; "/ 879"
  BigDiv x, 25
  x2 = x
  BigDiv x2, a * 2 + 3
  IF a AND 1 THEN
    BigAdd x3, x2
  ELSE
    BigSub x3, x2
  END IF
NEXT a
'
x = CHR$(1) + CHR$(0) + STRING$(510, 0)
BigDiv x, 239
x4 = x
'
PRINT "Calculating atn(1/239):";
FOR a = 0 TO 257
  LOCATE 2, 24: PRINT a + 1; "/ 258"
  BigDiv x, 239
  BigDiv x, 239
  x2 = x
  BigDiv x2, a * 2 + 3
  IF a AND 1 THEN
    BigAdd x4, x2
  ELSE
    BigSub x4, x2
  END IF
NEXT a
'
BigMul x3, 4
BigSub x3, x4
BigMul x3, 4
'
PRINT "PI = ";
FOR t% = 1 TO 1000
  PRINT LTRIM$(STR$(ASC(MID$(x3, 1, 1)) MOD 10));
  IF t% = 1 THEN PRINT ".";
  MID$(x3, 1, 1) = CHR$(0)
  BigMul x3, 10
NEXT t%
'
SUB BigAdd (op1 AS STRING, op2 AS STRING)
  carry& = 0
  FOR c% = 511 TO 1 STEP -2
    add1& = CVL(MID$(op1, c%, 2) + CHR$(0) + CHR$(0))
    add2& = CVL(MID$(op2, c%, 2) + CHR$(0) + CHR$(0))
    thing& = add1& + add2& + carry&
    IF thing& > 65536 THEN
      thing& = thing& - 65536
      carry& = 1
    ELSE
      carry& = 0
    END IF
    IF thing& > 32767 THEN thing& = thing& - 65536
    MID$(op1, c%, 2) = MKI$(thing&)
  NEXT c%
END SUB

SUB BigDiv (op1 AS STRING, op2 AS INTEGER)
  numq& = CVL(MID$(op1, 1, 2) + CHR$(0) + CHR$(0)) \ op2
  numr& = CVL(MID$(op1, 1, 2) + CHR$(0) + CHR$(0)) MOD op2
  MID$(op1, 1, 1) = CHR$(numq& AND 255)
  MID$(op1, 2, 1) = CHR$(numq& \ 256)
  nextval$ = CHR$(numr& AND 255) + CHR$(numr& \ 256)
  FOR c% = 3 TO 511 STEP 2
    numq& = CVL(MID$(op1, c%, 2) + nextval$) \ op2
    numr& = CVL(MID$(op1, c%, 2) + nextval$) MOD op2
    MID$(op1, c%, 1) = CHR$(numq& AND 255)
    MID$(op1, c% + 1, 1) = CHR$(numq& \ 256)
    nextval$ = CHR$(numr& AND 255) + CHR$(numr& \ 256)
  NEXT c%
END SUB

SUB BigMul (op1 AS STRING, op2 AS INTEGER)
  carry& = 0
  FOR c% = 511 TO 1 STEP -2
    mul& = CVL(MID$(op1, c%, 2) + CHR$(0) + CHR$(0))
    thing& = mul& * op2 + carry&
    carry& = thing& \ 65536
    thing& = thing& AND 65535
    IF thing& > 32767 THEN thing& = thing& - 65536
    MID$(op1, c%, 2) = MKI$(thing&)
  NEXT c%
END SUB

SUB BigSub (op1 AS STRING, op2 AS STRING)
  borrow& = 0
  FOR c% = 511 TO 1 STEP -2
    sub1& = CVL(MID$(op1, c%, 2) + CHR$(0) + CHR$(0))
    sub2& = CVL(MID$(op2, c%, 2) + CHR$(0) + CHR$(0))
    thing& = sub1& - sub2& - borrow&
    IF thing& < 0 THEN
      thing& = thing& + 65536
      borrow& = 1
    ELSE
      borrow& = 0
    END IF
    IF thing& > 32767 THEN thing& = thing& - 65536
    MID$(op1, c%, 2) = MKI$(thing&)
  NEXT c%
END SUB

_________________
+++ Die beliebte QBasic CD-ROM von QBasic.de - 670 MB QBasic-Stuff mit komfortabler HTML-Oberfläche. Für nur 5 EUR bestellbar auf www.antonis.de/qbcdueb.htm +++
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Killos



Anmeldungsdatum: 12.09.2004
Beiträge: 31

BeitragVerfasst am: 02.03.2005, 18:01    Titel: Antworten mit Zitat

Hab noch ne frage dazu:

Ich hab jetzt ein Programm und möchte das mann währen des ganzen Programms das Programm mit der taste 1 abbrechen kann, wie?

(bitte keine links posten)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden MSN Messenger
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 02.03.2005, 18:23    Titel: Antworten mit Zitat

Also, mit F1 geht das so:

Code:

KEY(1) ON
ON KEY(1) GOSUB Ende

DO
REM Blablabla
LOOP

END

Ende:
END
RETURN


Alles klar?

Den Code von 1 weiß ich im Moment leider nicht.

jb
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
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