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:

Zähler mit halber oder weniger sekunde
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
master P



Anmeldungsdatum: 18.12.2005
Beiträge: 7
Wohnort: Hamburg

BeitragVerfasst am: 18.12.2005, 21:24    Titel: Zähler mit halber oder weniger sekunde Antworten mit Zitat

Hi Leute!
Ich programmiere mit QB 1.1 und hab folgendes Problem:

Ich brauche im Spiel einen Zähler, der weniger als 1 Sekunde zählt, aber
nicht so schnell zählt wie z.b. eine Schleife!

mfg, master p
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Devilkevin
aka Kerstin


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

BeitragVerfasst am: 18.12.2005, 22:15    Titel: Antworten mit Zitat

Also Millisekundengenau?

Da kann ich dir FreeBASIC ans Herz legen, da ist die SLEEP Funktion mit Millisekunden. Is also sehr gut für sowas geignet.

Deine QB Programme funzen bestimmte ohne viel Änderungen auch mit freeBasic.
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
master P



Anmeldungsdatum: 18.12.2005
Beiträge: 7
Wohnort: Hamburg

BeitragVerfasst am: 18.12.2005, 22:21    Titel: Antworten mit Zitat

Is freeB denn sehr anders als QB??? verlegen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kai Bareis



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

BeitragVerfasst am: 18.12.2005, 22:21    Titel: Antworten mit Zitat

Dafür gibt es in Qbasic den Timer

Code:
temptimer=timer
while timer < temptimer + .5
wend

_________________
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
master P



Anmeldungsdatum: 18.12.2005
Beiträge: 7
Wohnort: Hamburg

BeitragVerfasst am: 18.12.2005, 22:23    Titel: Antworten mit Zitat

achso! grinsen
Wo kriegt man denn FB her???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


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

BeitragVerfasst am: 18.12.2005, 22:34    Titel: Antworten mit Zitat

schau mal in diverse signaturen (z.B. von volta) oder geh auf freeBasic.de und hole dir das "einsteiger-komplettpaket" zwinkern das enthält die IDE, beispiel programme und vieles mehr zwinkern
_________________
» 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
Devilkevin
aka Kerstin


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

BeitragVerfasst am: 18.12.2005, 22:36    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
schau mal in diverse signaturen (z.B. von volta) oder geh auf freeBasic.de und hole dir das "einsteiger-komplettpaket" zwinkern das enthält die IDE, beispiel programme und vieles mehr zwinkern


Jep, falls du es noch nich gemekrt hast: Wir sind ein QB und FB Forum lächeln
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.12.2005, 23:12    Titel: Antworten mit Zitat

Wie KaiBareis schon sagte:

Code:
'Eine halbe Sekunde in QBasic warten
dauer! = 0.5
t!=TIMER
DO: LOOP UNTIL TIMER >= t!+dauer!
PRINT "Eine halbe Sekunde ist rum.": SLEEP: END

lächeln

Wegen dieser Kleinigkeit brauchst du nicht auf FreeBASIC umsteigen.

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
master P



Anmeldungsdatum: 18.12.2005
Beiträge: 7
Wohnort: Hamburg

BeitragVerfasst am: 19.12.2005, 20:51    Titel: Antworten mit Zitat

Jo, vielen dank für die vielen tips!
mfg, master p happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
coolMCcool



Anmeldungsdatum: 23.02.2005
Beiträge: 12
Wohnort: Berlin

BeitragVerfasst am: 07.01.2006, 15:09    Titel: Antworten mit Zitat

an den millisekunden-problem forsche ich auch schon einige zeit herum, aber bedenke, dass du als allerkleinste warteschleife mit den oben genannten kleinen programmen nur bis zu 56 millisekunden laufen lassen kannst. denn alles was kleiner 56ms ist, macht die timer-funktion nicht mehr mit....

viel spaß grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 07.01.2006, 19:24    Titel: Antworten mit Zitat

Hallo

Zum Thema Zeitmessung unter 56ms ist dieser Thread ganz interessant.

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
coolMCcool



Anmeldungsdatum: 23.02.2005
Beiträge: 12
Wohnort: Berlin

BeitragVerfasst am: 10.01.2006, 11:54    Titel: Antworten mit Zitat

hallo noch einmal. habe noch etwas herumgegrübelt und komme an einem problem einfach nicht weiter. viellicht könnt ihr meinen grauen zellen auf die sprünge helfen. nachfolgend lest ihr einen code, der folgendes bewirken soll:

1. mit hilfe einer do - loop schleife soll ein wert hochgezählt werden in 5 sekunden (extra eine so große auflösung genommen, damit es rel. exakt wird)

2. mit hilfe des ermittelten (gezählten) wertes dieselben 5 sekunden mit einer for next schleife "nachahmen"

Code:

s!=timer    '= Anfangstimer
z!=0         '= der Zähler in der DO-LOOP Schleife

DO WHILE  t! < s! + 5       'tue(zähle z! hoch) solange t! < s! + 5 (sek)
  t! = timer
  z! = z! + 1
loop

for a = 0 to z!: next a   'sollte diese schleife dann nicht eine ca. genauso
                                    lange warteschzeit bilden?



...oder wird das in der do-loop schleife gezählte z! in einer for next schleife schneller gezählt? jedenfalls dauert die do-loop schleife bei mir wirklich ca. 5 sek. und die for next schleife nicht mal einen bruchteil einer sekunde... mit dem Kopf durch die Mauer wollen [/code]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



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

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

geht nicht. Dadurch, das beim der Do-loop-schleife wesentlich mehr gemacht wird als bei der FOR-Schleife läuft die langsamer und bekommt so auch einen niedrigeren zählerwert als du für die for-schleife bräuchtest. Folglich läuft deine forschleife schneller als fünf sekunden ab..

du solltest z übrigens nicht als single sondern besser als long deklarieren..
_________________
"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
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

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

Wenn du deinen Lösungsansatz weiter verfolgen willst, ein Tipp:
Versuch's umgekehrt, miss nicht wie viele Durchlaufe du für 5 Sek. brauchst, sondern wie lange eine Schlaufe dauert.
Hier der Code:
Code:

'Berechnung/Messung
  z! = 0       '= der Zähler in der DO-LOOP Schleife
  s! = TIMER  '= Anfangstimer
  FOR a = 0 TO 10000
    FOR b = 0 TO 100
    NEXT b
  NEXT a
  t! = TIMER - s!
  z! = 10000 / t!
'Berechnung/Messung ENDE

'Kontroll Messung
  s! = TIMER

  'Bremsschlaufe
    FOR a = 0 TO z!
      FOR b = 0 TO 100
      NEXT b
    NEXT a
  'Bremsschlaufe ENDE

  PRINT TIMER - s!
'Kontroll Messung ENDE

Es gibt recht Genau 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
coolMCcool



Anmeldungsdatum: 23.02.2005
Beiträge: 12
Wohnort: Berlin

BeitragVerfasst am: 10.01.2006, 21:35    Titel: Antworten mit Zitat

genial einfach - einfach genial! vielen dank lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 11.01.2006, 19:38    Titel: Antworten mit Zitat

Eine Warnung bin ich dir noch schuldig:
Um Mitternacht wird der Messteil abschmieren, weil Time dann "plötzlich" auf 0 Springt!
Für diesen Fall sollte man z.B. einen Neustart der Messung vorsehen.
_________________
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
Gilez



Anmeldungsdatum: 16.05.2005
Beiträge: 6
Wohnort: Rheine

BeitragVerfasst am: 13.01.2006, 18:33    Titel: Antworten mit Zitat

Ich benutze für alle nicht mit sleep möglichen Wartedauern immer den SOUND Befehl und stelle eine Tonhöhe ein, die der Rechner nicht machen kann bzw. wir nicht hören können

Syntax:
SOUND Tonhöhe, Tonlänge (in Achtzehntelsekunden)

print "eine halbe Sekunde noch"
SOUND 30000, 9 ' 9 entspricht eine halbe Sekunde
print "okay jetzt ist sie rum."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



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

BeitragVerfasst am: 13.01.2006, 18:55    Titel: Antworten mit Zitat

man kann auch SOUND 0,zeit machen.. is besser als 30000Hz sonst meckert irgendwann die Katze zwinkern
_________________
"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
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 13.01.2006, 19:08    Titel: Antworten mit Zitat

Naja, 30000Hz kann der PC-Lautsprecher eh nicht erzeugen, der Katze macht's also nichts grinsen.
_________________
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
MisterD



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

BeitragVerfasst am: 13.01.2006, 19:48    Titel: Antworten mit Zitat

also der befehl nimmt die frequenzen bis 32565 Hz glaub ich, bis wohin der lautsprecher mitmacht weiß ich nich lächeln
_________________
"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
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