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