FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Algorithmique et programmation: premiers concepts de langage FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Section 1 Premières notions Algorithme FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Définition Un algorithme est un processus comportant certaines règles à suivre pour obtenir une résolution d’un problème donné Exemple algorithme de résolution d’un système linéaire (méthode du pivot de Gauss) algorithme de sortie d’un labyrinthe (virages à droite) algorithmes de tris (ordonner un ensemble de données) Définition L’algorithmique est l’ensemble des règles et des techniques qui sont impliquées dans la définition et la conception d’algorithmes Pseudo-code FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Un algorithme se rédige normalement sans langage de programmation : il doit être compris de n’importe quel lecteur. Une telle rédaction indépendante d’un langage de programmation s’appelle le pseudo-code. Pseudo-code FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Un algorithme se rédige normalement sans langage de programmation : il doit être compris de n’importe quel lecteur. Une telle rédaction indépendante d’un langage de programmation s’appelle le pseudo-code. Algorithme: Cet algorithme compte le nombre de groupes de trois occurrences consécutives égales dans Liste_Donnees Entrée: une liste d’éléments notée Liste_Donnees Sortie: compteur compteur ←0 p ←longueur de Liste_Donnees pour k variant de 1 à p − 2 : si (Liste_Donnees[k ] = Liste_Donnees[k + 1]) et ( Liste_Donnees[k + 1] = Liste_Donnees[k + 2]) : compteur ←compteur +1 fin si fin pour Pseudo-code FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Une telle rédaction indépendante d’un langage de programmation s’appelle le pseudo-code. Algorithme: Cet algorithme renvoie sous forme de liste, la décomposition binaire de l’entier n. Entrée: un nombre entier noté n Sortie: Liste Entier ←n Liste ←[ ] (la liste vide) tant que Entier non nul : si Entier pair : Entier ←Entier /2 Liste ←[0] + Liste sinon : Entier ←(Entier -1)/2 Liste ←[1] + Liste fin si fin tant que Langage machine FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Démarche logique suivie pour résoudre un problème 1 faire la liste des données du problème (input) 2 concevoir un ensemble de règles qui permettent de résoudre ce problème et le plus souvent retourner un résultat ou une interprétation graphique (output). Il nous arrivera parfois de rédiger l’algorithme en pseudo-code. 3 faire comprendre l’algorithme à une machine, à travers un langage de programmation. Bien entendu, la façon de rédiger l’algorithme pour le faire comprendre à un ordinateur dépend du logiciel utilisé. Les lignes de programme qui sont intelligibles par la machine forment un script. Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Langage machine FAURIEL Algorithmique et programmation: premiers concepts de langage Que se passe-t-il lorsqu’on exécute un script Python ? 1 le script est interprété par un interpréteur. Le but est transformer les différentes lignes du programme en un langage compilable comme du C, du Java, . . . (cela dépend de l’interpréteur Python installé) ; 2 Ce code est transformé en une suite d’instructions élémentaires par un compilateur ; 3 cette suite d’instructions élémentaires est transformée par un éditeur de liens (linker) en un véritable langage machine (une suite de 0 et de 1 qui sera finalement lue et exécutable par le processeur). Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Section 2 Règles générales dans un pseudo-code ou un script Règles de base d’un langage : exemple du français FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code La syntaxe En français, une phrase comporte généralement un sujet, un verbe et des compléments. Le premier mot commence par une majuscule et la phrase se termine par une ponctuation spécifique. «cette phrase comporte par, exemple trois erreurs de syntaxe» Règles de base d’un langage : exemple du français FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code La syntaxe En français, une phrase comporte généralement un sujet, un verbe et des compléments. Le premier mot commence par une majuscule et la phrase se termine par une ponctuation spécifique. «cette phrase comporte par, exemple trois erreurs de syntaxe_» Lorsqu’une erreur de syntaxe est détectée par l’interpréteur et le compilateur, un message d’erreur apparaît et donne à l’utilisateur la lignes où l’erreur (le bug) s’est produit. Règles de base d’un langage : exemple du français FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code La syntaxe En français, une phrase comporte généralement un sujet, un verbe et des compléments. Le premier mot commence par une majuscule et la phrase se termine par une ponctuation spécifique. «cette phrase comporte par, exemple trois erreurs de syntaxe_» Lorsqu’une erreur de syntaxe est détectée par l’interpréteur et le compilateur, un message d’erreur apparaît et donne à l’utilisateur la lignes où l’erreur (le bug) s’est produit. La sémantique L’agencement des mots dans une phrase confère un certain sens à celle-ci. Toute une phrase correcte syntaxiquement peut avoir une signification différente de celle prévue initialement. Spécificités d’un langage de programmation FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Il est souvent compact : en très peu de ligne, un script peut mettre en œuvre beaucoup d’opérations et résoudre un problème complexe Spécificités d’un langage de programmation FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Il est souvent compact : en très peu de ligne, un script peut mettre en œuvre beaucoup d’opérations et résoudre un problème complexe Chaque mot doit avoir un sens unique, contrairement au français. Le mot "vaisseau" est totalement différent selon qu’on lise un article de médecine ou un roman d’aventures. Spécificités d’un langage de programmation FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Il est souvent compact : en très peu de ligne, un script peut mettre en œuvre beaucoup d’opérations et résoudre un problème complexe Chaque mot doit avoir un sens unique, contrairement au français. Le mot "vaisseau" est totalement différent selon qu’on lise un article de médecine ou un roman d’aventures. Certains mots-clés sont déjà prédéfinis et ne peuvent en aucun cas être utilisés. C’est le cas, par exemple du mot "array" qui signifie "tableau" en Python. Spécificités d’un langage de programmation FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Le fait de modifier une lettre dans une variable peut avoir de fâcheuses conséquences. Le langage Python fait la différence entre minuscules et majuscules. Les variables "Variables" ou "variables" ne correspondent pas aux mêmes objets. En français, on peut largement modifier une rédaction de façon à ce qu’elle reste malgré tout intelligible : «Par exmple, on put faclment retrover le sns d cett prase, alor k’il y a becout de fotes ! !» Spécificités d’un langage de programmation FAURIEL Algorithmique et programmation: premiers concepts de langage Soyez précis ! Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code En langage de programmation, comme l’ordinateur est dépourvu d’intelligence, toute expression en langage machine est entendue "au pied de la lettre". Un script est donc totalement objectif, contrairement à un texte en français qui est interprétable parfois de multiples façons. L’ordinateur fait ce qu’on lui dit, tout ce qu’on lui dit, rien que ce qu’on lui dit Spécificités d’un langage de programmation FAURIEL Algorithmique et programmation: premiers concepts de langage Soyez précis ! Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code En langage de programmation, comme l’ordinateur est dépourvu d’intelligence, toute expression en langage machine est entendue "au pied de la lettre". Un script est donc totalement objectif, contrairement à un texte en français qui est interprétable parfois de multiples façons. L’ordinateur fait ce qu’on lui dit, tout ce qu’on lui dit, rien que ce qu’on lui dit Si le programme fonctionne mal, c’est de VOTRE faute FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Section 3 Exemples de pseudo-code Exercices simples FAURIEL Algorithmique et programmation: premiers concepts de langage Exercice 1 Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Rédiger en pseudo-code un algorithme qui permet de calculer, en fonction de la donnée d’un entier N strictement positif, la somme des entiers entre 1 et N Exercices simples FAURIEL Algorithmique et programmation: premiers concepts de langage Exercice 1 Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Notebook Rédiger en pseudo-code un algorithme qui permet de calculer, en fonction de la donnée d’un entier N strictement positif, la somme des entiers entre 1 et N Algorithme: Calcul de la somme des N premiers entiers Entrée: un entier N strictement positif Sortie: Somme_Temp Somme_Temp=0 pour k variant de 1 à N : Somme_Temp ←Somme_Temp + K fin pour Exercices simples FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Exercice 2 Rédiger en pseudo-code un algorithme qui permet de calculer, à partir d’une liste donnée, le nombre d’occurrences qui sont des entiers pairs. Exercices simples FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Exercice 2 Notebook Rédiger en pseudo-code un algorithme qui permet de calculer, à partir d’une liste donnée, le nombre d’occurrences qui sont des entiers pairs. Algorithme: Comptage du nombre d’entiers pairs Entrée: une liste Liste_Donnees Sortie: compteur compteur =0 pour x variant dans Liste_Donnees : si x n’est pas un entier : passer à l’élément suivant sinon : si x modulo 2 est égal à 0 : compteur ←compteur + 1 fin si fin si fin pour Exercices simples FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Exercice 3 Rédiger en pseudo-code un algorithme qui permet de calculer le 2 plus petit entier N tel que ∑N i =1 i ≥ 10000. Exercices simples FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Exercice 3 Notebook Rédiger en pseudo-code un algorithme qui permet de calculer le 2 plus petit entier N tel que ∑N i =1 i ≥ 10000. 2 Algorithme: Recherche N tel que ∑N i =1 i ≥ 10000 Entrée: rien Sortie: N N ←0 Somme_Temporaire ←0 tant que Somme_Temporaire < 10000 : N ←N + 1 Somme_Temporaire ←Somme_Temporaire + N 2 fin tant que Exercices moins simples FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Exercice 4 Rédiger en pseudo-code un algorithme qui détermine le nombre maximal d’occurrences consécutives identiques d’une liste. Exercices moins simples FAURIEL Algorithmique et programmation: premiers concepts de langage Premières notions Règles générales dans un pseudo-code ou un script Exemples de pseudo-code Exercice 4 Notebook Algorithme: Recherche le nombre maximal d’occurrences consécutives identiques d’une liste Entrée: une liste Liste_Entree Sortie: compteur _maxi compteur _maxi ←0 p ←longueur de la liste Liste_Entree k ←1 # on amorce l’examen des éléments de la liste au premier terme tant que k ≤ p : compteur ←0 tant que k + compteur < p et Liste_Entree[k ] = Liste_Entree[k + compteur ] : compteur _temp ←compteur + 1 # on incrémente le compteur d’une unité fin tant que # compteur est alors égal au nombre d’occurrences consécutives égales à Liste_Entree[k ] si compteur > compteur _maxi : compteur _maxi ←compteur # compteur vient de détrôner compteur _maxi fin si k ←k + compteur # on recommence le processus au début du groupe d’occurrences suivant fin tant que