Parcourir cette discussion :   1 Utilisateurs non enregistré en ligne






Comment faire une pause en basic
#1
Molecule man


Informations sur l'utilisateur
Bonjour,

Je débute en BASIC, et je souhaiterais faire des pauses à durée déterminée entre 2 commandes, sans passer par la commande AFTER car lié à la commande GOSUB.
Bref un équivalent à "SLEEP" ou "PAUSE".
Ca parait tout simple à priori, mais en fouillant sur la toile je ne trouve que des exemples détaillant des instructions en assembleur auxquelles je ne comprends pas grand chose.
Merci d'avance pour une solution simple.

Date de publication : 29/01 15:02
Imprimer Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit M. Wong Haut


Re : Comment faire une pause en basic
#2
Junior


Informations sur l'utilisateur
personnellement, j'utilisais tjs la commande suivante :
t=TIME:while time-t<2000 then wend

ou un truc du genre. une boucle while est pas mal en utilisant l'opérande système TIME. et 2000 est un exemple (c'est en milisecondes si je me rappel bien, ou qqch d'approchant..) donc test avec 2000 puis avec 20000 et fais la différence pour avoir ton ratio pour remplacer ensuite par la valeur dont tu as besoin.
.. j'ai un petit doute sur la fin de ma commande, mais j'ai pas de quoi vérifier sous la main.. mais au pire si ça ne fonctione pas redis moi, je retrouverai sûrement.

Date de publication : 29/01 15:33
Imprimer Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit M. Wong Haut


Re : Comment faire une pause en basic
#3
Molecule man


Informations sur l'utilisateur
Merci pour cette réponse rapide.
Ca fonctionne effectivement !

10 t=TIME
19 REM PAUSE ENVIRON 7 secondes
20 WHILE TIME-t<2000
30 WEND
40 PRINT "fin de la pause"

2000 me donne 7 secondes environ, donc environ 280 pour 1 seconde.
Test OK avec émulateur ARNOLD.

Je vais essayer de créer une fonction avec ça, pour un appel plus simple.

S'il existe d'autres solutions, je reste preneur. Mon but est de faire découvrir la programmation à mes enfants 7 et 9 ans, donc j'essaie de leur présenter les choses le plus simplement possible.

Merci encore.

Date de publication : 29/01 16:01
Imprimer Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit M. Wong Haut


Re : Comment faire une pause en basic
#4
Junior


Informations sur l'utilisateur
Kool ! En tt cas, si tu créer une fonction, hésites pas à partager. Car en basic 1.0 (=CPC 464) j'ai jamais trouvé mieux (une boucle WHILE sur l'opérande TIME je pense qu'au niveau technique y'a pas mieux/fiable, meme si ça reste un petit bricolage, mais qui reste technique=précis ! ). A voir si une solution en basic 2.1 (=CPC 6128) ils n'ont pas créer qqch... en tt cas bien content d'avoir pu te "donner la main" sur ce coup.

Date de publication : 29/01 16:34
Imprimer Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit M. Wong Haut


Re : Comment faire une pause en basic
#5
Junior


Informations sur l'utilisateur
si je suis ce petit prg test que tu as écris, ce devait être :
10 REM "pour exemple
20 t=TIME:while time-t<2000:wend
Merci pour ton feedback en tt cas !

Date de publication : 29/01 16:37
Imprimer Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit M. Wong Haut


Re : Comment faire une pause en basic
#6
Molecule man


Informations sur l'utilisateur
Ah oui, effectivement sur une ligne c'est plus court
Pour la fonction (je ne sais pas si j'emploie le bon terme), mais je pensais à ça (ligne 1000), avec mise en variable du nombre de secondes :

10 print "début programme avant pause ..."
20 nbsec=1
30 print "pause "nbsec" seconde(s)"
40 GOSUB 1000
50 print "suite programme après pause"
1000 t=TIME:WHILE TIME-t<300*nbsec:WEND
1010 RETURN

Mais ce "partage" m'amène une autre question :
La ligne 1010 RETURN est nécessaire pour revenir à la ligne 50 après la fonction GOSUB ..... mais en fin de programme j'ai le retour "Unexepected RETURN in 1010".
Comment faire pour terminer le programme (retour à READY) après la ligne 50 ?

Merci

Date de publication : 29/01 21:21
Imprimer Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit M. Wong Haut


Re : Comment faire une pause en basic
#7
Junior


Informations sur l'utilisateur
logique car le gosub l'envoi lire la ligne 1000 puis la 1010 fait reprendre la lecture du programme à la ligne 50, donc l'ordinateur va continuer de lire les ligne suivantes et arrivé à la 1010 il se retrouve de nouveau face à un RETURN pour lequel il n'a pas reçu de gosub avant, du coup l'ordi est perdu car le return lui dit de revenir là où on lui a ordonné de venir lire sa subroutine/sous-programme, sauf qu'il n'a jamais reçu cet ordre quant il lit le return pour le 2ème fois... Il est clair que dans le cas de ton petit prog d'exemple les lignes 40 et 1010 sont inutiles, mais j'imagine que c'est dans le but de faire autre chose avec après... donc tente d'utiliser le END je pense...

Date de publication : 30/01 02:17
Imprimer Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit M. Wong Haut


Re : Comment faire une pause en basic
#8
Junior


Informations sur l'utilisateur
je me suis même amusé à te pondre un petit prog à partir de celui que tu as posté :
10 REM "Programme de test de subroutine de temporisation
20 input "Entrez la durée de la pause (en secondes) :";nbsec
30 print "début programme avant pause ..."
40 GOSUB 1000
50 END
1000 REM " Sous programme de temporisation
1010 print "Début de la pause de ";nbsec;" seconde(s)"
1020 t=TIME:WHILE TIME-t<300*nbsec:WEND
1030 print "Fin de la pause de ";nbsec;" seconde(s)"
1040 RETURN

Date de publication : 30/01 03:02
Imprimer Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit M. Wong Haut


Re : Comment faire une pause en basic
#9
Molecule man


Informations sur l'utilisateur
Oui, le but de tout ça est d’intercaler des pauses entre d'autres commandes pour créer une petite animation avec caractères.

Ben oui, END .... c'était tout simple !!
J'imaginais un truc plus compliqué genre EOP ou CALL&FFFF
Merci encore.

Date de publication : 30/01 08:52
Imprimer Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit M. Wong Haut


Re : Comment faire une pause en basic
#10
Junior


Informations sur l'utilisateur
je t'en prie, ce fut un plaisir !

Date de publication : 30/01 15:41
Imprimer Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit M. Wong Haut







Vous pouvez consulter les sujets.
Vous ne pouvez pas débuter un nouveau sujet.
Vous ne pouvez pas répondre aux messages.
Vous ne pouvez pas modifier vos messages.
Vous ne pouvez pas supprimer vos messages.
Vous ne pouvez pas créer des sondages.
Vous ne pouvez pas participer aux sondages.
Vous pouvez joindre des fichiers à vos messages.
Vous ne pouvez pas publier vos messages sans approbation.
Vous pouvez utiliser ce type de sujet.
Vous ne pouvez pas utiliser le HTML.
Vous ne pouvez pas utiliser une signature dans vos messages.

[Recherche avancée]


RECHERCHE
* Donathon 2018 *

230/200 €

 

 

 

 En savoir plus

LANGUE
Le Chat
 Smiles  Loading...
EN LIGNE
6 Personne(s) en ligne (1 Personne(s) connectée(s) sur Forum Amstrad CPC)

Utilisateur(s): 1
Invité(s): 5

Moonbeam, Plus ...
Musiques CPC

Lecteur MP3
CPC-Scene Radio

 

 

ROLAND RADIO

 

Informations
________________________________

Suivre Amstrad.eu

________________________________

Autres Créations web

________________________________

 

Declaration CNIL : 1005884

Association : 0540200002843

Charte

Avertissements

Plan du site

Carte de France des membres

 

 

 

Facebook.

Twitter.

RSS forum.

RSS News.

Contact.

 

Gaston-Phoebus.com

Amstrad.eu

untour.fr

Cathydeco.com

Higoogle

Harloup.fr

** Faire un don **

 

Conception Phenix © 2000 - 2014