TD no2 - Fonctions et procédures (sections 1 et 2)
Transcription
TD no2 - Fonctions et procédures (sections 1 et 2)
Algorithmique et programmation structurée Février 2017 I2 Fonctions et procédures TD no2 Objectif de la séance : Écrire un programme sous forme de fonctions et procédures en pseudo-code. 1 Découpage en sous-programmes Nous reprendrons le pseudo-code correspondant à des exercices réalisés dans le cadre du cours I1. L’objectif est de transformer ces pseudo-codes de manière à les décomposer à l’aide de fonctions et/ou procédures. 1.1 Affichage d’un triangle Écrivez un programme qui affiche les n premières lignes d’un triangle d’étoiles, par exemple pour n = 5 : * * * * * * * * * * * * * * * Le pseudo-code solution de cet exercice, tel que proposé en I1, est donné ci-dessous : Déclaration: i, j, n : Naturel debut ecrire(’Entrez un nombre :’) lire(n) pour i ←1 à n faire pour j ←1 à (n-i) faire ecrire(’ ’) finpour pour j ←1 à i faire ecrire(’* ’) finpour ecrire(saut de ligne) finpour Département STPI / 2016-2017 1 fin Exercices 1. Définir la signature d’une procédure pour afficher une ligne donnée 2. Proposez une écriture alternative de ce pseudo-code utilisant cette procédure et un programme principal 1.2 Ensemble de factoriels Afficher à l’écran tous les nombres de 3 à n (saisi en début de programme) avec la valeur de leur factoriel. Le pseudo-code solution de cet exercice, tel que proposé en I1, est donné ci-dessous : Déclaration: n, nombre, fact, i : Naturel debut lire(n) pour nombre ←3 à n faire ecrire(nombre) fact ← 1 pour i ←2 à nombre faire fact ← fact * i finpour ecrire(’ a pour factoriel :’) ecrire(fact) finpour fin Exercices 1. Définir la signature d’une fonction pour calculer un factoriel donné 2. Proposez une écriture alternative de ce pseudo-code utilisant cette fonction et un programme principal 1.3 Recherche d’un nombre Nous devons concevoir un programme qui demande à l’utilisateur de deviner une valeur située entre 1 et 100 (on considérera une valeur aléatoire obtenue par une fonction random(100)). Un maximum de 10 tentatives est autorisé. A chaque tentative infructueuse, le programme indique si la valeur à trouver est supérieure ou inférieure à la valeur proposée. Le programme aidera aussi l’utilisateur en n’autorisant que les saisies dans l’intervalle des valeurs possibles (initialement entre 1 et 100 puis ajusté en fonction des essais et des réponses. Exercices 1. Définissez des signatures de procédures, avec leurs entrées/sorties pour décomposer le programme avec une procédure permettant de gérer un tour de jeu, elle-même décomposée en une partie demandant la saisie de l’utilisateur et une pour traiter la proposition (affichage d’une réponse et ajustement de l’intervalle des possibles). 2. Organisez ces procédures en une analyse descendante. 3. Réalisez la conception détaillée du programme. Département STPI / 2016-2017 2