Académique Documents
Professionnel Documents
Culture Documents
Quels sont les affichages de l'algorithme devinette lorsque les donnes saisies sont 11, 11, 11, 11, ... ? Quelles sont les lignes qui peuvent tre supprimes sans que le fonctionnement gnral de l'algorithme ne soit modifi?
Algorithmique, Feuille de TD n 4
Page 1
a) Quels sont les sous-algorithmes utiliss par cet algorithme ? Donnez-en l'entte (fonction/procdure, nom identifiant, liste de paramtres). b) Lire les sous-algorithmes fournis par votre enseignant, puis les complter en ajoutant une spcification pour chacun dentre eux. c) simuler l'excution de lalgorithme sur les donnes suivantes O 23 O 401 O -520 O -1007 N
PARTIE 2 : Savoir crire des sous-algorithmes Exercice 2.1 : a) Ecrire la procdure changer qui provoque l'affichage de 2 puis de 1 lors de l'excution des instructions suivantes: ...
A 1 B 2 changer(A,B) afficher(A,B)
... b) Que se passerait-il si la ligne changer(A,B) tait remplace par changer(1,2) ? c) Exercice 2.2 : a) Ecrire une fonction continuer(Rp) qui retourne VRAI si le caractre pass en paramtre est gal 'o' ou 'O', et FAUX sinon. b) Ecrire une procdure calcul(annNaiss, annCour, age) qui calcule l'ge qu'aura une personne ne durant l'anne annNaiss la fin de l'anne courante annCour. c) Transformer la procdure calcul en une fonction calculBis. d) Ecrire un algorithme age qui demande l'utilisateur l'anne de naissance d'un individu, puis qui calcule et affiche l'ge ce de dernier la fin de l'anne courante (l'anne courante sera fournie par l'utilisateur). Cet algorithme doit utiliser les sous-algorithmes prcdents. L'utilisateur doit pouvoir continuer fournir des annes de naissance aussi longtemps qu'il le dsire. Exercice 2.3 En vous aidant des algorithmes de la feuille 2 (sur litration) crire a) Une fonction deuxChiffres qui retourne VRAI si le nombre pass en paramtre est un nombre 2 chiffres, et FAUX sinon. b) Une fonction factorielle qui retourne la factorielle dun nombre donn. c) Une procdure max qui saisit nbVal valeurs (nbVal est un paramtre de la fonction) et qui renvoie (par le biais des paramtres) la plus grande valeur saisie. d) Un algorithme qui demande lutilisateur dentrer une valeur entire positive (uneVal), puis a. qui indique lutilisateur si uneVal est un nombre 2 chiffres, b. qui affiche la factorielle de uneVal, c. et qui saisit uneVal valeurs et affiche la plus grande valeur saisie. Vous devrez bien sr faire appel aux sous-algorithmes dfinis en a), b) et c)
Algorithmique, Feuille de TD n 4
Page 2
variable rp : caractre dbut rpter afficher ("Nouvelle donne entire saisir , rpondre par la premire lettre de 'Oui' ou 'Non'? ") saisir (rp) tant que rp 'O' et rp 'o' et rp 'N' et rp 'n' retourne (Rp = 'O' ou Rp = 'o') fin
Fonction longueurEntier (unNbre) {} paramtre (D) unNbre : entier variables nbChiffres, K : entier dbut nbChiffres 1 K 10 tant que (unNbre div K) > 0 faire nbChiffres nbChiffres + 1 K K * 10 ftq retourne (nbChiffres) fin procdure ligne (nbcar, caract)
{}
paramtres
variable cpt : entier dbut allerAlaligne() (procdure non dcrite qui provoque un saut de ligne) pour cpt 1 nbcar faire afficher (caract) fin
Algorithmique, Feuille de TD n 4
Page 3