1 SDD 1   Département de Math-Informatique Année Universitaire 20

1 SDD 1   Département de Math-Informatique Année Universitaire 2017-2018 Dr Farikou Ousmane Maître-Assistant CAMES SDD 2     Objectif: • Rappel des concepts de base de l'algorithmique et de la programmation • Mettre en œuvre ces concepts pour analyser des problèmes simples et écrire les programmes correspondants  Plan: • Généralités (matériel d’un ordinateur, systèmes d’exploitation, langages de programmation, …) • Algorithmique (affectation, instructions conditionnelles, instructions itératives, fonctions, procédures, …) • Structure de données (liste simplement chainée, pile, file, ….) SDD 3     Techniques du traitement automatique de l’information au moyen des ordinateurs  Eléments d’un système informatique        Langages (Java,C/C++, Fortran,etc.) Système d’exploitation (DOS,Windows, Unix, etc.) Matériel (PC, Macintosh, station SUN, etc.) Applications (Word, Excel, Jeux, Maple, etc.) SDD 4             Unité centrale (le boîtier) • Processeur ou CPU (Central Processing Unit) • Mémoire centrale • Disque dur, lecteur disquettes, lecteur CD-ROM • Cartes spécialisées (cartes vidéo, réseau, ...) • Interfaces d'entrée-sortie (Ports série/parallèle, …)  Périphériques • Moniteur (l'écran), clavier, souris • Modem, imprimante, scanner, … 2 SDD 5      ! "      Ensemble de programmes qui gèrent le matériel et contrôlent les applications • Gestion des périphériques (affichage à l'écran, lecture du clavier, pilotage d’une imprimante, …) • Gestion des utilisateurs et de leurs données (comptes, partage des ressources, gestion des fichiers et répertoires, …) • Interface avec l’utilisateur (textuelle ou graphique): Interprétation des commandes • Contrôle des programmes (découpage en taches, partage du temps processeur, …) SDD 6 # $$     Un langage informatique est un outil permettant de donner des ordres (instructions) à la machine • A chaque instruction correspond une action du processeur  Intérêt : écrire des programmes (suite consécutive d’instructions) déstinés à effectuer une tache donnée • Exemple: un programme de gestion de comptes bancaires  Contrainte: être compréhensible par la machine SDD 7 # $$%   Langage binaire: l’information est exprimée et manipulée sous forme d’une suite de bits  Un bit (binary digit) = 0 ou 1 (2 états électriques)  Une combinaison de 8 bits= 1 Octet  possibilités qui permettent de coder tous les caractères alphabétiques, numériques, et symboles tels que ?,*,&, … • Le code ASCII (American Standard Code for Information Interchange) donne les correspondances entre les caractères alphanumériques et leurs représentation binaire, Ex. A= 01000001, ?=00111111  Les opérations logiques et arithmétiques de base (addition, multiplication, … ) sont effectuées en binaire 256 28 = SDD 8 #&   Problème: le langage machine est difficile à comprendre par l'humain  Idée: trouver un langage compréhensible par l'homme qui sera ensuite converti en langage machine • Assembleur (1er langage): exprimer les instructions élémentaires de façon symbolique • +: déjà plus accessible que le langage machine • -: dépend du type de la machine (n’est pas portable) • -: pas assez efficace pour développer des applications complexes Apparition des langages évolués ADD A, 4 LOAD B MOV A, OUT … traducteur langage machine  3 SDD 9 # $$ % '  Intérêts multiples pour le haut niveau: • proche du langage humain «anglais» (compréhensible) • permet une plus grande portabilité (indépendant du matériel) • Manipulation de données et d’expressions complexes (réels, objets, a*b/c, …)  Nécessité d’un traducteur (compilateur/interpréteur), exécution plus ou moins lente selon le traducteur Code source en langage évolué Compilateur ou Langage machine interpréteur SDD 10 (    Compilateur: traduire le programme entier une fois pour toutes • + plus rapide à l’exécution • + sécurité du code source • - il faut recompiler à chaque modification  Interpréteur: traduire au fur et à mesure les instructions du programme à chaque exécution • + exécution instantanée appréciable pour les débutants • - exécution lente par rapport à la compilation exemple.c Compilateur fichier source exemple fichier exécutable exécution exemple.bas fichier source Interprétation+exécution SDD 11 # $$  $   Deux types de langages: • Langages procéduraux • Langages orientés objets  Exemples de langages: • Fortran, Cobol, Pascal, C, … • C++, Java, …  Choix d’un langage? SDD 12 )       $ Spécification Analyse Traduction en langage Compilation Tests et modifications Enoncé du problème Cahier des charges Algorithme Programme source Programme exécutable Version finale et résultats La réalisation de programmes passe par l’écriture d’algorithmes D’où l’intérêt de l’Algorithmique  4 SDD 13 *$ %  Le terme algorithme vient du nom du mathématicien arabe Al-Khawarizmi (820 après J.C.)  Un algorithme est une description complète et détaillée des actions à effectuer et de leur séquencement pour arriver à un résultat donné • Intérêt: séparation analyse/codage (pas de préoccupation de syntaxe) • Qualités: exact (fournit le résultat souhaité), efficace (temps d’exécution, mémoire occupée), clair (compréhensible), général (traite le plus grand nombre de cas possibles), …  L’algorithmique désigne aussi la discipline qui étudie les algorithmes et leurs applications en Informatique  Une bonne connaissance de l’algorithmique permet d’écrire des algorithmes exacts et efficaces SDD 14 +     $ % Historiquement, deux façons pour représenter un algorithme: • L’Organigramme: représentation graphique avec des symboles (carrés, losanges, etc.) • offre une vue d’ensemble de l’algorithme • représentation quasiment abandonnée aujourd’hui • Le pseudo-code: représentation textuelle avec une série de conventions ressemblant à un langage de programmation (sans les problèmes de syntaxe) • plus pratique pour écrire un algorithme • représentation largement utilisée SDD 15 *$ % Notions et instructions de base SDD 16 ,  '  Dans les langages de programmation une variable sert à stocker la valeur d’une donnée  Une variable désigne en fait un emplacement mémoire dont le contenu peut changer au cours d’un programme (d’où le nom variable)  Règle : Les variables doivent être déclarées avant d’être utilisées, elle doivent être caractérisées par : • un nom (Identificateur) • un type (entier, réel, caractère, chaîne de caractères, …) 5 SDD 17 %     -./ Le choix des noms de variables est soumis à quelques règles qui varient selon le langage, mais en général:  Un nom doit commencer par une lettre alphabétique exemple valide: A1 exemple invalide: 1A  doit être constitué uniquement de lettres, de chiffres et du soulignement _ (Eviter les caractères de ponctuation et les espaces) valides: SMIP2007, SMP_2007 invalides: SMP 2005,SMI-2007,SMP;2007  doit être différent des mots réservés du langage (par exemple en Java: int, float, else, switch, case, default, for, main, return, …)  La longueur du nom doit être inférieure à la taille maximale spécifiée par le langage utilisé SDD 18 %     -0/ Conseil: pour la lisibilité du code choisir des noms significatifs qui décrivent les données manipulées exemples: TotalVentes2004, Prix_TTC, Prix_HT Remarque: en pseudo-code algorithmique, on va respecter les règles citées, même si on est libre dans la syntaxe SDD 19 1!  '  Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre, les types offerts par la plus part des langages sont:  Type numérique (entier ou réel) • Byte (codé sur 1octet): de 0 à 255 • Entier court (codé sur 2 octets) : -32 768 à 32 767 • Entier long (codé sur 4 ou 8 octets) • Réel simple précision (codé sur 4 octets) • Réel double précision (codé sur 8 octets)  Type logique ou booléen: deux valeurs VRAI ou FAUX  Type caractère: lettres majuscules, minuscules, chiffres, symboles, … exemples: ’A’, ’a’, ’1’, ’?’, …  Type chaîne de caractère: toute suite de caractères, exemples: " Nom, Prénom", "code postale: 1000", … SDD 20   '  Rappel: toute variable utilisée dans un programme doit avoir fait l’objet d’une déclaration préalable  En pseudo-code, on va adopter la forme suivante pour la déclaration de variables Variables liste d'identificateurs : type  Exemple: Variables i, j,k : entier x, y : réel OK: booléen ch1, ch2 : chaîne de caractères  Remarque: pour le type numérique on va se limiter aux entiers et réels sans considérer les sous types 6 SDD 21 #       l’affectation consiste à attribuer une valeur à une variable (ça consiste en fait à remplir où à modifier le contenu d'une zone mémoire)  En pseudo-code, l'affectation se note avec le signe  Var e: attribue la valeur de e à la variable Var - e peut être une valeur, une autre variable ou une expression - Var et e doivent être de même type ou de types compatibles - l’affectation ne modifie que ce qui est à gauche de la flèche  Ex valides: i 1 j i k i+j x 10.3 OK FAUX ch1 "SMI" ch2 ch1 x 4 x j (voir la déclaration des variables dans le transparent précédent)  non valides: i 10.3 OK "SMI" j x SDD 22    Beaucoup de langages de programmation uploads/Industriel/ sdd-unaba1.pdf

  • 30
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager