UNIVERSITÉ DE POITIERS INSTITUT UNIVERSITAIRE DE TECHNOLOGIE 6, allée Jean Monn

UNIVERSITÉ DE POITIERS INSTITUT UNIVERSITAIRE DE TECHNOLOGIE 6, allée Jean Monnet BP 389 Année 2012 - 2013 ALGORITHMIQUE ET PROGRAMMATION STRUCTUREE EN LANGAGE C J.D. GABANO Maître de Conférences Sommaire - S1 - Sommaire 1. Introduction .................................................................................................................1 2. Codage binaire de l’information .................................................................................3 2.1. Base de numération ....................................................................................................3 2.2. Base de numération – base 10 ...............................................................................3 2.3. Base de numération – base 2 .................................................................................3 2.4. Bit, octet ................................................................................................................4 2.5. Base de numération – base 16 (hexadécimale)......................................................4 3. Structure élémentaire d’un système informatique ......................................................5 3.1. L’ordinateur (aspect matériel harware) .................................................................5 3.2. Les logiciels (aspect software) ..............................................................................6 3.2.1. Système d’exploitation...................................................................................6 3.2.2. Programmes dédiés à différents domaines d’application ..............................6 3.2.3. Programmes dédiés au développement d’applications...................................6 3.2.3.1. Langage machine...............................................................................6 3.2.3.2. Langages évolués : PASCAL, C… ...................................................6 3.2.4. Notion de fichier ..........................................................................................7 3.2.5. Notion de répertoire .....................................................................................8 4. Algorithme - Généralités.............................................................................................9 4.1. Définition...............................................................................................................9 4.2. Analyse descendante..............................................................................................9 4.3. Structure du bloc exécutable d’un programme....................................................10 5. Variables informatiques de type simple....................................................................11 5.1. Les variables informatiques.................................................................................11 5.2. Identificateur de variable.....................................................................................11 5.3. Les différents types simples ................................................................................12 5.3.1. Type Entier ..................................................................................................12 5.3.2. Type Réel.....................................................................................................12 5.3.3. Type Caractère.............................................................................................13 5.3.4. Type Booléen...............................................................................................15 5.4. Déclaration de variables de type simple..............................................................16 5.5. Déclaration de constantes....................................................................................16 6. Actions élémentaires .................................................................................................19 6.1. Affectation...........................................................................................................19 6.2. Les entrées : instruction Lire ...............................................................................20 6.3. Les sorties : instruction Ecrire.............................................................................20 6.4. Evolution du contenu des variables dans un algorithme .....................................21 Sommaire - S2 - 7. Structures de contrôle................................................................................................23 7.1. Introduction .........................................................................................................23 7.2. Séquence..............................................................................................................23 7.3. Alternatives..........................................................................................................24 7.3.1. Alternative ...................................................................................................24 7.3.2. Alternative simple........................................................................................25 7.3.3. Alternative multiple.....................................................................................25 7.4. Itérations..............................................................................................................26 7.4.1. Itération universelle Tant que ......................................................................26 7.4.2. Itération Faire … Tant que...........................................................................27 7.4.3. Itération Pour ...............................................................................................27 7.5. Exercice ...............................................................................................................29 8. Information structurée...............................................................................................31 8.1. Introduction .........................................................................................................31 8.2. Tableau de nombres (à une dimension)...............................................................31 8.2.1. Principe........................................................................................................31 8.2.2. Gestion du nombre de valeurs significatives ...............................................33 8.2.3. Gestion d’un tableau de nombres.................................................................34 8.3. Tableau de caractères (chaîne de caractères).......................................................35 8.4. Remarque sur la manipulation de tableaux en C.................................................36 8.5. Tableau à deux dimensions .................................................................................37 8.5.1. Principe........................................................................................................37 8.5.2. Déclaration...................................................................................................38 8.6. Exercice ...............................................................................................................39 9. Sous-programmes .....................................................................................................41 9.1. Intérêt des sous-programmes...............................................................................41 9.2. Procédures ...........................................................................................................39 9.2.1. Définition des paramètres formels, effectifs, locaux ...................................41 9.2.2. Paramètres formels d’entrée ........................................................................42 9.2.3. Paramètres formels d’entrée/sortie ..............................................................43 9.2.4. Paramètres formels de sortie........................................................................43 9.3. Fonction...............................................................................................................45 9.4. Elaboration de l’en-tête (interface de communication) d’un SP .........................46 9.5. Comment déterminer facilement la nature d’un paramètre formel d’un SP ?.....47 9.6. Exercice ...............................................................................................................48 10. Les pointeurs en C ....................................................................................................49 10.1. Introduction .......................................................................................................49 10.2. Adresse d’une variable ......................................................................................49 10.3. Variable pointeur...............................................................................................50 10.3.1. Définition...................................................................................................50 10.3.2. Accès au contenu d’une adresse pointée par une variable pointeur ..........50 10.3.3. Arithmétique des pointeurs........................................................................51 Sommaire - S3 - 10.4. Tableaux à une dimension et pointeurs .............................................................52 10.5. Agrégats et pointeurs.........................................................................................51 11. Procédures et fonctions en C ....................................................................................55 11.1. Structure d’un programme écrit en C ................................................................55 11.2. Ecriture de procédures en C ..............................................................................56 11.3. Ecriture de fonctions..........................................................................................57 11.4. Passage de paramètres par valeur......................................................................58 11.5. Passage de paramètres par adresse ....................................................................59 11.6. Cas particulier : aucun passage de paramètres .................................................60 11.7. Notion de prototype...........................................................................................61 11.8. Passage de paramètres tableau...........................................................................62 11.8.1. Passage par adresse....................................................................................62 11.8.2. Passage par valeur......................................................................................64 12. Programmation modulaire en C ...............................................................................67 12.1. Utilitaires de développement.............................................................................67 12.2. Structure d’un texte source écrit en C ...............................................................68 12.3. Compilation / édition des liens d’un seul fichier source ...................................70 12.4. Principe de la programmation modulaire ..........................................................70 12.4.1. Méthode .....................................................................................................70 12.4.2. Composants d’un programme divisé en modules......................................70 12.4.3. Compilation / édition des liens d’un programme divisé en modules.........71 12.4.4. Programmation modulaire : un exemple....................................................72 1. Introduction - 1 - 1. INTRODUCTION  L’informatique est une technique de traitement automatique d’information.  L’ordinateur est une machine conçue pour cette technique. Il permet d’exécuter des programmes qui effectuent l’acquisition, le stockage, le traitement et la restitution de données.  L’exécution de ces programmes ne peut s’effectuer qu’en langage binaire. 1. Introduction - 2 - 2. Codage binaire de l’information - 3 - 2. CODAGE BINAIRE DE L’INFORMATION 2.1. Base de numération Nombre : suite ordonnée de gauche à droite de chiffres et de signes permettant de quantifier des informations. Dans un nombre, la valeur de chaque chiffre dépend de sa position : poids des chiffres. 2.2. Base de numération – base 10 On dispose de 10 chiffres pour constituer les nombres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Exemple : principe de la décomposition de 2354 en base 10 : Nombre 2 3 5 4 Rang 3 2 1 0 Poids 103 102 101 100 Valeur associée au chiffre 2*1000=2000 3*100=300 5*10=50 4*1=4 2354 = 2000 + 300 + 50 + 4 2.3. Base de numération – base 2 On dispose de 2 chiffres pour constituer les nombres : 0, 1 Exemple : nombre 10101 en base 2 : 10101(B) = 21(D) Nombre 1 0 1 0 1 Rang 4 3 2 1 0 Poids 24 23 22 21 20 Valeur associée au chiffre 1*16 0*8=0 1*4=4 0*2=0 1*1=1 21 = 16 + 0 + 4 + 0 + 1 2. Codage binaire de l’information - 4 - 2.4. Bit, octet BIT (Binary digIT) : Constituant élémentaire des informations binaires : 2 valeurs possibles : 1 ou 0 Octet (Byte) : paquet de 8 BITS : 0 0 0 0 1 0 1 0 Avec 8 bits, il est possible de représenter 28 = 256 valeurs différentes. Si par exemple, on souhaite coder un entier non signé sur un octet, on peut représenter les valeurs comprises entre : 0 : 0 0 0 0 0 0 0 0 255 : 1 1 1 1 1 1 1 1 2.5. Base de numération – base 16 (hexadécimale) On dispose de 16 chiffres pour constituer les nombres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F avec : A(H) = 10(D) , B(H) = 11(D) , C(H) = 12(D), D(H) = 13(D) , E(H) = 14 (D) , F(H) = 15(D) Exemple : nombre 2AC6 en base hexa : Nombre 2 A C 6 Rang 3 2 1 0 Poids 163 162 161 160 Valeur associée au chiffre 2*4096=8192 10*256=2560 12*16=192 6*1=6 8192 + 2560 + 192 + 6  2AC6(H) = 10950(D) 3. Structure élémentaire d’un système informatique - 5 - 3. STRUCTURE ELEMENTAIRE D’UN SYSTEME INFORMATIQUE 3.1. L’ordinateur (aspect matériel harware)     Microprocesseur (µP) : Le gestionnaire du système !     Mémoire vive (R.A.M) : Zone de rangement des programmes en cours d’exécution et des données manipulées par ces programmes.     Mémoire morte (R.O.M) : Mémoire non volatile contenant les programmes de base indispensable au démarrage de l’ordinateur (B.I.O.S : Basic Input/Output System).     Périphériques d’entrées/sorties : Ecran, clavier, souris, imprimante Mémoire de masse (stockage) Accès à un réseau RAM Circuits d'Interface des périphériques d'entrées / sorties ROM BUS D'ADRESSE BUS DE DONNEES µP UNITE CENTRALE Périphérique de stockage : * Disque dur, * Lecteur CD, DVD * Clés USB, ... Ecran Clavier Souris Imprimantes Accès réseau     Dialogue du µP avec les composants du système : Langage binaire …0010010101...  Bus de données : échange de valeurs binaires écrites par le µP ou lues par le µP.  Bus d’adresse : permet d’indiquer la zone de mémoire (ou le périphérique de sortie) où le µP souhaite écrire une valeur présente sur le bus de donnée.  Taille du bus interne de données : 32 bits (Pentium 1), 64 bits (Pentium 4)  Traitement possible de 4 octets (µP 32 bits) ou 8 octets (µP 64 bits) en une seule opération.  Taille du bus d’adresse : 32 bits : nombre d’octets adressables : 232 = 4.29496 109 = 4 Go. 3. Structure élémentaire d’un système informatique - 6 - 3.2. Les logiciels (aspect software) 3.2.1. Système d’exploitation Pour gérer les dialogues homme / machine de base, il faut un logiciel spécialisé, le système d’exploitation : DOS, Windows 95, 98, Windows 2000, Windows NT, Windows XP, Windows 7 (Microsoft), Linux, … 3.2.2. Programmes dédiés à différents domaines d’application :     Gestion de données,     Informatique scientifique (modélisation, simulateurs)     Bureautique : Traitement de texte, tableur,...     Systèmes industriels (gestion d’une instrumentation programmable, commandes numériques, robotique,…)     Logiciels de C.A.O (Conception Assistée par Ordinateur) 3.2.3. Programmes dédiés au développement d’applications 3.2.3.1. Langage machine • A chaque commande binaire du jeu d’instructions du microprocesseur (suite d’octets) correspond un code (mnémonique) facilement mémorisable par le programmeur. • Ce langage est aussi appelé langage assembleur. • Il dépend du microprocesseur utilisé et nécessite de bien connaître son jeu d’instructions (réservé aux spéciaListes !). 3.2.3.2. Langages évolués : PASCAL, C… • Ces langages utilisent une sémantique qui définit le sens des mots (anglo- saxons) et une syntaxe qui définit la façon d’enchaîner les mots pour construire une phrase compréhensible par un compilateur. • Ils ne dépendent pas du microprocesseur utilisé ! • Le texte source est saisi à l’aide d’un éditeur de texte (Il contient du texte non directement compréhensible par le µP), mais permettant uploads/Litterature/ poly-a-trous-cours-info-pdf 1 .pdf

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