Algorithmes et programmes Comment on prsent les algorithmes

  • Slides: 19
Download presentation
Algorithmes et programmes Comment on présent les algorithmes B. Shishedjiev - Informatique II 1

Algorithmes et programmes Comment on présent les algorithmes B. Shishedjiev - Informatique II 1

Algorithmes • Définition de l’Association française de normalisation ”Ensembles des règles opératoires et de

Algorithmes • Définition de l’Association française de normalisation ”Ensembles des règles opératoires et de procédés définis en vue d’obtenir un résultat déterminé au moyen d’un nombre fini d’opérations”. B. Shishedjiev - Informatique II 2

Algorithmes • Propriétés – – – Fini Lisible Fiable Universel Correct Efficace B. Shishedjiev

Algorithmes • Propriétés – – – Fini Lisible Fiable Universel Correct Efficace B. Shishedjiev - Informatique II 3

Langages • Propriétés des langues pour description d’algorithmes – – – Simplicité Clarté Expressivité

Langages • Propriétés des langues pour description d’algorithmes – – – Simplicité Clarté Expressivité Ambiguïté Efficacité • Translators – Compilateurs – Interpréteurs Source B. Shishedjiev - Informatique II compilateur Exécutable 4

Langages graphiques Début • Organigrammes Rédiger Nom. c Compiler Erreurs? Nom. OBJ Oui Non

Langages graphiques Début • Organigrammes Rédiger Nom. c Compiler Erreurs? Nom. OBJ Oui Non Biblio theque Editeur des liens Erreurs? Nom. EXE Oui Non Mettre en jeu Données Erreurs? Oui Non Résultats Oui Encore? Non B. Shishedjiev - Informatique II Fin 5

Exemple d’algorithme Comment dire au votre robot de bouillir un œuf? 1. prends une

Exemple d’algorithme Comment dire au votre robot de bouillir un œuf? 1. prends une casserole 2. va au lavabo 3. ouvre le robinet 4. remplis la casserole à moitié 5. va au frigo 6. s’il y a d’œufs prends un œuf sinon arrête. 7. si l’œuf est bon met le dans la casserole sinon mets le dans la poubelle et va vers 5. 8. Mets la casserole sur la cuisinière 9. Allume la cuisinière 10. Attends que l’eau commence à bouillir 11. si l’œuf doit être à la coque attends 1 minute sinon attends 5 minutes 12. éteins la cuisinière et sers l’œuf 13. arrête B. Shishedjiev - Informatique II 6

Exemple d’algorithme début prends une casserole va au lavabo ouvre le robinet remplis la

Exemple d’algorithme début prends une casserole va au lavabo ouvre le robinet remplis la casserole à moitié va au frigo Y a-t-il œufs oui non Prends un Dans la poubelle non oui Bon? mets la casserole sur la cuisinière allume la cuisinière attends que l’eau commence à bouillir 1 minute oui A la coque? non 5 minutes éteins la cuisinière et sers l’œuf B. Shishedjiev - Informatique II arrête fin 7

Langages graphiques • Arbres algorithmiques Racine Branche Algorithme Nœud Partie 1 Partie 3 Partie

Langages graphiques • Arbres algorithmiques Racine Branche Algorithme Nœud Partie 1 Partie 3 Partie 2 Feuille Partie 1. 1 instr 1. 1. 2 Partie 2. 1 instr 1. 1. 3 B. Shishedjiev - Informatique II Partie 2. 2 Partie 3. 1 Partie 3. 2 etc 8

Langages algorithmiques • Génération des langues algorithmique – Langue-machine (machine language) – Assembleurs (Assemblers)

Langages algorithmiques • Génération des langues algorithmique – Langue-machine (machine language) – Assembleurs (Assemblers) – Langages universels de programmation • Fonctionnels (LISP Scheme) • Structurels (Fortran. Pascal C) • Objet orientés (Small. Talk C++ Java C#) – Langages de quatrième génération (4 GPL) B. Shishedjiev - Informatique II 9

Le langage C • Histoire 1972 - Bell Laboratories –Dennis Ritchie langues A B

Le langage C • Histoire 1972 - Bell Laboratories –Dennis Ritchie langues A B C pour le développment de l’UNIX 1979 – Kernigan et Ritchie 1983 - ANSI-C • Propriétés – – – – universel; compact; moderne (structuré); près de la machine; rapide; indépendant de la machine; portable; extensible. B. Shishedjiev - Informatique II 10

Le langage C • Les caractères utilisés – Lettres - ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz _ –

Le langage C • Les caractères utilisés – Lettres - ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz _ – Chiffres – 0123456789 – Caractères spéciaux –. , ; : ’ ”[ ] { } ( ) - + = * / % < > & ! ? – Des mots réservés • Identificateurs (noms) – Chaînes de lettres et chiffres, dont le premier caractère est une lettre. – Vrais - interet Compte A 25 BASE_3_G un_homme_triste – Faux – A. B un homme 3 AB B. Shishedjiev - Informatique II 11

Objets • • Chaque instruction influence plusieurs objets. Chaque objet a un ensemble de

Objets • • Chaque instruction influence plusieurs objets. Chaque objet a un ensemble de caractéristiques, qui sont: – Un nom (identificateur) – Un type (il définit les valeur dont cet objet peut avoir et les opérations lesquelles il peut subir) – Une valeur – Une adresse dans la mémoire – Un genre (constante, variable) B. Shishedjiev - Informatique II 12

Le programme • Structure générale d’un programme: #include #define etc. Déclarations globales et Instructions

Le programme • Structure générale d’un programme: #include #define etc. Déclarations globales et Instructions de préproce -sseur Titre de la fonction Fonctions (au Corps de la fonction moins une représfonction entant nommée un “main”). block Le type et le nom de la fonction et les types et les noms de ses paramètres Type nom (type p 1, type p 2 , …. ) { Déclarations des variables locales Chaque block peut contenir d'autres blocks Instructions exécutives (qui peuvent contenir des autres blocks) } B. Shishedjiev - Informatique II 13

Le programme • Le programme opère sur deux espaces : – la mémoire (où

Le programme • Le programme opère sur deux espaces : – la mémoire (où se trouvent les objets avec leurs valeurs) – Le point d’exécution du programme lui-même. • Il y a deux types d’instructions: – Ces qui modifient les valeurs (affectation, lecture) – Ces qui gèrent l’exécution (structures de contrôle) B. Shishedjiev - Informatique II 14

Exemple #include <stdio. h> /* Inclure les déclarations des variables et fonctions d'entrée/sortie */

Exemple #include <stdio. h> /* Inclure les déclarations des variables et fonctions d'entrée/sortie */ void main(void) /* le titre de la fonction */ { /* Debut du block */ printf ("Bonjour tout le monden"); /*Instruction */ } /*Fin du block*/ B. Shishedjiev - Informatique II 15

Types d’objets prédéfinis • Le type entier(int, short, long, unsigned, byte) – Constantes 1000

Types d’objets prédéfinis • Le type entier(int, short, long, unsigned, byte) – Constantes 1000 -100 -2 5600 – constantes décimales 0234 0123 077 – constantes octales 0 x 34 A 0 x 10 0 x 123 – constantes hexadécimales 3 l 45 l - long constants 8 u 34 u – unsigned constants Constantes nommées #define N 10 #define M 100 #define NOMBRE 150 – Variables – on déclare le nom et le type mais la valeur reste indéfinie int un_entier; short i, j, k; long grand_nombre ; const int ma_const = 10; - une variable dont la valeur est constante B. Shishedjiev - Informatique II 16

Types d’objets prédéfinis • Type réel (float, double) – Constantes 1. 5 -7. 25

Types d’objets prédéfinis • Type réel (float, double) – Constantes 1. 5 -7. 25 0. 675 1. 5 E 20 = 1. 5. 1020 1 E-3 = 0. 001 #define PI 3. 14169265 #define EPS 1 E-3 – Variables float a, b, c; double x, y, z ; • Le type logique Il est présenté par int: 0 – False; tous les autres - True #define TRUE 1 B. Shishedjiev - Informatique II 17

Types d’objets prédéfinis • Le type caractère (char) et littérales – Constantes 'a' 'A'

Types d’objets prédéfinis • Le type caractère (char) et littérales – Constantes 'a' 'A' '%' '3' '62' : 'x 41‘ #define C 1 ‘A’ #define CHAINE 1 ”TINTIN” #define CHAINE 2 “c’est un ”exemple”? ” la valeur de la dernière constante est c’est un “exemple”? asonnerie curseur b arrière barre oblique ttabulation point ? d'interrogat ion nouvelle n ligne 'apostrophe B. Shishedjiev - Informatique II "guillemets 18

Types d’objets prédéfinis • Les pointeurs – ce sont est un spécial type de

Types d’objets prédéfinis • Les pointeurs – ce sont est un spécial type de données dont la valeur est l’adresse d’une location de la mémoire qui contient la valeur d’un certain type – le type du pointeur. p 10 p NULL • Exemples – int *p ; /* c’est un pointeur sur int */ – double x, *pd /*une variable de type double et un pointeur sur double*/ B. Shishedjiev - Informatique II 19