|
Source : M. Rached Douari Écrire un programme qui saisit une chaîne de caractères et la fait défiler à l'écran de la droite vers la gauche. Correction : En faisant afficher une chaîne de caractères de la droite vers la gauche, son dernier caractère va rester affiché à l'écran et on aura une trace composée d'une suite de ce caracère. L'astuce consiste à ajouter un espace à la fin de la chaîne en question. On va se contenter d'arrêter le déplacement dès que la chaîne arrive à l'extrême gauche de l'écran. Autrement dit, on ne traitera pas le cas de la disparition progressive de la chaine. L'opération de défilement est très rapide, on provoquera une attente de quelques secondes après chaque déplacement. On utilisera la fonction PAUSE équivalente à celle du Pascal DELAY dont le paramètre est la quantité de temps en millisecondes. Pour placer l'écriture à l'emplacement voulu, on utilise aussi l'instruction TAB(c , l) ou GOTOXY en Pascal et où c et l sont respectivement colonne et ligne. Analyse du problème | | NOM = Fantaisie | | | S | L.D.E. | O.U. | | 3 2 1 4 | Résultat = défiler défiler = [l=LONG(affiche), d = 80-l] Pour c de d à 1 (pas= -1) Répéter Écrire(Tab(c, 12), affiche) FinPour affiche = chaîne + " " chaîne = DONNEE("Chaîne à défiler : ") Fin Fantaisie | l d c affiche chaîne | Codification des objets | Nom | Code | Type | Rôle | | l | l | Entier | | | d | d | Entier | Début de l'affichage | | c | c | Entier | Compteur | | affiche | chaf | Chaîne | Chaîne ajoutée à espace | | chaîne | ch | Chaîne | | Algorithme 0) début Fantaisie 1) Lire("Chaîne à défiler : ", ch) 2) chaf = ch + " " 3) [l=LONG(affiche), d = 80-l] Pour c de d à 1 (pas= -1) Répéter Écrire(Tab(c, 12), affiche) PAUSE(1000) FinPour 4) Fin Fantaisie Traduction en Pascal PROGRAM Fantaisie; VAR l, d, c : INTEGER; chaf , ch : STRING; BEGIN WRITE('Chaine à défiler : '); READLN(ch); chaf := ch + ' '; l := LENGTH(chaf); d := 80 – l ; FOR c := d DOWNTO 1 DO BEGIN GOTOXY(c, 12); WRITE(chaf); DELAY(1000); END; END.
|