La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les bases algorithmiques

Présentations similaires


Présentation au sujet: "Les bases algorithmiques"— Transcription de la présentation:

1 Les bases algorithmiques
Algorithmique CSII1A CSII1a Algo/Progr

2 Algorithmique, définition
Qu’est ce que l’algorithmique? C’est une méthode de résolution de problèmes, S’applique à toutes sortes de problèmes mais plus particulièrement à l’informatique: Développer des logiciels, écrire des programmes CSII1a Algo/Progr

3 Objectif d’un logiciel
Mettre en œuvre au sein d’un programme des fonctionnalités plus ou moins complexes Logiciel: Traitements Données en entrées Résultats en sorties Reçoit des données en entrées, applique des traitements et renvoie des résultats en sorties Stocke les données dans une base de données Gère les interactions avec l’utilisateur au travers d’une interface (IHM), ... CSII1a Algo/Progr

4 Démarche algorithmique
Il est très difficile d’écrire directement un programme aux fonctionnalités complexes L’algorithmique ou "démarche algorithmique " est une étape intermédiaire Elle permet de passer du problème au programme, en écrivant un algorithme CSII1a Algo/Progr

5 Objectif de l’algorithmique
L’algorithmique se focalise sur l’aspect traitement: Modéliser les fonctionnalités à implémenter La réalisation de la structure des données s’appuie aussi sur une phase de réflexion: l’analyse (Merise) Modéliser les fonctionnalités nécessite de: -Identifier les données en entrées -Identifier les résultats en sorties -Définir les traitements à appliquer CSII1a Algo/Progr

6 Du problème au programme
Passer du problème au programme: Par une étape intermédiaire: l’algorithme Le problème: Fonctionnalités à mettre en œuvre dans un programe L’algorithme: Données en entrées, Résultats à obtenir, traitements Le programme: Executable qui implémente les fonctionnalités Langage informatique Langage naturel Langage algorithmique CSII1a Algo/Progr

7 Les langages Les fonctionnalités à mettre en œuvre sont exprimées en langage naturel Un algorithme est exprimé en pseudo-langage ou langage structuré Un programme est écrit dans un langage de programmation donné Le but est de traduire des instructions ou actions complexes en instructions compréhensibles par la machine Ces instructions machines sont appelées primitives CSII1a Algo/Progr

8 Que contient un algorithme
Un algorithme contient la liste des actions à effectuer représentant un programme ou logiciel Ceci indépendamment de l’implémentation sur machine et des détails qui en découlent: -Syntaxe et utilisation du langage de programmation cible -Déclaration et utilisation des bibliothèques, des fonctions, des types à utiliser,… CSII1a Algo/Progr

9 Représentation d’un algorithme
Plusieurs manières de représenter un algorithme On peut l’exprimer en langage naturel, exemple une recette de cuisine Exemple de recette: le Quatre-Quart: Ingrédients: (données en entrée) - 250gr de farine, 250gr de sucre, 250gr de beurre, 250ml De lait, 3 oeufs Objectifs: (résultat en sortie) Faire (et réussir) un gâteau quatre-quart CSII1a Algo/Progr

10 Recette Recette: (les traitements: l’algorithme )
-Faire fondre le beurre -Mélanger la farine le sucre et les oeufs -Rajouter le beurre -Rajouter le lait jusqu’à obtention d’une pâte onctueuse -Mettre au four 20min thermostat 7 -Dégustez... CSII1a Algo/Progr

11 Pseudo-langage C’est un langage simplifié proche du langage naturel
La syntaxe est souple contrairement à un langage de programmation L’intérêt est dans la construction de la solution, sa cohérence et non dans les détails de mise en oeuvre CSII1a Algo/Progr

12 Pseudo-langage, exemple
Exemple affiche un message selon la grandeur d’une personne Algo LaTaille début Saisir taille si taille > 1,80 Alors Afficher ‘Grand’ sinon Afficher ‘petit’ fin Comporte des mots clés qui permettent de structurer le langage: Algo, debut-fin, Si-Alors-Sinon Afficher et Saisir sont des actions (instructions) CSII1a Algo/Progr

13 Organigramme Modélisation du même algorithme sous forme d’un organigramme DEBUT Saisir Taille FIN Non Taille > 1,80 ? Afficher ‘Petit’ Afficher ‘Grand’ Oui CSII1a Algo/Progr

14 Représentation, résumé
L’idéal est de pouvoir écrire un algorithme directement en langage naturel En l’état actuel de la technologie (machines et softs), c’est impossible En informatique de développement (écrire des programmes) on utilise le pseudo-langage Les organigrammes seront plutôt utilisés en informatique industrielle: assembleur, automatisme (grafcet) CSII1a Algo/Progr

15 Les variables L’exécution d’un programme nécessite de traiter, de calculer un grand nombre de données Il est indispensable de pouvoir stocker ces données de manière temporaire durant le fonctionnement d’un programme On va pour cela utiliser des variables CSII1a Algo/Progr

16 Variables, suite Variable= Nom unique qui permet d’accéder à un emplacement en mémoire pour y stocker une valeur a 12 Le contenu d’une variable et susceptible d’évoluer (modifier) tout au long de la durée de vie du programme CSII1a Algo/Progr

17 Constantes A l’inverse des variables, les programmes utilisent parfois des valeurs invariantes pendant leur exécution Exemple: PI = CSII1a Algo/Progr

18 Règles de nommage Tous les identifiants dans un même programme doivent être unique Concerne: Les variables, les constantes, le nom du programme, les procédures & fonctions,... Ces identifiants doivent respecter une syntaxe -Le 1er caractère doit être une lettre ou le souligné _ -Les car. suivants: idem + chiffres -Pas de car. espace, pas de car. spéciaux CSII1a Algo/Progr

19 Exemple d’identifiants
A correct User_1 correct Nom prenom erreur Nom_prenom correct 1b erreur Eviter d’utiliser les caractères accentués CSII1a Algo/Progr

20 Déclaration des variables
Il faut déclarer les variables et constantes avant de les utiliser, en début de programme Les variables doivent être typées Exemple: Algo LaTaille var taille : réel début Saisir taille si taille > 1,80 Alors Afficher ‘Grand’ sinon Afficher ‘petit’ fin CSII1a Algo/Progr

21 Déclaration des constantes
Exemple: Algo LePerimetre const PI = var Per : réel début instructions fin La déclaration des constantes diffère de celle des variables: pas de type spécifié Nom constante = valeur CSII1a Algo/Progr

22 Affectation des variables
But de l’affectation: Placer une valeur dans une variable, la valeur est mémorisée Syntaxe: variable := valeur ( := ou <- ) Exemple: a := 12 ou a <- 12 CSII1a Algo/Progr

23 Instructions d’entrées/sorties
Ces instructions permettent d’interagir avec l’utilisateur Afficher un résultat: Afficher(<valeur>) Exemple: Afficher ( ‘x?’) Afficher ( ‘tva=’,tva) Saisir une valeur: Saisir <var> exemple: Saisir (a) CSII1a Algo/Progr

24 Types de données Les données manipulées par les programmes doivent toutes être typées Les variables sont typés explicitement: var : type Les constantes sont typées implicitement PI = , PI sera un réel Les types : entier, réel, booléen, caractère, Chaîne de caractères, tableau CSII1a Algo/Progr

25 Type entier Ensemble des valeurs: Z Opérateurs arithmétiques: +, -, *
-DIV division entière -MOD Modulo, reste de la division entière -ENT Partie entière d’un réel Exemple: 15 DIV 9 = 1, MOD 9 = 6 ENT(3.1415) = 3 Opérateurs relationnels: =, <, >, >=, <=, <> -Différent: <> ou != CSII1a Algo/Progr

26 Type réel Ensemble des valeurs: R Opérateurs arithmétiques: +, -, *, /
Opérateurs relationnels: idem entier Représentation des nombres réels: notation scientifique Exp: CSII1a Algo/Progr

27 Type booléen Ensemble des valeurs: vrai , faux
Opérateurs logiques: ET, OU, NON Opérateurs relationnels: idem entier faux < vrai CSII1a Algo/Progr

28 Type caractère Chaque caractère est codé par un entier table ASCII
Cette table permet de représenter 256 caractères Le système UNICODE tend aujourd’hui à remplacer ASCII: Un caractère est représenté sur 2 octets UNICODE permet de d’intégrer les principaux alphabets du monde (cyrillique, grec, asiatique,…) Pour garder la compatibilité avec l’existant, le début d’UNICODE est la table ASCII CSII1a Algo/Progr

29 Type caractère, suite Le caractère ‘A’ vaut 65, ‘B’= 66, ‘0’= 48,...
Les caractères sont ordonnés (sur leur code ASCII): ‘0’ < ‘9’ < ‘A’ < ‘Z’ < ‘a’ < ‘z’ On peut leur appliquer les opérateurs relationnels Autres opérations: - ord(‘A’) = 65 - chr(65) = ‘A’ CSII1a Algo/Progr

30 Type Chaîne de caractères
Regroupe plusieurs caractères, stocke du texte Permet de représenter des mots, des phrases Construire une chaîne à partir de 2 chaînes de caractères: opération de concaténation Exemple: s1 := ‘bon’ s2 := ‘jour’ str := s1 + s2 Str contiendra: ‘bonjour’ CSII1a Algo/Progr

31 Type Tableau Stocke plusieurs données de même type
Tableau à 1 dimension, exemple: tab : Tableau [1..100] d’entiers Tableau à 2 dimensions, exemple: tab : Tableau [1..100, ] de réels On peut créer des tableaux de dimension n Accès à un élément du tableau: lecture ou écriture Lecture: Afficher(tab[i]) Ecriture: tab[i]:= val CSII1a Algo/Progr

32 Les instructions Il existe 2 catégories d’instructions:
-Instructions alternatives (ou sélectives) -Instructions itératives (ou répétitives) Ce sont les instructions de base en algorithmique-programmation que l’on retrouve dans tous les langages informatiques CSII1a Algo/Progr

33 Les instructions alternatives
Instruction Si-Alors, forme simple Si condition Alors action(s) FinSi -La condition est traitée, si elle est vrai, alors l’action (ou les) est exécutée Instruction Si-Alors-sinon Si condition Alors action1 sinon action2 FinSi -La condition est traitée, si elle est vrai, alors l’action1 (ou les) est exécutée, -Si la condition est fausse, alors c’est l’action2 qui sera exécutée CSII1a Algo/Progr

34 Imbrications de si Il est possible d’imbriquer des structures si-alors-sinon dans la clause si et la clause sinon Exemple: Si cond Alors Si cond2 Alors act2 FinSi Sinon Si cond3 Alors act3 Sinon act4 FinSi FinSi Ne pas dépasser 4 ou 5 niveaux d’imbrication CSII1a Algo/Progr

35 Instruction de choix Equivalent à des Si-alors imbriqués, exemple:
Si cond Alors Act1 Sinon Si cond2 Alors Act2 Sinon Si cond3 Alors Act3 Sinon Si cond4 Alors Act4 ... S’écrira plus facilement avec une structure Choix: Choix var Faire val1: act1 val2: act2 val3: act3 Sinon Act5 FinChoix Remarque: var doit être de type ordinal: booléen, entier, car. CSII1a Algo/Progr

36 Les Instructions itératives
3 types de boucles: Pour TantQue Répéter Jusqu’a CSII1a Algo/Progr

37 Instruction Pour Structure du Pour: Exemple:
Pour var := valInit A valFin Faire Action FinPour Exemple: Résultat: Bonjour n°0 Bonjour n°1 Bonjour n°2 Bonjour n°3 Bonjour n°4 Bonjour n°5 Pour i := 0 A 5 Faire Afficher ‘Bonjour n°’, i FinPour i en sortant de la boucle vaut 6 CSII1a Algo/Progr

38 Instruction TantQue Structure du TantQue: Exemple:
TantQue condition Faire Action // exécutée tant que condition est VRAI FinTantQue Exemple: Résultat: Bonjour n°0 Bonjour n°1 Bonjour n°2 Bonjour n°3 Bonjour n°4 Bonjour n°5 i := 0 TantQue i <= 5 Faire Afficher ‘Bonjour n°’, i i := i +1 FinTantQue CSII1a Algo/Progr

39 Instruction répéter-Jusqua
Structure du Répéter-Jusqu’a: Répéter Action // exécutée jusqu’à ce que Jusqua Condition // la condition deviennent VRAI Exemple: Résultat: Bonjour n°0 Bonjour n°1 Bonjour n°2 Bonjour n°3 Bonjour n°4 Bonjour n°5 i := 0 Répéter Afficher ‘Bonjour n°’, i i := i +1 Jusqua i > 5 CSII1a Algo/Progr

40 Exercices, TD n°1 Exercice 1: Saisir un nombre et afficher s’il est pair ou impair. Exercice 2: Résoudre l’équation du 1er degré ax + b = 0, les coefficients a et b seront saisis Exercice 3: Résoudre l’équation du 2nd degré ax² + bx+c = 0, les coefficients a et b et c seront saisis CSII1a Algo/Progr

41 TD n°1, suite Exercice 4a: Saisir un nombre et afficher si c’est un nombre premier ou non. Exercice 4b: Afficher les 100 premiers nombres premiers. CSII1a Algo/Progr

42 TD n°1, exercice 5 Exercice 5: Faire rechercher un nombre à l’utilisateur en 5 coups maximum. Afficher à chaque étape -Afficher à chaque étape ‘trop grand’ ou ‘trop petit’ -Afficher à la fin ‘gagné’ ou ‘perdu’ ainsi que le nombre de coups. CSII1a Algo/Progr


Télécharger ppt "Les bases algorithmiques"

Présentations similaires


Annonces Google