Chapitre II : Eléments de base du langage C PDF
Document Details
École nationale des sciences appliquées de Tétouan
2024
Pr. HACHCHANE Imane
Tags
Summary
Ce document détaille les éléments de base du langage de programmation C. Il couvre les aspects fondamentaux des programmes C, y compris la structure de base, les fonctions d'entrée/sortie, et les directives du préprocesseur. Le document est une ressource utile pour les étudiants de premier cycle en informatique ou tout autre individu souhaitant apprendre les bases du langage C.
Full Transcript
1 Pr. HACHCHANE Imane [email protected] Chapitre II : Eléments de base du langage C Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 2 I. Structure génér...
1 Pr. HACHCHANE Imane [email protected] Chapitre II : Eléments de base du langage C Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 2 I. Structure générale d’un programme II. Composants élémentaires du langage C III. Fonctions d’entrées/sorties IV. Les directives du préprocesseur Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 3 Structure générale d’un programme Un programme en langage C est généralement composé de: a) Les directives du préprocesseur #include (#include, #define, …) b) Les créations de types (struct, union, enum, typedef) c) Les déclarations de variables int main (int argc, const char * argv[]) { externes (ou globales) et de fonctions int a, b, somme; d) Fonction main() 1) Déclaration de variables printf("entrer la valeur de a "); scanf("%d", &a); internes printf("entrer la valeur de b "); 2) Instructions scanf("%d", &b); somme = a + b; printf("La somme est: %d \n", somme); return 0; } Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 4 Structure générale d’un programme Les entêtes de fichiers sont obligatoires quand on fait des appels de fonctions de la bibliothèque standard (librairie) Exemple: stdio.h est un fichier entête de la bibliothèque standard (contient les fonctions de lecture et d’écriture) L’appel du fichier se fait avec la directive #include La fonction main() : fonction principale d’un programme C main() doit se trouver obligatoirement dans le fichier source int main () { La fonction main() retourne la valeur 0: indique que le return 0; programme s’est terminé avec succès } Chaque instruction simple se termine par un point-virgule ; Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 5 Composants élémentaires Variables et identificateurs Les mots clés Les types fondamentaux Les constantes Les commentaires Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 6 Variables et identificateurs Les variables servent à stocker les données utilisées pendant l’exécution du programme (stockage temporaire) Exemples: a, b, x, y, i, j, var12 Une variable doit toujours être déclarée avant d’être utilisée Elle est déclarée avec un type et un identificateur: [type] [identificateur] Un identificateur est un nom donné à une variable « ou à une entité du programme (fonction, type prédéfini, constante) Il est constitué de: lettres sans accent (alphabet anglais) en majuscule ou en minuscule, chiffres, et du caractère _ C est sensible à la case (case sensitive), les majuscules et les minuscules sont considérées comme des caractères différents. Exemple, les variables «variable» et «Variable» sont distinctes Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 7 Variables et identificateurs Remarque: éviter de commencer le nom de la variable par _ pour éviter toute confusion avec les identificateurs qui se trouvent dans la bibliothèque standard Règles à respecter pour les identificateurs: Ne pas utiliser d’espaces Ne pas utiliser de tirés (-), de symboles (&, @, $, « » …) Ne pas utiliser d’opérateurs arithmétiques et logiques (+, -, *, =…) Ne pas utiliser de. (réservés aux extensions de fichiers) Ne pas commencer le nom d’une variable par un chiffre Ne pas utiliser de mots clés réservés au langage Exemples corrects Exemples incorrects nomvar, nom_var, NOM_VAR nom var, nom-var, nom.var var1 1var, var$ Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 8 Variables et identificateurs Le langage C compte des mots clés réservés aux: instructions de contrôles (break, case, while, if, …) spécifications de types (int, float, short, …) qualifications de types (const, volatile, …) Pour plus d’information: spécifications de stockage (register, typedef, static, …) https://en.cppreference.com/w/c/keyword … Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 9 Les types fondamentaux C est un langage typé: toute variable, constante ou fonction est d’un type précis Le type d’une variable définit l’ensemble des valeurs qu’elle peut prendre et le nombre d’octets à lui réserver en mémoire La mémoire est composée d’une suite continue d’octets et chaque octet a une adresse qui est un entier Quand une variable est déclarée, une adresse lui est attribuée dans la mémoire. L’adresse correspond à une zone mémoire dont la longueur est fixée par le type RAM … 3400 3404 3408 … … 4710 4718 … Variable v1 3400 Adresse Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 10 Les types fondamentaux Il existe deux catégories de types de base en langage C: Les entiers Les réels int float char double short long double long … Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 11 Les types entiers int: entier standard. Il peut être de type short ou long: Type Taille Valeurs représentées short int 2 octets - 32 768 à 32 767 long int 4 octets - 2 147 483 648 à 2 147 483 647 unsigned short 2 octets 0 à 65 535 unsigned long 4 octets 0 à 4 294967 296 char: type caractère. Ce type est un dérivé de l’entier car un caractère en C est identifié par son code ASCII qui est un nombre entier (exemple: code ASCII de A: 65) Type Taille Valeurs représentées char 1 octets (8bits) - 128 à 127 unsigned char 1 octets 0 à 255 Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 12 Les types flottants Ils représentent les nombres en virgules. Chaque dérivé correspond à une précision possible Type Taille Valeurs représentées float 4 octets Simple précision Environ 7 chiffres décimaux double 8 octets Double précision Environ 15 à 16 chiffres décimaux long double 10 octets Quadruple précision Environ 18 à 34 chiffres décimaux Un nombre flottant peut représenter : Un nombre entier décimal: exemple: 142 Un nombre comportant un point décimal: exemple: 12.34 Un nombre exponentiel (éventuellement à virgule): exemple: 4.3-2, 56.8210 Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 13 Déclaration de variables Syntaxe de la déclaration d’une variable: [type] [nomVariable]; Exemple: int a; Il est possible de déclarer et initialiser la variable en même temps: int somme = 0; double r = 3.54; Il est possible de déclarer plusieurs variables dans la même ligne (séparées par des virgules) float f1, f2, f3; int x, y = 2; Le type char : char c1; char c2 = ‘D’; Chaîne de caractères: voir chapitre V Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 14 Les constantes Une constante est une valeur / donnée utilisée dans le programme Elle peut être utilisée pour initialiser une variable ou pour lui affecter une valeur 3 types de constantes: Les constantes entières Les constantes réelles Les constantes caractères Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 15 Les constantes entières Elles peuvent être représentées de 3 manières différentes: Forme Description Exemple décimale forme usuelle d’un entier 0, 35, 274 octale forme d’un entier en base 8: chiffre 0 → 00 commence par 0 chiffre 27 → 033 hexadécimale forme d’un entier en base 16: chiffre 27 → 0x1B commence par 0x ou 0X suivi de chiffre 255 → 0xff chiffre hexadécimaux (0-9 et a-f) Par défaut, le type d'une constante entière est le plus petit type dans lequel sa valeur peut être représentée Pour la forme décimale: int, sinon long, sinon unsigned long Certains suffixes forcent l’utilisation d’unsigned et de long L ou l : pour le type long (ex: 123456789L) UL ou ul: pour le type unsigned long (ex: 035ul) Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 16 Les constantes réelles Peuvent avoir deux notations: Notation usuelle de nombres réels: 14.56 , 3.4567 Notation exponentielle: utilisation de e ou E pour l’exposant: Exemple: 12.3e-4 , 13.5E+2 Les constantes réelles sont par défaut de type double On peut forcer l’utilisation du float et du long double avec les suffixes suivants: F ou f pour le type float (ex: 2.26f) L ou l pour le type long double (ex: 12.35L) Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 17 Les constantes caractères Un caractère imprimable est désigné par 2 apostrophes: exemple: ‘a’ , ‘R’ Une chaîne de caractère est désignée par des guillemets: exemple: ʺceci est une chaine de caractère ʺ L’apostrophe, les guillemets et le back slash sont désignés par un autre back slash : \’ \ʺ \\ Cas particuliers: les caractères non imprimables \n nouvelle ligne exemple: \t tabulation horizontale printf("Plan du cours \n Introduction \n \v tabulation verticale Chapitre 1 \n Chapitre 2"); \b retour arrière \r retour chariot \f saut de page \a signal d’alerte Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 18 Les commentaires Les commentaires sont pratiques pour expliquer le code de votre programme ou pour ignorer une partie du code sans le supprimer Pour insérer une ligne de commentaire: //voici mon commentaire Pour insérer une ou plusieurs lignes de commentaires: Attention: Les commentaires ne s’imbriquent pas: chaine*/ → écriture erronée Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 19 Les fonctions d’entrées/sorties Les fonctions d’entrées/sorties permettent à la machine de communiquer avec l’utilisateur Fonction d’entrée = lecture de données par le programme: lit les valeurs entrées par l’utilisateur grâce au clavier Fonction de sortie = écriture de données par le programme: affiche des données et valeurs à l’écran Les fonctions de lecture et d’écriture sont définies dans le fichier de la bibliothèque standard: il suffit de les appeler par leur nom dans le code de votre programme et de respecter leur syntaxe Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 20 La fonction de sortie: printf Sa syntaxe peut contenir : du texte (caractère ou chaîne de caractères), des variables (ou expressions de variables) et des séquences d’échappement (\n, \t, …) Syntaxe de printf (): printf("texte spécificateurs de format", expressions); Le spécificateur de format permet de préciser le format de données à afficher. Sa syntaxe: % suivi d’un caractère prédéfini pour le format souhaité Par exemple: %d désigne le type entier Dans printf() il est possible de combiner plusieurs textes (s’il y en a) avec plusieurs spécificateurs de format: printf("texte spécificateurs de format1 texte spécificateurs de format2", expression1, expression2); Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 21 La fonction de sortie: printf , float , float , float Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 22 La fonction de sortie: printf Exemples: code Résultat à l’écran printf(ʺvoici un exempleʺ) int x = 5; printf(ʺLa valeur de x est %dʺ, x); int a = 12, b = 3; printf(ʺLa somme de %d et %d est: %dʺ , a, b, a+b); float prix= 32.5; printf(ʺLe prix de cet article est %f \n Il s\’agit du prix HTʺ, prix); double prix = 27.16; printf(ʺ%eʺ, prix); char c1 = ‘A’, c2= ‘B’; printf(ʺ%c %cʺ, c1, c2); Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 23 La fonction de sortie: printf Pour les types flottants, il est possible de préciser la largeur minimale de la valeur à afficher et le nombre de chiffres après le point décimal La précision par défaut des types flottants est fixée à 6 décimales Exemples: printf("%f", 100.123); → 100.123000 printf("%.2f", 100.123); → 100.12 Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 24 La fonction d’entrée: scanf Permet de lire les données saisies au clavier par l’utilisateur Syntaxe: scanf("spécificateurs de format", &variable); Les spécificateurs de format sont presque les mêmes utilisés dans printf(): Exemple : scanf(″%f″, &a); &a fait référence à l’adresse de la variable a Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 25 La fonction d’entrée: scanf Exemple: #include int main () { int a, b; printf("entrez la valeur de a :\n"); scanf("%d", &a); printf("entrez la valeur de b :\n"); scanf("%d", &b); printf("La somme de %d et %d est: %d", a, b, a+b); } Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 26 Les directives au préprocesseur Le préprocesseur est un programme exécuté lors de la première phase de compilation Il effectue des modifications textuelles sur le fichier source à partir de directives Les directives commencent par le caractère #. Elle peuvent servir à: l’inclusion d’autres fichiers sources (#include) la définition de constantes et de macros (#define) la compilation conditionnelle (#if, #ifdef ,…) Remarque: pas de ; à la fin de la directive car il ne s’agit pas d’une instruction Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 27 Les directives au préprocesseur La directive #include: permet d’inclure les fichiers « entête » de la bibliothèque standard (contiennent des fonctions prédéfinies pour le langage C) Exemples de fichiers: stdio.h, math.h, string.h (l’extension.h fait référence à header) La directive #include est toujours introduite en début du programme Syntaxe: #include pour les fichiers de la bibliothèque #include ʺnom-de-fichierʺ pour les fichiers créés par l’utilisateur Exemples: #include #include "users/projet/etudiant/monfichier.h" #include "users/projet/etudiant/monfichier.c" Programmation en langage C 2024/2025 Chapitre II: Eléments de base du langage C 28 Les directives au préprocesseur La directive #define: l’objectif est de donner un nom parlant à une constante qui ne changera pas pendant l’exécution du programme Syntaxe: #define nom_constante contenu Le contenu peut être une valeur, un caractère, un symbole ou une expression Exemples: #define PI 3.14 #define NB_COLONNES 10 #define NB_LIGNES (2 * NB_COLONNES) #define DEBUT { #define FIN } Programmation en langage C 2024/2025