Initiation au langage C - Internet au Service de...
Transcript of Initiation au langage C - Internet au Service de...
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Initiation au langage C
AbdelAli SAIDI
Universit Mohammed V
Sources: http://www.fsr.ac.ma/cours/info.htmlhttp://www.ltam.lu/
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Plan
1 Introduction2 L’environnement et les bibliotheques3 Notions de base
Un premier programmeLes composantes d’un programme en C
4 Types de base, Operateurs et ExpressionsLes types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
5 Lire et Ecrire des donneesEcriture de donnees
6 Les structures de controleLes structures de choixLes structures repetitives
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Plan
1 Introduction2 L’environnement et les bibliotheques3 Notions de base
Un premier programmeLes composantes d’un programme en C
4 Types de base, Operateurs et ExpressionsLes types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
5 Lire et Ecrire des donneesEcriture de donnees
6 Les structures de controleLes structures de choixLes structures repetitives
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Introduction
Avantages
universel
il n’est pas oriente vers un domaine d’applications speciales
compact
il est base sur un noyau de fonctions et d’operateurs limites
moderne
c’est un langage structure, declaratif et recursif
pres de la machine
il offre des operateurs qui sont tres proches de ceux du langagemachine
rapide
il est possible de developper des programmes efficients et rapides
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Introduction
Avantages
independant de la machine
la machine doit juste etre munie d’un compilateur C
portable
utiliser le meme programme sur d’autres systemes rien qu’en lerecompilant
extensible
il est anime par des bibliotheques de fonctions privees ou livrees parune maison de developpement
Desavantages
efficience et comprehensibilite
portabilite et bibliotheques de fonctions
discipline de programmation
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
EnvironnementLes bibliothequesPhases de la compilation
Plan
1 Introduction2 L’environnement et les bibliotheques3 Notions de base
Un premier programmeLes composantes d’un programme en C
4 Types de base, Operateurs et ExpressionsLes types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
5 Lire et Ecrire des donneesEcriture de donnees
6 Les structures de controleLes structures de choixLes structures repetitives
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
EnvironnementLes bibliothequesPhases de la compilation
Environnement
Definition
C’est l’element qui permet d’exploiter les capacites de l’ordinateur et depreparer ce dernier a recevoir des instructions en langage C. Il procure:
une serie de bibliotheques
l’element qui sert de compilateur
et un eventuelle editeur de texte personnalise et adapte pour laprogrammation en C
Exemple
Borland C++
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
EnvironnementLes bibliothequesPhases de la compilation
Les bibliotheques
Definition et utilisation
Ce sont des fichiers .H contenant des fonctions predefinies.On les insere au debut de notre code grace au mot cle ”#include”
par exemple : #include <stdio.h>
Identification des fichiers
Lors de la programmation C, nous travaillons les fichiers :
.C fichiers source
.OBJ fichiers compiles (versions objet)
.EXE fichiers compiles et lies (versions executables)
.LIB bibliotheques de fonctions precompilees
.H fichiers en-tete (header files)
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
EnvironnementLes bibliothequesPhases de la compilation
Illustration
Phases de la compilation:
Figure: Phases de la compilation
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Un premier programmeLes composantes d’un programme en C
Plan
1 Introduction2 L’environnement et les bibliotheques3 Notions de base
Un premier programmeLes composantes d’un programme en C
4 Types de base, Operateurs et ExpressionsLes types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
5 Lire et Ecrire des donneesEcriture de donnees
6 Les structures de controleLes structures de choixLes structures repetitives
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Un premier programmeLes composantes d’un programme en C
Un premier programme
hello, world
#include <stdio.h>int main()// Notre premier programme en C{printf(”hello, world\n”);return 0;}
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Un premier programmeLes composantes d’un programme en C
Les composantes d’un programme en C
les fonctions
la fonction main()
les variables
les identificateurs
les commentaires
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Un premier programmeLes composantes d’un programme en C
Les composantes d’un programme en C
Les fonctions
Syntaxe:<TypeRenvoi> <NomFonction>(<TypePara1 Para1>,<TypePara2 Para2>,...) {<DeclarationLocale>;Intructions;... ;
}
TypeRenvoi: Type du resultat que la fonction renvoie.
NomFonction: Le nom de la fonction.
TypePara Para: Le type et le nom des parametres de la fonction.
{}: Les delimiteurs des instructions que la fonction execute.
<DeclarationLocale>: Ces variables seront connues seulement au sein decette fonction.
Intructions: Liste des instructions a executer.
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Un premier programmeLes composantes d’un programme en C
Les composantes d’un programme en C
La fonction main()
Chaque projet C doit contenir forcement une fonction main().
C’est la fonction principale.
Executer un programme revient a faire un appel a cette fonction.
Les variables
Ce sont ces entites ou on met les valeurs qu’on voudrait utiliser dansun programme.
On les designe par les identificateurs.
Toute variable doit etre declaree avant son utilisation au cours desinstructions.
La declaration revient a la specification du type et de l’identificateurde la variable.
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Un premier programmeLes composantes d’un programme en C
Les composantes d’un programme en C
Les identificateurs
Un identificateur est le nom qu’on donne a une variable.
Constitues d’une suite de lettres, de chiffres et le underscore ( );
Le premier caractere doit etre une lettre.
Quelques identificateurs reserves (mots cles): break, case, char,const, continue, default, do, double, else, float, for, if, int, ...
En C, il y a une distinction entre les majuscules et les minuscules.
Les commentaires
Ils sont utilises pour rendre un programme plus comprehensible.
A la compilation, ils sont ignores.
Un commentaire sur une ligne commence par //.
Sur plusieurs lignes commence par /* et se termine par */.
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
Plan
1 Introduction2 L’environnement et les bibliotheques3 Notions de base
Un premier programmeLes composantes d’un programme en C
4 Types de base, Operateurs et ExpressionsLes types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
5 Lire et Ecrire des donneesEcriture de donnees
6 Les structures de controleLes structures de choixLes structures repetitives
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
Les types simples
Types
Un type definit l’ensemble des valeurs que peut prendre une variable, lenombre d’octets a reserver en memoire et les operations que l’onappliquer la dessus.
Les types entiers:
Definition Val min Val max Nbre d’octetsChar -128 127 1
Short int -32768 32767 2
Int -32768 32767 2
Short int -2147483648 2147483647 4
Les types rationnels:
Definition Domaine (approximatif) Nbre d’octetsFloat ±1, 110−38 a ±3, 41038 4
Double ±2, 210−308 a ±1, 710308 8
Long float ±3, 410−4932 a ±1, 1104932 10
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
Declaration et Initialisation des variables
Declaration
<Type> <NomVar1>,<NomVar2>,...,<NomVarN>;Exemple: int MAX;char c;
Initialisation des variables
MAX = 1023;
c = ’a’;
il est possible d’initialiser les variables lors de leur creation
int MAX = 1023;
char c = ’a’;
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
Les operateurs standard
L’affectation
<NomVariable> = <Expression>;
L’affectation avec des valeurs constantes
var = 141;
L’affectation avec des valeurs de variables
var1 = var2;
L’affectation avec des valeurs d’expressions
MOYENNE = (A+B)/2;
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
Les operateurs connus
Operateurs arithmetiques
+ Addition- Soustraction* Multiplication/ Division% Modulo
Operateurs logiques
&& et logique‖ ou logique! negation logique
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
Les operateurs connus
Operateurs de comparaison
== egal a!= ou different de<, <=, >, >= plus petit que, ...
Operations logiques
Les resultats des operations de comparaison et des operateurs logiquessont du type int:
1 correspond a la valeur booleenne vrai
0 correspond a la valeur booleenne faux
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
Les operateurs particuliers de C
Operateur d’affectation
Permet d’offrir une valeur a une variable
expr1 = (expr2) op (expr3)
Si expr1=expr2=var, on peut utiliser:
expr1 op= (expr3)
Operations d’incrementation et de decrementation
Un type particulier de l’affectation ou on ajoute une constance a unevariableLes affectations les plus frequentes sont du type:
i = i + 1 et i = i − 1
i + + et i −−
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Ecriture de donneesEcriture et lecture d’un caractere
Plan
1 Introduction2 L’environnement et les bibliotheques3 Notions de base
Un premier programmeLes composantes d’un programme en C
4 Types de base, Operateurs et ExpressionsLes types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
5 Lire et Ecrire des donneesEcriture de donnees
6 Les structures de controleLes structures de choixLes structures repetitives
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Ecriture de donneesEcriture et lecture d’un caractere
Lire et Ecrire des donnees
La bibliotheque standard <stdio.h> contient un ensemble de fonctionsqui assurent la communication de la machine avec le monde exterieur:
printf() ecriture formatee de donnees
scanf() lecture formatee de donnees
putchar ecriture d’un caractere
getchar()lecture d’un caractere
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Ecriture de donneesEcriture et lecture d’un caractere
printf(), scanf()
Ecriture formatee en C
La fonction printf est utilisee pour transferer du texte, des valeurs devariables ou des resultats d’expressions vers le fichier de sortie standardstdout (par defaut l’ecran).
printf(” < format > ”, < Expr1 >,< Expr2 >, ...)
printf(”Le resultat de %d fois %d est %d n”, A, B, A*B);
Lecture formatee en C
La fonction scanf est la fonction symetrique a printf; elle nous offrepratiquement les memes conversions que printf, mais en sens inverse.
scanf(” < format > ”, < addvar1 >,< addvar2 >, ...)
scanf(”%d %d”, &A, &B);
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Ecriture de donneesEcriture et lecture d’un caractere
putchar(), getchar()
Ecriture d’un caractere
Les commandes ci-dessous transferent le caractere ’a’ vers le fichierstandard de sortie stdout
putchar(’a’);
printf(”%c”,a);
Lecture d’un caractere
Les commandes ci-dessous lisent le prochain caractere du fichier d’entreestandard stdin
C = getchar();
scanf(”%c”,&c);
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les structures de choixLes structures repetitives
Plan
1 Introduction2 L’environnement et les bibliotheques3 Notions de base
Un premier programmeLes composantes d’un programme en C
4 Types de base, Operateurs et ExpressionsLes types simplesLes operateurs standardLes operateurs connusLes operateurs particuliers de C
5 Lire et Ecrire des donneesEcriture de donnees
6 Les structures de controleLes structures de choixLes structures repetitives
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les structures de choixLes structures repetitives
Les structures de controle
Definition
Une structure de controle permet d’influencer le fonctionnementnormale d’un programme.
On en distingue:
Les structures de choixLes structures repetitives
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les structures de choixLes structures repetitives
Les structures de controle
Roles
Les structures de choix permettent de choisir les instructions aexecuter, dans quels cas et ordre.
On en distingue:
Le branchement conditionnel: if ... elseLe branchement multiple: switch
Les structures repetitives (boucles) permettent de repeter un blocd’instructions un nombre donnee de fois ou bien tant qu’unecondition est vraie.
En C, on en distingue:
Le branchement conditionnel: while et do ... whileLe branchement multiple: for
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les structures de choixLes structures repetitives
Le branchement conditionnel
Format
if(expression){bloc-instructions1;}else{bloc-instructions2; }
Ou:
expression: c’est une expression quelconque. Apres son evaluation, sielle est vrai ce sont les instructions1 qui seront executes. Sinon, cesont les instructions2 qui le seront.
Les instructions doivent etre delimitees par des accolades.
On peut oter les accolades d’un bloc si ce dernier ne contient qu’uneseule instruction.
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les structures de choixLes structures repetitives
Le branchement multiple
Format et Fonctionnement:
switch(expression){case constante1: instructions1;case constante2: instructions2;... default: instructions1;}
Evaluation de l’expression.
Execution des instructions du case qui contient la valeur de l’expression.
Sinon, les instructions du default seront executees.
Remarques:
Quand une valeur de l’expression se trouve dans un cas, alors, tousles instructions de tous les cas qui les suivent seront executees aussi.
Pour eviter cela, il faut utilise le mot cle break a la fin de chaquebloc d’instructions.
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les structures de choixLes structures repetitives
while et do ... while
Syntaxe:while(condition) ******************* do{ {instructions; instructions;} }
while(condition)
On sent la difference entre ces deux syntaxe pour la premiereexecution du bloc d’instructions
Avec while il est obligatoire d’evaluer la condition avant de passer aubloc.Avec do ... while, le bloc subit une premiere execution avantd’evaluer la condition.
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les structures de choixLes structures repetitives
while et do ... while
Exemples:
//Affichage des entiers de 1 a 9...i=1;while(i < 10){printf(”%d\t”,i);i++;}
//Affichage des entiers de 1 a 10...i=1;do{printf(”%d\t”,i);i++;}while(i < 10)
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les structures de choixLes structures repetitives
for
Syntaxe
for(expression1;expression2;expression){instructions;...}
expression1: on y effectue les initialisations necessaires avant de rentrerdans la boucle
expression2: on y met la condition qui sera evaluee avant chaquereiteration du corps de la boucle
expression3: elle est executee a la fin du corps de la boucle
Remarques:
expression1 et expression3 peuvent contenir plusieurs initialisationsseparees par des virgules, comme elle peuvent etre vides.
sans expression2, for(expression1;;expression3) donnera une boucle infinie.
AbdelAli SAIDI Departement Informatique
IntroductionL’environnement et les bibliotheques
Notions de baseTypes de base, Operateurs et Expressions
Lire et Ecrire des donneesLes structures de controle
Les structures de choixLes structures repetitives
for et while
Les deux ecritures suivantes sont equivalentes:
for(expression1;expression2;expression3){instructions;}
while(expression2)expression1;{instructions;expression3 }
AbdelAli SAIDI Departement Informatique