Ce cours est une introduction au langage C. Il est recommandé d’avoir sous la m
Ce cours est une introduction au langage C. Il est recommandé d’avoir sous la main un ouvrage de référence des commandes C. D’autre part, il n’aborde que les notions de base. LYCEE FRANCO-MEXICAIN HOMERO 1521 COLONIA POLANCO 11560 MEXICO ; D.F. Cours -TP de C ELEMENTS DE LANGAGE C .......................................................................................................4 INTRODUCTION............................................................................................................................................................4 EDITION, MISE AU POINT ET EXةCUTION D’UN PROGRAMME .........................................................................................4 LES DIFFةRENTS TYPES DE VARIABLES .........................................................................................................................5 Les entiers.........................................................................................................................5 Les réels.............................................................................................................................6 LES INITIALISATIONS ...................................................................................................................................................7 SORTIE DE NOMBRES OU DE TEXTES ہ L’ةCRAN : LA FONCTION PRINTF .........................................................................7 AUTRES FONCTIONS DE SORTIES...................................................................................................................................9 LES OPةRATEURS .........................................................................................................................................................9 INCRةMENTATION, DةCRةMENTATION .........................................................................................................................10 OPةRATEURS COMBINةS..............................................................................................................................................10 LES DةCLARATIONS DE CONSTANTES .........................................................................................................................11 LES CONVERSIONS DE TYPES .....................................................................................................................................11 CORRIGةS DES EXERCICES...........................................................................................................................................12 SAISIE DE NOMBRES ET DE CARACTERES AU CLAVIER ...........................................................13 LA FONCTION GETCH .................................................................................................................................................13 LA FONCTION SCANF .................................................................................................................................................13 NOTION DE FLUX D’ENTRةE .......................................................................................................................................14 LA FONCTION SCANF - DEUXIبME APPROCHE ............................................................................................................14 LA FONCTION GETCHAR ............................................................................................................................................16 CORRIGةS DES EXERCICES...........................................................................................................................................17 LES BOUCLES .........................................................................................................................18 LES OPةRATEURS LOGIQUES .......................................................................................................................................18 L’INSTRUCTION SI…ALORS…SINON.....................................................................................................................19 LA BOUCLE TANT QUE ... FAIRE ...........................................................................................................................20 L’INSTRUCTION POUR .............................................................................................................................................20 L’INSTRUCTION AU CAS OU ... FAIRE ...................................................................................................................22 L’INSTRUCTION REPETER ... TANT QUE ..............................................................................................................23 COMPLةMENTS SUR LES TESTS ...................................................................................................................................23 EXERCICES RةCAPITULATIFS ......................................................................................................................................24 CORRIGةS DES EXERCICES...........................................................................................................................................25 UTILISATION D'UNE BIBLIOTHEQUE ........................................................................................27 NOTION DE PROTOTYPE .............................................................................................................................................27 FONCTION NE RENVOYANT RIEN AU PROGRAMME .....................................................................................................27 FONCTION RENVOYANT UNE VALEUR AU PROGRAMME ..............................................................................................27 FONCTION AVEC PASSAGE DE PARAMبTRE ................................................................................................................28 Page 2/72 Cours -TP de C LES POINTEURS ......................................................................................................................29 L’OPةRATEUR ADRESSE &..........................................................................................................................................29 LES POINTEURS .........................................................................................................................................................29 Déclaration des pointeurs ................................................................................................29 Arithmétique des pointeurs ..............................................................................................29 ALLOCATION DYNAMIQUE ........................................................................................................................................30 AFFECTATION D’UNE VALEUR ہ UN POINTEUR ............................................................................................................31 PETIT RETOUR ہ LA FONCTION SCANF .........................................................................................................................32 CORRIGة DES EXERCICES ...........................................................................................................................................33 LES TABLEAUX ET LES CHAINES DE CARACTERES.................................................................35 LES TABLEAUX DE NOMBRES (INT OU FLOAT) ............................................................................................................35 Les tableaux à une dimension: ........................................................................................35 Les tableaux à plusieurs dimensions: ...............................................................................36 Initialisation des tableaux ................................................................................................36 TABLEAUX ET POINTEURS .........................................................................................................................................36 Les tableaux à une dimension...........................................................................................36 Les tableaux à plusieurs dimensions: ...............................................................................37 LES CHAخNES DE CARACTبRES..................................................................................................................................38 Opérations simples ..........................................................................................................38 Fonctions permettant la manipulation des chaînes:..........................................................39 CORRIGةS DES EXERCICES...........................................................................................................................................40 LES FONCTIONS......................................................................................................................44 FONCTIONS SANS PASSAGE D’ARGUMENT ET NE RENVOYANT RIEN AU PROGRAMME ...............................................44 FONCTIONS RENVOYANT UNE VALEUR AU PROGRAMME ET SANS PASSAGE D’ARGUMENT .......................................47 FONCTION AVEC PASSAGE D’ARGUMENTS .................................................................................................................48 RةSUMة SUR VARIABLES ET FONCTIONS.......................................................................................................................49 LE PASSAGE DE PARAMبTRE ENTRE FCTS OU ENTRE FCTS ET PROGRAMME PRINCIPAL ............................................50 CORRIGةS DES EXERCICES...........................................................................................................................................51 LES TYPES DE VARIABLES COMPLEXES...................................................................................57 LES DةCLARATIONS DE TYPES SYNONYMES : TYPEDEF ...............................................................................................57 LES STRUCTURES.......................................................................................................................................................58 STRUCTURES ET TABLEAUX.......................................................................................................................................58 STRUCTURES ET POINTEURS ......................................................................................................................................59 CORRIGةS DES EXERCICES...........................................................................................................................................59 LES FICHIERS .........................................................................................................................62 GةNةRALITةS...............................................................................................................................................................62 MANIPULATION DES FICHIERS ...................................................................................................................................63 Déclaration : FILE *fichier; /* majuscules obligatoires pour FILE */................................63 Ouverture : FILE *fopen(char *nom, char *mode); ..........................................................63 Fermeture : int fclose(FILE *fichier); .............................................................................63 Destruction : int remove(char *nom); ............................................................................64 Renommer : int rename(char *oldname, char *newname); ...........................................64 Positionnement du pointeur au début du fichier : void rewind(FILE *fichier); ..................64 Ecriture dans le fichier :....................................................................................................64 Lecture du fichier : ..........................................................................................................65 Gestion des erreurs : .......................................................................................................65 Fonction particulière aux fichiers à acces direct : .............................................................65 EXERCICES ................................................................................................................................................................66 CORRIGة DES EXERCICES ...........................................................................................................................................67 Page 3/72 Cours -TP de C ELEMENTS DE LANGAGE C Une disquette contenant les programmes (développés sous Borland C++) de ce polycopié est disponible, en évitant la saisie. Le corrigé des exercices et le listing de ces programmes se trouvent à la fin de chaque chapitre. Introduction Le langage C est un langage évolué et structuré, assez proche du langage machine destiné à des applications de contrôle de processus (gestion d'entrées/sorties, applications temps réel ...). Les compilateurs C possèdent les taux d'expansion les plus faibles de tous les langages évolués (rapport entre la quantité de codes machine générée par le compilateur et la quantité de codes machine générée par l'assembleur et ce pour une même application); Le langage C possède assez peu d'instructions, il fait par contre appel à des bibliothèques, fournies en plus ou moins grand nombre avec le compilateur. Exemples : math.h : bibliothèque de fonctions mathématiques stdio.h : bibliothèque d'entrées/sorties standard On ne saurait développer un programme en C sans se munir de la documentation concernant ces bibliothèques. Les compilateurs C sont remplacés petit à petit par des compilateurs C++. Un programme écrit en C est en principe (mais pas toujours) compris par un compilateur C++. Le cours qui suit est un cours ce langage C écrit dans un contexte C++ (évitant donc les problèmes de compabilité). Edition, mise au point et exécution d’un programme 1- Edition du programme source , à l'aide d'un éditeur (traitement de textes). Le nom du fichier contient l'extension .CPP, exemple: EXI_1.CPP (menu « edit »). 2- Compilation du programme source , c'est à dire création des codes machine destinés au microprocesseur utilisé. Le compilateur indique les erreurs de syntaxe mais ignore les fonctions-bibliothèque appelées par le programme. Le compilateur génère un fichier binaire, non listable, appelé fichier objet: EXI_1.OBJ (commande « compile »). 3- Editions de liens: Le code machine des fonctions-bibliothèque est chargé, création d'un fichier binaire, non listable, appelé fichier executable: EXI_1.EXE (commande « build all »). 4- Exécution du programme (commande « flèche jaune »). Les compilateurs permettent en général de construire des programmes composés de plusieurs fichiers sources, d'ajouter à un programme des unités déjà compilées ... Exercice I-1 : Editer (EXI_1.CPP), compiler et exécuter le programme suivant: #include <stdio.h> /* bibliotheque d'entrees-sorties standard */ #include <conio.h> void main() { puts("BONJOUR"); /* utilisation d'une fonction- bibliotheque */ puts("Pour continuer frapper une touche..."); getch(); /* Attente d'une saisie clavier */ } Page 4/72 Cours -TP de C Le langage C distingue les minuscules, des majuscules. Les mots réservés du langage C doivent être écrits en minuscules. On a introduit dans ce programme la notion d’interface homme/machine (IHM) : L’utilisateur visualise une information sur l’écran, L’utilisateur, par une action sur le clavier, fournit une information au programme. Modifier le programme comme ci-dessous, puis le tester : #include <stdio.h> /* bibliotheque d'entrees-sorties standard */ #include <conio.h> void main() { int a, b, somme ; /* déclaration de 3 variables */ puts("BONJOUR"); /* utilisation d'une fonction- bibliotheque */ a = 10 ; /* affectation* / b = 50 ; /* affectation */ somme = (a + b)*2 ; /* affectation et opérateurs*/ printf(« Voici le resultat : %d\n », somme) ; puts("Pour continuer frapper une touche..."); getch(); /* Attente d'une saisie clavier */ } Dans ce programme, on introduit 3 nouveaux concepts : La notion de déclaration de variables : les variables sont les données que manipulera le programme lors de son exécution. Ces variables sont rangées dans la mémoire vive de l’ordinateur. Elle doivent être déclarées au début du programme. La notion d’affectation, symbolisée par le signe =. La notion d’opération. Les différents types de variables Les entiers Le langage C distingue plusieurs types d'entiers : TYPE DESCRIPTION TAILLE MEMOIRE int entier standard signé 4 octets: - 231 ≤ n ≤231-1 unsigned int entier standard positif 4 octets: 0 ≤ n ≤ 232 short entier court signé 2 octets: - 215 ≤ n ≤ 215-1 unsigned short entier court positif 2 octets: 0 ≤≤n ≤ 216 char caractère signé 1 octet : - 27 ≤≤n ≤ 27-1 unsigned char caractère positif 1 octet : 0 ≤n ≤ 28 Numération : En décimal les nombres s'écrivent tels que, précédés de 0x en hexadécimal. exemple: 127 en décimal s'écrit 0x7f en hexadécimal. Remarque : En langage C, le type char est un cas particulier du type entier : un caractère est un entier de 8 bits Page 5/72 Cours -TP de C Exemples : Les caractères alphanumériques s'écrivent entre ‘ ‘ Le caractère 'b' a pour valeur 98 (son code ASCII). Le caractère 22 a pour valeur 22. Le caractère 127 a pour valeur 127. Le caractère 257 a pour valeur 1 (ce nombre s'écrit sur 9 bits, le bit de poids fort est perdu). Quelques constantes caractères : CARACTERE VALEUR (code ASCII) NOM ASCII '\n' interligne 0x0a LF '\t' tabulation horizontale 0x09HT '\v' tabulation verticale 0x0b VT '\r' retour charriot 0x0d CR '\f' saut de page 0x0c FF '\\' backslash 0x5c \ '\'' cote 0x2c ' '\"' guillemets 0x22 " Modifier ainsi le programme et le tester : #include <stdio.h> /* bibliotheque d'entrees-sorties standard */ #include <conio.h> void main() { int a, b, calcul ; /* déclaration de 3 variables */ char u, v; puts("BONJOUR"); /* utilisation d'une fonction- bibliotheque */ a = 10 ; /* affectation* / b = 50 ; /* affectation */ u = 65 ; v = ‘A’ ; calcul = (a + b)*2 ; /* affectation et opérateurs */ printf(« Voici le resultat : %d\n », calcul) ; printf(« 1er affichage de u : %d\n »,u) ; printf(« 2ème affichage de v : %c\n »,u) ; printf(« 1er affichage de u: %d\n »,v) ; printf(« 2éme affichage de v: %c\n »,v) ; puts("Pour continuer frapper une touche..."); getch(); /* Attente d'une saisie clavier */ } Les réels Un réel est composé - d'un signe - d'une mantisse- d'un exposant Un nombre de bits est réservé en mémoire pour chaque élément. Le langage C distingue 2 types de réels : TYPE DESCRIPTION TAILLE MEMOIRE float réel standard 4 octets double uploads/Litterature/ cours-tp-du-c.pdf
Documents similaires
-
12
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 24, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.3530MB