180 likes | 400 Views
SEANCE 1. Introduction à l’algorithmique. Introduction à l’algorithmique : Concepts de base. Notion de variables. Instructions séquentielles. Instructions conditionnelles. Contenu de la séance 1:. Lundi 9 septembre 2013. Une définition:
E N D
SEANCE 1 Introduction à l’algorithmique Lundi 9 septembre 2013
Introduction à l’algorithmique : • Concepts de base. • Notion de variables. • Instructions séquentielles. • Instructions conditionnelles. Contenu de la séance 1: Lundi 9 septembre 2013
Une définition: Méthode opérationnelle qui permet de résoudre systématiquement toutes les demandes d’un problème donné. • L’énoncé du problème doit spécifier les relations entre les données en entrée et le résultat en sortie. Algorithmique = science des algorithmes Algorithmique
Des algorithmes dans la vie de tous les jours. • Recette de cuisine. • Exemples de problèmes pouvant être résolus par des algorithmes: • Recherche du PGCD de deux nombres entiers. • Déterminer, si elles existent, les racines d’un polynôme. • Tris. • Analyse de séquences d’ADN. • Recherche de vols au meilleur rapport temps de vol – prix entre deux villes. • … Algorithmique
Difficulté du problème ? • Comment le résoudre ? • Quelle démarche utiliser ? La résolution du problème => Algorithme Conception des algorithmes
Les sorties correspondent-elles à la solution du problème posé ? • Preuve de l’algorithme. • Combien de calculs élémentaires doit-on faire pour produire la sortie ? • Complexité en temps de l’algorithme. Questions relatives aux algorithmes
La mesure intrinsèque de la complexité de l’algorithme est indépendante de son implémentation sur machine. • Permet la comparaison entre différents algorithmes pour un même problème. • Différentes mesures : • Complexité en espace. • Complexité en temps. • Comptage des opérations élémentaires. Complexité d’un algorithme
Un algorithme doit être : • Lisible • Compréhensible par tous. • De haut niveau • Doit pouvoir être traduit dans n’importe quel langage de programmation. • Concis et structuré • Ne doit pas dépasser une page (sinon on le découpe en sous-problème). • Correct • Efficace Critères de qualité
Règles d’écriture • Entête. • Nom de l’algorithme. • Rôle. • Données en Entrée. • Données en Sortie. • Déclarations : données locales à l’algorithme. • Corps. • Mot clé Début. • Instructions en pseudo code indentées. • Mot clé Fin. Formalisme
Ecrire un algorithme qui additionne deux nombres a et b et donne le résultat dans un troisième entier c. Nom : addDeuxEntiers Rôle : Additionner deux entiers a et b et placer le résultat dans c Entrée : a, b : Entier Sortie : c : entier Déclaration : - Début c a + b Fin Type de la variable Identifiants des variables en entrée et en sortie Exemple 1 : Affectation
Une variable est une entité qui possède : • Un identifiant • Suite de caractères qui permet de nommer les choses. • Commence en générale par une minuscule. • Une valeur • Elle peut évoluer au fil de l’algorithme. • Un type de donnée • Caractérise l’ensemble des valeurs que peut prendre la variable et les opérations qui peuvent être effectuées. • Entier, Réel, Caractère, Chaîne, Booléen ... Notation : Identifiant de la variable : type de la variable Variables
Types simples de cardinalité finie : • Booléen : 2 valeurs possibles VRAI ou FAUX • Intervalle : valeurs entières définies dans un intervalle par exemple 1 .. 12 • Enuméré : valeurs explicites par exemple du lundi au dimanche • Caractère: entouré par de simples côtes ‘’ • Types simples dont la cardinalité n’est pas finie : • Entier : valeurs dans • Réel : valeurs dans Y • Chaîne de caractère : suite de caractères entourée de double côtes"" Types de données
Instruction d’affectation : • Elle a pour but de modifier la valeur de la variable • Sa syntaxe est : identifiant variable nouvelle valeur ex : c a + b Ne pas confondre l’affectation avec l’opérateur d’égalité = Exemple 2 : Ecrire algorithme qui, à partir du rayon d’un cercle, donne sa surface. Nom : aireDisque Rôle : Calculer l’aire d’un disque à partir du rayon de celui-ci Entrée : valRayon : Réel Sortie : valAire : Réel Déclaration : pi : réel Début pi 3.14159 valAire pi * valRayon * valRayon Fin Instructions séquentielles
Instructions d’entrée/sortie : clavier • Entrée standard = • Le but est d’affecter des valeurs à des variables (valeurs provenant du périphérique d’entrée standard) • Syntaxe : lire (valeur1, valeur2, …) Ou encore : lire valeur1, valeur2, … écran • Sortie standard = • Le but est d’afficher les valeurs des variables • Syntaxe : écrire (valeur1, valeur2, …) Ou encore : écrire valeur1, valeur2, … Instructions séquentielles
Ecrire un algorithme qui permet de saisir la valeur du rayon d’un cercle et qui affiche la surface de ce cercle. Nom : aireDisque Rôle : Calculer l’aire d’un disque à partir du rayon de celui-ci Entrée : Sortie : Déclaration : pi : réel valRayon: Réel valAire : Réel Début écrire (" Donner la valeur du rayon ") lire (valRayon) pi 3.14159 valAire pi * valRayon * valRayon écrire (" L’aire du disque est :",valAire) Fin Exemple 3
L’instruction si … alors … sinon … conditionne l’exécution d‘instructions à la valeur d’une expression booléenne. • Sa syntaxe est : si expression booléenne alors suite d’instructions sinon suite d’instructions finsi • Deuxième partie de l’instruction optionnelle : si expression booléenne alors suite d’instructions finsi Instructions conditionnels
Ecrire un algorithme qui permet de donner la valeur absolue d’un nombre entier. Nom : abs Rôle : Calculer la valeur absolue d’un entier Entrée : unEntier : Entier Sortie : laValeurAbsolue : Entier Déclaration : - Début si unEntier ≥ 0 alors laValeurAbsolue unEntier sinon laValeurAbsolue - unEntier finsi Fin Exemple 4