La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

LANGAGE C LP A2I IUT St DIE 2012-2013.

Présentations similaires


Présentation au sujet: "LANGAGE C LP A2I IUT St DIE 2012-2013."— Transcription de la présentation:

1 LANGAGE C LP A2I IUT St DIE

2 Introduction Le langage C fait partie des langages structurés
Créé en 1970 par Denis Ritchie sous UNIX Principaux avantages du C La portabilité Un grand nombre de bibliothèques Proche de la machine Rapide

3 Un programme en C LA COMPILATION
C’est la traduction d’un algorithme déterminé par une analyse du problème à traiter. Il est décrit dans un fichier texte, appelé fichier source Ce fichier n’est pas exécutable Il faut le traduire dans un langage compréhensible par le microprocesseur LA COMPILATION

4 La compilation en 4 étapes
Le traitement par le préprocesseur : le fichier source est analysé par le préprocesseur qui effectue des transformations textuelles dans le fichier source. (substitution de chaine de caractère, prise en compte des directives de compilation inclusion des autres fichiers sources…) La compilation : C’est la traduction du fichier généré par le préprocesseur en assembleur, c’est-à-dire en une suite d’instruction du microprocesseur. (en mnémonique rendant la lecture possible) L’assemblage : Cette opération transforme le code assembleur en un fichier binaire directement compréhensible par le processeur. L’édition de liens : C’est la liaison de tous les fichiers objets utilisés par le programme (source(s), librairies de fonctions standard ou autres…)  EXECUTABLE

5 Comment créer un programme
Il faut : Un éditeur de texte Un compilateur Un debugger Deux solutions : On utilise trois programmes différents : On utilise un IDE (environnement de développement intégré) DevCpp, wxDevCpp, Code::Blocks, VisualC++, VisualC++ express, Qt4…

6 Structure d’un programme C
#include <stdio.h> #define PI 3.14 float r,p; void perimetre(float rayon, float *peri); void main() { r=5; perimetre(r,&p); printf("Le périmetre du cercle de rayon %f = %f",r,p); } void perimetre(float rayon, float *peri) *peri = 2*PI*rayon;

7 Structure d’un programme C
Règles de bases Inclure les fichiers d'entête #include si dans répertoire des fichiers d'entête : <Nom_du_fichier.h> si dans répertoire courant : "Nom_du_fichier.h" Toutes instructions ou actions se termine par un point virgule Commentaires début : /* fin : */ éventuellement sur plusieurs lignes ou // commentaire… sur une seule ligne Un bloc d'instruction commence par { et se termine par } Le langage C est sensible à la casse. Les mots du langage en minuscules. Adopter une règle uniforme sur les noms de variable et de fonction et toujours les écrire de la même façon. Ma_fonction ≠ ma_fonction ≠ MA_FONCTION Caractères autorisés pour les noms de variables Lettres non accentuées Chiffres sauf au début du nom Caractère souligné "_"

8 Programme C minimum #include <stdio.h> #include <stdlib.h> int main() { printf("Bonjour !! \n\n"); system("PAUSE"); return(0); }

9 Programme C minimum #include <stdio.h> #include <stdlib.h> int main() { printf("Bonjour !! \n\n"); system("PAUSE"); return(0); }

10 Gestion du passage de paramètres au programme
Programme C minimum #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[ ]) { printf("Bonjour !! \n\n"); system("PAUSE"); return(0); } Gestion du passage de paramètres au programme

11 Variables et Constantes
Définitions: Constante : Elle ne change jamais pendant l'exécution du programme Variable : Elle peut changer de valeur pendant l'exécution du programme Une variable ou une constante est définie par cinq éléments L'identificateur : c'est son nom Le type : entier, caractère, chaine de caractère, réel, boolean La taille : nombre d'octets occupés en mémoire La valeur : c'est la valeur que l'on attribue à la variable ou la constante L'adresse : c'est l'emplacement mémoire où est stocké la valeur de la variable ou de la mémoire

12 Variables et Constantes
Entier : int I; short S; long L; C'est un nombre positif ou négatif : ex 1584 ou Caractère : char C; C'est un nombre entier positif compris entre 0 et 255 et c'est le code ASCII du caractère ex 65 est le code ASCII de "A". Chaine de caractère : char Chaine[10]; C'est un ensemble de caractères : ex [L][A][N][G][A][G][E][\0] [76][65][78][71][65][71][69][\0] Réel : float F; double DF; C'est un nombre à virgule positif ou négatif avec un exposant ex: 12, Boolean : pas de déclaration en C Il peut prendre deux états VRAI ou FAUX

13 Variables et Constantes
Boolean : pas de déclaration en C Il peut prendre deux états VRAI ou FAUX Solution pour gérer correctement les booléens en C: #define true 1 #define false 0 typedef int bool; Bool B; Déclaration de la variable booléenne B

14 Variables et Constantes
Constantes : const Exemple : const float PI= Remarque : On peut aussi utilise la directive de compilation #define Exemple : #define PI Valeur Identificateur Type

15 Variables et Constantes
Syntaxe de déclaration des variables : <type> <identificateur>,..,<identificateur> = valeur; Exemple : int Entier1 = -15 ; Exemple d'un entier non signé : unsigned int Entier2 = 15 ; Valeur Type Identificateur

16 Variables et Constantes
Les principaux type de variables :

17 Variables et Constantes
Exemple de déclarations et d'affectations:

18 Variables et Constantes
Remarque concernant les affectations de entiers: On peut forcer la base d'une valeur entière en hexadécimal ou en octal Hexadécimal : on ajoute avant la valeur 0x exemple : 0xFF ~ 255 décimal Octal : on ajoute avant la valeur 0 exemple : 010 ~ 8 décimal

19 Variables et Constantes
Remarque concernant les affectations de entiers: On peut forcer la base d'une valeur entière en hexadécimal ou en octal Hexadécimal : on ajoute avant la valeur 0x exemple : 0xFF ~ 255 décimal Octal : on ajoute avant la valeur 0 exemple : 010 ~ 8 décimal

20 Variables et Constantes
Les tableaux: Ils permettent de stocker des variables de même type de façon contiguë. Ils sont caractérisés par : Le nombre d'éléments Le nombre de dimensions Syntaxe : <type> <identificateur> [ nb élément ] … [ nb élément ] exemple : int i [10] tableau d'entiers à 1 dimension int i [10][5][3] tableau d'entiers à 3 dimensions Remarque : le premier élément d'un tableau est l'indice 0

21 Variables et Constantes
Les tableaux: Ils permettent de stocker des variables de même type de façon contiguë. Il sont caractérisés par : Le nombre d'éléments Le nombre de dimensions Syntaxe : <type> <identificateur> [ nb élément ] … [ nb élément ] exemple : int i [10] tableau d'entiers à 1 dimension int i [10][5][3] tableau d'entiers à 3 dimensions Remarque : le premier élément d'un tableau est l'indice 0

22 Variables et Constantes
Les tableaux  déclaration et initialisation : On peut initialiser un tableau lors de la déclaration Déclaration d'un tableau et initialisation int Tableau[4] = { 12, 14, 5, 8 }; Déclaration d'un tableau et initialisation à 2 dim int Tableau[2][3] = { 10, 20, 30, 40, 50, 60 }; ou int Tableau[2][3] = { {10, 20, 30} , {40, 50, 60} };

23 Variables et Constantes
Les chaines de caractères : Elles sont vue en C comme un tableau. La fin de la chaine est identifié par un caractère nul '\0' (chaine à zéro terminal): Déclaration d'une chaine : char MaChaine [10]; Déclaration d'une chaine avec son initialisation : char MaChaine [10] = "Texte"; ou char Chaine[]="bidule"; (calcule automatique de la taille) 1 2 3 4 5 6 7 8 9 T e x t \0 ? 84 101 120 116

24 Variables et Constantes
Les chaines de caractères : Attention pour stocker le mot "bonjour" (qui comprend 7 lettres) il faut un tableau de 8 char (7 + 1) afin de stocker le code nul '\0' en fin de chaine. Remarque : La présence du code nul en fin de chaine est un avantage pour la manipulation des tableaux contenant des chaines de caractères, car se code évite la gestion de la taille des tableaux (passage de paramètres dans les fonctions) Remarque sur la syntaxe : Pour un char on l'affecte avec 'A' Pour une chaine on l'affecte avec "ABCD"

25 Variables et Constantes
Les chaines de caractères : On peut aussi initialiser une chaine de caractère dans un programme, mais attention on ne peut pas écrire : MaChaine = "Toto"; Il faut utiliser la fonction strcpy(Variable,Chaine) Initialisation d'une chaine avec strcpy : strcpy( MaChaine, "Toto"); Remarque : Strcpy est déclaré dans le fichier string.h #include <string.h> à ne pas oublier en début de code source

26 Variables et Constantes
Les variables dans les blocs: La position des déclarations des variables dans les différents bloc du programme influence la portée des variables dans le code. Déclaration avant le programme principal (main) les variables sont globales : elles sont accessibles n'importe où dans le programme. Déclaration dans un bloc les variables sont locales : elles n'existe que dans le bloc où elles ont été déclarées Pour mémoire : un bloc commence par { et fini par }

27 Variables et Constantes
Les variables dans les blocs: La position des déclaration de variable dans les différents bloc du programme influence la portés des variable dans le code. Déclaration avant le programme principal (main) les variables sont globales : elles sont accessibles n'importe où dans le programme. Déclaration dans un bloc les variables sont locales : elles n'existe que dans le bloc où elles ont été déclarées Pour mémoire : un bloc commence par { et fini par }

28 Fonctions d'affichage et de saisie
La fonction d'affichage: Elle permet d'afficher des messages et/ou des valeurs de variables sous différents formats. Syntaxe : printf ( <"Format">, Variable_1, … ,Variable_n ); Le format : Il indique comment vont être affiché les valeurs des variables. Il est composé de texte et de codes d'affichage suivant le type de variable. Exemple : printf("La valeur de %d au carré est égale à %d", i , i*i );

29 Fonctions d'affichage et de saisie
La fonction d'affichage: Attention pour utiliser printf il faut la bibliothèque stdio.h, il faut ajouter #include <stdio.h> en début de code. Exemple :

30 Fonctions d'affichage et de saisie
Codes d'affichage:

31 Fonctions d'affichage et de saisie
Codes d'affichage: On peut compléter les cotes d'affichage des variables pour les nombres signé ou flottants. Un caractère de remplissage : '0' au lieu de ' ' pour les numériques Justifier à gauche: '-' qui permet de justifier à gauche l'affichage Affichage signe: '+' qui permet de forcer l'affichage du signe Nombre de chiffres affichés: Syntaxe <Nb car affiché> . <Nb chiffre significatif>

32 Fonctions d'affichage et de saisie
Codes d'affichage: On peut compléter les cotes d'affichage des variables pour les nombres signé ou flottants. Un caractère de remplissage : '0' au lieu de ' ' pour les numériques Justifier à gauche: '-' qui permet de justifier à gauche l'affichage Affichage signe: '+' qui permet de forcer l'affichage du signe Nombre de chiffres affichés: Syntaxe <Nb car affiché> . <Nb chiffre significatif> Résultat

33 Fonctions d'affichage et de saisie
Code de contrôle:

34 Fonctions d'affichage et de saisie
Autres fonctions d'affichage: il existe deux autres fonctions d'affichage. putchar : affiche un caractère Syntaxe : putchar ( identificateur); ex : putchar('C'); putchar('\0'); puts : affiche une chaine de caractères Syntaxe : puts ( identificateur); ex : puts('Un texte'); puts('Autre texte\0'); char message[10] = "bonjour"; puts(message);

35 Fonctions d'affichage et de saisie
La fonction de saisie: Elle permet de saisir des valeurs de variables formatées à partir du clavier. Comme prinft elle est composée d'un format et des identificateurs des variables à saisir. Syntaxe : scanf ( <"Format">, &Variable_1, … ,&Variable_n ); Remarque: Le symbole & est obligatoire devant les identificateurs car scanf attend des adresses et non des valeurs, sauf devant un identificateur de chaine de caractères qui est déjà une adresse. Exemple : scanf(" %d", &i );  saisie d'un entier et copie dans i !

36 Fonctions d'affichage et de saisie
Les codes d'entrées pour scanf:

37 Fonctions d'affichage et de saisie
Exemple de saisie d'une variable:

38 Fonctions d'affichage et de saisie
Exemple de saisie de plusieurs variables:

39 Fonctions d'affichage et de saisie
Exemple de saisie d'une chaine de caractères:

40 Fonctions d'affichage et de saisie
Autres fonctions de saisie: getchar() : saisie d'un caractère syntaxe : identificateur = getchar( void );

41 Fonctions d'affichage et de saisie
Autres fonctions de saisie: gets() : saisie d'une chaine de caractères avec des espaces (impossible avec scanf) syntaxe : gets( identificateur de chaine );

42 Fonctions d'affichage et de saisie
Autres fonctions liées à la saisie: getch() : saisie d'un caractère à la "volé" pas de touche [entrée] syntaxe : identificateur = getch( void ); A utiliser par exemple dans la gestion de menu. fflush(stdin) : vide le buffer clavier Dans certains cas le buffer du clavier n'est pas complétement vide (exemple après la saisie d'une chaine avec un scanf). Cette fonction force la lecture du buffer du clavier jusqu'à rencontrer un caractère nul '\0' Pour info une autre méthode : do { c = getchar(); } while (c != '\n' && c != EOF);

43 EXERCICES SERIE 1 Déclaration de variables, saisie et affichage
Ex1 : Ecrivez un programme qui demande l'entrée de 2 nombres entiers et calcule la somme, la différence et la moyenne. Chaque résultat sera affiché sous la forme d'une phrase, exemple : La somme de 5 et 3 est 8 Ex2 : Modifiez le programme précèdent afin de pouvoir saisir des nombres réels. Formatez les affichages des nombres réels avec deux chiffres après la virgule.

44 EXERCICES SERIE 1 Déclaration de variables, saisie et affichage
Ex3 : Affichage d'adresses 1) Implantez les déclarations de variables suivantes: char Chaine[] = {"Bonjour"}; int A; char C,C2; float F; int B,D; Initialisez les variables avec les valeurs de votre choix. Ajoutez le code nécessaire pour afficher pour toutes les variables, la valeur et l'adresse. Vérifiez alors la taille de chaque variable en fonction des adresses.

45 EXERCICES SERIE 1 Déclaration de variables, saisie et affichage
Ex3 : Affichage d'adresses 2) Ajoutez dans la déclaration de variable short AA: char Chaine[] = {"Bonjour"}; int A; short AA; char C,C2; float F; int B,D; Complétez le code pour afficher maintenant également la variable AA Comparez les deux affichages et comment le compilateur implante les variables dans la mémoire.

46 EXERCICES SERIE 1 Déclaration de variables, saisie et affichage
Ex4 : Saisie abonné Ecrivez un programme qui permet la saisie du Nom, du prénom, de l'âge et de l'adresse mail d'un client. Après la saisie affichez la fiche client suivant le format ci-dessous. Fiche client =========================== Nom : Dupont Prenom : Jean Age : 45 ans ===========================


Télécharger ppt "LANGAGE C LP A2I IUT St DIE 2012-2013."

Présentations similaires


Annonces Google