Les bases de l’Algorithmique

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Introduction a L’algorithme
Tris.
Initiation à la programmation et algorithmique cours 2
Algorithmique (suite)
Algorithmique et Programmation DEUG 2 Sciences Economiques 2004/2005
Algorithmique et Programmation
Algorithmique et évaluation
La logique algorithmique
LA LOGIQUE ALGORITHMIQUE. Algorithme Définition Ensemble dopérations Effectuées dans un ordre logique Afin dobtenir un résultat, Afin de résoudre un problème.
Algorithmique Résume.
Les bases de l’Algorithmique
INTRODUCTION.
4. Les structures de tests
Section VIII Modularité Partie II
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Section VI Structures répétitives (suite)
Les bases de l’Algorithmique
Section IV Structures conditionnelles
Algorithme Sommaire Introduction Définition et représentation
Partie 1 Etude de l'existant
Algorithmes et résolution de problèmes FGE
En quoi consiste la PROGRAMMATION ?
Introduction à l’algorithmique
Chapitre IV LES STRUCTURES SIMPLES. Plan I- Les entrées II- Laffectation III- Les sorties.
Démarche de résolution de problèmes
Algorithmique et Programmation
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
Algorithmique et structure de données
Les éléments de base de l’algorithmique
Création d’un programme :
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Algorithmique et Programmation
FICHIERS : Définition : Algorithme général:
Introduction à l’algorithmique
Semaine #1 INF130 par Frédérick Henri.
Semaine #1 INF135 par Frédérick Henri.
8PRO107 Éléments de programmation
Algorithmique et structure de données
Algorithmique.
Un survol du language C.
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
La programmation.
1 Deuxième journée La programmation procédurale. 2 Unité de programmation : la procédure ou fonction Très semblable au math Un programme est un ensemble.
Introduction et Généralités sur l’Algorithmique
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Initiation à l’Algorithmique
Module 3 : Algorithme et Programmation
Module algorithmique et programmation
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Les structures simples
Scripts et fonctions Instructions de contrôle
Algorithmique Tableaux de données
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Objets et Actions Élémentaires.
Les Structures simples
Algorithmique Conditions et Itérations Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 17/09/2003 Dernière modification: 17/09/2003.
Seconde 8 Module 7 M. FELT 03/11/ Module 7: Algorithmique #2  Objectifs:  AlgoBox.  Définition d’un algorithme.  Affectation de variable. 
Introduction à L’Algorithmique
Algorithmique Boucles et Itérations
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
Algorithmique et programmation
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la.
Introduction à l’Informatique Licence SPI Mme Delmotte.
L ES INSTRUCTIONS DE L ECTURE, E CRITURE ET A FFECTATION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université.
BASE DE L’ALGORITHMIE.  Un système d’instructions.  Pour résoudre d’un problème ou d’une classe de problèmes  Recette de cuisine pour faire un gâteau.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Algorithmique - Lecture / Ecriture - M me DJEBOURI. D. Faculté de Médecine salle informatique Année universitaire
Transcription de la présentation:

Les bases de l’Algorithmique

Qu'est-ce qu'un algorithme ? Activité 1 : Fatiguée, madame karima a confié à sa fille samira de préparer une omelette à trois œufs. Comme samira n’a jamais cuisiné, sa mère lui a proposé la recette suivante : mettre la poêle sur le feu mettre une cuillère d’huile laisser chauffer pendant trois minutes ajouter trois œufs cassés dans la poêle laisser cuire pendant cinq minutes La mère se chargera de mettre les épices à la fin. Quels sont les éléments dont samira a besoin pour exécuter la recette consignée par sa mère ? Quel sera le résultat après l’exécution de la recette ? Définition 1: un algorithme c’est la description, dans un langage compréhensible par l’acteur, d’une solution d’un problème sous forme d’une suite d’étapes (actions).

Qu'est-ce qu'un algorithme ? Activité 2 : Quel serait le résultat, si par hasard, pour la préparation de l’omelette, on saute la deuxième étape (mettre une cuillère d’huile) ? Quel serait le résultat si on inversait l’ordre des étapes 2 et 4 (mettre les œufs avant l’huile) ? Que peut-on conclure alors ? Comment peut-on définir un algorithme Définition 2: un algorithme c’est la description dans un langage compréhensible par l’acteur, d’une solution d’un problème sous forme d’une suite d’étapes (actions) élémentaires, finies, et dans un ordre bien défini.

Activité d’évaluation: Les règles de déplacement du robot sont : Avance (AV) suivie d’un nombre qui détermine le nombre de cases à parcourir vers l’avant. Recule (RE) suivie d’un nombre qui détermine le nombre de cases à parcourir vers l’arrière. Tourne droite (TD) : fait tourner le robot d’un angle de 90° à droite. Tourne gauche (TG) : fait tourner le robot d’un angle de 90° à gauche.

Qu’est ce que veut dire «écrire un algorithme» - Analyser et comprendre le problème : étude des données fournies et des résultats attendus. - Résoudre le problème : C’est trouver les structures de données adaptées ainsi que l’enchaînement des actions à réaliser pour passer des données aux résultats. Comment exécuter un algorithme sur un ordinateur ? Il faut traduire cet algorithme à l’aide d’un langage de programmation connu par l’ordinateur.

Langage de programmation (code) Exécution par l’ordinateur Enoncé d’un problème Analyse, compréhension Pseudo code Résolution Algorithme Langage de programmation (code) Codification Programme Interprétation Exécution par l’ordinateur Langage machine

Règles à respecter pour l'écriture d'un algorithme Il est défini sans ambiguïté. Il se termine après un nombre fini d'opérations. Il manipule des objets définis de manière très précise.

Règles de mise en forme d’un algorithme Nom de l’algorithme Début (*corps de l’algorithme*) (*action*) Fin

Les objets utilisés dans un algorithme: Les variables Une variable est un objet contenant une valeur appelée à être modifiée au cours de l'algorithme. Les constantes Une constante est un objet dont la valeur ne change pas au cours de l'algorithme. Définition des objets Un objet est définis par : Un identificateur : suite quelconque de caractères. Un type : Booléen, numérique (entier ou réel), caractère ou chaîne de caractères, tableau... Une valeur : c'est le contenu de l'objet.

Les types des variables Numérique Alphanumérique Booléen Entier (sans virgule) Réel (sans et avec virgule) Caractères Chaînes de caractères Exemples -345 2011 178 -123.56 17 4.1 x 1034 ‘A’ ‘@’ ‘2’ ‘ ?’ ‘+’ ‘%’ ‘Ibn Sina’ ‘32456’ ‘Note1’ Vrai faux Remarque : ‘32’ est différent de 32, parce que 32 est trente deux par contre ‘32’ représente la suite des chiffres 3 et 2. Une variable de type numérique ne peut pas recevoir une chaîne de caractères.

Règles de mise en forme d’un algorithme Nom de l’algorithme Déclaration des variables et constantes Début (* commentaires *) Instructions 1 Instructions 2 . Instructions n Fin

Exemple1: calcul de la surface d’un disque Algorithme surface_disque ; (*Déclaration*) Const Pi = 3.14 ; Var Rayon, surface : réels ; Début (*corps de l’algorithme*) Instructions Fin

Exemple2:calcul de la somme de deux réels Algorithme Somme ; (*Déclaration*) Var a, b, S : réels ; Début (*corps de l’algorithme*) Instructions; Fin

Lire (variable1, variable2) ; Instructions de base les actions élémentaires qui composent un algorithme sont appelées instructions. Instruction d’entrée : pour exprimer l’ordre qui permet de d’introduire une donnée dans un algorithme, on utilise le verbe Lire. Syntaxe : Exemple : Lire(Noteinfo) ; cette instruction permet d’introduire la valeur de la variable Noteinfo. Lire (variable1) ; Lire (variable2) ; Lire (variable1, variable2) ;

Instructions de base (2) Instruction de sortie : pour exprimer l’ordre qui permet de restituer un résultat ou la valeur d’une donnée dans un algorithme, on utilise le verbe Ecrire Syntaxe : Exemple : Ecrire(Moy) ; cette instruction permet de restituer la valeur de la donnée Moy. Ecrire(‘donner votre nom :’) ; signifie affiché à l’écran le message suivant : donner votre nom : Ecrire (variable1) ; Ecrire (‘message’) ; Ecrire (‘message’, variable) ;

Instructions de base (3) L’affectation : L’affectation est une opération qui consiste à attribuer une valeur à une variable. Elle est représentée par une flèche orientée à gauche Syntaxe : Exemple : A 2 ; : la variable A reçoit la valeur 2 B A+1 ; : la variable B reçoit le contenu de A plus 1 Nom ‘Mohamed’ ; : la variable Nom reçoit la valeur ‘Mohamed’ ; Remarque : l’instruction d’affectation ne modifie que ce qui est situé à gauche de la flèche. Variable valeur ou expression

Les opérateurs de base Sur les Entiers et les Réels

Les opérateurs de base (suite) Sur les Booléens

Les opérateurs de base (suite) Sur les caractères et les chaînes de caractères

Exemple1: calcul de la surface d’un disque Que se passe-t-il « dans l’ordinateur » à l’exécution de l’algorithme ? Algorithme surface_disque ; (*Déclaration*) Const Pi = 3.14 ; Var rayon, surface : réels ; Début Ecrire(‘Quelle est la valeur du rayon?’); Lire(rayon); surface rayon * rayon * Pi; Ecrire(‘la surface du disque est: ’,surface); Fin 2 3.14 Pi rayon 12.56 surface 2 * 2 * 3.14 = 12.56 surface Quelle est la valeur du rayon? 2 la surface du disque est:12,56 Valeur saisie par l’utilisateur Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ?

Exemple2:calcul de la somme de deux réels Que se passe-t-il « dans l’ordinateur » à l’exécution de l’algorithme ? Algorithme Somme ; (*Déclaration*) Var a, b, S : réels ; Début (*corps de l’algorithme*) Ecrire(‘entre les valeurs des deux nombres :’); Lire (a, b); s a + b; Ecrire(‘la somme est :’, s); Fin 3 4 7 a b s somme 3 + 4 = 7 entre les valeurs des deux nombres : 3 4 la somme est : 7 Valeurs saisie par l’utilisateur Que se passe-t-il sur l’écran de l’ordinateur à l’exécution de l’algorithme ?

Les structures en algorithmiques Il existe deux types de structures: La structure séquentielle est une structure dont les instructions sont exécutées l’une après l’autre de façon à ce que l’ordre des instructions est respecté. Un algorithme qui permet de permuter deux entiers : Algorithme echange ; Var x, y , z : entiers ; Début Ecrire(‘donnez la valeur de x’) ; Lire(x) ; Ecrire(‘donnez la valeur de y’) ; Lire(y) ; z x ; x y ; y z ; ecrire(‘la valeur de x est :’, x) ; ecrire(‘la valeur de y est :’,y) ; fin

La structure sélective est une structure dont les instructions sont exécutées selon les réponses des conditions. Structure sélective simple (un choix) : Syntaxe : Si Condition Alors Instructions ; Finsi Si la condition est vraie alors le bloc d’instructions sera exécuté, sinon il sera ignoré.   Exemple : Si x<0 Alors x - x ;

Structure sélective complète (deux choix) : Syntaxe : Si Condition Alors Instructions1 ; Sinon Instructions2 ; Finsi Si la condition est vraie alors le bloc d’instructions sera exécuté, sinon il sera c’est le blog d’instructions2 qui sera exécuté. Exemple : Si moyenne >= 10 Alors Ecrire(‘’admis’’) ; Ecrire(‘’non admis’’) ;

L’imbrication de Si :Dans de nombreuses applications, on peut avoir plusieurs cas d’exécution selon différentes conditions. Il faut donc exprimé beaucoup de Si les uns à la suite des autres pour englober tous les cas. Un Si peut être exprimé à la suite d’un Alors d’un autre Si et/ou à la suite de son Sinon. Exemple : Algorithme croisement_feu ; Var couleur_feu : chaîne de caractère ; Debut Ecrire(‘’quelle est la couleur du feu ?’’) ; Lire(couleur_feu) ; Si couleur_feu = ‘’rouge’’ Alors Ecrire(‘’arrêtez-vous’’) ; Sinon Si couleur_feu = ‘’orange’’ Alors Ecrire(‘’ralentissez et préparez-vous pour s’arrêter’’) ; Si couleur_feu = ‘’vert’’ Alors Ecrire(‘’ passez ‘’) ; Ecrire(‘’couleur incorrecte’’) ; Finsi Fin

Structure à choix multiple :   Syntaxe : Cas Indicateur faire Valeur 1 : instructions 1 ; Valeur 2 : instructions 2 ; . Valeur n : instructions n ; Sinon Instruction_par_défaut; FinCas la machine aura le choix parmi n valeurs. L’instructions qui sera exécutée est celle qui correspndra à la valeur courante de la variable testée. Si la variable n’est pas égale à aucune des valeurs testées, c’est instruction_par_defaut qui sera exécutées.

Exemple :   Algorithme croisement_feu ; Var couleur_feu : chaîne de caractère ; Debut Ecrire(‘’quelle est la couleur du feu ?’’) ; Lire(couleur_feu) ; Cas couleur_feu faire ‘’rouge’  : Ecrire(‘’arrêtez-vous’’) ; ‘’orange’  : Ecrire(‘’ralentissez et préparez-vous pour s’arrêter’’) ; ‘’vert’’ : Ecrire(‘’ passez ‘’) ; Sinon Ecrire(‘’couleur incorrecte’’) ; FinCas Fin Remarque : il y a une grande différence entre cet algorithme et celui utilisant les imbrications de Si. Ce dernier est plus clair et plus lisible et il n’y a pas de risque d’erreurs.

La démarche algorithmique La démarche algorithmique se déroule en deux phases : Phase analyse : consiste à analyser le problème pour en dégager les trois composantes suivantes : Les données à fournir (entrée) Les résultats à produire (sortie) Les traitements nécessaires pour transformer les données en résultats Phase conception : consiste à organiser les traitements définis en phase analyse sous forme d’un algorithme.

Exemple: Un promoteur immobilier met en vente des lots de terrain rectangulaires au prix de 7000 DH le mètre carré. Pour calculer le prix d’un lot, on doit commencer par calculer sa surface en mètre carré, sachant la longueur et la largeur du lot, puis on calcule le prix. L’analyse de ce problème nous amène à repérer les composantes indiquées dans la phase d’analyse : Les données : Longueur  : de type réel Largueur  : de type réel Prix : de type entier Les résultats : Montant (à payer) : de type réel Les traitements : en utilisant le processus déductif :

Phase conception : cette phase consiste à organiser ces traitements sous forme d’un algorithme  Algorithme Montant_a_payer ; Const Prix = 7000 ; Var Longueur, Largueur, surface, montant : réels ; Début Ecrire(‘quelle est la longueur du lot ?) ; Lire(Longueur) ; Ecrire(‘quelle est la largueur du lot ?) ; Lire(Largueur) ;   Surface Longueur * Largueur ; Montant surface * prix ; Ecrire(‘Le prix du lot est :’, montant, ’dh’) ; Fin

La représentation d’un algorithme On peut représenter un algorithme à l’aide d’un pseudo-code ou d’un organigramme L’organigramme est une représentation graphique d’un algorithme qui est représentée par des conventions graphiques: Lecture et écriture Traitement Début et Fin Test

Exemple 1

écrire(‘la valeur absolue est :’, x); Les tests La structure sélective simple (un choix) : Exemple: oui non Début écrire(‘entrer un nombre’); lire(x); X<0 x -x écrire(‘la valeur absolue est :’, x); Fin Algorithme Valeur_absolue; Var x: réel; Début écrire(‘entrer un nombre’); lire(x); Si x<0 Alors x -x; Finsi écrire(‘la valeur absolue est :’, x); Fin

La structure sélective complète (deux choix) : Exemple: non oui Début écrire(‘Quelle est votre moyenne ?’); lire(x); Moyenne >= 10 Ecrire(‘admis’) Algorithme décision_moyenne; Var moyenne: réel; Début écrire(‘Quelle est votre moyenne?’); lire(moyenne); Si moyenne >= 10 Alors Ecrire(‘admis’); Sinon Ecrire(‘non admis’); Finsi Fin non oui Ecrire(‘non admis’) Fin

Structure à choix multiple : Exemple: Algorithme croisement_feu ; Var couleur_feu : chaîne de caractère ; Debut Ecrire(‘’quelle est la couleur du feu ?’’) ; Lire(couleur_feu) ;   Cas couleur_feu faire ‘’rouge’  : Ecrire(‘’arrêtez-vous’’) ; ‘’orange’  : Ecrire(‘’ralentissez et préparez-vous pour s’arrêter’’) ; ‘’vert’’ : Ecrire(‘’ passez ‘’) ; Sinon Ecrire(‘’couleur incorrecte’’) ; FinCas Fin Valeur 1 Valeur 2 Valeur n Sinon

Couleur_feu rouge orange vert sinon Début lire(x); Fin écrire(‘Quelle est la couleur du feu ?’); lire(x); Couleur_feu rouge orange vert sinon Ecrire(‘arrêtez-vous’) Ecrire(‘’ralentissez et préparez-vous pour s’arrêter’) Ecrire(‘passez’) Ecrire(‘couleur incorrecte’) Fin