LANGAGE C LP A2I IUT St DIE 2012-2013.

Slides:



Advertisements
Présentations similaires
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
Advertisements

GEF 243B Programmation informatique appliquée
Premier programme en C :
La boucle for : init7.c et init71.c
Introduction au Langage C,C++
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Introduction Langage très répandu Noyau Linux VLC … Des avantages indéniables mais aussi des contraintes ! Ceci nest quun rapide tour.
Rappels C.
Développement logiciel sur micro-contrôleurs PIC en C
Introduction au langage C
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Algorithmique Résume.
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
C.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
Structures et unions types énumérés Qu'est-ce qu'une structure
Tableaux Certains problèmes nécessitent beaucoup de variables du même type. Exemple : relevé de températures matin et soir dans 10 villes pour 10 jours.
Introduction : Compilation et Traduction
FLSI602 Génie Informatique et Réseaux
8. Les tableaux P. Costamagna – ISEN N1.
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Langage C Révision.
CPI/BTS 2 Programmation Web Introduction au PHP
Récursivité.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
TRAITEMENT DE STRUCTURES
Introduction à la programmation (Java)
Base de programmation Script unity en c#.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
Principes de programmation
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
8PRO100 Éléments de programmation Les types composés.
COURS DE PROGRAMMATION ORIENTEE OBJET :
C++ : variables Déclaration de variables
Tableaux Introduction aux tableaux à une dimension. Déclaration, stockage, initialisation et accès en lecture ou en écriture aux composantes d’un tableau.
Procédures et fonctions
Types de données fondamentaux
L’essentiel du langage C
Structures des données
Stocker plusieurs valeurs de même type dans une variable
Programmer en langage c
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
Les adresses des fonctions
ALGORITHMIQUE ET PROGRAMMATION C
Les types.
Langage C Chapitre I: Initiation à la programmation en C
Autres éléments du langage
Un survol du language C.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Module I3 algorithmique et programmation
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Cours LCS N°4 Présenté par Mr: LALLALI
Le Préprocesseur. Sujets abordés: Préprocesseur –Qu’est ce? –Qu’est ce qu’une directive? Les macros –Les définir, les redéfinir, les dé-définir –Les macros.
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
Introduction au langage C Les entrées-sorties
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Structures de données et algorithmes – TP1 Maria-Iuliana Dascalu
Programmation en C.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Tour rapide d’un premier programme SPARC v9
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Introduction au langage C
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Informatique 2A Langage C 1 ère séance.
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Transcription de la présentation:

LANGAGE C LP A2I IUT St DIE 2012-2013

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

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

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

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…

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;

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é "_"

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

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

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

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

Variables et Constantes Entier : int I; short S; long L; C'est un nombre positif ou négatif : ex 1584 ou -458. 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,45 104 Boolean : pas de déclaration en C Il peut prendre deux états VRAI ou FAUX

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

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

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

Variables et Constantes Les principaux type de variables :

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

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

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

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

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

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} };

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

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"

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

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 }

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 }

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 );

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 :

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

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>

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

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

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);

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 !

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

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

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

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

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

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 );

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);

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.

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.

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.

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 Email : jean-dupond@gmail.com ===========================