Browsing this Thread:   1 Anonymous Users






Comment faire une pause en basic
#1
Chti nouveau
Chti nouveau


See User information
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.

Posted on: 29/01/2018 15:02
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong Top


Re : Comment faire une pause en basic
#2
Junior
Junior


See User information
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.

Posted on: 29/01/2018 15:33
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong Top


Re : Comment faire une pause en basic
#3
Chti nouveau
Chti nouveau


See User information
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.

Posted on: 29/01/2018 16:01
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong Top


Re : Comment faire une pause en basic
#4
Junior
Junior


See User information
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.

Posted on: 29/01/2018 16:34
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong Top


Re : Comment faire une pause en basic
#5
Junior
Junior


See User information
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 !

Posted on: 29/01/2018 16:37
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong Top


Re : Comment faire une pause en basic
#6
Chti nouveau
Chti nouveau


See User information
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

Posted on: 29/01/2018 21:21
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong Top


Re : Comment faire une pause en basic
#7
Junior
Junior


See User information
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...

Posted on: 30/01/2018 02:17
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong Top


Re : Comment faire une pause en basic
#8
Junior
Junior


See User information
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

Posted on: 30/01/2018 03:02
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong Top


Re : Comment faire une pause en basic
#9
Chti nouveau
Chti nouveau


See User information
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.

Posted on: 30/01/2018 08:52
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong Top


Re : Comment faire une pause en basic
#10
Junior
Junior


See User information
je t'en prie, ce fut un plaisir !

Posted on: 30/01/2018 15:41
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong Top







You can view topic.
You cannot start a new topic.
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You can attach files to posts.
You cannot post without approval.
You can use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[Advanced Search]


* Donathon 2018 *

310 €

 

 

 

 En savoir plus

RECHERCHE
LANGUE
Le Chat
 Smiles  Loading...
EN LIGNE
4 utilisateur(s) en ligne (1utilisateur(s) en ligne sur Forum Amstrad CPC)

Membres: 1
Invités : 3

Golem13, 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