Cours du Langage C Professeur : NAMEZ 1 Langage de Programmation Structurée C B
Cours du Langage C Professeur : NAMEZ 1 Langage de Programmation Structurée C BTS SRI - 1ère Année Cours du Langage C Professeur : NAMEZ 2 SOMMAIRE Chapitre 1 : 3 NOTIONS DE BASE Chapitre 2 : 5 TYPES DE BASE, OPÉRATEURS ET EXPRESSIONS Chapitre 3 : 18 LIRE ET ÉCRIRE DES DONNÉES Chapitre 4 : 24 LA STRUCTURE ALTERNATIVE Chapitre 5 : 29 LA STRUCTURE REPETITIVE Chapitre 6 : 32 LES TABLEAUX Chapitre 7 : 40 LES CHAÎNES DE CARACTÈRES Chapitre 8 : 47 LES POINTEURS Chapitre 9 : 59 LES FONCTIONS Cours du Langage C Professeur : NAMEZ 3 Chapitre 1 : NOTIONS DE BASE 1. Hello C ! Suivons la tradition et commençons la découverte de C par l'inévitable programme 'hello world'. Ce programme ne fait rien d'autre qu'imprimer les mots suivants sur l'écran: Hello world Comparons d'abord la définition du programme en C avec celle en langage algorithmique. HELLO_WORLD en langage algorithmique Algorithme HELLO_WORLD Début | (* Notre premier programme en C *) | écrire "hello, world" Fin HELLO_WORLD en C #include <stdio.h> |main() |/* Notre premier programme en C */ |{ | printf("hello, world\n"); | return 0; |} 2. Les composantes d'un programme en C Les programmes en C sont composés essentiellement de fonctions et de variables. Pour la pratique, il est donc indispensable de se familiariser avec les caractéristiques fondamentales de ces éléments. 2.1. La fonction main La fonction main est la fonction principale des programmes en C : Elle se trouve obligatoirement dans tous les programmes. L'exécution d'un programme entraîne automatiquement l'appel de la fonction main. Dans les premiers chapitres, nous allons simplement 'traduire' la structure Début -- Fin du langage algorithmique par une définition équivalente de la fonction main : Définition du programme principal en langage algorithmique Algorithme <NomProgramme> <Déclarations> Début | <Instructions> Fin Définition de la fonction main en C |main() |{ | <déclarations> ; | <instructions> ; | return 0; |} Cours du Langage C Professeur : NAMEZ 4 Résultat de main - En principe tout programme devrait retourner une valeur comme code d'erreur à son environnement. Par conséquent, le type résultat de main est toujours int. En général, le type de main n'est pas déclaré explicitement, puisque c'est le type par défaut. Nous allons terminer nos programmes par l'instruction : return 0; Qui indique à l'environnement que le programme s'est terminé avec succès, sans anomalies ou erreurs fatales. - Si nous utilisons des fonctions prédéfinies (par exemple: printf), il faut faire précéder la définition de main par les instructions #include correspondantes. 2.2. Les variables Les variables contiennent les valeurs qui sont utilisées pendant l'exécution du programme. Les noms des variables sont des identificateurs quelconques. 2.3. Les identificateurs Les noms des fonctions et des variables en C sont composés d'une suite de lettres et de chiffres. Le premier caractère doit être une lettre. Le symbole '_' est aussi considéré comme une lettre. * L'ensemble des symboles utilisables est donc : {0,1,2,...,9,A,B,...,Z,_,a,b,...,z} * Le premier caractère doit être une lettre (ou le symbole '_') * C distingue les majuscules et les minuscules, ainsi : 'Nom_de_variable' est différent de 'nom_de_variable' * La longueur des identificateurs n'est pas limitée, mais C distingue 'seulement' les 31 premiers caractères. Remarques : - Il est déconseillé d'utiliser le symbole '_' comme premier caractère pour un identificateur, car il est souvent employé pour définir les variables globales de l'environnement C. Exemples : Identificateurs corrects: Identificateurs incorrects: nom1 1nom nom_2 nom.2 _nom_3 -nom-3 Nom_de_variable Nom de variable deuxieme_choix deuxième_choix mot_francais mot_français 2.4. Les commentaires Un commentaire commence toujours par les deux symboles '/*' et se termine par les symboles '*/'. Il est interdit d'utiliser des commentaires imbriqués. Exemples /* Ceci est un commentaire correct */ /* Ceci est /* évidemment */ défendu */ Cours du Langage C Professeur : NAMEZ 5 Chapitre 2 : TYPES DE BASE, OPÉRATEURS ET EXPRESSIONS Les variables et les constantes sont les données principales qui peuvent être manipulées par un programme. Les déclarations introduisent les variables qui sont utilisées, fixent leur type et parfois aussi leur valeur de départ. Les opérateurs contrôlent les actions que subissent les valeurs des données. Pour produire de nouvelles valeurs, les variables et les constantes peuvent être combinées à l'aide des opérateurs dans des expressions. Le type d'une donnée détermine l'ensemble des valeurs admissibles, le nombre d'octets à réserver en mémoire et l'ensemble des opérateurs qui peuvent y être appliqués. 1. Les types simples Les charges du programmeur Même un programmeur utilisant C ne doit pas connaître tous les détails des méthodes de codage et de calcul, il doit quand même être capable de: - choisir un type numérique approprié à un problème donné ; c-à-d.: trouver un optimum de précision, de temps de calcul et d'espace à réserver en mémoire - choisir un type approprié pour la représentation sur l'écran - prévoir le type résultant d'une opération entre différents types numériques ; c-à-d.: connaître les transformations automatiques de type que C accomplit lors des calculs (voir 3.7.1). - prévoir et optimiser la précision des résultats intermédiaires au cours d'un calcul complexe ; c-à-d.: changer si nécessaire l'ordre des opérations ou forcer l'ordinateur à utiliser un type numérique mieux adapté. 1.1. Les types entiers Avant de pouvoir utiliser une variable, nous devons nous intéresser à deux caractéristiques de son type numérique: (1) le domaine des valeurs admissibles (2) le nombre d'octets qui est réservé pour une variable Le tableau suivant résume les caractéristiques des types numériques entiers de C : définition description domaine min domaine max nombre d'octets char caractère -128 127 1 short entier court -32768 32767 2 int entier standard -32768 32767 2 long entier long -2147483648 2147483647 4 - char : caractère Cours du Langage C Professeur : NAMEZ 6 Une variable du type char peut contenir une valeur entre -128 et 127 et elle peut subir les mêmes opérations que les variables du type short, int ou long. - int : entier standard Sur chaque machine, le type int est le type de base pour les calculs avec les entiers. Le codage des variables du type int est donc dépendant de la machine. Sur les IBM-PC sous MS-DOS, une variable du type int est codée dans deux octets. - short : entier court Le type short est en général codé dans 2 octets. Comme une variable int occupe aussi 2 octets sur notre système, le type short devient seulement nécessaire, si on veut utiliser le même programme sur d'autres machines, sur lesquelles le type standard des entiers n'est pas forcément 2 octets. Remarques 1. Les valeurs limites des différents types sont indiquées dans le fichier header <limits.h>. 2. En principe, on peut dire que sizeof(short) <= sizeof(int) <= sizeof(long) Ainsi sur certaine architecture on peut avoir : short = 2 octets, int = 2 octets, long = 4 octets 1.2. Les types rationnels En informatique, les rationnels sont souvent appelés des 'flottants'. Ce terme vient de 'en virgule flottante' et trouve sa racine dans la notation traditionnelle des rationnels: <+|-> <mantisse> * 10<exposant> <+|-> est le signe positif ou négatif du nombre <mantisse> est un décimal positif avec un seul chiffre devant la virgule <exposant> est un entier relatif Exemples 3.14159*100 1.25003*10-12 4.3001*10321 -1.5*103 En C, nous avons le choix entre trois types de rationnels: float, double et long double. Dans le tableau ci-dessous, vous trouverez leurs caractéristiques : min et max représentent les valeurs minimales et maximales positives. Les valeurs négatives peuvent varier dans les mêmes domaines. mantisse indique le nombre de chiffres significatifs de la mantisse. définition précision mantisse domaine min domaine max nombre d'octets float simple 6 3.4 * 10-38 3.4 * 1038 4 double double 15 1.7 * 10-308 1.7 * 10308 8 long double suppl. 19 3.4 * 10-4932 1.1 * 104932 10 Cours du Langage C Professeur : NAMEZ 7 2. La déclaration des variables simples Déclaration de variables en langage algorithmique <NomVar1>, <NomVar2>,..., <NomVarN> : <Type> Déclaration de variables en C <Type> <NomVar1>,<NomVar2>,...,<NomVarN>; Prenons quelques déclarations du langage descriptif, entier COMPTEUR,X,Y réel HAUTEUR,LARGEUR,MASSE_ATOMIQUE caractère TOUCHE booléen T_PRESSEE Et traduisons-les en des déclarations du langage C : int compteur,X,Y; float hauteur,largeur; double masse_atomique; char touche; int t_pressee; Langage algorithmique --> C En général, nous avons le choix entre plusieurs types et nous devons trouver celui qui correspond le mieux au domaine et aux valeurs à traiter. Voici quelques règles générales qui concernent la traduction des déclarations de variables numériques du langage algorithmique en C : - La syntaxe des déclarations en C ressemble à celle du langage algorithmique. Remarquez quand même les points-virgules à la fin des déclarations en C. Entier : Nous avons le choix entre tous les types entiers (inclusivement char) dans leurs formes signe. Si les nombres deviennent trop grands, il faut utiliser un type rationnel (p.ex: double) Réel : Nous pouvons choisir entre les trois types rationnels en observant non seulement la grandeur maximale de l'exposant, mais plus encore le nombre de chiffres significatifs de la mantisse. Caractère : Toute variable du type char uploads/s3/ cours-c-rsum-final.pdf
Documents similaires
-
22
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 10, 2022
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 1.0798MB