Home Exercices Chapitre 3 : Les structures itératives Défilement d'une chaîne de caractères
Bookmark and Share

Liens sponsorisés

Login Form



Défilement d'une chaîne de caractères Print E-mail
Written by Administrator   

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.

 

 

 

Liens sponsorisés