 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 24.02.2005, 17:39 Titel: Eine Do/Loop Schleife im Hintergrund laufen lassen |
|
|
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 !
Vielen Dank schonmal im Vorraus  _________________ www.piratenpartei.de |
|
Nach oben |
|
 |
Thomas Antoni

Anmeldungsdatum: 12.10.2004 Beiträge: 220 Wohnort: Erlangen
|
Verfasst am: 24.02.2005, 17:44 Titel: Steht doch in der QB-MonsterFAQ! |
|
|
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 |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 24.02.2005, 18:06 Titel: |
|
|
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 |
|
 |
Tomtitom

Anmeldungsdatum: 20.09.2004 Beiträge: 308
|
Verfasst am: 24.02.2005, 18:13 Titel: |
|
|
PI# = 4 * ATN(1) |
|
Nach oben |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 395
|
Verfasst am: 24.02.2005, 18:24 Titel: |
|
|
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 |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
Thomas Antoni

Anmeldungsdatum: 12.10.2004 Beiträge: 220 Wohnort: Erlangen
|
Verfasst am: 24.02.2005, 22:30 Titel: Pi ist doch in der MonsterFAQ |
|
|
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 |
|
 |
Killos

Anmeldungsdatum: 12.09.2004 Beiträge: 31
|
Verfasst am: 02.03.2005, 18:01 Titel: |
|
|
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 |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 02.03.2005, 18:23 Titel: |
|
|
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 |
|
 |
|
|
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.
|
|