Programmation Langage C 2008-2009 Frédéric Ravaut Enseignant / Chercheur Respon
Programmation Langage C 2008-2009 Frédéric Ravaut Enseignant / Chercheur Responsable des enseignements informatiques du cycle L PROGRAMME INFORMATIQUE ING1 Algorithmique et programmation en langage C Chapitre 1 Premières notions d'informatique - contenu d'un ordinateur - unités et performances actuelles - fonctionnement (couches systèmes) La mémoire vive Les mémoires de masse - particules ferromagnétiques - le formatage - la FAT Le processeur - Variables, Bus, Registres, Ordonnancement Les systèmes d'exploitation Chapitre 2 Le codage de l'information / représentation des données Les puissances Chapitre 3 Du problème à l'algorithme - Analyse chronologique - Détermination des ressources # les variables / les constantes # (analyse d'un exemple : conv. Euro) - Algorithmique - Organigrammes - Test - Programmation en langage de haut niveau Programmation : les différentes étapes - Edition - Compilation / Interprétation - Edition des liens - Exécution - Tests Chapitre 4 Le langage C - historique Etapes de programmation (1er sem. : VI,GCC…) Les logiciels "tout en un" (2eme sem.) Etude détaillées d'un programme C (Hello…) Notion d'instruction - ex : printf/scanf, E/S… Commentaires Documentation DOXYGEN Chapitre 5 Les variables - lieu de déclaration et portée - domaine de définition - plage de valeurs Constantes Type de données scalaires - table d'interprétation - altérateurs de type - langage faiblement typé Affectation - initialisation - affectation cachée Chapitre 6 Entrées / Sorties formatées - formats - alignement - caractères spéciaux Chapitre 7 Calculs et comparaisons - opérations arithmétiques - notion de CAST - opérateurs de comparaison (évaluation paresseuse) - opérateurs logiques - opérateurs binaires Structures de contrôle - conditionnelles - répétitives Chapitre 8 Les pointeurs - définition - usage - pointeurs et tableaux Chapitre 9 Types de données complexes - tableau monodimensionnel - tableau multidimensionnel - représentation mémoire - adressage des cases Gotoxy Chapitre 10 Les chaînes de caractères - convention - déclaration - fonctions dédiées Chapitre 11 Les nombres aléatoires La programmation événementielle Chapitre 12 Allocation dynamique de mémoire - retour sur la déclaration statique - problème et solution - malloc - allocation de variable, tableau mono/multi Chapitre 13 Les sous-programmes en C - utilité - structuration - lieu d'écriture, visibilité - bibliothèques Procédure / Fonction - appel - prototype Chapitre 14 Passage des paramètres - par valeur - par adresse - allocation dynamique en sous-pg Les arguments du MAIN Chapitre 15 La récursivité - notion de clone - condition d'arrêt - ensemble à cardinal décroissant Chapitre 16 Les structures - principe et utilité - déclaration en bibliothèque - structures dans structures - accès aux champs statiques - tableau de structures - allocation dynamique - pointeur sur structure - accès aux champs dynamiques - récursivité, listes chaînées Les unions Chapitre 17 Les fichiers - implémentation sur disque - ouverture et droit d'accès - fermeture - fichier texte / binaire - lecture écriture - déplacement - marquage de fin Chapitre 18 Les listes chaînées - allocation dynamique de structure - chaînage des cellules - champs données, champs pointeurs - début (ancre) et fin (NULL) - construction - parcours - affichage - ajout en tête - ajout en queue - ajout à la bonne place - suppression Les tables de hachage les arbres les graphes SOMMAIRE 1 CHAPITRE 1 - QU’EST-CE QUE LA PROGRAMMATION ? QU’ALLEZ-VOUS APPRENDRE DANS CE COURS CETTE ANNÉE ? 7 1.1 Tout part du problème à résoudre...................................................................................................7 1.2 Le rôle de l’ingénieur........................................................................................................................8 1.3 En résumé..........................................................................................................................................8 2 CHAPITRE 2 - PROGRAMMATION : DU PROBLÈME À L’ALGORITHME 9 2.1 Première étape : Analyse du cahier des charges...........................................................................9 2.2 Deuxième étape : l’analyse du problème........................................................................................9 2.2.1 Analyse chronologique..........................................................................................................9 2.2.2 Analyse descendante..........................................................................................................10 2.3 Troisième étape : Détermination des ressources – Notion de variable.....................................10 2.4 Quatrième étape : l’algorithme, organigramme ou l’utilisation d’un pseudo langage.............10 2.4.1 Conception..........................................................................................................................10 2.4.2 Avantages...........................................................................................................................11 2.4.3 Exemple : Calcul du PGCD par la méthode d’Euclide........................................................11 2.4.4 Organigramme....................................................................................................................12 2.5 Cinquième étape : Test...................................................................................................................13 2.6 Sixième étape : Programmation en langage dit « de haut niveau »...........................................14 2.6.1 Edition d’un programme C..................................................................................................14 2.6.2 Relecture du code pour en vérifier la syntaxe.....................................................................14 2.6.3 Compilation ou Interprétation..............................................................................................14 2.6.4 Vérification syntaxique........................................................................................................14 2.6.5 Création du fichier « objet » .obj.........................................................................................14 2.6.6 Création du fichier « exécutable » .exe : Edition des liens.................................................15 2.6.7 Définition du protocole de test d’exécution.........................................................................15 3 CHAPITRE 3 - UN PEU DE CULTURE GENERALE 17 3.1 Composition d’un ordinateur.........................................................................................................17 3.1.1 Extérieur : l’Unité Centrale et ses périphériques d’Entrée/Sortie (schéma)........................17 3.1.2 Intérieur : Les constituants de l’Unité Centrale (schéma)...................................................17 3.2 Rôle de l’ordinateur........................................................................................................................18 3.2.1 Son fonctionnement............................................................................................................18 3.3 Le stockage des données : mémoire vive, mémoire morte et mémoire de masse...................19 3.3.1 Les données.......................................................................................................................19 3.3.2 Les mémoires.....................................................................................................................19 3.3.3 Retour sur les variables......................................................................................................20 3.3.4 La FAT (File Allocation Table), le NTFS (NT File System)...................................................20 3.3.5 Le Pourquoi du formatage..................................................................................................21 3.3.6 Le Pourquoi de la défragmentation.....................................................................................21 3.4 Les traitements des données : processeur..................................................................................21 3.4.1 La notion de registre...........................................................................................................21 3.4.2 Les bus de données............................................................................................................21 3.4.3 L’ordonnancement des instructions....................................................................................21 3.5 Le binaire ou la genèse d’une information...................................................................................21 3.5.1 0 ou 1 : le courant passe t’il ?.............................................................................................21 3.5.2 1 fil, 2 fils…n fils..................................................................................................................21 3.6 Le codage/décodage de l’info : La Table d’Interprétation Sémantique - TIS.............................22 3.7 Les programmes, les applications................................................................................................22 4 CHAPITRE 4 - LE LANGAGE C – PREMIERS PAS 23 Frédéric Ravaut 2008-2009 1 4.1 Historique........................................................................................................................................23 4.2 Récapitulatif des étapes de programmation................................................................................23 4.2.1 Analyse du problème (papier).............................................................................................23 4.2.2 Détermination des ressources (papier)...............................................................................23 4.2.3 Ecriture du code (pseudo langage algorithmique) et/ou de l’organigramme (papier).........23 4.2.4 Traduction de l’algorithme en langage de haut niveau (VI, bloc-note, logiciel dédié…).....23 4.2.5 Relecture (yeux ;-)..............................................................................................................23 4.2.6 Simulation (papier)..............................................................................................................23 4.2.7 Compilation du code et édition de liens (GCC, logiciel dédié…)........................................23 4.3 Composition d’un programme en C..............................................................................................24 4.3.1 Inclusion des bibliothèques de fonctions............................................................................24 4.3.2 Le corps du programme......................................................................................................24 4.4 Premier programme : « Bonjour le monde ! »..............................................................................24 4.5 Les instructions..............................................................................................................................24 4.5.1 Instruction simple................................................................................................................24 4.5.2 Bloc d’instructions...............................................................................................................25 4.6 Les commentaires...........................................................................................................................25 4.7 Un exemple sous Dev-C++.............................................................................................................25 5 CHAPITRE 5 - LES VARIABLES – LES TYPES SIMPLES (OU SCALAIRES) 27 5.1 Rôle et convention d’écriture.........................................................................................................27 5.2 Déclaration de variable...................................................................................................................27 5.3 Le domaine de définition et la plage de valeurs..........................................................................27 5.3.1 Les altérateurs de type : short, long, signed, unsigned......................................................27 5.4 Les types scalaires de données : int, float, char , pointeur........................................................28 5.4.1 Nombre entier (int)..............................................................................................................28 5.4.2 Nombre à virgule (float)......................................................................................................29 5.4.3 Caractère (char)..................................................................................................................29 5.4.4 Pointeurs (int*, char*, float*, int*****,…).............................................................................30 5.5 Le lieu de déclaration et portée.....................................................................................................30 5.5.1 Analyse d’un exemple.........................................................................................................30 5.5.2 Notion de variable globale..................................................................................................30 5.6 Créer un type de donnée................................................................................................................31 5.7 Conversion de type de données....................................................................................................31 5.8 Les booléens VRAI et FAUX...........................................................................................................32 5.9 Précisions sur les constantes.......................................................................................................32 5.10 L’affectation.....................................................................................................................................32 5.10.1 L’initialisation.......................................................................................................................32 5.10.2 L’affectation des variables scalaires....................................................................................32 5.10.3 Les affectations cachées.....................................................................................................33 6 CHAPITRE 6 - LES ENTRÉES / SORTIES FORMATÉES 35 6.1.1 Printf (écrire, traitement de sortie)......................................................................................35 6.1.2 Scanf (lire, traitement d’entrée)...........................................................................................35 6.1.3 Les formats.........................................................................................................................35 6.1.4 Les alignements..................................................................................................................35 6.1.5 Les caractères spéciaux.....................................................................................................36 7 CHAPITRE 7 - CALCULS ET COMPARAISONS, STRUCTURES DE CONTROLE 37 7.1 Les opérateurs mathématiques.....................................................................................................37 7.2 Le CAST...........................................................................................................................................37 7.3 Les opérateurs de comparaison....................................................................................................37 Frédéric Ravaut 2008-2009 2 7.4 Les opérateurs logiques.................................................................................................................37 7.4.1 Tables de vérité des opérateurs logiques...........................................................................37 7.4.2 Priorité des opérateurs........................................................................................................38 7.5 Opérateurs binaires de traitement des bits..................................................................................38 7.5.1 & (ET)..................................................................................................................................38 7.5.2 | (OU)..................................................................................................................................38 7.5.3 ^ (OU exclusif).....................................................................................................................38 7.5.4 op1 << op2 (décalage binaire gauche de op1 un nombre de fois égal à op2)....................39 7.5.5 op1 >> op2 (décalage binaire droite de op1 un nombre de fois égal à op2).....................39 7.5.6 ~ (complément à 1 d’un opérande de type entier, inversion des bits)...............................39 8 CHAPITRE 8 - STRUCTURES DE CONTROLE 41 8.1 Les structures de contrôle.............................................................................................................41 8.1.1 Les conditionnelles.............................................................................................................41 8.1.2 Les répétitives.....................................................................................................................42 9 CHAPITRE 9 - DONNÉES DE TYPE COMPLEXE : LES TABLEAUX 43 9.1 Les tableaux monodimensionnels................................................................................................43 9.1.1 Accès..................................................................................................................................43 9.1.2 Schéma de la représentation classique..............................................................................44 9.2 Un pointeur caché dans un tableau monodimensionnel............................................................45 9.2.1 Principe d’adressage..........................................................................................................45 9.3 Les tableaux multidimensionnels..................................................................................................45 9.3.1 Schéma de la représentation classique..............................................................................45 9.3.2 Principe d’adressage..........................................................................................................46 9.3.3 46 9.3.4 Accès..................................................................................................................................46 9.3.5 Simulation d’une matrice en tableau monodimensionnel....................................................46 10CHAPITRE 10 - DONNÉES COMPLEXES : LES CHAÎNES DE CARACTÈRES 47 10.1 Convention......................................................................................................................................47 10.2 Déclaration d’une chaîne................................................................................................................47 10.3 Saisie................................................................................................................................................47 10.3.1 Plusieurs fonctions de saisie possibles...............................................................................47 10.3.2 Problème d’espace mémoire..............................................................................................48 10.4 Affichage à l’écran..........................................................................................................................48 10.5 Autres fonctions dédiées...............................................................................................................48 10.5.1 Affectation...........................................................................................................................48 10.5.2 Concaténation.....................................................................................................................48 10.5.3 Comparaison.......................................................................................................................48 10.5.4 Dimension...........................................................................................................................48 11CHAPITRE 11 - LES POINTEURS 49 11.1 Définition..........................................................................................................................................49 11.2 Initialisation.....................................................................................................................................49 11.3 Adressage direct.............................................................................................................................49 11.4 Adressage indirect..........................................................................................................................49 11.5 Usage...............................................................................................................................................50 11.5.1 Opérateur unaire &.............................................................................................................50 11.5.2 Déclaration des pointeurs...................................................................................................50 11.5.3 Opérateur unaire *..............................................................................................................50 11.6 Les pointeurs pour le passage de paramètres par adresse à une fonction..............................50 Frédéric Ravaut 2008-2009 3 12CHAPITRE 12 - ALÉATOIRE ET EVÉNEMENTIEL 51 12.1 Génération de nombres aléatoires................................................................................................51 12.1.1 Inclusion des bibliothèques.................................................................................................51 12.1.2 Initialisation du générateur aléatoire...................................................................................51 12.1.3 Génération du nombre par la fonction RAND.....................................................................51 12.2 Programmation événementielle.....................................................................................................52 13CHAPITRE 13 - ALLOCATION DYNAMIQUE DE MÉMOIRE 53 13.1 Retour sur la déclaration statique de données............................................................................53 13.1.1 Variables scalaires..............................................................................................................53 13.1.2 Tableaux..............................................................................................................................53 13.1.3 Chaînes de caractères constantes.....................................................................................53 13.1.4 Pointeurs.............................................................................................................................53 13.2 Problème et solution.......................................................................................................................54 13.3 Principe de l’allocation...................................................................................................................54 13.3.1 La fonction malloc...............................................................................................................54 13.3.2 La fonction sizeof................................................................................................................54 13.3.3 Cas du tableau monodimensionnel.....................................................................................55 13.3.4 Allocation dynamique d’un tableau multidimensionnel.......................................................55 13.3.5 Cas des chaînes de caractères..........................................................................................56 13.4 La fonction free...............................................................................................................................57 14CHAPITRE 14 - LES SOUS-PROGRAMMES EN LANGAGE C 59 14.1 Utilité...........................................................................................................Erreur ! uploads/Ingenierie_Lourd/ 08-09-poly-langage-c.pdf
Documents similaires










-
40
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 27, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 1.1273MB