Algorithmes et programmes Comment on prsent les algorithmes



















- Slides: 19
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 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 - Informatique II 3
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 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 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 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 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 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 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 _ – 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 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 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ù 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 */ 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 -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 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' '%' '3' '