2015 Algorithmique 1 Exercices Patrick Dezécache ULCO – EILCO - CUEEP 01/09/2015 Algorithmique – Concepts de base Sommaire Table des matières 1. INTRODUCTION 2 2. DEMARCHE DE CONCEPTION 2 3. IDENTIFICATION DES OBJETS ET DECLARATION DES DONNEES 2 4. L'AFFECTATION 3 5. EXPRESSIONS DE CALCULS NUMERIQUES ET LOGIQUES 4 6. ECHANGES AVEC L’UTILISATEUR : ENTREES/SORTIES 5 7. SEQUENCE D’ACTION NOMMEE 6 8. STRUCTURE DE CONTROLE CONDITIONNELLE - TESTS 6 9. STRUCTURE DE CONTROLE ITERATIVE - BOUCLES 8 10. STRUCTURES DE DONNEES COMPOSEES : TABLEAUX 15 PROPOSER LA REPRESENTATION DES ALGORITHMES SUIVANTS : (1 TABLEAU 1 DIMENSION) PROPOSER LA REPRESENTATION DES ALGORITHMES SUIVANTS : (PLUSIEURS TABLEAUX A 1 DIMENSION) PROPOSER LA REPRESENTATION DES ALGORITHMES SUIVANTS : (TABLEAUX A PLUSIEURS DIMENSIONS) PROPOSER LA REPRESENTATION DES ALGORITHMES SUIVANTS : (TRI) 15 17 17 17 11. STRUCTURES DE DONNEES COMPOSEES : ENREGISTREMENT 18 12. MODULARITE ET SOUS-PROGRAMMES : FONCTIONS ET PROCEDURES 18 FONCTIONS PROCEDURES 18 19 Algorithmique 1 - Exercices Page 1 Algorithmique – Concepts de base Pour chaque exercice dans lequel un algorithme est demandée : • Déterminer les données utilisées o constante ou variable, o type de donnée o identifiant o valeur initiale o dans un commentaire, préciser la signification de la donnée (si son identifiant n’est pas explicite) et son utilisation (saisi, calculé, aléatoire, …) • Déterminer la suite d’actions à réaliser en 3 parties en précisant, dans au moins 3 commentaires, ce qui est à réaliser (en non pas comment on va le réaliser : çà, c’est l’objet des instructions qui vont suivre le commentaire): o initialiser les variables (demander la saisie de …, remises à 0, etc.), o effectuer les traitements, o afficher ou retourner les résultats • Si certaines parties du traitement sont plus complexes, un commentaire complémentaire précisera l’objet des calculs qui seront réalisés (cf. commentaire plus haut !) Certains algorithmes nécessitent l’utilisation de fonctions mathématiques. Les fonctions suivantes peuvent être utilisées : • • • • • alea(min, max) : retourne un nombre pseudo-aléatoire entre min et max inclus, nombres entiers sinus(angle) : retourne le sinus d’un angle exprimé en radians cosinus(angle) : retourne le cosinus d’un angle exprimé en radians racine(nombre) : retourne la racine carrée d’un nombre réel puissance(nombre, exposant) : retourne la valeur de nombre élévée à la puissance de exposant, nombres réels 1.Introduction 1. Proposer des exemples de la vie courante susceptibles de faire l’objet d’algorithmes (au même titre d’une recette, par exemple) 2. Proposer des exemples susceptibles de faire l’objet d’algorithmes calculatoires 2.Démarche de conception 1. Analyser les différents problèmes suivants et les reformuler de manière plus formelle : a. Comment connaitre la taille de mon champ en hectares (1 ha = 10.000 m2) sachant que je vais en mesure la longueur et la largeur en pas (mon pas vaut 0.60 m) ? b. Comment connaitre le nombre de pots de peintures pour repeindre les 4 murs d’une pièce qui comporte 1 porte et 2 fenêtres identiques ? 3.Identification des objets et déclaration des données 1. Parmi les identifiants suivants, indiquer ceux qui sont conformes à la convention, et pour ceux qui ne le sont pas, proposer un identifiant correct : a) b) c) 2. nom_etudiant d) 2emeAdresse prenom etudiant e) variable adresse1 f) afficher Indiquer le type de donnée de chacune des valeurs littérales suivantes : g) 2ème note h) moyenne-générale i) fMoyenne a) b) c) d) 15000 -5.0 vrai ‘a’ i) 1234.4567 j) "entier" k) "12" Algorithmique 1 - Exercices e) f) g) h) " nombre entier" -5E10 "faux" -581236 Page 2 Algorithmique – Concepts de base 3. algo002 - Effectuer les déclarations des variables (?) suivantes : a) l'effectif de la classe, b) la moyenne annuelle d'un étudiant, c) une note est-elle sous la moyenne ou pas ?, d) une mention au Bac, e)la note minimale pour l'obtention du Bac 4. algo003 - Effectuer la déclaration des données d'un algorithme à partir du texte suivant : "on souhaite connaître la valeur du panier estival de produits bio pour la consommation d’une semaine pour un foyer (pommes de terre, tomates et courgettes). On devra connaitre la quantité moyenne par semaine par personne de chacun des 3 produits (par exemple, une personne peut consommer par semaine : 0.5 kg de pommes de terres, 1kg de tomates et 800g de courgettes) et le nombre de personnes composant le foyer ; le prix unitaire est fixé à respectivement 2.10 euros, 3.00 euros et 2.00 euros pour chacun des 3 produits." 4.Erreur ! Source du renvoi introuvable. 1. A partir des déclarations proposées, quelles sont les anomalies d’affectations ? entier a réel r caractère c booléen b a) a 5 d) c a g) c "faux" b) r 6 e) r a h) b faux c) b "faux" f) a r i) b a 2. quelles sont les valeurs affichées si les valeurs saisies sont respectivement 3, 6 et 9 ? entier x,y debut lire y lire x,y ecrire y,x,y fin 3. quelles sont les valeurs affichées si les valeurs saisies sont respectivement 3, 6 et 9 ? entier x,y debut lire x lire x lire y ecrire y,x,x fin 4. quelles sont les valeurs affichées si les valeurs saisies sont respectivement 5 et 5 ? entier x,y debut x 5 y x x x + 5 y x + 5 ecrire x,y fin 5. les 2 portions de code qui suivent sont-elles équivalentes ? (= produisent-elles un résultat identique ?) x 10 y 5 x y y x ecrire x,y x 10 y 5 y x x y ecrire x,y 6. les 2 portions de code qui suivent sont-elles équivalentes ? (= produisent-elles un résultat identique ?) Algo.Base1 Page 3 Algorithmique – Concepts de base x 10 y 5 x y y x ecrire x,y x 10 y 5 z x x y y z ecrire x,y 7. quelles sont les valeurs affichées si les valeurs saisies sont respectivement 5 et 6 ? entier x,y debut lire x,y x x + y y x – y x x - y ecrire x,y fin 8. Quelle sont les valeurs de a, b et c après exécution de la séquence d’actions suivante : Algorithme Algo_4_8 Déclarations Variables entier a, b, c Début a 15 b a c 2 a c c a b a fin 9. a et b étant 2 nombres entiers, proposer un algorithme permettant de permuter leur valeur : a. si, au départ, a vaut 4 et b vaut 5 b. après permutation, a vaudra 5 et b vaudra 4 5.Expressions de calculs numériques et logiques 1. Donner le type le plus probable de chacune des expressions suivantes a) b) c) d) e) f) g) (quantite >= 100) (2 * 3.14 * 12) (nombre < NBMAXI) ((100 * 2) < MinNb) (i - 2500) – (j – 2000) (i > 15) ET (j > 156) (i < 150) h) i) j) k) l) m) n) ((i + 1) < 150) (2 * 3.14 * 12) (mtHT < MtMaxi) ((100 * TxTVA) < maxMt) (nb <= 100) (i > 10) ET (j > 2) (i - 10) – (j – 1) 2. Découvrir les tautologies, contradiction et redondances dans les expressions logiques suivantes a) b) (a < b) ET (b < a) (a <= b) OU (b <= a) c) (a < 1000) ET (a > 2000) d) (a > 1000) ET ( a > 2000) 3. Ecrire la table de vérité des expressions logiques suivantes Algo.Base1 Page 4 Algorithmique – Concepts de base a) (a et non b) ou c b) (a et non b) ou (non a et b) 4. Ecrire les expressions logiques correspondant aux situations suivantes : (x, y et z sont des nombres entiers) a. les valeurs de x et y sont supérieures à 5 b. les valeurs de x, y et z sont égales c. les valeurs de x et y sont identiques mais différentes de z d. la valeur de x est comprise entre y et z, mais différente de y et de z e. parmi les valeurs de x, y et z, 2 valeurs au plus sont identiques f. parmi les valeurs de x, y et z, 2 valeurs au moins sont identiques 5. Effectuer la trace d’exécution de la séquence d’actions suivantes (x et y sont des nombres entiers) et déterminer ainsi les valeurs finales de x et y Algorithme Algo_4_8 Déclarations Variables entier x, y Début x 2 y 4 + x * 2 x x * y - 2 y x - y x x - y fin Proposer les algorithmes relatifs aux demandes suivantes : 6. algo004 – Calculer et afficher l’aire du rectangle de côtés 10 et 5 7. algo005 - Calculer et afficher la distance entre les points A(1,1) et B(5,5) ; il existe une fonction ‘racine’ qui attend un nombre réel et retourne la racine carrée de ce nombre ; par exemple : racine(4) retourne 2 8. algo006 - Calculer et afficher le discriminant de l’équation du 2nd degré : 3x2+5x-8 9. algo007 – Déterminer, en utilisant une expression logique, la valeur booléenne permettant de vérifier si oui ou non la valeur de la variable a est positive (a est un nombre entier qui sera initialisé à -10) ; le résultat de cette expression logique devra être mémorisé. 10. algo008 - Déterminer, en utilisant une expression logique, la valeur booléenne permettant de vérifier si oui ou non la valeur de la variable a est plus petite que celle de b (a et b sont des nombres réels qui seront initialisés respectivement à 5 et 10) ; le résultat de cette expression logique devra être mémorisé. 11. algo009 – Déterminer, , en utilisant une expression logique, la valeur booléenne permettant de vérifier si oui ou non la valeur du produit de a par b est plus petite que celle de la somme de a et b (a et b sont des nombres réels qui seront initialisés respectivement à 5 et 10) ; le résultat de cette expression logique devra être mémorisé. 6.Echanges avec l’utilisateur : entrées/sorties Proposer les algorithmes relatifs aux demandes suivantes : 1. algo010 – A partir de 2 nombres entiers demandés, afficher successivement la somme, la différence, le produit et le quotient de ces 2 nombres. 2. algo011 - Calculer et afficher le carré d’un nombre entier saisi Algo.Base1 Page 5 Algorithmique – Concepts de base 3. algo012 - Calculer et afficher le cube d’un nombre entier saisi, en n’utilisant qu’une seule fois l’opérateur de multiplication par calcul (= il y aura plusieurs expression de calculs et plusieurs affectations …) 4. algo013 - Déterminer et afficher le nombre minimal supérieur de billets de 50, 20, 10 et 5 euros correspondant à un montant saisi en euros (sans centimes), puis déterminer la monnaie à rendre en euros et centimes. 5. algo014 - Déterminer puis afficher une heure de fin à partir de la saisie d’une heure de début (heures, minutes et secondes saisis séparément) et d’une durée (heures, minutes et secondes saisis séparément). 6. algo015 - Calculer et afficher le discriminant de l’équation du 2nd degré : ax2+bx+c, a, b, et c étant des nombres réels demandés à l’utilisateur. 7. algo016 - Calculer et afficher la différence entre les moyennes arithmétiques et géométriques de 2 nombres donnés par l’utilisateur. a) calcul de la moyenne arithmétique des nombres a et b : (a+b) / 2 ; b) calcul de la moyenne géométrique des nombres a et b : racine(a * b) (il s’agit en fait de la puissance 1/2 : avec trois nombres, puissance 1/3 ; 8. algo017 - Calculer et afficher la distance entre les points A(xa, ya) et B(xb, yb) , les informations nécessaires seront demandées et le résultat affiché 9. algo018 - Calculer et afficher le taux d’accroissement moyen d’un placement sur 2 ans comportant des taux différents (le taux moyen global est la moyenne géométrique des taux de chaque année) 10. algo019 - Calculer et afficher la vitesse d’un avion qui parcourt à l’aller une distance d à la vitesse v1 et au retour la même distance à la vitesse v2 (la vitesse moyenne est la moyenne harmonique des vitesses de l’aller et du retour) 11. algo020 - Certains champs des Etats-Unis sont circulaires (un système d'arrosage effectue une rotation autour d'un point central). Déterminer puis afficher la surface perdue par rapport à un champ carré. On considère un champ circulaire inscrit dans le champ carré. On demandera à l'utilisateur le rayon du cercle. 12. algo030 – (tp) Convertir une somme saisie en euros en un montant en Livre Sterling (GBP - taux de change 1 euro = 0,80 GBP) et en Dollar US (USD - taux de change 1euro = 1.15 USD)). Afficher le résultat 13. algo035 - Convertir en heures, minutes et secondes une durée exprimée en secondes et donnée par l’utilisateur; l’opérateur modulo (%) calcule le reste d’une division euclidienne (ou division entière) 14. algo040 - Calculer puis afficher la valeur du panier estival de produits bio (pommes de terre, tomates et courgettes) pour une semaine pour un foyer à partir des données suivantes : la quantité moyenne par semaine par personne de chacun des 3 produits et le nombre de personnes composant le foyer seront saisis. (par exemple, une personne peut consommer par semaine : 0.5 kg de pommes de terres, 1kg de tomates et 800g de courgettes) ; on prend comme prix unitaire respectif de chacun des produits : 2.10 euros, 3.00 euros et 2.00 euros. 15. algo042 - Un démarcheur à domicile est rémunéré avec un salaire fixe de 1000 Euros par mois. Il perçoit aussi une commission qui représente 5% du montant des ventes qu'il a réalisées. Le salaire ainsi obtenu (fixe et commission) est augmenté de 10 % pour prendre en compte ses frais de déplacement. Calculer et afficher son salaire en fonction d'un montant des ventes réalisées qui sera demandé. 7.Séquence d’action nommée Elle correspond aux commentaires décrivant les différentes actions à réaliser : 8.Structure de contrôle conditionnelle - tests 1. Quelle sont les valeurs de a, b et c après exécution de la séquence d’actions suivante : Algorithme 1 Algorithme 2 Algorithme Algo_8_1 Déclarations Variables Algorithme Algo_8_2 Déclarations Variables Algo.Base1 Page 6 Algorithmique – Concepts de base entier a, entier b, c Début a 15 b a Si (b < a) c 2 sinon c 1 finSI a c Si (c < b) c a sinon b a finSi fin booléen Début a 4 b 6 b a + 4 c (a < b) Si (c) b a + b sinon a a + 4 finSI fin a, b, c Proposer les algorithmes relatifs aux demandes suivantes : 2. algo101 - demander la saisie d’un nombre entier : si ce nombre est inférieur ou égal à 0, afficher le message "le nombre est négatif ou nul" 3. algo102 - demander la saisie de 2 nombres entiers différents, n1 et n2, et afficher la valeur la plus élevée 4. algo105 - déterminer le signe du produit de 2 nombres (sans calculer ce produit) : afficher ‘positif’, ‘négatif’ ou ‘nul’. 5. algo110 - Un commerçant accorde une remise de 10% sur le prix unitaire d’un article si la quantité commandée est supérieure à 100 unités. Demandez la saisie de la quantité commandée et du prix unitaire ; calculer et afficher le montant à payer (en tenant éventuellement compte de la remise) 6. algo115 - Un numéro de groupe a été attribué aux étudiants; vous afficherez un texte selon le numéro du groupe ; dans le cas 1, « option anglais », dans le cas 2, « option allemand », dans le cas 3, « option espagnol », et, dans les autres cas, « pas d’option » 7. algo130 - (tp) déterminer puis afficher le cout total des entrées du parc « scoubidou » pour une famille (le nombre de membres est à demander), sachant entre le tarif unitaire est dégressif : 4 euros/pers entre 1 et 4 personnes, 3.20 euros jusqu’à 10 personnes et 2.4 euros au-delà. 8. algo140 - Déterminer puis afficher le salaire net d’un employé à partir de son salaire brut (taux horaire brut et un nombre d’heures à demander), auquel on ajoute une prime d’ancienneté en fonction de son nombre d’années de présence (à demander) : 2% du salaire brut entre 10 et 20 ans de présence, 4% au-delà; on déduit de ce total un montant de charges sociales (taux de charges sociales de 20%) pour obtenir le salaire net versé. 9. algo150 - Demander la saisie d’un nombre entier : si ce nombre est compris entre 1 et 12, afficher le message "correct" sinon afficher le message "incorrect" 10. algo151 - Demander la saisie d’un nombre entier: si ce nombre est compris entre 1 et 12, on écrira le message « correct » suivi du nombre sinon si le nombre est négatif ou nul, on écrira « trop petit » et si le nombre est supérieur à 12 on écrira « trop grand » 11. algo160 - Un niveau a été attribué aux étudiants en fonction de leur note ; selon la valeur du niveau vous afficherez le texte correspondant : Pour A, afficher "Tres bien", pour B, "Bien", pour C, "moyen" et dans les autres cas "attention" suivi du niveau. 12. algo162 - déterminer une appréciation en fonction d’une note saisie : faible si inférieur à 8, insuffisant si inférieur à 9, moyen si inférieur à 12, satisfaisant si inférieur à 16, très bien si inférieur à 18 sinon excellent. 13. Trouver les erreurs : Algo.Base1 Page 7 Algorithmique – Concepts de base ALGO calculMontant ROLE calculer un montant DECLARATIONS CONST reel TAUX 1.56 VAR reel montant DEBUT LIRE montant SI montant < 0 ALORS TAUX TAUX * -1 SINON montant1 montant * TAUX ECRIRE montant2 ECRIRE "terminé" FIN Proposer les algorithmes relatifs aux demandes suivantes : 14. algo170 Déterminer si un nombre x est multiple d'un nombre y, tous deux saisis.Aide : un nombre x est multiple d’un nombre y si le reste de la division entière de x par y vaut 0. (cf. modulo). 15. algo175 - Afficher le plus grand de 3 nombres saisis 16. algo180 - Vérifier que trois nombres saisis peuvent être les longueurs des côtés d’un triangle. Aide : 3 segments peuvent former un triangle si la somme des longueurs des 2 cotés les plus petits est supérieure à la longueur du plus grand. 17. algo182 - Vérifier qu’un point de coordonnées (x,y) se trouve bien dans un rectangle définit par (x1, y1), coordonnées de son point haut gauche, et par sa largeur et sa hauteur. Afficher s’il est à l’intérieur ou à l’extérieur. 18. algo185 – Demander la saisie de 3 nombres et les afficher dans l'ordre croissant. 19. algo190 - Résoudre (dans R), une équation du 2nd degré, les coefficients a, b et c étant saisis, entiers et différents de 0. Afficher, selon le cas, le nombre de racines et leurs valeurs. 20. algo191 – Déterminer si une année donnée par l’utilisateur est bissextile ou pas ; une année est bissextile si elle est un multiple de 4 et pas de 100, ou bien un multiple de 400 21. algo192 – Déterminer et afficher, à partir des valeurs d’un jour du mois, d’un mois et d’une année, ces 3 éléments étant entiers et demandés à l’utilisateur, la date du jour suivant 22. algo195 - calculer les frais de transport des colis sachant que : a) La taxe de base applicable à tout colis est de 50 euros. ; b) Si le colis pèse plus de 60 Kg, une surtaxe de 10 euros par kilo supplémentaire est ajoutée. ; c) Si la somme des 3 dimensions (largeur, longueur, hauteur) du colis dépasse 1 mètre, 5 euros sont perçus par 10 cm excédentaire; d) 10% du total obtenu sont ajoutés pour tout trajet supérieur à 100 Km. Etant donnés la largeur, la hauteur, la longueur, le poids du colis et la distance à parcourir, calculer le prix à payer pour le transport d'un colis. 9.Structure de contrôle itérative - boucles 1. Quelle sont les valeurs de a, b et c après exécution de la séquence d’actions suivante : Algorithme 1 Algorithme Algo_9_1_1 Déclarations Variables entier a, b, c Algo.Base1 Algorithme 2 Algorithme Algo_9_1_2 Déclarations Variables entier a, b, booléen c Page 8 Algorithmique – Concepts de base Début a 4 b a * 2 TantQue a < b c c + a a a + 1 finTantQue fin Début a 4 b 12 c (a < b) TantQue (c) a a + 2 c (a < b) finTantQue fin 2. Transformer les algorithmes suivants en y plaçant une structure itérative adaptée en complétant les déclarations si nécessaire. Les points de suspension (« . . . ») indique que l’affichage se poursuit selon la même suite arithmétique (un+1 = un + r, avec r = raison de la suite). Algorithme 1 Algorithme Algo_9_2_1 Déclarations Variables entier a, b Début Lire a, b Afficher (a * 0 + b) Afficher (a * 1 + b) Afficher (a * 2 + b) Afficher (a * 3 + b) . . . Afficher (a * 8 + b) Afficher (a * 9 + b) fin Algorithme 3 Algorithme Algo_9_2_1 Déclarations Variables entier a, b, c Début Lire a, b, c Afficher (a * (c – c) + b) Afficher (a * (c – c + 1) + b) Afficher (a * (c – c + 2) + b) . . . Afficher (a * (c - 1) + b) Afficher (a * c + b) fin Algorithme 2 Algorithme Algo_9_2_2 Déclarations Variables entier a, b Début Lire a, b Afficher (a * 15 + b) Afficher (a * 12 + b) . . . Afficher (a * 6 + b) Afficher (a * 3 + b) fin Algorithme 4 Algorithme Algo_9_2_2 Déclarations Variables entier a, b, c Début Lire a, b, c Afficher (a * c + b) Afficher (a * (c - 1) + b) . . . Afficher (a * 2 + b) Afficher (a * 1 + b) fin 3. Indiquer à quoi correspondent les résultats puis proposer les algorithmes permettant de les obtenir Pour chacun d’eux, 2 algorithmes sont possibles : • • l’un utilisant une seule structure itérative, l’autre utilisant une structure conditionnelle imbriquée dans une structure itérative. Comparer les 2 solutions pour chaque algorithme en comptant le nombre d’instructions réalisées. Algo.Base1 Page 9 Algorithmique – Concepts de base La valeur n sera saisie (nombre entier naturel positif). Résultat de l’algorithme 6 Résultat de l’algorithme 7 0 1 x 1 = 1 2 1 x 3 = 3 1 x 5 = 5 4 n lignes 6 . . . 8 3 x 1 = 3 10 3 x 3 = 9 . . . 3 x 5 = 15 n x n lignes . . . 5 x 1 = 5 5 x 3 = 15 5 x 5 = 25 . . . Dans les exercices de création d’algorithme, vous choisirez dans un premier temps la structure de contrôle la plus adaptée, puis vous utiliserez une autre structure de contrôle itérative. 4. déterminer le dernier texte affiché après l’exécution de chacun des 2 algorithmes : // afficher une variable de boucle ALGO Repeter VAR entier i DEBUT Saisir nombre POUR i DE 1 A 9 PAS DE 1 AFFICHER "valeur de i = ", i finPOUR FIN // afficher une variable de boucle ALGO Repeter VAR entier i DEBUT Saisir nombre POUR i DE 1 A 9 PAS DE 1 AFFICHER "valeur de i = ", i finPOUR AFFICHER "valeur de i = ", i FIN 5. Localiser le problème et apportez une correction puis le représenter sous forme d’arbre programmatique problème : rien ne s’affiche // afficher une variable de boucle ALGO Repeter VAR entier i, j, nombre DEBUT Saisir nombre POUR i DE 1 A j AFFICHER "boucle numero ", i finPOUR FIN 6. Localiser le problème et apportez une correction puis le représenter sous forme d’arbre programmatique problème : l’algorithme ne s’arrête jamais Algo.Base1 Page 10 Algorithmique – Concepts de base // choisir une option dans proposé ALGO Repeter VAR entier choix DEBUT TANTQUE REPETER AFFICHER "Menu :") AFFICHER " . . . etc. ") AFFICHER "9- quitter") TantQue(choix !=9) FIN le menu 7. Localisez le problème et apportez une réponse // table de multiplication % ALGO Repeter VAR entier i, j, Vnombre, Vresultat DEBUT AFFICHER "Entrez un nombre positif : " SAISIR Vnombre POUR i de 1 A 9 FAIRE Vresultat <-- Vnombre * j AFFICHER "multiplication ", i, " X ", Vnombre, " = ", Vresultat finPOUR FIN Proposer les algorithmes relatifs aux demandes suivantes : 8. algo200 - Afficher les nombres entre n1 et n2, nombres entiers saisis, de 2 en 2 9. algo202 - Ecrire la table de multiplication d'un nombre entier saisi par les nombres de 0 à 12 en utilisant la structure POUR 10. algo203 - Ecrire la table de multiplication d'un nombre entier saisi par les nombres de 0 à 12 en utilisant la structure TANTQUE 11. algo206 – Calculer et afficher la moyenne d’un certain nombre de notes : l’utilisateur donnera le nombre de notes à saisir, puis on permettra la saisie de ces notes et enfin on calculera la moyenne, qui sera affichée 12. algo208 - On souhaite calculer la moyenne d’un certain nombre de notes : permettre la saisie des notes tant que l’utilisateur saisi une note supérieure ou égal à 0. Calculer et afficher la moyenne 13. algo210 - Déterminer et afficher le plus petit et le plus grand nombre d’une série de nombres entiers saisis par l’utilisateur. La saisie sera arrêtée dès que la valeur 0 sera saisie. 14. algo220 - Afficher les multiples de 4 entre 1 et 100 15. algo222 - Afficher les nombres de n1 à n2, entiers saisis, sauf les multiples de 3 et les multiples de 5 16. algo225en – Print the table of Fahrenheit temperatures and their Celsius equivalent. It uses the formula : tc = (5/9)*(tf -32), where tc is Celcius temperature and tf is Fahrenheit temperature. The lower temperature value is set to 0 and the upper one is set to 300. 17. algo226en – Print the table of Celsius temperatures and their Fahrenheit equivalent. It uses the formula : tc = (5/9)*(tf -32), where tc is Celcius temperature and tf is Fahrenheit temperature. The user gives the lower and the upper temperature values. 18. algo230 – (tp) Afficher les valeurs des sinus et cosinus des angles de 0 à 90 degrés par pas de 15 degrés. Les fonctions ‘sinus’ et ‘cosinus’ sont disponibles : elles attendent toutes un angle exprimé en radians. Algo.Base1 Page 11 Algorithmique – Concepts de base 19. algo232 - Afficher les valeurs des sinus et cosinus des angles entre un angle de début et une valeur de fin, saisis et exprimé en degrés, et selon un pas qui sera également saisi. Les fonctions ‘sinus’ et ‘cosinus’ sont disponibles : elles attendent toutes un angle exprimé en radians. 20. algo235 – Calculer et afficher la longueur des tronçons de droite d’une courbe ax2 + bx + c, a, b et c étant demandés (nombres entiers), pour les valeurs de x allant de d à e par incrément de 1, ces 2 valeurs étant également demandées. 21. Remplacer la structure de contrôle POUR par TANTQUE ALGO Calculer VAR entier i, j, nombre DEBUT nb 0 POUR i DE 1 A 30 PAS DE 1 REPETER SAISIR nombre nb nb + nombre finPOUR AFFICHER nb FIN 22. Représenter l’arbre programmatique correspondant et effectuer la trace d'exécution, sachant qu’on saisira successivement les valeurs suivantes : 1, 4, 6, 9 ALGO Calculer VAR entier a, n, i x DEBUT n 4 a 0 POUR i DE 1 A n REPETER SAISIR x a a + x finPOUR AFFICHER a FIN PAS DE 1 Proposer des algorithmes aux problèmes posés : 23. algo240 - Proposer l’affichage d’une liste d’options (= une forme de menu) du style "Menu : choix 1 …, choix 2… ou 3…, 0 pour quitter – Entrer votre choix :". Afficher ce menu tant que l’utilisateur n’a pas saisi le nombre 0. Comme traitement de chacun des choix, afficher simplement l’option choisie. 24. algo242 – Demander la saisie d’un nombre et en vérifier la validité : il doit être compris entre 0 et 20. Afficher « ok » quand c’est bon, sinon redemander la saisie. 25. algo244 - Calculer et d’afficher la moyenne de n nombres entiers saisis, en ne tenant compte que des nombres saisis supérieurs ou égaux à 10 pour le calcul de la moyenne), n étant saisi par l’utilisateur 26. algo246 - Afficher le plus petit et le plus grand nombre d’une série de 6 nombres entiers saisis 27. algo248 - Calculer la factorielle d'un nombre saisi et afficher le résultat 28. algo250 - On souhaite écrire l’algorithme d’un programme qui simule le fonctionnement d’un ascenseur : a) L’utilisateur va se voir proposer un menu à partir duquel il pourra : 0=sortir de l’ascenseur, 1=descendre et 9=monter puis en donnant le nombre d’étages à monter ou descendre ; b) lors de la montée ou lors de la descente, les numéros d’étages intermédiaires seront affichés et l’étage atteint sera signalé par ‘vous êtes à l’étage nnn’ ; c) au départ, l’utilisateur se trouve à l’étage 0 ; l’algorithme s’arrête dès qu’on sort de l’ascenseur. Algo.Base1 Page 12 Algorithmique – Concepts de base 29. algo252 – Déterminer si un nombre donné par l’utilisateur est premier ou pas. 30. algo253 – Déterminer si un nombre donné par l’utilisateur est premier ouo pas (optimisé) 31. Trouver la cause de l’erreur d’exécution L’exécution ne s’arrête jamais ALGO Somme de valeurs VAR entier a, s DEBUT a 0 s 0 TQ a = 0 REPETER LIRE x s s + 1 fTQ AFFICHER s FIN 32. algo280 – algo260 - Ecrire un algorithme du jeu du juste prix : un nombre aléatoire entre 1 et 100 est généré (la fonction alea(min, max) retourne un nombre pseudo-aléatoire entre min et max) . Le joueur doit deviner ce nombre en un minimum de coups. A chaque proposition, on affiche si le nombre à trouver est plus grand ou plus petit. A la fin, afficher le nombre de coups qui ont été nécessaires.. 33. algo262 - Simuler le fonctionnement d’une calculette simple prenant en compte les opérateurs arithmétiques +,-, / et *, et s'arrêtant à la saisie de =. Les calculs intermédiaire sont effectués dès la saisie d’un opérateur puis d’une valeur. La valeur initiale du résultat est 0. 34. 35. algo270 - Proposer 2 algorithmes permettant le calcul du PGCD de 2 nombres entiers naturels non nuls à .partir des 2 méthodes décrites ci-dessous : a) en essayant la division par tous les entiers ; b) en utilisant la méthode d’Euclide (« algorithme d'Euclide ») : on divise le plus grand des deux nombres par le plus petit des deux, puis le plus petit des deux par le reste de la première division euclidienne. On recommence jusqu'à ce que le reste (qui diminue sans cesse) devienne nul. Le PGCD cherché est le dernier reste non nul (ou le premier diviseur, si le premier reste est nul). 36. 37. algo272 - Utiliser la méthode des rectangles pour le calcul approché d’une intégrale. On utilisera une fonction ax2 + bx + 2, a, b et c étant données par l’utilisateur (nombres entiers). Les bornes de calcul et le pas de calcul seront aussi donnés par l’utilisateur. Le résultat sera affiché. 38. algo273 - Utiliser la méthode des milieux pour le calcul approché d’une intégrale. On utilisera une fonction ax2 + bx + 2, a, b et c étant données par l’utilisateur (nombres entiers). Les bornes de calcul et le pas de calcul seront aussi donnés par l’utilisateur. Le résultat sera affiché. 39. algo274 - Utiliser la méthode des trapèzes pour le calcul approché d’une intégrale. On utilisera une fonction ax2 + bx + 2, a, b et c étant données par l’utilisateur (nombres entiers). Les bornes de calcul et le pas de calcul seront aussi donnés par l’utilisateur. Le résultat sera affiché. 40. algo275 - Convertir une suite de 8 valeurs binaires (0 ou 1) en valeur décimale 41. algo276 - Convertir un nombre décimal en binaire en utilisant la méthode des divisions. 42. algo260 – algo280 - Ecrire la table de multiplication des nombres de 1 à 10 par les nombres de 1 à 10 en utilisant la structure TANTQUE 43. algo261 – algo281 - Ecrire la table de multiplication des nombres de 1 à 10 par les nombres de 1 à 10 en utilisant la structure POUR Algo.Base1 Page 13 Algorithmique – Concepts de base 44. algo282 - Proposer un algorithme qui affiche tous les couples possibles (x,y) de nombres entiers tels que x soit compris entre 1 et p, et y soit compris entre 1 et q. L’affichage sera réalisé selon la forme suivante : (1,1)(1,2)(1,3)…(1,q), puis (2,1)(2,2)(2,3), etc., et enfin (p,1)(p,2)(p,3)…(p,q) 45. algo284 - Donner les valeurs de la fonction "ax + b" pour toutes les valeurs de ‘a’ et de ‘b’ comprises entre 1 et aMax d'une part, 1 et bMax d'autre part ; aMax et bMax étant donnés par l’utilisateur 46. algo286 - Donner les nombres premiers entre 1 et 50 47. algo287 - Donner les 100 premiers nombres premiers 48. algo290 - Représenter un carré de caractères "*" de dimension 4, décalé vers la droite de 3 espaces ...**** ...**** ...**** ...**** 49. algo292 - Représenter un carré de caractères "*" de dimension N, N étant saisi. Exemple pour N valant 5 ***** ***** ***** ***** ***** 50. algo294 - Représenter un triangle de caractères "*" de dimension N, N étant saisi. Exemple pour N valant 5 * ** *** **** ***** 51. algo296 - Représenter un histogramme à partir de la saisie de 5 nombres entiers positifs ou nuls saisis et mémorisés dans un tableau Exemple : **********10 *****5 **************14 *******7 0 52. algo298 - Représenter la figure suivante pour un nombre N saisi. Exemple pour n valant 5 * *** ***** ******* ********* 53. algo299 - Représenter un losange de caractères ‘*’. Lire un nombre ‘n’ et afficher un losange ayant (2n – 1) lignes. Pour n = 4, par exemple, le résultat sera : * *** ***** Algo.Base1 Page 14 Algorithmique – Concepts de base ******* ***** *** * 10. Structures de données composées : tableaux Tableaux 1. algo300 - Donner la déclaration algorithmique des données suivantes : a) un tableau permettant de mémoriser la date de naissance de 12 personnes ; b) un tableau permettant de mémoriser les 15 lettres d’un mot du Scrabble ; c) un tableau permettant de mémoriser les notes sur 20 de 12 élèves, d) un tableau permettant de mémoriser les notes 30 élèves pour 8 matières ; e) le plateau d’un jeu d’échec mémorisant les pièces : 1 pour le roi, 2 pour la reine, etc. ; f) une matrice carrée d’entiers de taille 3 Proposer la représentation des algorithmes suivants : (1 tableau 1 dimension) 1. algo301 - Initialiser un tableau de 4 nombres entiers à la valeur 0 puis affiche chacune des valeurs. Utiliser la structure POUR 2. algo302 - Initialiser un tableau de 4 nombres entiers à la valeur d’un nombre entier qui sera demandé, puis affiche chacune des valeurs. Utiliser la structure TANTQUE 3. algo303 - Initialiser un tableau de 4 nombres entiers à la valeur de l’indice courant de chaque élément plus 1, puis affiche chacune des valeurs. Utiliser la structure POUR 4. algo304 - Initialiser un tableau de 4 nombres entiers à la valeur de l’indice courant de chaque élément plus 1, puis affiche chacune des valeurs. Utiliser la structure TANTQUE 5. algo305 Mémoriser la saisie de 4 nombres entiers puis afficher les éléments soit du premier au dernier soit du dernier au premier selon un choix proposé à l’utilisateur 6. algo306 – Calculer puis afficher la somme des valeurs d’un tableau dont les éléments auront été initialisés de manière aléatoire, avec des nombre entiers entre 1 et 5. La fonction ‘alea(min, max)’ retourne un nombre aléatoire entre min et max inclus. 7. algo307 - Calculer puis afficher la moyenne des valeurs d’un tableau dont les éléments auront été initialisés de manière aléatoire, avec des nombre entiers entre 1 et 5. 8. algo410 - Ce programme permet la saisie d’un nombre entier et la mémorisation dans un tableau du produit de ce nombre par les nombres de 0 à 10 et l'affichage des valeurs mémorisées en ordre inverse. 9. « CalculerMoyenneTab » , qui, à partir des moyennes des 12 étudiants d’une classe, calcule et affiche la moyenne de la classe (les moyennes de 12 étudiants seront calculées de manière aléatoire) 10. algo310 - Dans cet algorithme, on effectuera les opérations suivantes : demander la saisie de 4 nombres entiers qui seront mémorisés dans un tableau, afficher les valeurs du tableau, calculer puis afficher la moyenne des valeurs, et enfin afficher les valeurs du tableau supérieures à la moyenne. 11. algo315 - Proposer l’algorithme qui demande dans un premier temps la saisie de 12 nombres réels (correspondant aux durées moyennes d’ensoleillement des 12 mois d’une année), puis calcule et affiche la durée totale d’ensoleillement de l’année ainsi que la durée mensuelle moyenne d’ensoleillement, et enfin affiche les numéros des mois pour lesquels la durée d’ensoleillement a été supérieure ou égale à la durée mensuelle moyenne. Exemple : • si les valeurs suivantes sont saisies : (exemple de l’année 2015 à Paris1) 48.4 1 99.7 143 239.4 200.8 303.7 242.6 212.4 181 109.7 80.6 90.8 Source : http://www.meteofrance.com/climat/france/paris/75114001/releves 2016-01-08 Algo.Base1 Page 15 Algorithmique – Concepts de base • la durée totale d’ensoleillement est de 1952.1 et la durée mensuelle moyenne 162.675 • les numéros des mois (janvier = 0) affichés seront : 3, 4, 5, 6, 7 et 8 12. algo« AfficherHistoTemperatures », qui, à partir des températures du mois de Juillet ( 31 jours), permet, dans un premier temps, la saisie des températures et qui affichera ensuite un diagramme à barres horizontales des températures (une ligne par jour, avec une étoile (*) par degrés (en juillet, les températures seront positives !) 13. utilisé algo320 - utilisé 14. algo321 - Rechercher la plus petite et la plus grande valeur dans un tableau de 100 nombres entiers initialisé avec des valeurs aléatoires ; la valeur trouvée sera affichée 15. algo322 - Rechercher un nombre donné par l’utilisateur dans un tableau de 100 nombres entiers initialisé avec des valeurs aléatoires ; si le nombre est trouvé, sa position (la 1ère) dans le tableau sera affichée sinon le message « non trouvé » sera affiché 16. algo323 - Rechercher un nombre donné par l’utilisateur dans un tableau de 100 nombres entiers initialisé avec des valeurs aléatoires ; si le nombre est trouvé, sa position (la dernière) dans le tableau sera affichée sinon le message « non trouvé » sera affiché 17. algo330 – (tp)Compter le nombre d'apparition d'un nombre saisi par l'utilisateur dans un tableau de 100 nombres entiers initialisé avec des valeurs aléatoires entre 1 et 10. 18. « RechercherNombreTab3 », qui permet la recherche la valeur la plus proche d’un nombre donné par l’utilisateur dans un tableau de 100 nombres entiers initialisé avec des valeurs aléatoires ; 19. « RechercheDichotomique » : utiliser la recherche dichotomique pour rechercher une valeur dans un tableau de 100 entiers dont les valeurs sont ordonnées 20. « PermutterTab », qui réalise la permutation des éléments d’un tableau de 20 éléments 2 à 2 ; le tableau sera initialisé à la valeur de l’indice, les éléments du tableau seront affichés avant et après permutation a. Exemple : si la valeur des 6 premiers éléments du tableau est 0,1,2,3,4,5, on aura, après permutation : 1,0,3,2,5,4 21. « DecalerTab1 », qui efface une valeur située à une position donnée d’un tableau de 20 éléments et décale les éléments suivants vers la gauche ; la position libérée à droite sera initialisée à 0 a. Exemple : pour un tableau de 6 éléments, si la valeur des éléments est 0, 1, 2, 3, 4, 5, on aura, après effacement de la 3ème (soit la valeur 2) : 0, 1, 3, 4, 5, 0 22. « DecalerTab2 », qui efface une valeur située à une position donnée d’un tableau de 20 éléments et décale les éléments suivants vers la droite ; la position libérée à gauche sera initialisée à 0 a. Exemple : pour un tableau de 6 éléments, si la valeur des éléments est 0, 1, 2, 3, 4, 5, on aura, après effacement de la 3ème (soit la valeur 2) : 0, 0, 1, 3, 4, 5 23. algo320 - demander la saisie de 4 nombres entiers qui seront mémorisés dans un tableau. Décaler les valeurs du tableau d une position vers la gauche (le 2eme devient le 1er, etc, et le premier devient le dernier). Afficher le tableau résultant. 24. « RotationTab », qui réalise la translation vers la gauche des éléments d’un tableau de 20 éléments; le tableau sera initialisé à la valeur de l’indice, les éléments du tableau seront affichés avant et après rotation a. Exemple : si la valeur des 6 premiers éléments du tableau est 0,1,2,3,4,5, on aura, après permutation : 1,2,3,4,5,0 b. modifier l’algorithme pour accepter un choix de l’utilisateur permettant la rotation vers la gauche de plusieurs positions c. modifier l’algorithme pour effectuer la rotation vers la droite également 25. algo390 - Ini de 3 séries de 4 nombres réels afin d’en calculer les sommes horizontale et verticale et d’afficher un tableau correspondant. Un seul tableau de 4 nombres sera utilisé (en plus des simples variables intermédiaires) 10.00 15.00 Algo.Base1 8.00 7.00 40.00 Page 16 Algorithmique – Concepts de base 5.00 10.00 15.00 5.25 35.25 8.00 12.00 15.50 0.00 25.50 23.00 37.00 38.50 12.25 100.75 a. Proposer la représentation des algorithmes suivants : (plusieurs tableaux à 1 dimension) 26. algo400 - gère une classe de 8 élèves : leur moyenne et leur nom, et qui affiche une liste avec le nom, la moyenne et l’indication « passage » si la moyenne est supérieure ou égale à 10 27. algo402 - gère une classe de 8 élèves : leur moyenne et leur nom ; recopier les noms des élèves qui ont la moyenne dans un 3ème tableau, puis afficher ces noms 28. algo405 - Initialiser 10 couples de coordonnées x,y, de manière aléatoire dans 2 tableaux, puis calculer et afficher la distance totale de la polyligne ainsi décrite 29. algo410 - Calculer la valeur d'un mot du scrabble en fonction de la valeur de chacune des lettres (Les valeurs des lettres vous seront fournies) 30. algo420 - Fusionner 2 tableaux de 6 nombres entiers (les valeurs de chacun des tableaux sont ordonnées) dans un troisième tableau de 12 nombres entiers. 31. algo430 - Calculer le produit scalaire de 2 tableaux de réels de même dimension (Rappel : si u=(u1,u2, …,un) et v=(v1,v2,…,vn), le produit scalaire u.v = u1.v1+u2.v2+…+un.vn) Proposer la représentation des algorithmes suivants : (tableaux à plusieurs dimensions) 32. algo450 - Initialiser les éléments d'une matrice carrée de 9 éléments (3X3) avec des valeurs aléatoires de 1 à 9. Mettre à 0 les 2 diagonales. Afficher les valeurs sous forme d'une matrice. 33. algo452 - initialisée une matrice carrée de 4 éléments avec des valeurs aléatoires de 1 à 9, afficher les valeurs des diagonales (le caractère ‘.’ sera affiché à la place des autres valeurs) 34. algo455 - Trouver la valeur maximale d'une matrice de 12 éléments (3X4) initialisée avec des valeurs aléatoires de 1 à 9, puis afficher la position (ou les positions) de cette valeur : ligne,colonne 35. algo460 – Initialiser une matrice de 12 éléments (3X4), afficher la matrice, puis permuter la 1ère et la dernière ligne et afficher la matrice résultante 36. algo465 - Initialiser une matrice de 12 éléments (3X4), afficher la matrice, puis permuter la 1ère et la dernière colonne et afficher la matrice résultante 37. algo470 - calculer et afficher le déterminant d’une matrice carrée de 4 éléments; det(m) = a11*a22 – a12*a21 Proposer la représentation des algorithmes suivants : (tri) 38. algo500 – mettre en oeuvre l’algorithme du tri bulle élémentaire sur un tableau de 10 nombres aléatoires entre 1 et 9 39. algo510 - mettre en oeuvre l’algorithme du tri bulle optimisé sur un tableau de 10 nombres aléatoires entre 1 et 9 Algo.Base1 Page 17 Algorithmique – Concepts de base 11. Structures de données composées : enregistrement à définir 12. Modularité et sous-programmes : fonctions et procédures Fonctions Pour chacune des fonctions, décrire son algorithme et donner un exemple de son appel dans un algorithme principal : 1. « fSomme » 2. a. attend 2 nombres entiers b. et retourne la somme des 2 nombres « fAbs » 3. a. attend 1 nombre entier b. et retourne la valeur absolue du nombre « fMax » a. attend 2 nombres entiers b. et retourne le plus grand des 2 4. « fCarre » a. attend 1 nombre entier b. et retourne le nombre élevé au carré 5. « fPuissance » a. attend 2 nombres entiers b. et retourne le premier nombre élevé à la puissance du second 6. « fDeg2Fahr », qui convertit une température exprimée en Celsius en une température exprimée en Fahrenheit a. attend un nombre réel b. retourne la conversion en degré Fahrenheit du nombre (celsius = 5 * (fahrenheit – 32) / 9 7. Proposer la fonction inverse, qui convertit une température exprimée en Fahrenheit en une température exprimée en Celsius 8. « fFact » a. attend 1 nombre entier b. et retourne la factorielle de ce nombre (rappel : n! = n * n-1 * n -2 * … * 2 * 1) 9. « fEstPair » a. attend 1 nombre entier, b. et retourne un booléen à VRAI si le nombre est pair, à FAUX dans le cas contraire 10. « fArrondi » a. attend 1 nombre réel b. et retourne le nombre entier arrondi le plus proche (+12,4 donne +12, +12,5 donne +13, -12,4 donne 12, et -12,5 donne -13). 11. « fPosition » a. attend 1 tableau de NB nombres entiers (un vecteur) et un nombre entier b. et retourne l’indice du nombre trouvé ou -1 sur le nombre n’a pas été trouvé 12. « fTabCompte1 » a. attend 1 tableau de NB nombres entiers (un vecteur) b. et retourne la somme des nombres du tableau Algo.Base1 Page 18 Algorithmique – Concepts de base 13. « fTabCompte2 » a. attend 1 tableau de NB nombres entiers (un vecteur), un indice début et un indice fin b. et retourne la somme des nombres du tableau entre les indices début et fin 14. « fSommeDiag » a. attend 1 tableau d’entiers à 2 dimensions, NBXNB, (une matrice carrée), b. et retourne la somme des nombres de la diagonale de la matrice 15. « fCompteVoyelles » a. attend 1 tableau de NB caractères b. et retourne le nombre de voyelles du tableau 16. « fEstPalindrome » a. attend 1 tableau de NB caractères (un mot) b. et déterminer si le mot est un palindrome ou pas a. palindrome : mot qui peut être lu de gauche à droite et de droite à gauche (gag, elle, etc.) 17. « fFonction1 » est définie par : 3 + + 1, ≥ 1 0, b. Elle attend un nombre entier c. Et retourne la valeur calculée 18. « fFonction2 » est définie ainsi : a. 1 = a. 2 = 1 + 1 − 1 + ⋯ + 1 1 : b. Elle attend un nombre entier c. Et retourne la valeur calculée Procédures Pour chacune des procédures, décrire son algorithme et donner un exemple de son appel dans un algorithme principal : 19. « pOperation » a. attend 2 nombres entiers a et b, un caractère c b. et écrit « a c b vaut r » où r est le résultat de l’opération : + pour l’addition, - pour la soustraction, * pour la multiplication et / pour la division (dans les autres cas, on affichera « opération inconnue »). 20. « pAfficherEtudiant » c. attend 1 variable de type structure étudiant (numéro : entier, nom: chaine de caractères) d. et écrit « l’étudiant de numéro X se nomme Y », où X et Y correspondent au numéro et au nom de l’étudiant. 21. « pAfficherTab1 » e. attend 1 tableau de NB entiers (vecteur) et un caractère c f. et écrit les valeurs du tableau : horizontalement sur une ligne si le caractère c vaut H ou verticalement sur une colonne dans le cas contraire. 22. « pAfficherTab2 » g. attend 1 tableau d’entiers à 2 dimensions, NBLIG X NBCOL (matrice), h. et écrit le contenu du tableau sous forme d’une matrice (NBLIG lignes et NBCOL colonnes). 23. « pAfficherDiagonale » i. j. attend 1 tableau d’entiers à 2 dimensions NB X NB (matrice carrée) et écrit les valeurs de la diagonale de la matrice. Question 24. Est-il possible de transformer la procédure « pOperation » en une fonction qui renverrait le résultat du calcul ? a. Proposer l’algorithme d’une fonction et son appel dans un algorithme principal b. Critiquer cette solution c. Quelle est la spécificité d’un sous-programme « fonction » au regard d’un sous-programme « procédure » Algo.Base1 Page 19 Algorithmique – Concepts de base d. Algo.Base1 Page 20