Ch1 : Eléments de base du langage C



Documents pareils
Rappels Entrées -Sorties

Algorithmique et Programmation, IMA

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Introduction au langage C

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Programmation en langage C

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Chap III : Les tableaux

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Les chaînes de caractères

Présentation du langage et premières fonctions

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

ALGORITHMIQUE ET PROGRAMMATION En C

Claude Delannoy. 3 e édition C++

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

V- Manipulations de nombres en binaire

Cours d Algorithmique et de Langage C v 3.0

INF 321 : mémento de la syntaxe de Java

LES TYPES DE DONNÉES DU LANGAGE PASCAL

UE Programmation Impérative Licence 2ème Année

Bases de programmation. Cours 5. Structurer les données

Introduction au Langage de Programmation C

Logiciel de Base. I. Représentation des nombres

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Programmation impérative

Conversion d un entier. Méthode par soustraction

UE C avancé cours 1: introduction et révisions

Programmation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval

Langage Éric Guérin 5 octobre 2010

Maple: premiers calculs et premières applications

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Programmation système I Les entrées/sorties

Informatique Générale

Programmation en C - Sommaire

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

I. Introduction aux fonctions : les fonctions standards

SUPPORT DE COURS. Langage C

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Le langage C. Introduction, guide de reference

BTS IRIS Cours et Travaux Pratiques. Programmation C. A. Lebret, TSIRIS, Lycée Diderot, 1995/06. en conformité avec le référentiel du BTS IRIS


Codage d information. Codage d information : -Définition-

Le langage C. Séance n 4

Le Langage C Licence Professionnelle Qualité Logiciel Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2011/2012

Représentation des Nombres

Les structures. Chapitre 3

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon

STAGE IREM 0- Premiers pas en Python

Introduction à l algorithmique et à la programmation M1102 CM n 3

Programmation C. J.-F. Lalande. 15 novembre 2012

Premiers pas avec Mathematica

Architecture de l ordinateur

Initiation. àl algorithmique et à la programmation. en C

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Programmation Classique en langage C

Programmation Structurée en Langage C

Chapitre 1 : La gestion dynamique de la mémoire

TP 1. Prise en main du langage Python

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Langages et Concepts de Programmation Introduction à la programmation en langage C

Calcul Formel et Numérique, Partie I

Cours de programmation avancée. Le langage C. Université du Luxembourg

Programmation C. Apprendre à développer des programmes simples dans le langage C

Algorithmique avec Algobox

Fonction réciproque. Christelle MELODELIMA. Chapitre 2 :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Algorithme. Table des matières

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Chapitre 10 Arithmétique réelle

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

COURS D'INFORMATIQUE: LANGAGE C NOTES DE COURS

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Algorithmes et mathématiques. 1. Premiers pas avec Python. Exo Hello world!

Cours d initiation à la programmation en C++ Johann Cuenin

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Logiciel de base. Première année ENSIMAG

Calcul Formel et Numérique, Partie I

Conventions d écriture et outils de mise au point

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Les fichiers. Chapitre 4

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES

Cours Informatique 1. Monsieur SADOUNI Salheddine

Représentation d un entier en base b

COMPARAISONDESLANGAGESC, C++, JAVA ET

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Algorithmique et programmation : les bases (VBA) Corrigé

Initiation à la programmation en Python

Cours Informatique Master STEP

Transcription:

Ch1 : Eléments de base du langage C Fathi Mguis Atelier de programmation 1 LFSI1/LARI1 A.U : 2014-2015

Plan 1 Généralités 2 Avantages 3 Structure d un programme en C 4 Les diverse phases d un programme C 5 Fichiers include 6 Les commentaires 7 Les types de bases 8 Les constantes 9 Les variables 10 Les opérateurs 11 Priorité des opérateurs 12 Fonctions arithmétiques standards 13 Les expressions et les instructions 14 Les entrées-sorties 15 Les conversions forcées de type (casting) Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 2 / 37

1. Généralités Le langage C a été créé dans les années 1970 par Dennis Rithcie. Un programme en langage C est une suite d instructions. Un programme en C est un ensemble de fonctions, parmi ces fonctions, il existe une fonction de démarrage dont le nom est main. Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 3 / 37

2. Avantages Le grand succès du langage C s explique par les avantages suivants ; C est un langage : Universel : C n est pas orienté vers un domaine d applications spéciales, comme par exemple FORTRAN (applications scientifiques et techniques) ou COBOL (applications commerciales ou traitant de grandes quantités de données). Compact : C est basé sur un noyau de fonctions et d opérateurs limités, qui permet la formulation d expressions simples, mais efficaces. Moderne : C est un langage structuré, déclaratif et récursif ; il offre des structures de contrôle et de déclaration comparables à celles des autres grands langages de ce temps (FORTRAN, ALGOL68, PASCAL). Rapide : Comme C permet d utiliser des expressions et des opérateurs qui sont très proches du langage machine, il est possible de développer des programmes efficients et rapides. Extensible : C ne se compose pas seulement des fonctions standard ; Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 4 / 37

3. Structure d un programme en C v o i d main ( ) { <D é c l a r a t i o n s > <I n s t r u c t i o n s > } Remarque : Chaque programme en C doit renfermer une fonction du nom de main (Fonction principale de chaque programme C). Exemple : v o i d main ( ) { p r i n t f ( Bonjour ) ; } Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 5 / 37

4. Les diverse phases d un programme C Les diverses phases d un programme en C sont : Code source (programme C) Compilateur Code objet (Programme.obj) Editeur de liens Programme exécutable (programme.exe) Lancement du programme Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 6 / 37

5. Fichiers include Se trouvent dans un répertoire nommé include, Ils possèdent l extension h, Ils renferment les déclarations des fonctions du système. Exemple : #include<stdio.h> (Fichiers d entrée, sortie). #include<math.h> (Fichiers Mathématiques). #include<graph.h> (Fonctions Graphiques). Le programme précédent devient : #i n c l u d e <s t d i o. h> v o i d main ( ) { p r i n t f ( Bonjour ) ; } Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 7 / 37

6. Les commentaires Un commentaire est une suite de caractères placés entre les délimiteurs. Exemple / Les commentaires documentent l e s programmes / Ajoutons un commentaire au programme précédant : #i n c l u d e <s t d i o. h> v o i d main ( ) { p r i n t f ( Bonjour ) ; / A f f i c h a g e d un message / } Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 8 / 37

7. Les types de bases Les différents types de bases sont : Les nombres entiers int Les nombres flottants float ou double Les caractères char 7.1 Le type entier (int) Ils existent plusieurs types : Type Désignation Espace Plage de valeurs entier court short int (short) 2 octets -32768 32767 entier court non signé unsigned short 2 octets 0 65535 Entier (type standard) int 2 octets -32768 32767 entier non signé unsigned int 2 octets 0 65535 entier long long int (long) 4 octets -2 147 483 648 2 147 483 647 entier long non signé unsigned long 4 octets 0 4 294 967 295 Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 9 / 37

7. Les types de bases Le type entier (int) Remarques 1 Les mots clés short et long permettent d influer sur la taille mémoire des entiers et des réels. 2 Les deux mots signed et unsigned peuvent s appliquer aux types caractère et entier pour indiquer si le bit de poids fort doit être considéré ou non comme bit de signe. 3 Par défaut, les types entiers short, int et long sont munis d un signe. De ce fait, cela revient au même d écrire : int et signed int, short et signed short, long et signed long. 4 Le type short est en général codé dans 2 octets. Comme une variable int occupe aussi 2 octets, 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 (int) n est pas forcément 2 octets. Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 10 / 37

7. Les types de bases Le type flottant ( float) 7.2 Le type flottant ( float ) Un nombre réel en C est dit nombre à virgule flottante. C est un nombre dans lequel la position de la virgule en tant que séparateur entre partie entière et partie décimale n est pas fixe. Exemple : Nombre = 14.8 Représentation 1 : 1.48 10 1 Représentation 2 : 0.148 10 2 Représentation 3 : 148.0 10 1 En général, un réel est représenté sous la forme suivante : avec : <signe> : + <mantisse> : décimal positif <exposant> : entier relatif. <signe> <mantisse> 10 <exposant> Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 11 / 37

7. Les types de bases Le type flottant ( float) Ils existent trois types float : Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 12 / 37

7. Les types de bases Le type caractère (char) 7.3- Le type caractère (char) Ils existent 2 types différents : Type Désignation Espace Plage de valeurs caractère char 1 octets -128 127 caractère non signé unsigned char 1 octets 0 255 Il est utilisé pour représenter un caractère. Le type char (du mot anglais character, caractère ) et utilisé pour représenter un caractère, plus précisément la valeur entière d un élément de l ensemble des caractères représentables. Ce nombre entier est le code ASCII du caractère. Exemple : Le caractère A est stocké sous forme char L ordinateur n écrit pas le signe A, mais le nombre 65 (code ASCII de A ) sur 1 octet = 01000001. Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 13 / 37

8. Les constantes 8.1 Les constantes entières : Exemple : -9, 0, 199 8.2 Les constantes à virgules flottantes : Exemple : 21E-4, -4005E3, 3.141, 314.1E-2 8.3 Les constantes de types caractères : Exemple : a, A,?, 1. 8.4 Les caractères de contrôle : Séquence Signification \n Génère une nouvelle ligne \t Pose une tabulation horizontale \f Provoque un saut de page \a Déclenche un signal sonore \r Provoque un Retour chariot Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 14 / 37

9. Les variables Une variable : possède un nom, possède un type, possède un contenu, est modifiable, est rangée en memoire à partir d une certaine adresse. Déclaration et initialisation des variables : Type NomVar1, NomVar2,..., NomVarN ; Type NomVar1= val 1, NomVar2= Val 2,..., NomVar N= ValN ; Exemples : char c; int X,Y; float Z = 4.5; double W; int t presse ; Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 15 / 37

10. Les opérateurs 10.1 Les opérateurs arithmétiques : +, -, /,* % (Modulo : reste de la division entière). Remarque : Si les deux arguments de / sont des entiers alors le résultat est un entier. Le résultat de x= 3/2 est 1, même si x est déclaré de type float. Le résultat de x= 3.0/2 ( ou 3/2.0 ) est 1.5. Pas d opérateur d évaluation en puissance, (On utilise la fonction Pow(x,y) =x y ). 10.2 Les opérateurs de comparaison : <, <=, >, >=, == (égal à),! = (diffèrent de). Le résultat d une comparaison est un entier : 0 si le résultat est faux et 1 si le résultat est vrai. La comparaison devient une expression de type entier. Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 16 / 37

10. Les opérateurs 10.3 Les opérateurs logiques : && : Et (and), : Ou (or),! : Non (not). Exemples : (a < b)&&(c < d) : Prend la valeur 1(vrai) si les deux expressions a < b et c < d sont toutes deux vraies et la valeur 0 dans le cas contraire. (a < b) (c < d) : Prend la valeur 1 (vrai) si l une au moins des deux conditions a < b et c < d est vraie et la valeur 0 dans le cas contraire.!(a < b) : Prend la valeur 1(vrai) si la condition a < b est fausse et la valeur 0 (faux) dans le cas contraire. Remarques :!(a == b) est différent de!a == b if (n) est equivalente à if (n! = 0) if (!n) est equivalente à if (n == 0) Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 17 / 37

10 Les opérateurs 10.4 Les opérateurs d affectation : Les opérateurs d affectation mettent dans leur opérande de gauche la valeur de leur opérande de droite. L opérande de gauche est appelé une Lvalue : Une expression désignant une adresse dans la mémoire de l ordinateur. Les affectations sont évaluées de la droite vers la gauche. 10.4.1 Affectation simple : Exemple 1 : int x; x =1; La variable x du membre droit de l affectation reçoit la valeur 1. Exemple 2 int x,y; x=y=1; Affecte la valeur 1 aux deux variables (x=1 et y=1). Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 18 / 37

10 Les opérateurs 10.4.2 Affectation combinée : Les affectations combinées mélangent une opération d affectation avec une opération arithmétique ou logique. Exemple : X+=Y; est equivalente à X=X+Y; X =Y; est equivalente à X=X Y; X =Y; est equivalente à X=X Y; X/=Y; est equivalente à X=X/Y; X%=Y; est equivalente à X=%Y; 10.5 Les opérateurs d incrémentation et de décrémentation : Les opérateurs d incrémentation et de décrémentation unaires ++ et augmentent (incrémentent) ou diminuent (décrémentent) la valeur d une variable de la quantité 1. x++; est equivalente à ++x; est equivalente à x=x+1; x ; est equivalente à x; est equivalente à x=x 1; Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 19 / 37

10 Les opérateurs 10.5.1 Postfixe : 1 int x=1,y; y=x++; Résultat : 1- La variable y est affectée la valeur de la variable x, avant que celle-ci ne soit incrémentée, donc y=1, 2- x augmente de 1 (x=2). 2 int x=1,y; y=x ; Résultat : y=1, x=0. Conclusion : Un opérateur de post-incrémentation ou de post-décrémentation entraîne que son opérande est d abord utilisé, puis incrémenté ou décrémenté. Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 20 / 37

10 Les opérateurs 10.5.2 Préfixe : 1 int x=1,y; y=++x; Résultat : 1- x augmente de 1 ( x = 2 ), 2- y ne prend pas la valeur d origine de x, mais la valeur accrue de 1 (y= 2). 2 int x=1,y; y= x; Résultat : x =0, y =0. Conclusion : Un opérateur de pré-incrementation ou de pré-décrémentation entraîne que son opérande est incrémenté ou décrémenté avant d être utilisé. Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 21 / 37

11. Priorité des opérateurs Priorité Opérateur Ordre d évaluation 1 (la plus forte) ( ) de gauche à droite 2!, ++,, +unaire, unaire de droite à gauche 3, /, % de gauche à droite 4 +, de gauche à droite 5 <, <=, >, >= de gauche à droite 6 ==,! = de gauche à droite 7 && de gauche à droite 8 de gauche à droite 9 (la plus faible) =, + =, =, =, / =, % = de droite à gauche Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 22 / 37

11. Priorité des opérateurs Remarque : Il existe d autres types d opérateurs en C tels que : 1 L opérateur de cast qui permet de convertir explicitement le type d une donnée en un autre type (conversion forcée). Exemple 1 int n=5,p=2; float x; x = (float ) n/p ; n/p donne un entier (2) le quotient réel de la division sera obtenu après conversion de n en réel par la conversion forcée, puis (n/p) sera affecté à x dont la valeur sera 2.5 Exemple 2 : int n; float x; n=(int)x; / équivalent à n=x; / n=(int)(x+4.5); / équivalent à n=x+4.5;*/ 2 l opérateur sizeof(type) renvoie le nombre d octets réservés en mémoire pour chaque type d objet. Exemple : n=sizeof( int ); / n vaut 2 / Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 23 / 37

12. Fonctions arithmétiques standards Les fonctions suivantes sont prédéfinies dans la bibliothèque standard <math.h>. Pour pouvoir les utiliser, le programme doit contenir la ligne : #include <math.h> Type des données : Les arguments et les résultats des fonctions arithmétiques sont de type double. Nom Explication log(x) logarithme naturel log10(x) logarithme à base 10 exp(x) fonction exponentielle pow(x,y) X exposant Y sqrt(x) racine carrée de X fabs(x) valeur absolue de X floor(x) arrondir en moins ceil(x) arrondir en plus fmod(x,y) reste rationnel de X/Y pour X différent de 0 sin(x) cos(x) tan(x) sinus, cosinus, tangente de X asin(x) acos(x) atan(x) arcsin(x), arccos(x), arctan(x) Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 24 / 37

13. Les expressions et les instructions 13.1 Les expressions : La formation des expressions est définie par récurrence : Les constantes et les variables sont des expressions. Les expressions peuvent être combinées entre elles par des opérateurs et former ainsi des expressions plus complexes. Les expressions peuvent contenir des appels de fonctions et elles peuvent apparaître comme paramètres dans des appels de fonctions. Exemples : i = 0 i + + X = pow(a, 4) printf ( Bonjour!\n ) a = (5 x + 10 y) 2 (a + b) >= 100 Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 25 / 37

13. Les expressions et les instructions 13.2 Les instructions : Une expression comme i=0 ou I++ ou printf(...) devient une instruction, si elle est suivie d un point-virgule. Exemples : i = 0; i + +; X = pow(a, 4); printf ( Bonjour!\n ); a = (5 x + 10 y) 2; Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 26 / 37

14. Les entrées-sorties La bibliothèque standard < stdio.h > contient un ensemble de fonctions qui assurent la communication de la machine avec le monde extérieur. Dans ce chapitre ; nous allons nous en discuter des plus importantes : printf() écriture formatée de données scanf() lecture formatée de données putchar() écriture d un caractère getchar() lecture d un caractère Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 27 / 37

14. Les entrées-sorties 14.1 Ecriture formatée de données : La fonction printf est utilisée pour transférer du texte, des valeurs de variables ou des résultats d expressions vers l écran. Syntaxe : p r i n t f ( <Format>, <Expr1 >, <Expr2 >,..., <ExprN>) ; < Format > : Format de représentation < Expr1 >,... : variables et expressions dont les valeurs sont à représenter. La partie < Format > est en fait une chaîne de caractères qui peut contenir : Du texte, des séquences d échappement et/ou es spécificateurs de format. Les spécificateurs de format indiquent la manière dont les valeurs des expressions < Expr1 >,..., < ExprN > sont imprimées. La partie < Format > contient exactement un spécificateur de format pour chaque expression < Expr1 >,..., < ExprN >. Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 28 / 37

14. Les entrées-sorties Spécificateurs de format pour printf : Format Objet de données %d ou %i Nombre relatif. %u Nombre entier non signé. %o Nombre exprimé en octal. %x Nombre exprimé en hexadécimal. %c Caractère. %f Nombre à virgule flottante. %e, %E Nombre à virgule flottante en format exponentiel. %s Chaîne de caractères. Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 29 / 37

14. Les entrées-sorties Exemple1 : printf ( %d,5) ; Résultat : 5 int i = 5; printf ( \%d,i); Résultat : 5 printf ( La somme 2+3 donne \%d,2+3); Résultat : La somme 2+3 donne 5 int i = 5; printf ( \%d plus \%d donne : \%d, 1000, i, i+1000); Résultat : 1000 plus 5 donne : 1005. Remarque : Par défaut, les nombres sont affichés avec le nombre de caractères nécessaires. Format : % nb d Si nb>nombre de caractères alors Ajout du blanc Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 30 / 37

14. Les entrées-sorties 14.2 Lecture formatée de données : La fonction scanf est la fonction symétrique à printf ; elle nous offre pratiquement les mêmes conversions que printf, mais en sens inverse. Syntaxe : s c a n f ( <Format>, &Var1, &Var2,..., &VarN ) ; < Format > : Format de lecture des données. < AdrVar 1 >,... : adresses des variables auxquelles les données seront attribuées. La chaîne de format détermine comment les données reçues correctement sont mémorisées successivement aux adresses indiquées par < avar1 >, < &Var2 >,... L adresse d une variable est indiquée par le nom de la variable précédé du signe &. Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 31 / 37

14. Les entrées-sorties Spécificateurs de format pour scanf : Format Objet de données %d ou %i Nombre relatif. %u Nombre entier non signé. %o Nombre exprimé en octal. %x Nombre exprimé en hexadécimal. %c Caractère. %f, %e, %E Nombre à virgule flottante. %s Chaîne de caractères. Exemple1 : i n t x ; s c a n f ( %d,&x ) ; L opérateur d adressage & applique au nom de la variable, il informe donc la fonction scanf de l emplacement de stockage de la valeur saisie. Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 32 / 37

14. Les entrées-sorties Exemple2 : Lors de l entrée des données, une suite de signes d espacement (espaces, tabulateurs, interlignes) est évaluée comme un seul espace. Pour la suite d instructions : i n t j o u r, mois, annee ; s c a n f ( %d%d%d,& j o u r,& mois,& annee ) ; Les entrées suivantes sont correctes et équivalentes : 22 10 2013 22 10 2013 Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 33 / 37

14. Les entrées-sorties 14.3 La macro getchar : Une macro est un nom qui représente une ou plusieurs instructions ou expressions. La macro getchar lit un caractère isolé depuis le clavier et le met à la disposition du programme. Exemple : # i n c l u d e <s t d i o. h> v o i d main ( ) { c h a r c a r l u ; p r i n t f ( E n t r e z un c a r a c t è r e. \n ) ; c a r l u= g e t c h a r ( ) ; / L e c t u r e d un c a r a c t è r e v i a g e t c h a r e t a f f e c t a t i o n du c a r a c t è r e à l a v a r i a b l e c a r l u / p r i n t f ( \n l e c a r a c t è r e s a i s i e s t %c :, c a r l u ) ; } Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 34 / 37

14. Les entrées-sorties 14.4 La macro putchar La macro putchar affiche un caractère non formaté sur l écran. La donnée à afficher est écrite sous forme de paramètre entre les parenthèses de la macro. Exemple : #i n c l u d e <s t d i o. h> v o i d main ( ) { c h a r c a r l u ; p r i n t f ( E n t r e z une l e t t r e \n ) ; c a r l u = g e t c h a r ( ) ; p u t c h a r ( c a r l u ) ; } Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 35 / 37

15. Les conversions forcées de type (casting) Il est possible de convertir explicitement une valeur en un type quelconque en forçant la transformation à l aide de la syntaxe : (<Type>) <E x p r e s s i o n > Exemple Nous divisons deux variables du type entier. Pour avoir plus de précision, nous voulons avoir un résultat de type rationnel. Pour ce faire, nous convertissons l une des deux opérandes en float. Automatiquement C convertira l autre opérande en float et effectuera une division rationnelle : Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 36 / 37

15. Les conversions forcées de type (casting) c h a r A=3; i n t B=4; f l o a t C ; C = ( f l o a t )A/B ; La valeur de A est explicitement convertie en float. La valeur de B est automatiquement convertie en float (règle 2). Le résultat de la division (type rationnel, valeur 0.75) est affecté à C. Résultat : C=0.75 Attention! Les contenus de A et de B restent inchangés ; seulement les valeurs utilisées dans les calculs sont converties! Fathi Mguis (At. Prog LFSI1/LARI1) Ch1 : Eléments de base du langage C A.U : 2014-2015 37 / 37