Retour à la page précédente

Commun

M. GUITARD M.ROTY M. THIERIOT

Quelques fonctions plus complexes du QuickBasic


La page a été mise à jour le 

Prérequis

Premiers pas en QuickBasic !

 

Utilitaire

Lancement de QuickBasic

Menu principal pour le QuickBasic

 


Plan

1 - répéter une opération un nombre de fois bien déterminé ?
2 - Faisons une PAUSE !
3 -
répéter une opération de manière conditionnelle ?
4
- Commander le port parallèle 
5
- LIRE le port parallèle

Rédacteur : JMR

Retour au sommaire général

D'après une idée de Frédéric WANG (ancien brillant élève de MPI)

Son site web : http://www.maths-informatique-jeux.com/index.php

Allez voir ! On est fier de lui.

 

-

Retour en haut de la page

1 - répéter une opération 
un nombre de fois bien déterminé ?

Avertissement  : Vous allez maintenant utilisez des boucles, il arrive que, par mégarde, on programme des boucles qui ne s'arrêtent jamais ou qui bouclent trop longtemps !
Que faire ? Pour arrêter l'exécution d'un programme, appuyez sur [Ctrl] + [Pause/Break] !

 

Exercice n°1

Écris puis exécute de programme.

CLS

FOR n = 1 TO 5

PRINT "Attention !"

NEXT n

 

Vérifie que l'écran est d'abord effacé puis que l'ordinateur affiche 5 fois «Attention !».

Que s'est-il passé ?

 

... à quelques détails !

  • Ne jamais mettre un pas nul !

  • Une boucle du type «FOR n = 6 TO 6 ... NEXT n» n'effectue qu'une seule fois le blocs d'instructions.

  • Une boucle du type «FOR n = 5 TO 0 ... NEXT n» n'effectue pas le blocs d'instructions.

  • Si le pas n'est pas précisé, comme dans l'exemple précédent, il prends pour valeur 1.

  • Un pas peut aussi être négatif !

 

Exercice n°1 bis

En changeant le pas, invente un programme effectuant un compte à rebours. Il risque fort de ne pas être très utilisable ; on verra plus loin comment l'améliorer...

Exercice n°1 ter

Plus fort encore ! Exécute, puis essaye de comprendre comment marche le programme suivant :

CLS

SCREEN 13  (passage en mode graphique)

FOR x = 0 TO 255

LINE (x, 0)-(x, 319), x   (Trace une ligne verticale de couleur x)

NEXT x

END (Fin du programme.)

 

Retour en haut de la pageParagraphe suivant

 

-

Retour en haut de la page

2 - Faisons une PAUSE !

 

Exercice n°2

Reprends le programme de l'exercice 1 auquel tu ajoutes une ligne :

CLS

FOR n = 1 TO 5

PRINT "Attention !" 

SLEEP (1)

NEXT n

Essaye à nouveau en modifiant la valeur entre parenthèses après SLEEP.

Sans SLEEP, le programme est exécuté à une telle vitesse que les 5 "attentions" semblent apparaître simultanément.
En insérant un ordre
SLEEP (n) l'exécution du programme est stoppée pendant n seconde(s).

 

Exercice n°2 bis

Crée un programme qui affiche un compte à rebours.

 

Retour en haut de la pageParagraphe suivant

 

-

Retour en haut de la page

3 - répéter une opération 
de manière conditionnelle ?

 

Il existe d'autres boucles d ont la structure plus simple que FOR...NEXT, mais elles présentent plus de risques de boucler à l'infinie... Rappelle-toi la consigne en cas de problème !

 

Exercice n°3

Écris puis exécute le programme suivant :

CLS

DO

PRINT "Vite ! Appuyez sur la bonne touche"

SLEEP (1)

LOOP UNTIL inkey$ = "a"

PRINT "Merci..."

 

  INKEY$ correspond à une touche enfoncée au clavier.

Cherche ce que veut dire UNTIL pour comprendre le fonctionnement de ce programme...

 

Exercice n°3 bis

Remplace la ligne : 

LOOP UNTIL inkey$ = "a"

par la ligne :

LOOP WHILE  inkey$ <> "a"

 

  <> signifie différent.

Que signifie WHILE ? Pourquoi, malgré le changement de ligne, le programme s'exécute-t-il de la même manière ?

 

 

Exercice n°4

Écris un programme où l'on te demande un mot de passe pour accéder à un message secret. A chaque fois que le mot de passe est incorrect, on te demande à nouveau le mot de passe.

 

Exercice n°5

Écris le même programme mais avec seulement deux droits à l'erreur.

 

Retour en haut de la pageParagraphe suivant

 

-

Retour en haut de la page

4 - Commander le port parallèle 

 

Le port parallèle d'un ordinateur est le port utilisé généralement pour commander une imprimante.

Il comporte 25 broches (il y a donc 25 fils différents à l'intérieur d'un câble d'imprimante) dont :

- 8 "lignes" sont connectées à la masse (broches numérotées de 18 à 25)

- 17 sont des "lignes" de signaux (broches numérotées en couleur). Parmi celles-ci :

  • 12 sont des sorties (signaux allant de l'ordinateur vers l'imprimante)
    * soit 8 sorties de données (2 à 9) dites "DATA" ,    
    * et 4 sorties pour "négocier" avec l'imprimante (1, 14, 16 et 17) dites "CONTROL"
  • 5 sont des entrées (signaux allant de l'imprimante vers l'ordinateur) dites "STATUS"

 

 

Tous les informations transmises sont bien sûr codées en binaire. Chaque broches est soit dans l'état 0 soit dans l'état 1.

On peut commander facilement l'état des 8 broches data ( D0 à D7) qui forment un octet.

Il suffit d'écrire une ligne de programme  en quick basic telle que 

OUT &H378, 183

Le nombre décimal 183 est égal à l'octet 10110111, Cette ligne de programme ordonne donc à l'ordinateur de mettre chacune des 8 broches Data dans l' état correspondants au bit de l'octet dans l'ordre suivant:

1 0 1 1 0 1 1 1
D7 D6 D5 D4 D3 D2 D1 D0

&H378 est un code qui désigne les 8 broches D0 à D7

 

Quand le port parallèle est connecté à une imprimante, les octets transmis codent les informations à imprimer.

En connectant le port parallèle au module DEL de la mallette ELIN, les octets transmis peuvent commander le fonctionnement de différents modules: l'allumage de DEL, le fonctionnement d'un afficheur 8 segments, la rotation d'un moteur pas à pas, n convertisseur numérique analogique, un convertisseur analogique numérique.

 

Retour en haut de la pageParagraphe suivant

 
 

-

Retour en haut de la page

5 - LIRE le port parallèle

 

Les broches 10, 11, 12, 13, et 15 du port parallèle servent à l'imprimante pour envoyer des informations à l'ordinateur.

n° de broche nom information transmise à l'ordinateur bit de l'octet
10 Acknowledgement  l'impression a bien eu lieu S6
11 Busy données en cours de réception S7
12 Paper Out plus de papier S4
13 Select sélectionne l'entrée S5
15 Error erreur lors de la réception ou de l'impression S3

Il est possible de connaître les états de ces 5 entrées en écrivant la ligne de programme suivante:

a = INP(&H379)

PRINT a

si l'écran affiche 149 nombre décimal égal au nombre binaire 10010101, cela signifie que les broches sont dans les états suivants:

S7 S6 S5 S4 S3
1 0 0 1 0

&H379 est un code qui désigne les 8 broches S0 à S7

I

 

Retour en haut de la pageParagraphe suivant