Initiation à la programmation et algorithmique Introduction 2 Qu’est ce qu’un ordinateur : une machine totalement dénuée d'intelligence capable d’effectuer un grand nombre de tâches Exécute très rapidement et sans erreurs les ordres qu'on lui donne Introduction à la programmation et algorithmique Qu’est-ce qu’un programme ? 3 Assemblage et enchaînement d’instructions élémentaires Écrit dans un langage de programmation Exécuté par un ordinateur afin de traiter les données d’un problème et renvoyer un ou plusieurs résultats Introduction à la programmation et algorithmique Environnement de programmation 4 Programme s’écrit dans un fichier texte On écrit les commandes les unes à la suite des autres Le compilateur vérifie la syntaxe du fichier texte Avaancer au lieu de avancer traduit en langage machine (100101100101001011…) Hélas, il ne détecte pas les bugs !!! Si on fonce dans le mur, il ne nous dit rien ! Introduction à la programmation et algorithmique Environnement de programmation 5 Environnement de programmation dédié Fichier source compilateur Fichier traduit Affichage des Erreurs Introduction à la programmation et algorithmique Programmation 6 Un programme est réalisé dans le but d’effectuer un ensemble de traitements particuliers sur un ensemble de données Définir sous quelle forme les données initiales seront fournies à l’application Définir sous quelle forme les résultats seront communiqués Expliciter les différentes actions à réaliser pour réaliser cette tâche Introduction à la programmation et algorithmique Données et traitements 7 Donnée : valeur stockée variable ou constante Type Traitement : opérations sur les données instructions Données initiales Introduction à la programmation et algorithmique Traitements résultats Analyse du problème 8 Décomposer la tâche Exemple simple : moyenne de 10 notes notes saisies saisie clavier Lire et stocker les données notes Calculer Moyenne Additionner les données notes et stocker donnée somme Introduction à la programmation et algorithmique moyenne affichée Diviser la donnée somme par 10 et stocker la donnée moyenne Afficher la Donnée moyenne affichage écran Sous programme BTS IRIS 1è999re année 9 Sous-programme Diviser pour mieux régner Intérêts : Programmer tâche par tâche Meilleure lisibilité du code Économie de codage et réutilisation Inconvénients : Nécessite de réfléchir en blocs de fonctionnalités Introduction à la programmation et algorithmique Algorithmique 10 OÙ ON APPREND RÉELLEMENT À PROGRAMMER Introduction à la programmation et algorithmique Algorithmique 11 Un peu de vocabulaire… Algorithme : enchaînement des actions (instructions) nécessaires pour résoudre un problème Différentes appellations langage algorithmique pseudo-langage de programmation pseudo-code) Introduction à la programmation et algorithmique Organisation d’un programme 12 Exemple d’un programme : PROGRAMME monProgr /* Constantes: initialisation obligatoire */ CONST const1 <- 10 : entier const2 <- "bonjour!" : chaîne // les variables au sens strict VAR varReel1, varReel2 : réels varChaine : chaîne DEBUT Instruction1 Instruction2 Corps du programme … FIN Introduction à la programmation et algorithmique déclarations Les données 13 OÙ ON SE REND COMPTE QU’UN ORDINATEUR N’EST QU’UNE SUCCESSION DE BOITES ! Introduction à la programmation et algorithmique Les données 14 Données = ensemble des informations manipulées par un programme Les données d'un programme sont mémorisées en mémoire centrale dans des variables (sortes de cases) Introduction à la programmation et algorithmique Notion de variable 15 Une variable possède : une valeur contenue par la case mémoire un identificateur : nom unique par lequel on peut accéder à son contenu un type qui définit la taille de la place occupée Ne pas confondre la variable et son contenu Une variable est un contenant (case ou boîte) Le contenu d'une variable est une valeur numérique, alphanumérique… Introduction à la programmation et algorithmique Variable 16 Une variable (VAR) est donc une « boite » dans laquelle on met une valeur (un nombre, un mot…) qui peux changer (si l’utilisateur modifie la valeur par exemple) Les variables dont la valeur ne change pas au cours de l'exécution du programme sont appelées variables constantes (CONST) Introduction à la programmation et algorithmique Déclaration de variable 17 Déclarer une variable : réserver une place en mémoire attribuer l'identificateur à cette place La déclaration indique : l’identificateur le type Exemple : VAR maVar : réel Introduction à la programmation et algorithmique Types (1) 18 Type caractère lettres, chiffres, ponctuation, code des opérations, espace, retour chariot,… Exemples : ‘a’ ‘+’ ‘.’ Type chaîne de caractère suites de caractères Exemples : « bonjour » « cac40 » Introduction à la programmation et algorithmique Types (2) 19 Type entier les nombres entiers Exemples : 3 45 Type réel les nombres réels Exemples : 3,14 133 37,7 Introduction à la programmation et algorithmique Types (3) 20 Type booléen que deux valeurs possibles soit VRAI, soit FAUX Introduction à la programmation et algorithmique Exemples de variables 21 Identificateur : X Mémoire centrale (mémoire vive) Type : entier Valeur : 25 Identificateur : Y X 25 Y 3,7 Type : réel Valeur : 3,7 Introduction à la programmation et algorithmique Les opérateurs 22 OÙ L’ADDITION DEVIENT COMPLIQUÉE Introduction à la programmation et algorithmique Opérateurs 23 Les opérations possibles sur les variables dépendent de leur type On ne peux pas multiplier des mots… Introduction à la programmation et algorithmique Réels 24 opérations possibles addition soustraction multiplication Division comparaisons Introduction à la programmation et algorithmique symbole ou mot clé + * / <, ≤, >, ≥, =, ≠ Entiers 25 opérations possibles symbole ou mot clé addition soustraction Multiplication Division Division entière Modulo Comparaisons + * / DIV MOD <, ≤, >, ≥, =, ≠ Introduction à la programmation et algorithmique Caractères 26 opérations possibles symbole ou mot clé comparaisons <, ≤, >, ≥, =, ≠ (exemple ‘a’ < ‘z’) Introduction à la programmation et algorithmique Chaînes 27 opérations possibles symbole ou mot clé Concaténation Longueur Extraction & Longueur (chaîne) Extraction (sous-ch, ch) Introduction à la programmation et algorithmique Booléens 28 opérations possibles symbole ou mot clé comparaison négation conjonction disjonction =, ≠ NON ET OU Introduction à la programmation et algorithmique Rappel 29 PROGRAMME monProgr /* Constantes: initialisation obligatoire */ CONST const1 <- 10 : entier const2 <- "bonjour!" : chaîne // les variables au sens strict VAR varReel1, varReel2 : réels varChaine : chaîne DEBUT Instruction1 Instruction2 … FIN Corps du programme Introduction à la programmation et algorithmique déclarations Les instructions 30 Introduction à la programmation et algorithmique Instructions 31 Instruction = ordre que peut exécuter l'ordinateur exécution d'un programme : Échanges d'informations en mémoire Calculs Affichage des résultats Introduction à la programmation et algorithmique Informations 32 Les informations manipulées par les instructions peuvent prendre plusieurs formes: des variables des constantes des valeurs littérales ("bonjour", 45, VRAI) des expressions complexes : combinaisons de variables, constantes et valeurs littérales avec des opérateurs (2 * r * 3.14) Introduction à la programmation et algorithmique Les instructions élémentaires 33 Affectation : le fait de donner une nouvelle valeur à une variable (mettre un nombre dans une boite) Saisir : Permet à l’ordinateur de récupérer ce que l’utilisateur tape au clavier afficher : Permet à l’ordinateur d’afficher sur l'écran ce qu’on veux (le résultat d’un calcul, une variable…) Introduction à la programmation et algorithmique L’ affectation 34 Syntaxe : Variable <- Valeur Valeur évaluée à partir d’une expression : Variable (le contenu d’une autre boite…) Constante (une valeur fixe : PI…) valeur littérale (3 6 5.12…) expressions complexes (un calcul…) Introduction à la programmation et algorithmique Exemples 35 X <- Y X <- 25 X <- 3,3 C <- ‘a’ maChaine <- «bonjour» B <- VRAI X <- 25 + Y + 3 Introduction à la programmation et algorithmique Différence avec le = mathématiques 36 Quand on dit qu'une variable prend pour valeur une autre variable, ça ne veut pas dire qu'elles seront toujours égales ! Cela veut seulement dire que la première variable va prendre la valeur de la seconde Le contenu de la première boite sera le même celui de la seconde boite… Mais si on modifie le contenu de la seconde boite après, ça n’a pas d’impact sur le contenu de la première boite ! Introduction à la programmation et algorithmique Exemples 37 Algo : Maths : Algo : Maths : Algo : Maths : x <- y x = y différend de y <- x équivaut à y = x x + 12 <- y x + 12 = y impossible ! a un sens x <- x + 7 x = x + 7 a un sens impossible Introduction à la programmation et algorithmique La saisie 38 Syntaxe : Saisir variable1 [,variableN]* Permet à un utilisateur de communiquer des données au programme Assigne une valeur entrée au clavier dans une variable Tant que l'utilisateur n'entre rien au clavier, le déroulement du programme est stoppé Introduction à la programmation et algorithmique Exemples 39 Saisir x Saisir x, y Saisir a, b, c, d, e, f Introduction à la programmation et algorithmique Avantages 40 Utiliser le même programme pour des données différentes Sans instruction de saisie (ou de lecture sur un périphérique quelconque), un programme fournirait toujours le même résultat Introduction à la programmation et algorithmique Pièges 41 Saisir une valeur ne correspondant pas au type de la variable où elle doit être stockée Essayer de mettre un mot dans une variable de type texte L’utilisateur peut penser que le programme s’est arrêté Si il n’y a rien d’affiché, l’utilisateur ne voit qu’un curseur clignotant… Introduction à la programmation et algorithmique L’affichage 42 Syntaxe : Afficher variable1 [, variableN]* L'instruction d'affichage permet de fournir des résultats à l'utilisateur à travers l'écran Introduction à la programmation et algorithmique Exemples 43 Afficher x Afficher «bonjour» Afficher x, y, z Afficher x + y Afficher «le résultat de x + y est : », x + y On peut afficher plusieurs trucs à la suite grâce à la virgule ! Introduction à la programmation et algorithmique Avantages 44 Permet de fournir un résultat Permet de guider l’utilisateur Permet d’afficher des valeurs intermédiaires Permet de débuguer Introduction à la programmation et algorithmique Exemple complet 45 PROGRAMME bonjour CONST bj <- «Bonjour» : chaîne mr <- «Monsieur » : chaîne VAR varNom, ch : chaîne DEBUT Afficher «Quel est votre nom ?» Saisir varNom ch <- mr & varNom Afficher bj, ch FIN Introduction à la programmation et algorithmique Synthèse Cours 1 46 Introduction à la programmation et algorithmique 47 Réaliser un algorithme : exprimer en pseudo- code les règles de traitement d’un problème pour le soumettre à un ordinateur (par un programme) Les données d’un programme sont mémorisées dans des variables qui sont des cases mémoire Les instructions permettent de manipuler et de déplacer une donnée d'un endroit à un autre de la mémoire Introduction à la programmation et algorithmique 48 Une variable est un contenant, qui contient une et une seule valeur à un moment donné. Elle est caractérisée par un identificateur (son nom) une valeur (qui peut varier au cours du programme, sauf pour les constantes) un type (qui détermine sa taille et les opérations possibles) Les instructions de base sont : l'affectation (permet de changer la valeur d'une variable) la saisie (permet d'assigner à une variable, une valeur entrée au clavier) l'affichage (permet d'écrire le contenu d'une variable ou d'une expression à l'écran) Introduction à la programmation et algorithmique Initiation à la programmation et algorithmique 49 cours 2 Introduction à la programmation et algorithmique 50 Plan Données Opérateurs Les instructions Tableaux Sous-programme Types structurés Introduction à la programmation et algorithmique 51 3 Instructions (suite) Introduction à la programmation et algorithmique Introduction 3 Instructions (suite) 52 En algorithmique comme en programmation : l'ordre des instructions est primordial Le processeur exécute les instructions dans l'ordre dans lequel elles apparaissent dans le programme L’exécution est séquentielle : une fois que le programme a fini une instruction, il passe à la suivante Tant qu'une instruction n'est pas terminée, il attend avant de continuer (Exemple : Saisir) Introduction à la programmation et algorithmique Introduction 3 Instructions (suite) 53 Il peut-être nécessaire pour résoudre un problème de n'exécuter les instructions que sous certaines conditions de recommencer plusieurs fois les mêmes instructions Il existe des instructions particulières appelées structures de contrôle qui le permettent : instructions conditionnelles : exécuter certaines instructions uniquement sous certaines conditions instructions répétitives (boucles) : répéter des instructions un certain nombre de fois (sous certaines conditions) Introduction à la programmation et algorithmique 54 Les instructions conditionnelles Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Instructions conditionnelles 55 Permettent d'exécuter des instructions différentes en fonction de certaines conditions Une condition (expression conditionnelle ou booléenne) est évaluée, elle est : soit vrai soit fausse Selon le résultat, les instructions à réaliser ne sont pas les mêmes 3 types principaux : instruction conditionnelle au sens strict : Si … Alors instruction alternative : Si … Alors … Sinon instruction conditionnelle multiple : Selon … Faire Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Instruction conditionnelle stricte 56 Permet d'exécuter une ou plusieurs instructions si une condition est respectée et ne rien faire si la condition est fausse ► Une instruction : Si <condition> Alors <instruction> Introduction à la programmation et algorithmique ► Bloc instruction : Si <condition> Alors <instruction1> <instruction2> <instruction3> Finsi 3 Instructions : les instructions conditionnelles Exécution 57 Expression testée Si vrai Si faux Bloc d’instructions à exécuter Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Exemple 58 PROGRAMME vote CONST majorite <- 18 : entier VAR age : entier DEBUT Afficher «quel est votre age ?» Saisir age Si age ≥ majorite Alors Afficher «Vous avez le droit de voter» Afficher «vous etes majeur depuis : », age–18, « ans » Finsi FIN Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Instruction alternative 59 Permet de choisir entre deux actions, suivant une condition L’instruction alternative va permettre d'effectuer des choix Si <condition> Alors <instruction1> <instruction2> Sinon <instruction3> <instruction4> Finsi Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Exécution 60 Expression testée Si vrai Si faux Bloc d’instructions à exécuter Introduction à la programmation et algorithmique Bloc d’instructions à exécuter 3 Instructions : les instructions conditionnelles Exemple 61 PROGRAMME vote CONST majorite <- 18 : entier VAR age : entier DEBUT Afficher «quel est votre age ?» Saisir age Si age ≥ majorite Alors Afficher «Vous avez le droit de voter» Afficher «vous etes majeur depuis : », age – 18 , « ans» Sinon Afficher «Vous n’avez pas le droit de voter» Finsi FIN Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Exemple 62 PROGRAMME vote CONST majorite <- 18 : entier VAR age : entier DEBUT Afficher «quel est votre age ?» Saisir age Si age ≥ majorite Alors Afficher «Vous avez le droit de voter» Afficher «vous etes majeur depuis : », age – 18, « ans» Sinon Afficher «Vous n’avez pas le droit de voter» Afficher «vous devez attendre : », 18 - age , « ans» Finsi FIN Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Expression conditionnelle 63 Expression conditionnelle (ou expression booléenne) est : soit VRAI soit FAUX Mais plusieurs types : Condition simple Condition complexe Variable booléenne Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Condition simple 64 Une condition simple est une comparaison de deux expressions de même type Symboles de comparaison : < , > , = , ≤ , ≥, ≠ Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Exemples 65 Si c = ‘a’ Alors Afficher «le caractere est a» Si r = 3,3 * x Alors Afficher « l’expression est vrai » Si (x – 3 + y) * a ≤ z – 2 + b / 3 Alors Afficher « l’expression est vrai » Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Condition complexe 66 Une condition complexe est une comparaison formées de plusieurs conditions simples ou variables booléennes reliées entre elles par les opérateurs logiques opérateurs logiques : ET, OU, NON Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Exemples 67 Si (c1 = ‘a’) ET (c2 = ‘a’) Alors Afficher «les caracteres sont a» Si (r = 3,3 * x) OU (r = 3,3 * y) Alors Afficher «une expression est vrai» Si (((x – 3 ) * a) ET (z + b / 3)) OU c < 2 Alors Afficher «le tout est vrai» Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Variable booléenne 68 Une variable booléenne, comme une expression conditionnelle, est : soit vraie Soit fausse On peut donc mettre une variable booléenne à la place d’une expression conditionnelle Les variables booléennes et les expressions conditionnelles sont équivalentes Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles PROGRAMME id VAR nom : chaine age : entier sexe, repEx : caractère homme, exempte : booleen Exemple 69 DEBUT Afficher «quel est votre sexe ? (H/F)» Saisir sexe homme <- sexe = ‘H’ Afficher «quel est votre age ?» Saisir age Afficher «quel est votre nom ?» Saisir nom Si homme Alors Afficher «etes-vous exempte de service militaire ? (O/N)» Saisir repEx exempte <- repEx = ‘O’ Finsi FIN Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Instructions conditionnelles imbriquées 70 Exemple : Si (x < 0) Alors Afficher «x negatif» Sinon Si (x < 10) Alors Afficher «x unite» Sinon Si (x < 20) Alors Afficher «x dizaine» Sinon Afficher «x ≥ 20» Finsi Finsi Finsi Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Instruction conditionnelle multiple 71 Permet de choisir les instructions à effectuer en fonction de la valeur (ou de l'intervalle de valeur) d'une variable ou d'une expression Permet de remplacer une succession d’instructions Si … Alors Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Syntaxe 72 Selon expression Faire valeur 1 : bloc d’instructions 1 valeur 2 : bloc d’instructions 2 valeur 3 : bloc d’instructions 3 … [Sinon instructions par défaut] Finselon Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Exécution 73 Évaluer expression Tester Si vrai expression = valeur 1 Si faux Tester Si vrai expression = valeur 2 Si faux Tester Si vrai expression = valeur 3 Si faux Bloc instructions par défaut Introduction à la programmation et algorithmique Bloc instructions 1 Bloc instructions 2 Bloc instructions 3 3 Instructions : les instructions conditionnelles Exemples 74 Selon mois Faire 1 : Afficher "Janvier" 2 : Afficher "Février" 3 : Afficher "Mars" 4 : Afficher "Avril" … 11: Afficher "Novembre" 12: Afficher "Décembre" Sinon Afficher "Un numéro de mois doit être compris entre 1 et 12" Finselon Introduction à la programmation et algorithmique 3 Instructions : les instructions conditionnelles Exemples 75 Selon montant Faire <1000 : taux <- 1,0 ≥1000 ET < 3000: taux <- 2,0 ≥3000 ET < 10000: taux <- 3,0 ≥ 10000: taux <- 4,0 FinSelon montant <- montant * ( 1,0 – taux / 100,0) Introduction à la programmation et algorithmique 76 Les instructions répétitives (les boucles) Introduction à la programmation et algorithmique 3 Instructions : les boucles Instructions répétitives (boucles) 77 Permettent de répéter une instruction (ou un bloc) autant de fois qu'il est nécessaire : soit tant qu'une condition est vraie soit un nombre déterminé de fois 3 grands types : Tant que … Faire : si condition répète Pour : répète n fois Répéter … Jusqu'à : répète jusqu’à condition Introduction à la programmation et algorithmique Boucle Tant que 3 Instructions : les boucles 78 la boucle Tant que est fondamentale avec cette boucle, on peut réaliser toutes les autres boucles permet d'effectuer un bloc d’instructions tant qu'une condition est satisfaite Syntaxe : Tant que <condition> Faire <instruction> FinTantque Introduction à la programmation et algorithmique Exécution 3 Instructions : les boucles 79 Bloc d’instructions De la boucle Expression testée Si faux Introduction à la programmation et algorithmique Si vrai Exemples PROGRAMME gestion VAR 3 Instructions : les boucles 80 budget, depense : entier DEBUT Afficher « quel est le budget de depart ? » Saisir budget Tant que budget > 0 Faire Afficher « vous ne pouvez pas depenser plus de », budget Afficher « montant de la depense ? » Saisir depense budget <- budget – depense FinTantque Afficher « le budget a ete depasse de: », budget * (-1) FIN Introduction à la programmation et algorithmique Boucle Pour 3 Instructions : les boucles 81 permet de répéter un bloc d’instructions un certain nombre de fois permet de simplifier la boucle Tantque lorsque le nombre de « tour » de boucle est connu d’avance Syntaxe : Pour <cpt> de <val init> à <val fin> [pas de <incrément>] Faire <bloc instructions> FinPour Introduction à la programmation et algorithmique Exécution 3 Instructions : les boucles 82 Instruction initialisation Compteur <- valeur initiale Instruction incrémentation Compteur <- compteur + incrément Bloc d’instructions de la boucle Expression Testée Compteur ≠ val finale Si faux Introduction à la programmation et algorithmique Si vrai Exemples 83 Programme table3 Var x : entier Début Pour x de 1 à 10 pas de 1 Faire Afficher x, " * 3 = ", x * 3 FinPour Fin Introduction à la programmation et algorithmique 3 Instructions : les boucles Boucle Répéter 3 Instructions : les boucles 84 permet de répéter un bloc d’instructions jusqu'à ce qu'une condition soit satisfaite moins utilisée Syntaxe : Répéter <instructions> Jusqu'à <condition> Introduction à la programmation et algorithmique 3 Instructions : les boucles Exécution 85 Bloc d’instructions de la boucle Expression testée Si faux Introduction à la programmation et algorithmique Si vrai Exemples Programme carre Var 3 Instructions : les boucles 86 x, res : entier rep : caractère Début Répéter Afficher « Entrez un entier : » Saisir x Afficher x, « au carré = », x * x Afficher «voulez-vous continuez ? (O/N)» Saisir rep Jusqu’à rep = ‘N’ Afficher « au revoir » Fin Introduction à la programmation et algorithmique Exemples Programme exposant Var 87 x, n, res : entier rep : caractère Début Aff « Entrez un entier : » Saisir x res <- x n <- 1 Répéter res <- res * res n <- n + 1 Afficher x, « puissance », n, « = », res Afficher «voulez-vous continuez ? (O/N)» Saisir rep Jusqu’à rep = ‘N’ Afficher « au revoir » Fin Introduction à la programmation et algorithmique 3 Instructions : les boucles Initiation à la programmation et algorithmique 88 cours 3 Introduction à la programmation et algorithmique 89 Plan Données Opérateurs Les instructions Tableaux Sous-programme Types structurés Introduction à la programmation et algorithmique 90 4 Tableaux Introduction à la programmation et algorithmique Introduction 4 Tableaux 91 Saisir la liste des 10 notes sur 30 16 23 8 19 28 20 18 14 10 9 Voici la liste de ces notes sur 20 10.67 15.33 5.33 12.67 18.67 13.33 12 9.33 6.67 6 ► Utilisation d'un tableau : ► 10 variables différentes Nom commun pour toutes les variables ► même traitement effectué 10 fois sur des repérées par un numéro variables Déclarerdifférentes toutes les variables d'un seul coup Utiliser une boucle faisant varier le numéro des variables Introduction à la programmation et algorithmique 4 Tableaux 92 Définition Un tableau est une suite séquentielle de cellules en mémoire, chacune d’elles contenant des données de même type La taille d’un tableau doit être connue dès sa déclaration Chaque cellule sera identifiée par le rang qu’elle occupe dans le tableau Chaîne = tableau de caractère Introduction à la programmation et algorithmique Déclaration de tableau 4 Tableaux 93 nomTab: tableau [indice_minimum .. indice_maximum] de type Exemples : notes: tableau [1..10] de réels noms: tableau [1..4] de chaînes Introduction à la programmation et algorithmique 4 Tableaux Représentation 94 noms: tableau [1..4] de chaînes noms Cellule de rang 1 Cellule de rang 2 Cellule de rang 3 Cellule de rang 4 Introduction à la programmation et algorithmique Taille 4 Tableaux 95 En règle générale, l'indice minimum vaut 0 Mais on peut aussi utiliser un autre indice minimum, comme 1 Si indice minimum = 1 : taille = indice maximum Si Indice minimum = 0 : taille = indice maximum + 1 Introduction à la programmation et algorithmique Variables indicées 4 Tableaux 96 Un tableau est une variable contenant d’autres variables liées entre elles Les éléments d'un tableau s'utilisent comme n'importe quelles autres variables classiques elles peuvent : faire l'objet d'une affectation figurer dans une expression arithmétique ou comparaison être affichées et saisies … Introduction à la programmation et algorithmique Manipulation 4 Tableaux 97 Pour désigner un élément, on indique le nom du tableau suivi de son indice entre crochets: noms[1] L'indice d'un élément peut être: directement une valeur : noms[2] une variable : noms[i] une expression entière : noms[k+1] avec k de type entier Quelque soit sa forme, la valeur de l'indice doit être : entière comprise entre les valeurs minimales et maximales déterminées à la déclaration du tableau Introduction à la programmation et algorithmique Manipulation 4 Tableaux 98 Le fait que les variables soient indicées permet d’utiliser une boucle pour parcourir l’ensemble des éléments d’un tableau On utilise une variable qui sert d'indice et s'incrémente à chaque tour de boucle On utilise généralement la boucle Pour Introduction à la programmation et algorithmique Exemple 4 Tableaux 99 PROGRAMME conv_note VAR note: tableau[1..10] de réels i: entier DEBUT Afficher "Saisir la liste des 10 notes sur 30" Pour i de 1 à 10 Faire Saisir note[i] FinPour Afficher "Voici la liste de ces notes sur 20" Pour i de 1 à 10 Faire Afficher note[i]*2/3 FinPour FIN Introduction à la programmation et algorithmique Pièges 4 Tableaux 100 Confondre l’indice et la valeur Oublier d’initialiser le tableau : variables indéfinies Utiliser les mêmes indices sur plusieurs tableaux Introduction à la programmation et algorithmique Tableau à plusieurs dimensions 4 Tableaux 101 Un tableau à plusieurs dimensions est un tableau de tableaux Permet de garder en mémoire des variables liées entre elles et organisées par suite Les variables d’un tableau à plusieurs dimensions ont toutes le même type Introduction à la programmation et algorithmique Déclaration 4 Tableaux 102 nomTab: tableau [min1..max1] … [min2..max2] de type Exemples : matrice: tableau [1..4][1..4] de entier note: tableau [1..5][1..10] de réel t3D : tableau [1..5][1..10][1..30] de réel Introduction à la programmation et algorithmique Taille 4 Tableaux 103 La taille d’un tableau à plusieurs dimensions est : Taille = max1 * max2 Introduction à la programmation et algorithmique Manipulation 4 Tableaux 104 Pour désigner un élément, on indique le nom du tableau suivi de ses indices entre crochets: notes[1][2] On utilise généralement des boucles imbriquées pour parcourir l’ensemble des éléments d’un tableau Introduction à la programmation et algorithmique 4 Tableaux Représentation 105 matrice: tableau [1..4][1..4] de réel matrice Introduction à la programmation et algorithmique matrice[1][1] matrice[1][2] matrice[1][3] matrice[1][4] matrice[2][1] matrice[2][2] matrice[2][3] matrice[2][4] matrice[3][1] matrice[3][2] matrice[3][3] matrice[3][4] matrice[4][1] matrice[4][2] matrice[4][3] matrice[4][4] 4 Tableaux Représentation 106 matrice: tableau [1..4][1..4] de réel 1 2 3 4 1 matrice[1][1] matrice[1][2] matrice[1][3] matrice[1][4] 2 matrice[2][1] matrice[2][2] matrice[2][3] matrice[2][4] 3 matrice[3][1] matrice[3][2] matrice[3][3] matrice[3][4] 4 matrice[4][1] matrice[4][2] matrice[4][3] matrice[4][4] Introduction à la programmation et algorithmique Exemple 4 Tableaux 107 Programme conv_note Var note: tableau[1..5][1..10] de réels i, k : entier Début Pour i de 1 à 5 Faire Afficher «Saisir la liste des notes /30 de la matière », i Pour k de 1 à 10 Faire Saisir note[i][k] FinPour FinPour Pour i de 1 à 5 Faire Afficher «Voici la liste des notes sur 20 de la matière » ,i Pour k de 1 à 10 Faire Afficher note[i][k]*2/3 FinPour FinPour Fin Introduction à la programmation et algorithmique Initiation à la programmation et algorithmique 108 cours 4 Introduction à la programmation et algorithmique Synthèse tableaux 109 Un tableau est une structure de donnée permettant de mémoriser des valeurs de même type Chaque élément d'un tableau est repéré par un indice indiquant sa position La taille d'un tableau est le nombre de ses éléments La taille d'un tableau est fixe Les indices doivent obligatoirement être entiers et varier entre une valeur minimale ( en général 0) et une valeur maximale constantes Chaque élément du tableau est une variable indicée, identifiée par le nom du tableau suivi de l'indice entre crochets. Les variables indicées s'utilisent comme des variables classiques Déclaration tab1: tableau[1..10] d'entier tab2: tableau[1..10] [1..5] de réel Introduction à la programmation et algorithmique 110 Plan Données Opérateurs Les instructions Tableaux Sous-programme Types structurés Introduction à la programmation et algorithmique 111 5 Sous-programmes Introduction à la programmation et algorithmique Introduction 5 Sous-programme 112 Sous-programme = traitement particulier appelé à s’exécuter à l'intérieur d'un autre programme Utilisation : quand un même traitement doit être réalisé plusieurs fois dans un programme. On écrit un sousprogramme pour ce traitement et on l'appelle à chaque endroit où l'on en a besoin pour organiser le code , améliorer la conception et la lisibilité des gros programmes Il existe des sous-programmes prédéfinis pouvant être utilisés directement dans n'importe quel programme : les librairies Introduction à la programmation et algorithmique 5 Sous-programme Sous programme Programme d’identification 113 ******************* ################### ******************* Veuillez saisir votre nom durand Veuillez saisir votre prenom alain ******************* ################### ******************* veuillez saisir votre annee de naissance 1943 ******************* ################### ******************* Introduction à la programmation et algorithmique 5 Sous-programme Sous programme 114 Programme Afficher titre Afficher ligne étoiles Sous-programme Programme lignes identification Afficher ligne dièses Afficher ligne étoiles Afficher Demande nom Saisir nom Afficher Demande prénom Saisir prénom Afficher ligne étoiles Afficher ligne dièses Afficher ligne étoiles Afficher Demande Année nais. Saisir Année nais. Introduction à la programmation et algorithmique Afficher ligne étoiles Afficher ligne dièses Afficher ligne étoiles 5 Sous-programme Sous programme 115 Sous-programme Afficher Ligne étoiles Introduction à la programmation et algorithmique Sous-programme Programme lignes identification Afficher Ligne dièses Afficher Ligne étoiles 5 Sous-programme Sous programme 116 Programme Sous-programme Programme lignes identification identification Programme appelant Afficher titre Appel Lignes Afficher Demande nom Saisir nom Introduction à la programmation et algorithmique Afficher Demande prénom Saisir prénom Appel Lignes Afficher Saisir Appel Demande Année nais. Lignes Année nais. 5 Sous-programme Fonctions 117 et procédures 2 sortes de sous-programmes : les fonctions les procédures L'appel d'une fonction est une expression, tandis que l'appel d'une procédure est une instruction : une fonction renvoie un résultat une procédure ne renvoie rien Introduction à la programmation et algorithmique 5 Sous-programme : les procédures Procédures 118 Une procédure est un ensemble d'instructions regroupées sous un nom, qui réalise un traitement particulier dans un programme lorsqu'on l'appelle Comme un programme, une procédure possède un nom des variables des instructions un début une fin Introduction à la programmation et algorithmique 5 Sous-programme : les procédures Syntaxe définition 119 DEFINITION d'une procédure : Procédure maProcedure( ) //déclaration des variables Var var1 : entier Début /* instructions 1 instructions 2 */ FinProc Introduction à la programmation et algorithmique En-tête Corps Exemple 5 Sous-programme : les procédures 120 Procédure lignes( ) Var etoile, diese : chaine Début etoile <- «*******************» diese <- «###################» Afficher etoile Afficher diese Afficher etoile FinProc Introduction à la programmation et algorithmique 5 Sous-programme : les procédures Appel d’une procédure 121 Pour déclencher l'exécution d'une procédure dans un programme, il suffit de l'appeler : indiquer son nom suivi de parenthèses PROGRAMME monProgr VAR varEntier1 : entier varChaine : chaîne DEBUT /*instuctions*/ maProcedure() /*instuctions*/ FIN Introduction à la programmation et algorithmique Exemple 5 Sous-programme : les procédures 122 Programme id Var nom, prenom: chaine anneeNaissance : entier Début Afficher « Programme d’identification » lignes() Afficher « veuillez saisir votre nom » Saisir nom Afficher « veuillez saisir votre prenom » Saisir prenom lignes() Afficher « veuillez saisir votre annee de naissance » Saisir anneeNaissance lignes() Fin Introduction à la programmation et algorithmique 5 Sous-programme : les procédures Exécution 123 Appel d'une procédure 1. 2. 3. arrêt momentané de l'exécution du programme appelant Exécution des instructions de la procédure Reprise de l’exécution du programme appelant là où il s'était arrêté (instruction suivant l’appel) Une procédure peut être appelée soit par un programme, soit par un autre sous-programme (qui lui même a été appelé) Les appels de sous-programmes peuvent s'imbriquer autant de fois que cela est utile Introduction à la programmation et algorithmique Exécution 124 Programme d’identification ******************* ################### ******************* Veuillez saisir votre nom durand Veuillez saisir votre prenom alain ******************* ################### ******************* veuillez saisir votre annee de naissance 1943 ******************* ################### ******************* Programme id Var nom, prenom: chaine anneeNaissance : entier Début Afficher « Programme d’identification » ligneEtoile () Afficher « veuillez saisir votre nom » etoile <- «**********» Saisir nom diese <- «##########» Afficher « veuillez saisir votre prenom » Afficher etoile Saisir prenom Afficher diese ligneEtoile () etoile <-etoile «**********» Afficher Afficher « veuillez saisir votre annee de naissance » diese <- «##########» Saisir anneeNaissance Afficher etoile ligneEtoile () Afficher etoile <-diese «**********» Fin Afficher etoile diese <- «##########» Afficher etoile Afficher diese Afficher etoile Introduction à la programmation et algorithmique 5 Sous-programme : les procédures Variables locales 125 Les variables déclarées dans une procédure ne sont pas utilisables dans le programme appelant Les variables déclarées dans le programme appelant ne sont pas utilisables dans les procédures Chaque programme et sous-programme a son propre espace de variables, inaccessible par les autres les variables sont dites LOCALES Il peut exister des variables globales, mais leur usage est déconseillé (et donc sanctionné) Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Paramètre 126 Comment sous-programmes et programmes vont pouvoir communiquer des données ? Grâce aux paramètres Grâce aux messages Grace au réseau … Un paramètre est une variable particulière qui sert à la communication entre programme appelant et sous-programme. Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Paramètre 127 Un paramètre est une variable particulière qui sert à la communication entre programme appelant et sous-programme. Elle a un nom et un type Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Syntaxe définition 128 DEFINITION d'une procédure avec paramètre : Procédure maProcedure(donnée monParamètre : entier) //déclaration des variables locales Var var1 : entier Paramètre formel Début /* instructions avec monParamètre instructions avec var1 */ FinProc Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Exemple 129 Procédure lignes(donnée nbColonnes : entier) Var cpt : entier Début Pour cpt de 1 à nbColonnes Faire Afficher '*' FinPour Pour cpt de 1 à nbColonnes Faire Afficher ‘#' FinPour Pour cpt de 1 à nbColonnes Faire Afficher '*' FinPour FinProc Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Appel avec paramètre 130 Pour appeler une procédure avec un paramètre, il faut mettre la valeur du paramètre entre parenthèse PROGRAMME monProgr VAR varEntier1 : entier varChaine : chaîne DEBUT /*instuctions*/ maProcedure(varEntier1) maProcedure(3) /*instuctions*/ FIN Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Exemple 131 ************************************** ###################################### ************************************** Programme d’identification ******************* ################### ******************* Veuillez saisir votre nom durand Veuillez saisir votre prenom alain ******************* ################### ******************* veuillez saisir votre annee de naissance 1943 ************************************** ###################################### ************************************** Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Programme appelant 132 Programme id Const largeur <- 20 : entier Var nom, prenom: chaine anneeNaissance : entier Début lignes(largeur * 2, 255,0,0) Afficher « Programme d’identification » lignes(largeur, 255,255,255) Afficher « veuillez saisir votre nom » Saisir nom Afficher « veuillez saisir votre prenom » Saisir prenom lignes(largeur, 255,255,255) Afficher « veuillez saisir votre annee de naissance » Saisir anneeNaissance lignes(largeur * 2, 255,0,0) Fin Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Paramètre tableau 133 Procédure affTab(donnée tab : tableau[1..10] de réels) Var i : entier Début Pour i de 1 jusqu'à 10 Faire Afficher tab[i] FinPour FinProc Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Paramètre tableau 134 Programme tableau Var monTab : tableau[1..10] de réels i : entier Début Afficher « Saisir 10 réels » Pour i de 1 jusqu'à 10 Faire Saisir monTab[i] FinPour Afficher « les valeurs saisies sont » affTab(monTab) Fin Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Plusieurs paramètres 135 Une procédure peut avoir plusieurs paramètres : Procédure maProcedure(donnée Par1 : entier, par2 : réel) Le nombre et l’ordre des paramètres à l'appel doit être exactement le même maProcedure(varE, varR) Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Exemple : définition 136 Procédure lignes(donnée nbetoiles, nbDiese : entier) Var cpt : entier Début Pour cpt de 1 jusqu'à nbetoiles Faire Afficher '*' FinPour Pour cpt de 1 jusqu'à nbDiese Faire Afficher ‘#' FinPour Pour cpt de 1 jusqu'à nbetoiles Faire Afficher '*' FinPour FinProc Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Exemple 137 ************************************** ################### ************************************** Programme d’identification ******************* ################### ******************* Veuillez saisir votre nom durand Veuillez saisir votre prenom alain ******************* ################### ******************* veuillez saisir votre annee de naissance 1943 ************************************** ################### ************************************** Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Exemple : programme appelant 138 Programme id Const largeur <- 10 : entier Var nom, prenom: chaine naissance : entier Début lignes(largeur * 2, largeur) Afficher « Programme d’identification » lignes(largeur, largeur) Afficher « veuillez saisir votre nom » Saisir nom Afficher « veuillez saisir votre prenom » Saisir prenom lignes(largeur , largeur) Afficher « veuillez saisir votre annee de naissance » Saisir naissance lignes(largeur * 2 , largeur) Fin Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Fonctionnement 139 Lors de l'appel de la procédure, la valeur du paramètre effectif passée en argument est copiée dans le paramètre formel (qui est une variable locale) La procédure effectue alors le traitement avec la variable La procédure n'utilise pas directement la variable mise en paramètre effectif : elle utilise sa valeur, qu'elle a recopiée dans sa propre variable locale (le paramètre formel) Introduction à la programmation et algorithmique Pièges 5 Sous-programme : les paramètres 140 Il est primordial de bien distinguer : les paramètres formels qui se trouvent dans l'en-tête d'une procédure lors de sa définition et les paramètres effectifs (ou arguments) qui sont placés entre parenthèses lors de l'appel Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Paramètres formels 141 placés dans la définition d'une procédure servent à décrire le traitement à réaliser par la procédure indépendamment des valeurs traitées Ce sont des variables locales à la procédure ils sont déclarés dans l'entête de la procédure Introduction à la programmation et algorithmique 5 Sous-programme : les paramètres Paramètres effectifs 142 placés dans l'appel d'une procédure Lors de l'appel, leur valeur est recopiée dans les paramètres formels correspondants Un paramètre effectif en donnée peut être soit une variable du programme appelant (nomVar) soit une valeur littérale (3) soit le résultat d'une expression (5 * x) Introduction à la programmation et algorithmique 5 Sous-programme : les fonctions Les Fonctions 143 Une fonction est un ensemble d'instructions regroupées sous un nom, qui réalise un traitement particulier dans un programme lorsqu'on l'appelle et retourne un résultat au programme appelant Comme un programme et une procédure, une fonction possède : un nom des variables des instructions un début une fin Introduction à la programmation et algorithmique 5 Sous-programme : les fonctions Les Fonctions 144 Sous-programmes retournant un et un seul résultat au programme appelant Les fonctions sont appelées pour récupérer une valeur (alors que les procédures ne renvoient aucune valeur) L'appel des fonctions est différent de l'appel des procédures : L'appel d'une fonction doit obligatoirement se trouver à l'intérieur d'une instruction qui utilise sa valeur Le résultat d'une fonction doit obligatoirement être retourné au programme appelant par l'instruction Retourne Introduction à la programmation et algorithmique 5 Sous-programme : les fonctions Syntaxe définition 145 DEFINITION d'une fonction : Fonction maFonction(/*paramètres*/) : type //déclaration des variables Var maVar : entier Début Corps /*instructions*/ Retourne maVar 5 * maVar Retourne valeur 15 FinFonction Introduction à la programmation et algorithmique En-tête Exemple 5 Sous-programme : les fonctions 146 FONCTION calSomN (Donnée e : entier) : entier VAR res, i : entier DEBUT res <- 0 Si e > 0 alors Pour i de 1 à e Faire res <- res + i FinPour Finsi Retourne Res FINFONCTION Instruction de retour Introduction à la programmation et algorithmique 5 Sous-programme : les fonctions Appel de fonction 147 PROGRAMME monProgr VAR varE, varR : entier varChaine : chaîne DEBUT /*instuctions*/ varR <- maFonction(varE) varR <- maFonction(5) varR <- maFonction(3 * varE) /*instuctions*/ FIN Introduction à la programmation et algorithmique Exemple 5 Sous-programme : les fonctions 148 Programme sommesDesN1erEntiers Var x, somme : entier rep : caractère Début Répéter Afficher « Entrez un entier > 0 » Saisir x somme <- calSomN (x) Afficher «la somme des », x, « 1er entiers est », somme Afficher «voulez-vous continuez ? (O/N)» Saisir rep Jusqu’à rep = ‘N’ Afficher « au revoir » Fin Introduction à la programmation et algorithmique