Algorithmique & Programmation I (2024-2025) PDF
Document Details
Uploaded by Deleted User
Université Sidi Mohamed Ben Abdellah de Fès
2024
Pr. Ilham Chaker
Tags
Summary
These notes cover the content of a course on Algorithmic & Programming I for the 2024-2025 academic year in a University in Fes . The summary includes discussions about the concept of programming, and algorithms.
Full Transcript
Département Informatique Algorithmique & Programmation I Pr. Ilham Chaker Année universitaire 2024-2025 Algorithmique & Programmation I Equipe pédagogique Enseignants intervenant en TD Groupes de TD Pr. Ilham Chaker...
Département Informatique Algorithmique & Programmation I Pr. Ilham Chaker Année universitaire 2024-2025 Algorithmique & Programmation I Equipe pédagogique Enseignants intervenant en TD Groupes de TD Pr. Ilham Chaker 1&2 Pr. Mohammed Bergui 3&4 2 Algorithmique & programmation I / [GCH] Algorithmique & Programmation I Plan Introduction Notion de variable, affectation, lecture et écriture La sélection, le choix multiple Les Boucles Les Tableaux 3 Algorithmique & programmation I / [GCH] Algorithmique & Programmation I Introduction 4 Algorithmique & programmation I / [GCH] Introduction Contexte général L’Homme a toujours cherché à automatiser ses tâches quotidiennes être remplacé par une machine L’Homme doit transférer ses capacités à la machine Ses connaissances Son raisonnement Son savoir faire … 5 Algorithmique & programmation I / [GCH] Introduction Contexte général La machine n’a pas les mêmes facultés de l’homme Tout doit être clair et élémentaire Prévoir tous les cas possibles la machine ne peut pas décider à votre place L’algorithmique et la programmation sont les premiers pas de l’automatisation de la vie de l’Homme 6 Algorithmique & programmation I / [GCH] Introduction Contexte général Le terme « informatique » résulte de la combinaison des deux premières syllabes du terme « information» et des deux dernières syllabes du terme « automatique » ; Il désigne à l'origine l'ensemble des activités liées à la conception et à l'emploi des ordinateurs pour traiter des informations. 7 Algorithmique & programmation I / [GCH] Introduction Contexte général L’informatique: est le domaine d'activité scientifique, technique et industriel concernant le traitement automatique de l'information par des machines : des ordinateurs; des systèmes embarqués; des robots; des automates; 8 Algorithmique & programmation I / [GCH] Introduction Contexte général Domaines d’application Physique Biologie Médecine Chimie Géologie Economie Finance … 9 Algorithmique & programmation I / [GCH] Introduction Contexte général Disciplines de l’informatique Systèmes d’information et Bases de Données Génie logiciel Réseaux Algorithmique & Programmation Compilation & Info théorique Systèmes d’exploitation Intelligence artificielle 10 Algorithmique & programmation I / [GCH] Introduction Programmation Si l’on s’intéresse aux applications de l’ordinateur, on s’aperçoit qu’elles sont très nombreuses : Etablissement de feuille de paie, de factures Gestion de stocks Calcul de la trajectoire d’un satellite Suivi médical de patients dans un hôpital … Un ordinateur pour qu’il puisse effectuer des tâches aussi variées il suffit de le programmer. 11 Algorithmique & programmation I / [GCH] Introduction Programmation Un programme est constitué d’un ensemble de directives, nommées instructions, qui spécifient : les opérations élémentaires à exécuter la façon dont elles s’enchaînent. Les informations à traiter par un programme doivent être représentées dans un format compréhensible par l’ordinateur : codage 12 Algorithmique & programmation I / [GCH] Introduction La machine Représentation de l’information : Codage 13 Algorithmique & programmation I / [GCH] Introduction La machine Le public se fait souvent une fausse idée : ordinateur = machine intelligente… C'est FAUX ! Un ordinateur ne fait qu’exécuter des tâches bien définies par le programmeur Les tâches sont programmées auparavant par des développeurs programme, logiciel, … Un programme est chargé en mémoire d’un ordinateur, puis exécuté sans la moindre ambiguïté. 14 Algorithmique & programmation I / [GCH] Introduction Programmer une machine Programme Problème Ensemble de données Ensemble de résultats Un problème du monde réel à résoudre par une solution = solution informatique au problème informatique Description d'un ensemble d'actions Exécution dans un certain ordre 15 Algorithmique & programmation I / [GCH] Introduction Programmer une machine Principes méthodologiques … Abstraire Prendre le temps nécessaire avant de passer sur machine Décomposer Descartes : "...diviser chacune des difficultés que j'examinerais en autant de parties qu'il se pourrait et qu'il serait requis pour les mieux résoudre." 16 Algorithmique & programmation I / [GCH] Introduction Processus de la programmation Analyse : spécifications algorithmique + conception Problème réel Traduction : Codage, Syntaxe Algorithme Partie essentielle : Définir clairement le problème Programme Exécution Démarche descendante Découper le problème en sous problèmes Problème de syntaxe Faux Résultats Problème de sémantique OK 17 Algorithmique & programmation I / [GCH] Introduction Processus de la programmation Analyse + spécification Définir clairement le problème Recenser les données Dégager les grandes fonctionnalités Conception Organiser les données Concevoir l'algorithme en pseudo-code Codification, implémentation, … Traduire l'algorithme dans un langage de programmation 18 Algorithmique & programmation I / [GCH] Introduction Processus de la programmation Problème : calculer la somme La somme de quoi? Donc Il faut avoir les nombres à additionner: ce sont les données Une fois on dispose de ces données on va faire le calcul et on donnera le résultat : c’est la somme 19 Algorithmique & programmation I / [GCH] Introduction Processus de la programmation Pour s’exécuter, un programme nécessite qu’on lui fournisse ce qu’on peut appeler « informations données » ou plus simplement « données ». En retour, le programme va fournir des « informations résultats » ou plus simplement « résultats ». Par exemple un programme de paie nécessite des informations données : noms des employés, situations de famille, nombres d’heures supplémentaires, etc… Les résultats seront imprimés sur les différents bulletins de paie. 20 Algorithmique & programmation I / [GCH] Introduction Processus de la programmation L’algorithme : est la description de la suite des opérations élémentaires ordonnées, capables de résoudre le problème posé. Un programme : est constitué d’un ensemble de directives, nommées instructions, qui spécifient : les opérations élémentaires à exécuter la façon dont elles s’enchaînent. 21 Algorithmique & programmation I / [GCH] Algorithme Description d'un processus de résolution d'un problème bien défini Succession d'actions élémentaires (Instructions) qui, agissant sur un ensemble de ressources (entrée=Donnée), fourniront la solution (sortie=Résultat) au problème Comment faire pour l'obtenir ? Ne pas se laisser aveugler par l'objectif final : L’implémentation! 22 Algorithmique & programmation I / [GCH] L’Algorithme Les instructions Les instructions sont des opérations élémentaires de traitement. Les instructions sont exécutées séquentiellement. Principales classes d’instructions(d’ordres) : L’affectation des variables, Les entrées – sorties (lecture / écriture), L’appel des fonctions Les tests, Les boucles. Un algorithme est une succession d’instructions. 23 Algorithmique & programmation I / [GCH] L’Algorithme Exemple Résolution de l’équation du second ordre Ax 2 + B x + C = 0 Entrées (Données) : A, B et C Sortie (Résultat) : racine double, deux racines où pas de solution 24 Algorithmique & programmation I / [GCH] L’Algorithme Quel algorithme choisir ? En général, il y a plusieurs algorithmes (plusieurs solutions) qui résolvent le même problème. Il y a plusieurs chemins qui mènent à la destination Le meilleur algorithme (solution optimale) est celui qui : Contient moins d’instructions. Le meilleur est le court chemin Utilise moins de ressources 25 Algorithmique & programmation I / [GCH] L’Algorithme Structure d’un algorithme Un algorithme est composé de deux parties : Partie déclaration : où on précise la nature (type) des objets utilisés pour la résolution du problème. Partie traitement : où on présente la séquence des instructions (actions) qui permettent de résoudre le problème. 26 Algorithmique & programmation I / [GCH] L’Algorithme Structure d’un algorithme L’en-tête Algorithme nom de l’algorithme constantes liste des constantes Les déclarations de constantes, variables liste des variables variables, (structures) structure liste des structures Les déclarations de fonctions fonctions liste des fonctions et procédures procédures liste des procédures début action 1 action 2 Le corps de l’algorithme action n fin 27 Algorithmique & programmation I / [GCH] L’Algorithme Structure d’un algorithme L’en-tête : Il permet d’identifier un algorithme. Algorithme nom de l’algorithme L’en-tête constantes liste des constantes Les déclarations de constantes, variables liste des variables variables, (structures) structure liste des structures Les déclarations de fonctions et fonctions liste des fonctions procédures procédures liste des procédures début action 1 action 2 Le corps de l’algorithme action n fin 28 Algorithmique & programmation I / [GCH] L’Algorithme Structure d’un algorithme L’en-tête Algorithme nom de l’algorithme Les déclarations : constantes liste des constantes C’est une liste exhaustive d’objets, Les déclarations de constantes, variables, variables liste des variables utilisés et manipulés dans le corps (structures) de l’algorithme; structure liste des structures Cette liste est placée au début fonctions liste des fonctions Les déclarations de d’algorithme. fonctions et procédures Procédures liste des procédures début action 1 Le corps de action 2 l’algorithme action n fin 29 Algorithmique & programmation I / [GCH] L’Algorithme Structure d’un algorithme Le corps : Y sont placés les traitements (opérations …) à exécuter. L’en-tête Algorithme nom de l’algorithme constantes liste des constantes Les déclarations de constantes, variables, variables liste des variables (structures) structure liste des structures fonctions liste des fonctions Les déclarations de fonctions et procédures procédures liste des procédures début action 1 Le corps de l’algorithme action 2 action n fin 30 Algorithmique & programmation I / [GCH] L’Algorithme Déclarations de Variables et de constantes Variable : est une entité qui contient une information. Elle peut être une donnée d’entrée ; le résultat final d’un calcul ; un résultat intermédiaire de calcul. constantes liste des constantes Les déclarations de constantes, variables, variables liste des variables (structures) structure liste des structures 31 Algorithmique & programmation I / [GCH] L’Algorithme Déclarations de Variables et de constantes Variable : Elle peut changer de valeur pendant l'exécution d'un programme. Elle représente une et une seule entité Elle peut évoluer au cours du temps (la valeur antérieure est perdue). 32 Algorithmique & programmation I / [GCH] L’Algorithme Déclarations de Variables et de constantes Constante : ne change jamais de valeur pendant l'exécution d'un programme. Une constante doit toujours recevoir une valeur dès sa déclaration. Synthaxe : constantes Nom_de_constante = valeur exemple : constantes Pi = 3.14 constantes liste des constantes Les déclarations de constantes, variables, variables liste des variables (structures) structure liste des structures 33 Algorithmique & programmation I / [GCH] L’Algorithme Déclarations de Variables et de constantes Une variable, ou une constante, est souvent caractérisée par les éléments suivants : 1. L'identificateur : C'est le nom que l'on donne à la variable ou à la constante. 2. Le type : Si la variable est un entier, un réel , un booléen, un caractère ou une chaîne de caractère. 3. La valeur : C'est la valeur que l'on attribue à la variable ou à la constante. 34 Algorithmique & programmation I / [GCH] L’Algorithme Déclarations de Variables et de constantes … Fonction Enseignant Identificateurs Age 39 Valeurs Poids 70,5 … Chaîne de caractère Types Entier Réel 35 Algorithmique & programmation I / [GCH] L’Algorithme Déclarations de Variables et de constantes L'identificateur : C'est le nom que l'on donne à la variable ou à la constante. Il est composé de lettres non accentuées, de chiffres et du caractère ( _ ) dans un ordre quelconque sauf pour le premier caractère qui ne peut pas être un chiffre. 36 Algorithmique & programmation I / [GCH] L’Algorithme Déclarations de Variables et de constantes L'identificateur : Certains mots ne peuvent pas être utilisés comme identificateurs car ils sont réservés, ce sont des mots-clés dans l’algorithme. Algorithme, début, si, sinon, fin, répéter, entier, réel, … De même : certains opérateurs ne peuvent pas être utilisés dans l’identificateur #, les opérateurs arithmétiques (+,*,-,/), … 37 Algorithmique & programmation I / [GCH] L’Algorithme Déclarations de Variables et de constantes Exemple 1 : Quels sont les identificateurs valides ? sucre_vanille Oui Température Non lettre accentuée _chocolat_au_lait Oui Convertir-en-euro Non opérateur arithmétique additionner_2_nombres Oui 2par2 Non premier caractère est un chiffre 38 Algorithmique & programmation I / [GCH] L’Algorithme Déclarations de Variables et de constantes Types : Entier : une variable est dite entière si elle prend ses valeurs dans Z , les opérations possibles sont les suivants : +, -, *, /,Div, mod, Réel : une variable est dite réelle si elle prend ses valeurs dans R, les opérations possibles sont les suivantes : +, -, *, /, 39 Algorithmique & programmation I / [GCH] L’Algorithme Déclarations de Variables et de constantes Types : Caractère : Un caractère sera toujours noté entre des apostrophes (ex.: ‘5’). Une apostrophe sera notée : ‘’’ , les opérations possibles sont : =,, ≤, , ≥ , L’ordre est le suivant : ‘ ‘