• Aucun résultat trouvé

La chaîne de caractères est indicée par rapport à 0 et on n’utilisera pas la fonction strlen(chaine)

N/A
N/A
Protected

Academic year: 2022

Partager "La chaîne de caractères est indicée par rapport à 0 et on n’utilisera pas la fonction strlen(chaine)"

Copied!
2
0
0

Texte intégral

(1)

Median AG43 Semestre A2008 Durée : 1h30

Fonction testant le type de chaîne de caractères

On désire écrire une fonction appelée isnum(texte) ; cette fonction admet en argument une chaîne de caractères, et elle retourne un entier. La valeur retournée sera 1 si le paramètre texte ne contient que des chiffres, et 0 s'il contient au moins un caractère non numérique. Rappelons que le code ASCII des chiffres est compris entre 48 et 57 (ou entre '0' et '9'). La chaîne de caractères est indicée par rapport à 0 et on n’utilisera pas la fonction strlen(chaine).

Affichage tournant

On peut souvent voir dans les vitrines de magasins des panneaux publicitaires qui se présentent sous la forme d'un affichage animé qui donne l'impression d'un texte défilant derrière une fenêtre.

Cette méthode permet de visualiser complètement un message beaucoup trop grand pour tenir dans la fenêtre d'affichage.

Procédure d'affichage

L'afficheur est un afficheur alphanumérique à cristaux liquides pouvant afficher 16 caractères au maximum. Le message à afficher est placé sous forme ASCII dans une zone mémoire que nous appellerons buffer. Le buffer fait 16 caractères, et il n'est pas nécessaire qu'il se termine par le caractère NUL. La fonction affiche(buffer), fonction que l'on supposera déjà faite, se charge d'envoyer le contenu du buffer à l'afficheur.

Le texte à afficher est une chaîne de caractères, indicée par rapport à 0, contenue dans message.

La longueur du texte (il se termine par le caractère NUL) est sans importance. On peut distinguer 2 cas :

1. Le texte fait plus de 16 caractères 2. Le texte fait moins de 17 caractères

Dans le second cas, le texte pourra se répéter plusieurs fois dans la fenêtre. Si le programme est bien conçu, il est inutile de tenir compte de la longueur du texte.

Détail important :

Le dernier mot du message doit se terminer par un caractère espace, sinon la fin du message serait collée au début. Il faut donc envisager un test qui soit en mesure d'ajouter un espace en fin de message.

Comment procéder pour faire défiler le message sur l'afficheur ?

En fait, l'afficheur est l'image de buffer. Il faut donc faire défiler le message dans buffer, c'est à dire copier message dans buffer à partir d'une position donnée, afficher son contenu pendant un instant donné (on dispose de la fonction temporisation nommée tempo(duree) qui admet en argument un entier signifiant les durées en 1/100emes de seconde), copier à nouveau le message dans buffer, mais cette fois-ci en partant de la position origine précédente décalée d'un caractère, et ainsi de suite. Lorsqu'on arrive lors de la copie à la fin du texte, il faut repartir au premier caractère. L'utilisation de la fonction modulo, qui est le reste de la division entière d'un nombre par un autre, est à envisager.

(2)

La séquence d'affichage est une boucle qui, après chaque décalage, va tester une condition de sortie dont nous ignorerons la nature. Nous l'appellerons simplement "condition de sortie".

On dispose de la fonction strlen(chaîne).

Références

Documents relatifs

The Green Party is committed to developing a national childcare strategy — one that includes non-profit, professional daycare, increased support for at-home parents and

– Modification de l’AR vers un buffer en stack – Modification de l’AR vers un buffer hors stack – Modification de l’AR vers fonction de la LIBC. • Buffers dans

Il faut donc avec k=0 que n

je vais te faire un message clair.. 3 Je te dis ce que j’ ai entendu

SI la personne est majeure OU (a une autorisation de ses parents ET est inscrite au club) Vérifier qu’il y a autant de parenthèses ouvertes que fermées. Vérifier que chaque SI a

Étant donné deux tableaux t1 et t2 contenant respectivement n1 et n2 nombres entiers, on veut écrire une fonction qui renvoie le nombre d’élements distincts qui sont à la fois dans

En faisant le lien avec notre code source et en admettant que nous appelons scanf avec les arguments "%s" et password , on en déduit que 0x400abf est une adresse mémoire

On considére un groupe de 3 étudiants participant à 5 disciplines différentes. Ecrire un programme