Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py M1204 - Algorithmique et informatique Chapitre 1 : présentation Ludovic Grossard Département Mesures Physiques, IUT du Limousin Université de Limoges M1204 - Algorithmique et informatique – Chapitre 1 : présentation Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py Plan 1 Cycle de vie d’un projet logiciel 2 Définitions 3 La recette de cuisine est un 6 Rubik’s cube 7 Pourquoi apprendre algorithme 4 La recette de cuisine n’est pas un algorithme 5 Efficacité d’un algorithme 8 Premier algorithme simple 9 Les briques de base 10 De l’algorithme au programme M1204 - Algorithmique et informatique – Chapitre 1 : présentation l’algorithmique ? Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py I. Cycle de vie d’un projet logiciel M1204 - Algorithmique et informatique – Chapitre 1 : présentation Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py Cycle de vie d’un projet logiciel M1204 - Algorithmique et informatique – Chapitre 1 : présentation Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py II. Définitions Algorithme ensemble des règles opératoires qui permettent la résolution d’un problème par l’application d’un nombre fini d’opérations de calcul à exécuter en séquence. Pseudo-code façon de décrire un algorithme sans référence à un langage de programmation en particulier. Il n’existe pas de réelle convention pour le pseudo-code. Code texte qui représente les instructions qui doivent être exécutées par un microprocesseur, généralement écrit dans un langage de programmation M1204 - Algorithmique et informatique – Chapitre 1 : présentation Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py III. La recette de cuisine est un algorithme Vous avez des algorithmes à la maison Tout comme une recette de cuisine, un algorithme est caractérisé par : des données en entrée (les ingrédients) des opérations à exécuter en séquence (préparation / cuisson) un résultat (les sablés nappés de chocolat) M1204 - Algorithmique et informatique – Chapitre 1 : présentation Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py IV. La recette n’est pas un algorithme Une recette est ambigüe (termes vagues, plusieurs options) nécessite également le « coup de main » du chef ne mène pas toujours au résultat attendu Un algorithme est non ambigü et conduit toujours au même résultat M1204 - Algorithmique et informatique – Chapitre 1 : présentation Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py V. Efficacité d’un algorithme On mesure l’efficacité d’un algorithme par : sa durée de calcul (complexité de l’algorithme) sa consommation de mémoire, l’exactitude du résultat obtenu (méthodes probabilistes), sa scalabilité (aptitude à être efficacement parallélisé). M1204 - Algorithmique et informatique – Chapitre 1 : présentation Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py VI. Le Rubik’s cube 43 252 003 274 489 856 000 combinaisons recherche de la solution au hasard : > 100 fois l’âge de l’Univers (à une combinaison par seconde) recherche de la solution par des algorithmes M1204 - Algorithmique et informatique – Chapitre 1 : présentation Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py Le Cubestormer II en action Vidéo cubestormer (disponible sur claroline) M1204 - Algorithmique et informatique – Chapitre 1 : présentation Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py VII. Pourquoi apprendre l’algorithmique ? et pas apprendre directement un langage de programmation L’algorithme exprime les instructions résolvant un problème donné indépendamment des particularités de tel ou tel langage ; Il est écrit en pseudo-code permet d’apprendre à manier la structure logique d’un programme informatique quel que soit le langage de programmation ; si un programme était une dissertation, l’algorithmique serait le plan ; vous pourrez ensuite passer facilement d’un langage à un autre. M1204 - Algorithmique et informatique – Chapitre 1 : présentation Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py VIII. Premier algorithme simple Distributeur de boissons VARIABLES monnaieIntroduite : réel numeroBoisson : entier prixBoisson : réel monnaieRendue : réel DEBUT_ALGORITHME # On fixe le prix d’une boisson prixBoisson ← 0.5 # On attend la monnaie Écrire "Introduisez votre monnaie" Lire monnaieIntroduite # On attend que le client choisisse la boisson Écrire "choisissez votre boisson" Lire numeroBoisson # On prépare la boisson Écrire "Préparation en cours" Écrire "Terminé. Prenez votre boisson" # On rend la monnaie monnaieRendue ← monnaieIntroduite prixBoisson Écrire "Monnaie rendue : " , monnaieRendue FIN_ALGORITHME M1204 - Algorithmique et informatique – Chapitre 1 : présentation L’algorithme a quelques limitations : on ne vérifie pas si la somme introduite est suffisante on ne permet pas d’introduire plusieurs pièces une fois la boisson servie et la monnaie rendue, on ne recommence pas au début Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py IX. Les briques de base Un algorithme, aussi complexe soit-il, est composé de quatre familles d’instructions : l’affectation de variables la lecture / écriture les tests les boucles M1204 - Algorithmique et informatique – Chapitre 1 : présentation Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py X. De l’algorithme au programme L’algorithme ne représente que la suite des opérations à effectuer, sa mise en œuvre se fait via un langage de programmation , le résultat de cette transcription s’appelle le code Il existe un grand nombre de langages de programmation (661 selon wikipedia), chacun ayant ses spécificités. Nous utiliserons le langage Python M1204 - Algorithmique et informatique – Chapitre 1 : présentation Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py XI. Python c’est quoi cette bête ? créé en 1990 idéal pour débuter la programmation logiciel libre multiplateforme grande communauté de développeurs nombreuses bibliothèques de fonctions . . . j’aime bien :) Guido van Rossum M1204 - Algorithmique et informatique – Chapitre 1 : présentation Cycle de vie Définitions Recette Efficacité Rubik’s cube Pourquoi Algo simple Les briques De l’algorithme au programme Py Premier programme Python Distributeur de boissons 1 2 3 4 5 # # # # # variables monnaieIntroduite :réel numeroBoisson :entier prixBoisson :réel monnaieRendue :réel 6 7 8 # on fixe le prix d’une boisson prixBoisson = 0.5 9 10 11 # on attend que le client insère la monnaie monnaieIntroduite = input("Introduisez votre monnaie : ") 12 13 14 # on attend que le client choisisse la boisson numeroBoisson = input("Choisissez votre boisson : ") 15 16 17 18 # on prépare la boisson print "Préparation en cours" print "Terminé. Prenez votre boisson" 19 20 21 22 # on rend la monnaie monnaieRendue = monnaieIntroduite - prixBoisson print "Monnaie rendue : " , monnaieRendue M1204 - Algorithmique et informatique – Chapitre 1 : présentation Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables M124 - Algorithmique et informatique Chapitre 2 : les variables Ludovic Grossard Département Mesures Physiques, IUT du Limousin Université de Limoges M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables Plan 1 2 3 4 5 Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable M124 - Algorithmique et informatique – Chapitre 2 : les variables 6 Déclaration des variables 7 Les opérateurs Opérateurs et opérandes Opérateurs mathématiques Priorité des opérateurs 8 Lire et afficher des variables 9 Exemple Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables I. Définitions Variable Emplacement mémoire dans lequel on peut lire et écrire des données permet au programme de travailler sur des données et de stocker le résultat les variables sont indispensables en programmation leur emplacement dans la mémoire s’appelle l’adresse mais on les désigne généralement par un nom (une étiquette) attention, la mémoire est volatile (son contenu disparaît à la fin du programme) M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables II. Types de données Les variables peuvent accueillir des données simples : des nombres (entiers, réels) du texte (caractère unique ou chaîne de caractères) des booléens (vrai / faux) et des structures de données plus complexes : nombres complexes tableaux, matrices structures définies par l’utilisateur (matrice de complexes, tableau de chaînes de caractères. . .) M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables III. Noms des variables Chaque variable possède un nom, choisi par le programmeur Quelques règles : le nom de la variable doit indiquer de manière claire son rôle (prixBoisson, monnaieIntroduite. . .) les compteurs sont généralement nommés avec une seule lettre : i, j, k. . . pas d’espaces, pas d’accents ou caractères spéciaux ($#!@«». . .) on évite les noms compliqués ou sans signification : toto, zz42, nbPtsdsplan (difficiles à retenir, risque d’erreur de saisie) ne pas hésiter à prendre un nom long si besoin : vitesseMoyenneEnkmh M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables III. Noms des variables Conventions généralement utilisées pour nommer les variables CamelCase (chatMot) lowercase / underscore vitesseMoyenneEnkmh vitesse_moyenne_en_kmh Une fois la convention fixée, il faut s’y tenir tout au long du projet. M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables IV. Déclaration des variables Au début de chaque algorithme, on déclare les variables utilisées et le type de données qu’elles accueilleront VARIABLES monnaieIntroduite : réel numeroBoisson : entier ... Certains langages nécessitent que les variables soient déclarées ce n’est pas le cas du langage Python mais nous les déclarerons en commentaires 1 2 3 4 # variables # monnaieIntroduite : réel # numeroBoisson : entier ... M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables V. Affectation à une variable Pour donner une valeur à une variable, on utilise l’opérateur d’affectation ← prixBoisson ← 0.5 L’expression à droite du symbole ← est évaluée, puis placée dans la variable située à gauche. on peut (ré)affecter une variable à n’importe quel moment Cette expression peut être : une constante (a ← 1) une autre variable (a ← b) une expression (a ← b + c) Exemple : l’incrémentation : a←a+1 M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables VI. Affectation à une variable Attention Avant de pouvoir utiliser une variable dans un algorithme, elle doit être initialisée VARIABLES a : entier b : entier c : entier DEBUT_ALGORITHME a ← 1 c ← a + b # Problème ! Que vaut b ? FIN_ALGORITHME M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables VII. Opérateurs 1) Opérateurs et opérandes opérateur symbole utilisé pour effectuer un calcul entre des opérandes opérande variable ou expression expression suite valide d’opérateurs et d’opérandes Par exemple, dans l’expression : x ← y + 1 Il y a deux opérateurs ( ← et +) et trois opérandes (x,y et 1). M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables VII. Opérateurs 1) Opérateurs et opérandes Il existe différents types d’opérateur : d’affectation mathématiques de comparaison logiques M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables VII. Opérateurs 2) Opérateurs mathématiques Les opérateurs suivants sont disponibles : ← ← ← ← ← + * ** / addition soustraction multiplication élévation à la puissance division x x x x x % modulo x←y%z exemple : 17 % 3 = 2 (car 17 = 3*5 + 2) M124 - Algorithmique et informatique – Chapitre 2 : les variables y y y y y +z -z *z ** 3 /z attention à la division par 0 ! y et z entiers Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables VII. Opérateurs 3) Priorité des opérateurs de la précédence la plus forte à la plus faible : ** *, /, % +, - Exponentiation Multiplication, Division et Reste Addition et soustraction Les opérateurs avec la même précédence sont listés dans la même ligne Par exemple, + et - ont la même précédence. Exemple x ← 5 + 3 * 2**2 x vaut 17 Pour modifier l’ordre d’évaluation, on utilise des parenthèses : x vaut 32 x ← (5 + 3) * 2**2 M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables VIII. Lire et afficher des variables Un programme doit pouvoir dialoguer avec l’utilisateur lire les données qu’il saisit au clavier afficher des informations à l’écran Remarque : lorsque le programme lit des données, l’utilisateur écrit. Lorsque le programme affiche des données, l’utilisateur les lit. M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables VIII. Lire et afficher des variables VARIABLES x : réel # nombre choisi par l’utilisateur carre : réel # son carré DEBUT_ALGORITHME # on demande à l’utilisateur de saisir x Écrire "Saisissez x : " Lire x # on calcule le carré de x carre ← x*x # on affiche le carré Écrire "le carré de ", x , " vaut " , carre FIN_ALGORITHME M124 - Algorithmique et informatique – Chapitre 2 : les variables Lire demande à l’utilisateur de saisir au clavier un nombre ou du texte Écrire "texte" affiche du texte à l’écran Écrire var affiche le contenu de la variable var Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables VIII. Lire et afficher des variables VARIABLES x : réel DEBUT_ALGORITHME x ← 2 Écrire Écrire Écrire x affiche le contenu de la variable x : 2 Écrire "x" affiche le texte x x "x" FIN_ALGORITHME M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables IX. Exemple calcul du bénéfice mensuel réalisé par un transporteur 200 voyageurs par jour à 2e TTC le ticket et une TVA à 7% 600 km par jour consommation : 10 l/100 km prix du litre : 1.5 e coût d’entretien journalier : 50e VARIABLES prixDuBillet : réel # en e tauxTVA : réel nombreDeVoyageursParJour : entier recettes : réel # en e prixLitreEssence : réel # en e consommation : réel # au 100 km nombreDeKmParJour : réel coutEntretien : réel # coût journalier fixe en e depenses : réel # en e beneficeJournalier : réel # en e joursOuvres : entier beneficeMensuel : réel # en e jours ouvrés dans le mois : 20 M124 - Algorithmique et informatique – Chapitre 2 : les variables Définitions Types de données Noms des variables Déclaration des variables Affectation à une variable Déclaration des variables IX. Exemple (suite) DEBUT_ALGORITHME # Recettes prixDuBillet ← 2 tauxTVA ← 0.07 nombreDeVoyageursParJour ← 200 recettes ← ( prixDuBillet * nombreDeVoyageursParJour ) * (1/(1+tauxTVA)) # Dépenses prixLitreEssence ← 1.5 consommation ← 10 nombreDeKmParJour ← 600 coutEntretien ← 50 depenses ← ( consommation * nombreDeKmParJour / 100 ) * prixLitreEssence + coutEntretien ) # calcul du bénéfice beneficeJournalier ← recettes - depenses joursOuvres ← 20 beneficeMensuel ← beneficeJournalier * joursOuvres # affichage du résultat Écrire "bénéfice mensuel : " , beneficeMensuel , " e" FIN_ALGORITHME M124 - Algorithmique et informatique – Chapitre 2 : les variables définition Les alternatives Les opérateurs logiques Les boucles M124 - Algorithmique et informatique Chapitre 3 : les structures de contrôle Ludovic Grossard Département Mesures Physiques, IUT du Limousin Université de Limoges M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles Plan 1 définition 3 Les opérateurs logiques Structure de contrôle Les opérateurs de comparaison 2 Les alternatives Test si Test si sinon Test sinon si L’opérateur logique ET L’opérateur logique OU L’opérateur logique NON Tables de vérité 4 Les boucles Définition Un exemple pour illustrer La boucle Tant que Retour sur l’exemple Boucle Tant que et compteur Boucles imbriquées M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles I. Définition 1) Structure de contrôle Les instructions d’un algorithme sont exécutées dans leur ordre d’apparition cependant, un algorithme doit souvent évaluer des conditions, et prendre des décisions il existe pour cela les structures de contrôles Structure de contrôle Commande qui contrôle l’ordre dans lequel les différentes instructions d’un algorithme ou d’un programme informatique sont exécutées Nous étudierons deux types de structures de contrôles : les alternatives les boucles M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles I. Définition 2) Les opérateurs de comparaison Ils permettent d’effectuer des tests. == != < <= > >= égal à différent de inférieur à inférieur ou égal à supérieur à supérieur ou égal à Le résultat d’une comparaison est de type booléen et vaut : vrai si la condition est vérifiée faux si elle ne l’est pas M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles II. Les alternatives 1) Test si ( if) Le test si est la forme d’alternative la plus simple Si (Test) Alors instruction1 Fin Si instruction2 si Test est vérifié on exécute Instruction 1 puis Instruction 2 si Test n’est pas vérifié on exécute directement Instruction 2 Test est un booléen . Il vaut vrai ou faux. M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles II. Les alternatives Test si : exemple Le pseudo-code suivant demande deux nombres entiers x et y à l’utilisateur, et affiche si x est multiple de y ou non. VARIABLES x,y : entiers DEBUT_ALGORITHME Écrire "Saisissez x : " Lire x Écrire "Saisissez y : " Lire y Si (x % y == 0) Alors Écrire x , " est multiple de " , y Fin Si FIN_ALGORITHME Problème : rien n’est affiché si x n’est pas multiple de y ! M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles II. Les alternatives Test si : exemple Version modifiée : ... Si (x % y == 0) Alors Écrire x , " est multiple de " , y Fin Si Si (x % y != 0) Alors Écrire x , " n’est pas multiple de " , y Fin Si Le second test est en réalité inutile car les deux tests sont exclusifs si x % y n’est pas égal à 0, c’est qu’il est forcément différent de 0 ! M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles II. Les alternatives 2) Test si sinon ( if else) Le test si sinon permet d’exécuter des instructions si le test n’est pas vérifié Si (Test) Alors instruction1 Sinon instruction2 Fin Si instruction3 si Test est vérifié, on exécute instruction1 puis instruction3 sinon, on exécute Instruction 2 puis Instruction 3 M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles II. Les alternatives Test si sinon : exemple Version modifiée avec un test si puis sinon : ... Si (x % y == 0) Alors Écrire x , " est multiple de " , y Sinon Écrire x , " n’est pas multiple de " , y Fin Si M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles II. Les alternatives 3) Test sinon si ( if elif) Le test si sinon si permet d’enchaîner des tests si Si (Test1) Alors instruction1 Sinon Si (Test2) Alors instruction2 Fin Si Fin Si instruction3 On peut enchaîner autant d’instructions sinon si que désiré : seule la première dont la condition sera vérifiée sera exécutée. On peut généralement associer une clause sinon qui sera exécutée uniquement si aucune clause sinon si n’a été vérifiée. M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles II. Les alternatives Test sinon si : exemple Ce pseudo-code détermine le signe du discriminant d’un polynôme d’ordre 2 VARIABLES a,b,c : réels # coefficients du polynôme delta : réel # discriminant du polynôme DEBUT_ALGORITHME # On suppose que les coefficients sont déjà saisis delta ← b**2 - 4ac Si (delta > 0) Alors Écrire "Le discriminant est positif" Sinon Si (delta < 0) Alors Écrire "le discriminant est négatif" Sinon Écrire "le discriminant est nul" Fin Si Fin Si FIN_ALGORITHME M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles III. Les opérateurs logiques 1) L’opérateur logique ET ( and) Comment tester si la variable x est paire et supérieure à 10 ? Si (x % 2 == 0) Alors Si (x > 10) Alors # x est bien pair et supérieur à 10 Fin Si Fin Si Il est possible d’utiliser un seul if et une condition composée grâce à un opérateur logique : Si ((x % 2 == 0) ET (x>10)) Alors # x est bien pair et supérieur à 10 Fin Si Le test vaut vrai si les deux conditions sont vraies simultanément , sinon le test vaut faux. M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles III. Les opérateurs logiques 2) L’opérateur logique OU ( or) Comment tester si la variable x est paire ou supérieure à 10 ? Si (x % 2 == 0) Alors Instructions Fin Si Si (x > 10) Alors Instructions Fin Si Problème : les instructions sont dupliquées. À éviter en programmation. Il est possible d’utiliser un seul if et une condition composée : Si ((x % 2 == 0) OU (x>10)) Alors # x est bien pair ou supérieur à 10 Fin Si Le test vaut vrai si une des deux conditions est vraie (ou les deux), sinon le test vaut faux. M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles III. Les opérateurs logiques 3) L’opérateur logique NON ( not) Comment tester si une condition est fausse ? Si (polynomeSecondDegre == faux) Alors Instructions Fin Si que l’on peut écrire également : Si (NON polynomeSecondDegre) Alors Instructions Fin Si L’opérateur NON renvoie vrai si son opérande est faux, et inversement Si polynomeSecondDegre est faux, alors NON polynomeSecondDegre est vrai, et on exécute les instructions. M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles III. Les opérateurs logiques 4) Tables de vérité C1 ET C2 C1 vrai C1 faux C2 vrai vrai faux C2 faux faux faux C1 OU C2 C1 vrai C1 faux C2 vrai vrai vrai C2 faux vrai faux NON C1 C1 vrai C1 faux C1 XOR C2 C1 vrai C1 faux M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle faux vrai C2 vrai faux vrai C2 faux vrai faux définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 1) Définition Boucle Structure de contrôle qui permet d’exécuter plusieurs fois le même bloc d’instructions M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 2) Un exemple pour illustrer Exemple d’une saisie au clavier L’utilisateur doit répondre par O (oui) ou N (non) à une question le programme doit vérifier que la saisie est correcte VARIABLES Reponse : chaîne de caractères # le texte saisi par l’utilisateur DEBUT_ALGORITHME Écrire "Voulez-vous un café ? (0/N)" Lire Reponse Si ((Reponse != ’O’) ET (Reponse != ’N’)) Alors Écrire "Saisie erronnée. Recommencez" Lire Reponse Fin Si FIN_ALGORITHME M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 2) Un exemple pour illustrer VARIABLES Reponse : chaîne de caractères # le texte saisi par l’utilisateur DEBUT_ALGORITHME Écrire "Voulez-vous un café ? (0/N)" Lire Reponse Si ((Reponse != ’O’) ET (Reponse != ’N’)) Alors Écrire "Saisie erronnée. Recommencez" Lire Reponse Problème : ne marche qu’une fois Pas question de recopier N fois cette portion de code Le copier/coller est à éviter en programmation Solution : utiliser une structure de boucle Tant que Fin Si FIN_ALGORITHME M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 3) La boucle Tant que ( while) Tant que (test) faire ... instructions ... Fin Tant que Principe : Le programme examine la valeur du test s’il vaut vrai, les instructions qui suivent sont exécutées jusqu’à ce qu’il rencontre la ligne Fin Tant que il retourne à la ligne du Tant que, et ainsi de suite L’exécution des intructions ne s’arrête que lorsque le test vaut faux M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 4) Retour sur l’exemple ... Écrire "Voulez-vous un café ? (0/N)" Tant que ((Reponse != ’O’) ET (Reponse != ’N’)) faire Lire Reponse Fin Tant que Cet algorithme a un gros défaut : Reponse n’est pas initialisé avant le Tant que Impossible d’évaluer le test M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 4) Retour sur l’exemple Solution : il faut affecter Reponse avant d’arriver au premier tour de boucle ... Écrire ... Lire Reponse Tant que (...) faire ... Fin Tant que M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 4) Retour sur l’exemple Autre solution souvent employée : on initialise la variable avec une valeur telle qu’on soit sûr de rentrer dans la boucle ... Écrire ... Reponse ← "X" Tant que (...) faire ... Fin Tant que On peut affecter à Reponse n’importe quelle valeur, sauf "O" et "N" car dans ce cas, on ne rentrera pas dans la boucle M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 4) Retour sur l’exemple Comparez : VARIABLES Reponse : chaîne de caractères # le texte saisi par l’utilisateur VARIABLES Reponse : chaîne de caractères # le texte saisi par l’utilisateur DEBUT_ALGORITHME DEBUT_ALGORITHME Écrire "Voulez-vous un café ? (0/N)" Lire Reponse Tant que ((Reponse != "O") ET (Reponse != "N")) faire Lire Écrire "Voulez-vous un café ? (0/N)" Reponse ← "X" Tant que ((Reponse != "O") ET (Reponse != "N")) faire Reponse Lire Reponse Fin Tant que Fin Tant que FIN_ALGORITHME FIN_ALGORITHME Différence fondamentale : à gauche, on peut ne jamais entrer dans la boucle à droite, on entre au moins une fois dans la boucle Important si d’autres instructions sont à exécuter dans la boucle (initialisations par exemple) M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 5) Boucle contrôlée par un compteur Permet d’effectuer des boucles dont on connaît à l’avance le nombre d’itérations. Elle exige : une variable de contrôle, ou compteur une valeur initiale du compteur une condition qui vérifie si la valeur finale du compteur est atteinte l’incrémentation (ou la décrémentation) du compteur afin de modifier sa valeur à chaque passage dans la boucle M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 5) Boucle contrôlée par un compteur pseudo-code : VARIABLES compteur : entier # la variable de contrôle DEBUT_ALGORITHME initialisation_du_compteur Tant que (condition) faire instructions incrementation_du_compteur Fin Tant que FIN_ALGORITHME 1 L’initialisation doit avoir lieu avant la boucle 2 la condition doit porter sur le compteur 3 l’incrémentation se fait généralement à la fin de la boucle M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 5) Boucle contrôlée par un compteur Exemple : affichage des nombres de 1 à 10 : VARIABLES i : entier # la variable de contrôle DEBUT_ALGORITHME i ← 1 # initialisation Tant que (i<=10 ) faire Écrire i i ← i+1 # incrémentation Fin Tant que FIN_ALGORITHME On peut également utiliser la condition i<11 que se passe-t-il si on place l’incrémentation avant les instructions ? → affiche les nombres de 2 à 11 que se passe-t-il si on oublie l’incrémentation ? → boucle infinie. M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 5) Boucle contrôlée par un compteur Autre exemple : affichage des puissances de 2 inférieures à 1000 : VARIABLES i : entier # la variable de contrôle DEBUT_ALGORITHME i ← 1 # initialisation Tant que (i<1000 ) faire Écrire i i ← i*2 # incrémentation Fin Tant que FIN_ALGORITHME affichera 1 2 4 8 16 32 64 128 256 512 → le compteur n’est pas forcément linéaire M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 6) Boucles imbriquées Définition boucle dans une boucle. Pour chaque itération de la première boucle, la deuxième sera exécutée en entier. M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 6) Boucles imbriquées On s’attend à obtenir : VARIABLES i,j : entiers # les deux compteurs DEBUT_ALGORITHME i ← 0 j ← 0 Tant que (i<5) faire 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6 Tant que (j<5) faire Écrire i+j,"\t" j ← j+1 Fin Tant que Écrire "\n" i ← i+1 Fin Tant que FIN_ALGORITHME M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle 3 4 5 6 7 4 5 6 7 8 définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 6) Boucles imbriquées mais on obtient : VARIABLES i,j : entiers # les deux compteurs DEBUT_ALGORITHME i ← 0 j ← 0 Tant que (i<5) faire Tant que (j<5) faire Écrire i+j,"\t" j ← j+1 Fin Tant que Écrire "\n" i ← i+1 Fin Tant que FIN_ALGORITHME 0 1 2 3 4 . . . . Quel est le bogue ? chaque fois que la boucle interne est effectuée, il faut réinitialiser j à 0 sinon, il reste à 5, et cette boucle n’est plus effectuée. M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Les alternatives Les opérateurs logiques Les boucles IV. Les boucles 6) Boucles imbriquées Pseudo-code corrigé : VARIABLES i,j : entiers # les deux compteurs DEBUT_ALGORITHME i ← 0 Tant que (i<5) faire j ← 0 Tant que (j<5) faire Écrire i+j,"\t" j ← j+1 Fin Tant que Écrire "\n" i ← i+1 Fin Tant que FIN_ALGORITHME À retenir : faire l’initialisation du compteur juste avant la ligne Tant que M124 - Algorithmique et informatique – Chapitre 3 : les structures de contrôle définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles M124 - Algorithmique et informatique Chapitre 4 : les listes Ludovic Grossard Département Mesures Physiques, IUT du Limousin Université de Limoges M124 - Algorithmique et informatique – Chapitre 4 : les listes définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles Plan 1 définition 2 Création d’une liste Initialisation directe Ajout de données M124 - Algorithmique et informatique – Chapitre 4 : les listes 3 Accès aux données d’une liste Accès à un élément Balayer tous les éléments 4 Listes multidimensionnelles Définition Exemple : table de multiplications Les limites des listes définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles I. Définition liste Variable contenant une collection d’éléments (texte, nombres entiers, nombres réels. . .). Chaque élément dans la liste est accessible grâce à son indice le premier élément de la liste correspond à l’indice 0 Pour une liste de N éléments, les indices vont de 0 à N-1 Dans d’autres langages que le python, les listes sont appelées tableaux. En python, les listes peuvent contenir des éléments de natures différentes (mélange de texte et de nombres) M124 - Algorithmique et informatique – Chapitre 4 : les listes définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles II. Création d’une liste 1) Initialisation directe VARIABLES notes : liste de réels # inutile d’indiquer le nombre d’éléments DEBUT_ALGORITHME notes ← [12.5 , 8.5 , 16 , ...] FIN_ALGORITHME On sépare les éléments par des virgules et on les place entre crochets M124 - Algorithmique et informatique – Chapitre 4 : les listes définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles II. Création d’une liste 2) Ajout de données On peut également créer une liste vide, puis ajouter les données dans la liste une par une méthode obligatoire lorsque les données proviennent de l’extérieur (saisie par l’utilisateur, fichier. . .) # Création d’une liste vide notes ← [] M124 - Algorithmique et informatique – Chapitre 4 : les listes définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles II. Création d’une liste 2) Ajout de données Python est un langage objet . Chaque objet possède des méthodes, qui permettent d’agir sur cet objet méthode ajouter pour ajouter un élément en fin de liste objet_liste.ajouter( élément ) exemple : notes.ajouter(12.5) M124 - Algorithmique et informatique – Chapitre 4 : les listes définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles II. Création d’une liste 2) Exemple On demande à l’utilisateur de saisir 5 nombres, qui sont placés dans une liste. VARIABLES nombres : liste de réels i : entier # compteur x : réel # chaque nombre saisi DEBUT_ALGORITHME # On crée une liste vide nombres ← [] # boucle pour saisir les 5 nombres i ← 0 Tant que (i < 5) faire Écrire "Nombre n◦ " , i , " : " Lire x nombres.ajouter(x) i ← i+1 Fin Tant que FIN_ALGORITHME M124 - Algorithmique et informatique – Chapitre 4 : les listes définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles III. Accès aux donnés d’une liste 1) Accès à un élément on écrit le nom de la liste, suivi de l’indice de l’élément entre crochets : notes ← [12.5 , 8.5 , 16 ] Écrire notes[1] # affiche la valeur 8.5 Remarques : l’indice est obligatoirement un nombre entier ne confondez pas la valeur de l’indice (entier i), et le contenu de la liste pour cet indice. notes[3] provoquera une erreur car le 4e élément de la liste notes n’existe pas. M124 - Algorithmique et informatique – Chapitre 4 : les listes définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles III. Accès aux donnés d’une liste 2) Balayer tous les éléments on utilise une boucle Tant que on utilise la fonction longueur pour connaître le nombre d’éléments dans la liste : longueur(notes) VARIABLES notes : liste de réels i : entier # compteur DEBUT_ALGORITHME notes ← [12.5 , 8.5 , 16] # boucle pour afficher les trois notes i ← 0 Tant que (i < longueur(notes)) faire Écrire notes[i] i ← i+1 Fin Tant que FIN_ALGORITHME M124 - Algorithmique et informatique – Chapitre 4 : les listes définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles III. Accès aux donnés d’une liste 2) Balayer tous les éléments On peut utiliser Pour ... dans ... pas besoin de connaître le nombre d’éléments dans la liste VARIABLES notes : liste de réels DEBUT_ALGORITHME notes ← [12.5 , 8.5 , 16] # boucle pour afficher les trois notes Pour note dans notes faire Écrire note Fin Pour FIN_ALGORITHME À chaque passage dans la boucle Pour ... dans ..., note prend la valeur suivante dans la liste notes. M124 - Algorithmique et informatique – Chapitre 4 : les listes définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles IV. Listes multidimensionnelles 1) Définition liste multidimensionnelle Liste dont les éléments sont caractérisés par plusieurs coordonnées Exemple : une liste à 2 dimensions est une liste dont chaque élément est lui même une liste (une liste de liste). Sa représentation graphique est une grille, chaque cellule étant repérée par 2 coordonnées, et contenant un élément. M124 - Algorithmique et informatique – Chapitre 4 : les listes définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles IV. Listes multidimensionnelles 1) Initialisation et accès On initialise la liste en y plaçant d’autres listes : VARIABLES liste : liste d’entiers DEBUT_ALGORITHME liste ← [[ 2 , 3 , 1 ] , [ 6 , 3 , 5 ] , [ 8 , 7 , 6 ]] FIN_ALGORITHME définit la liste suivante : i/j 0 1 2 0 2 6 8 1 3 3 7 2 1 5 6 où i et j sont les coordonnées de chaque élément. M124 - Algorithmique et informatique – Chapitre 4 : les listes Accès aux valeurs On utilise deux paires de crochets : liste[1][2] donne la valeur 5 définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles IV. Listes multidimensionnelles 2) Exemple : table de multiplications j i 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0 1 2 3 4 5 6 0 2 4 6 8 10 12 0 3 6 9 12 15 18 0 4 8 12 16 20 24 0 5 10 15 20 25 30 0 6 12 18 24 30 36 0 7 14 21 28 35 42 0 8 16 24 32 40 48 0 9 18 27 36 45 54 0 10 20 30 40 50 60 7 8 9 10 0 0 0 0 7 8 9 10 14 16 18 20 21 24 27 30 28 32 36 40 35 40 45 50 42 48 54 60 49 56 63 70 56 64 72 80 63 72 81 90 70 80 90 100 M124 - Algorithmique et informatique – Chapitre 4 : les listes ligne table définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles IV. Listes multidimensionnelles 2) Exemple : table de multiplications VARIABLES table : liste de liste d’entiers # la table de multiplication ligne : liste d’entiers # une ligne de la table i,j : entiers # compteurs DEBUT_ALGORITHME # Initialisation de la liste table et des compteurs table ← [] i ← 0 # Boucle de remplissage de la table Tant que (i<=10) faire # on crée une ligne vide ligne ← [] # et on la remplit grâce à une boucle j ← 0 Tant que (j<=10) faire ligne.ajouter( i * j ) j ← j + 1 Fin Tant que # On place la ligne dans la table table.ajouter(ligne) i ← i + 1 Fin Tant que FIN_ALGORITHME M124 - Algorithmique et informatique – Chapitre 4 : les listes définition Création d’une liste Accès aux données d’une liste Listes multidimensionnelles IV. Listes multidimensionnelles 3) Les limites des listes initialisation laborieuse (boucles imbriquées, liste de listes) ne permettent pas aisément de faire du calcul numérique par exemple du calcul matriciel on se tournera pour cela vers des bibliothèques scientifiques spécialisées (numpy par exemple) Dans le cadre de ce cours, les listes à une dimension suffiront à nos besoins M124 - Algorithmique et informatique – Chapitre 4 : les listes définition fonctions prédéfinies Fonctions personnalisées M124 - Algorithmique et informatique Chapitre 5 : les fonctions Ludovic Grossard Département Mesures Physiques, IUT du Limousin Université de Limoges M124 - Algorithmique et informatique – Chapitre 5 : les fonctions définition fonctions prédéfinies Fonctions personnalisées Plan 1 définition 2 fonctions prédéfinies M124 - Algorithmique et informatique – Chapitre 5 : les fonctions 3 Fonctions personnalisées Écriture en pseudo-code Choix du nom de la fonction Renvoi du résultat Exemple de procédure Exemple de fonction définition fonctions prédéfinies Fonctions personnalisées I. Définition fonction Sous-programme pouvant accepter des paramètres, et pouvant renvoyer un résultat les fonctions permettent de décomposer un problème compliqué en plusieurs problèmes plus simples le programme principal fait appel à des fonctions qui peuvent elles même faire appel à d’autres fonctions M124 - Algorithmique et informatique – Chapitre 5 : les fonctions définition fonctions prédéfinies Fonctions personnalisées II. Fonctions prédéfinies Les différents langages de programmation disposent d’un grand nombre de fonctions prédéfinies. Ces fonctions sont caractérisées par : leur nom . Exemple : sin pour la fonction sinus deux parenthèses , une ouvrante , une fermante : sin() Ces parenthèses sont obligatoires, même si on ne met rien à l’intérieur une liste de paramètres , indispensables au bon fonctionnement de la fonction. Une fonction peut avoir aucun, un ou plusieurs paramètres. Exemple : la fonction sin nécessite un paramètre, l’angle en radians : sin(1.234) M124 - Algorithmique et informatique – Chapitre 5 : les fonctions définition fonctions prédéfinies Fonctions personnalisées II. Fonctions prédéfinies les paramètres des fonctions peuvent être des variables : x ← 1.234 Écrire sin(x) Les fonctions peuvent renvoyer un résultat . Ce peut être un nombre, du texte, une liste, ou tout autre élément géré par le langage de programmation. le résultat peut être utilisé directement, soit placé dans une variable : x ← 1.234 y ← sin(x) Dans ce cas, pour affecter la valeur à y, le programme doit d’abord évaluer la fonction, c’est-à-dire : 1 2 3 lui transmettre le ou les paramètres récupérer le résultat et enfin l’affecter à la variable y M124 - Algorithmique et informatique – Chapitre 5 : les fonctions définition fonctions prédéfinies Fonctions personnalisées II. Fonctions prédéfinies Attention N’utilisez jamais de variables portant le même nom que des fonctions. Exemple Écrire sin(1.234) # fonctionne sin ← 2 # la fonction sin n’existe plus ! Écrire sin # affiche le nombre 2 Écrire sin(x) # provoque une erreur... M124 - Algorithmique et informatique – Chapitre 5 : les fonctions définition fonctions prédéfinies Fonctions personnalisées III. Fonctions personnalisées 1) Écriture en pseudo-code Elles permettent d’étendre un langage de programmation par ajout de nouvelles fonctions. En pseudo-code : Fonction nom_de_la_fonction(paramètres) Corps de la fonction Fin fonction M124 - Algorithmique et informatique – Chapitre 5 : les fonctions définition fonctions prédéfinies Fonctions personnalisées III. Fonctions personnalisées 2) Choix du nom de la fonction le choix du nom est libre, sauf : mots réservés du langage (Si, Alors, Pour. . .) caractères spéciaux ou accentués (caractère de soulignement _ autorisé) nom de fonction prédéfinie, à moins de vouloir les redéfinir On privilégirea les noms de fonction avec des caractères de soulignement (nom_de_la_fonction) plutôt qu’en camelCase (nomDeLaFonction). le nom de la fonction doit indiquer au mieux ce qu’elle fait M124 - Algorithmique et informatique – Chapitre 5 : les fonctions définition fonctions prédéfinies Fonctions personnalisées III. Fonctions personnalisées 3) Renvoi du résultat Lors de l’éxécution du programme, la fonction se termine : dès qu’elle rencontre une instruction retourner ou qu’elle arrive à la fin de la fonction (dans ce cas, elle ne retourne rien) Il peut y avoir plusieurs instructions retourner dans le corps de la fonction. Une fonction ne peut renvoyer au plus qu’un résultat. Si elle ne renvoie rien, on ne parle pas de fonction, mais de procédure M124 - Algorithmique et informatique – Chapitre 5 : les fonctions définition fonctions prédéfinies Fonctions personnalisées III. Fonctions personnalisées 4) Exemple de procédure Pseudo-code d’une procédure qui affiche une table de multiplication : Procédure affiche_table(n) VARIABLES i : entier # compteur i ← 0 Tant que (i <= 10) faire Écrire i , " * " , n , " = " , i*n i ← i + 1 Fin Tant que Fin Procédure M124 - Algorithmique et informatique – Chapitre 5 : les fonctions affiche_table(3) afficherait : 0 * 3 = 0 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 ... 10 * 3 = 30 définition fonctions prédéfinies Fonctions personnalisées III. Fonctions personnalisées 5) Exemple de fonction Fonction qui renvoie le plus grand des deux nombres passés en paramètre Fonction maxi( a , b ) Si (a > b ) Alors Retourner a Sinon Retourner b Fin Si Fin fonction Ecrire maxi( 1.2 , 3.4 ) 3.4 Remarques : une fonction peut contenir plusieurs instructions Retourner ici, l’ordre des paramètres n’a pas d’importance M124 - Algorithmique et informatique – Chapitre 5 : les fonctions définition fonctions prédéfinies Fonctions personnalisées III. Fonctions personnalisées 5) Exemple de fonction FONCTIONS Fonction maxi( a , b ) Si (a > b ) Alors Retourner a Sinon Retourner b Fin Si Fin fonction VARIABLES n1,n2 : nombres réels maximum : réel DEBUT_ALGORITHME Écrire "n1 = " Lire n1 Écrire "n2 = " Lire n2 maximum ← maxi(n1,n2) Écrire "le maximum est : ",maximum FIN_ALGORITHME M124 - Algorithmique et informatique – Chapitre 5 : les fonctions a et b sont des paramètres formels se sont des variables locales à la fonctions, elles n’existent pas en dehors. n1 et n2 sont les paramètres réels n1 est copié dans a, et n2 dans b on pourrait écrire Écrire maxi(n1,n2) sans passer par une variable maximum définition fonctions prédéfinies Fonctions personnalisées III. Fonctions personnalisées 5) Remarques Le programme principal n’a pas besoin de connaître le fonctionnement interne de chaque fonction, Les seuls éléments à connaître sont : les paramètres nécessaires (type, ordre), le type de résultat renvoyé, ces informations doivent se trouver dans la documentation de la fonction, il est indispensable de documenter les fonctions que vous écrivez. M124 - Algorithmique et informatique – Chapitre 5 : les fonctions définition fonctions prédéfinies Fonctions personnalisées III. Fonctions personnalisées 5) Affichage d’une table de fonction FONCTIONS Fonction f( a ) Retourner a * a + 3 Fin fonction VARIABLES x_min, x_max, pas : réels x : réel DEBUT_ALGORITHME # initialisations x_min ← 0 x_max ← 10 pas ← 0.1 # affichage de l’en-tête Écrire "x\tf(x)" x ← x_min Tant que (x < x_max) faire Écrire x , "\t" , f(x) # incrémentation x ← x + pas Fin Tant que FIN_ALGORITHME M124 - Algorithmique et informatique – Chapitre 5 : les fonctions Sortie du programme : x 0 0.1 0.2 ... 9.9 f(x) 3 3.01 3.04 .... 101.01