Vous êtes sur la page 1sur 35

Initiation linformatique

Introduction au langage C Partie1

Anne Universitaire 2011-2012


Dounia LOTFI SMI

Introduction (1)
Un compilateur est un programme informatique qui traduit un langage (appel le langage source) en un autre (le langage cible), gnralement dans le but de crer un excutable. Exemple: GCC GNU COMPILER COLLECTION . (Compilateur Open Source). Une excution d'un programme consiste indiquer au processeur qu'il doit excuter les instructions qu'il contient. Environnements de dveloppement intgrs C: DEV, Eclipse, Netbeans..

Introduction (2)

Un langage de programmation est un langage informatique, permettant un tre humain d'crire un code source qui sera analys par une machine, gnralement un ordinateur. Le C est un langage de programmation impratif conu pour la programmation systme. Invent au dbut des annes 1970 avec UNIX, C est devenu un des langages les plus utiliss.

Introduction (3)

Installation de lenvironnement de programmation DEV

Premier Programme en C

#include <stdio.h> #include <stdlib.h> int main() { printf("Hello world!\n"); return 0; }

Programme affichant le message "Hello world!" l'cran

Analyse du programme
#include <stdio.h> #include <stdlib.h> Directives de prprocesseur (Bibliothques) Ce sont des lignes qui seront lues par un programme appel prprocesseur, un programme qui se lance au dbut de la compilation.

Ces lignes incluent les bibliothques qui vont nous permettre d'afficher du texte l'cran.

int main() { printf("Hello world!\n"); return 0; }

Un programme en langage C est constitu de fonctions. Une fonction permet de rassembler plusieurs commandes l'ordinateur. Main est la fonction principale de votre programme. printf(); permet dafficher le texte cris entre guillemets.

Analyse du programme
Une fonction a un dbut et une fin, dlimits par des accolades { et }. La premire ligne : printf("Hello world!\n"); demande afficher le message "Hello world!" l'cran. \n : retour la ligne (= "Entre"). return 0; indique qu'on arrive la fin de notre fonction main et demande de renvoyer la valeur 0. Chaque programme une fois termin renvoie une valeur, par exemple (0 = tout est correct, n'importe quelle autre valeur = erreur ).

Compiler et excuter votre programme


// (Commentaire) Cette instruction affiche Hello world l'cran ou /*..*/ (Plusieurs lignes de commentaires)

Les types et les variables

C manipule deux types de base: les entiers et les nombres flottants. sur 1 octet, les entiers signs et non signs (char) et (unsigned char). sur 2 octets, les entiers signs et non signs (short) et (unsigned short). sur 4 octets, les entiers signs et non signs (long) et (unsigned long).

Le type int (unsigned int) est selon les machines synonymes de short (unsigned short) ou de long (unsigned long).
Short : (de -32768 32767). Unsigned short: (de 0 65535). Long: (de -2147843648 2147843647). Unsigned long: (de 0 4294967295).

Les types et les variables

Les nombres virgule flottante (abusivement appels rels) servent coder de manire approche les nombres rels.
Float est cod sur 4 octets (valeurs comprises entre 3.4 *10^-38 et 3.4 * 10^38).

Double est cod sur 8 octets (valeurs comprises entre 1.7 * 10^-308 et 1.7 * 10^308).
Long double est cod sur 10 octets (valeurs comprises entre 3.4 * 10^4932 et 3.4 * 10^4932 ).

Les constantes

Les constantes entires peuvent s'exprimer


En notation dcimale: 123, -123, etc... En notation octale avec un 0 en premire position: 0123 En notation hexadcimale avec les caractres 0x ou 0X en premire position : 0x1b 0X2c, 0X1B, 0X2C, etc... Le type d'une constante entire est le << plus petit >> type dans lequel il peut tre reprsent : Notation dcimale : int, sinon long, sinon unsigned long Notation octale ou hxa: int, sinon unsigned int, sinon unsigned long

Les constantes

Une constante flottante se prsente sous la forme d'une suite de chiffres (partie entire), un point qui joue le rle de virgule, une suite de chiffres (partie fractionnaire), une des deux lettres e ou E, ventuellement le signe + ou - suivi d'une suite de chiffres (valeur absolue de l'exposant).

Une constante flottante est suppose tre de type double. Le suffixe F indique qu'elle est de type float. Le suffixe LF indique qu'elle est de type long double.
Exemple: .5e7, 5.e6, 5e6.

Les variables

Une variable est un emplacement en mmoire identifi par un identificateur, contenant une valeur d'un type donn et dont la valeur peut tre modifie durant l'excution du programme.
Avant dutiliser une variable on doit la dclarer c --d spcifier son type et lui associer un identificateur. Exemple: char Terme ; int nombre ; double nombr_2;

Les variables peuvent tre initialises la dclaration avec des constantes. On utilise pour cela le symbole =. Exemple: int max = 0; float som = 0.5 ;

La fonction printf
printf (format, liste_d'expressions)

Format : constante chane (entre " "), pointeur sur une "chane de caractres" (cette notion sera tudie ultrieurement). Liste_d'expressions : suite d'expressions spares par des virgules d'un type en accord avec le code format correspondant.
Les principaux codes de conversion

printf ("%f", x) ;

C: char d: int u: unsigned int Ld: long lu: unsigned long f: double ou float

La fonction scanf

scanf ( format, liste_d_adresses)


Format :

Constante chane (entre " "), Pointeur sur une "chane de caractres" (cette notion sera tudie ultrieurement).
Liste_d_adresses : liste de "lvalue", spares par des virgules, d'un type en accord avec le code de format correspondant.

Les oprateurs
Les oprateurs arithmtiques : - : changement de signe * : Multiplication / : Division % : Modulo (reste de la division de deux entiers) + : Addition - : Soustraction

Les oprateurs
Les oprateurs relationnels : Ces oprateurs binaires (vrai ou faux) permettent dtablir des conditions logiques en comparant leurs deux oprandes. == test si gal != test si diffrent < test si infrieur <= test si infrieur ou gal > test si suprieur >= test si suprieur ou gal

Les oprateurs
Les oprateurs relationnels : Ces oprateurs binaires (vrai ou faux) permettent dtablir des conditions logiques en comparant leurs deux oprandes. == test si gal != test si diffrent < test si infrieur <= test si infrieur ou gal > test si suprieur >= test si suprieur ou gal

Les oprateurs
Les oprateurs logiques: Ces oprateurs permettent les oprations boolennes classiques sur des conditions logiques. ! Ngation logique dune condition && ET logique de conditions || OU logique de conditions Oprateur dincrmentation Incrmentation prfixe/postfixe. a++ est quivalent a=a+1; b=a++; est quivalent b=a; puis a=a+1;(post). b=++a; est quivalent a=a+1; puis b=a;(pr).

Exercice (1)

Ecrivez un programme qui calcule et affiche la surface et la circonfrence dun cercle (2*Pi*r et Pi*r^2). Le programme demandera lutilisateur dentrer la valeur du rayon. La circonfrence: La longueur du segment faisant le tour d'un cercle.

Les instructions de contrle

Blocs d'instructions
Un bloc est une suite d'instructions places entre { et }. Les instructions figurant dans un bloc sont absolument quelconques. Il peut s'agir aussi bien d'instructions simples (termines par un point-virgule) que d'instructions structures (choix, boucles).

Instruction simple; Choix ou/et boucle

Syntaxe de l'instruction if
if (/* Votre condition */) { // Instructions excuter si la condition est vraie } Exemple: if (age >= 18) { printf ("Vous etes majeur !"); }

SI la variable vaut a ALORS fais ceci


Tout ce qui se trouve l'intrieur des accolades sera excut uniquement si la condition est vrifie.

Exemple (Instruction IF)


#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int age = 20; if (age >= 18) { printf ("Vous etes majeur !\n"); } return 0; }

Le "else" pour dire "sinon"

if (age >= 18) // Si l'ge est suprieur ou gal 18

{ printf ("Vous etes majeur !"); }


else // Sinon... { printf ("Ah c'est bete, vous etes mineur !"); }

Plusieurs Conditions
Exemples: 1. if (age > 18 && age < 25)

2. if (age > 30 || argent > 100000) { printf("Bienvenue chez PicsouBanque !");


} else { printf("Hors de ma vue, miserable !"); } 3. if (!(age < 18)) 4. if (age == 18) { printf ("Vous venez de devenir majeur !"); }

Un test avec une variable


Une variable laquelle on fait prendre les valeurs 0 et 1 est un boolen. 0 = Faux 1 = Vrai

Exemple: int majeur = 1; if (majeur) { printf("Tu es majeur !"); } else { printf("Tu es mineur"); }

Si votre variable est cense contenir un nombre, faites un test sous la forme "if (variable == 1)". Si votre variable est cense contenir un boolen (c'est--dire soit 1 soit 0 pour dire vrai ou faux), faites un test sous la forme "if (variable)".

Linstruction Switch

Syntaxe de l'instruction switch switch (expression) { case constante_1 : [ suite_d'instructions_1 ] case constante_2 : [ suite_d'instructions_2 ] .............. case constante_n : [ suite_d'instructions_n ] [ default : suite_d'instructions ] }

Linstruction Switch(Exemple)
if (age == 2) { printf("Un bb"); } else if (age == 6) { printf("Un enfant"); } else if (age == 12) { printf("Un jeune"); } else if (age == 16) { printf("Un adolescent"); }

else if (age == 18) { printf("Un adulte");}


else if (age == 68) { printf("Un papy");} else {printf("Je n'ai aucune description pour ton ge");}

Linstruction Switch(Exemple)
switch (age) { case 2: printf("Un bb"); break; case 6: printf("Un gamin"); break; case 12: printf("Un jeune"); break; case 16: printf("Un adolescent"); break; case 18: printf("Un adulte"); break; case 68: printf("Un papy"); break; default: printf("Je n'ai aucune description pour ton age"); break;

L'instruction break; commande en fait l'ordinateur de "sortir" des accolades.

Les boucles

L'ordinateur lit les instructions de haut en bas.

Une fois arriv la fin de la boucle, il repart la premire instruction.

Il recommence alors lire les instructions de haut en bas et il repart au dbut de la boucle.

La boucle While
Syntaxe: while (/* Condition */) { // Instructions rpter } Exemple:
int nombreEntre = 0; while (nombreEntre != 47) { printf("Tapez le nombre 47 ! "); scanf("%d", &nombreEntre); }

Tant que lutilisateur n'a pas tap le nombre 47, on recommence lui demander le nombre.

La boucle While

Exemple:
int compteur = 0;
while (compteur < 10) {
printf("La variable compteur vaut %d\n",compteur);

Excution

compteur++; }

La boucle Do While
Syntaxe: Do { // Instructions rpter } while (/* Condition */) Exemple: Le programme demande un nombre l'utilisateur tant qu'il ne fournit pas une valeur positive.

main() { int n ; do { printf ("donnez un nb >0 : ") ; scanf ("%d", &n) ; } while (n<=0) printf ("vous avez fourni %d\n", n) ;

La boucle For
Syntaxe: FOR (exp1;exp2;exp3) { // Instructions rpter } Exp1
L'initialisation cette premire instruction est utilise pour prparer notre variable .

Exp2 La condition comme pour la boucle while, c'est la condition qui


dit si la boucle doit tre rpte ou pas. Tant que la condition est vraie, la boucle for continue.

Exp3 L'incrmentation cette dernire instruction est excute la fin de chaque tour de boucle pour mettre jour la variable . La quasi-totalit du temps on fera une incrmentation, mais on peut aussi faire une dcrmentation (variable--;) ou encore n'importe quelle autre opration (variable += 2; pour avancer de 2 en 2 par exemple).

La boucle For
Exemple:
int compteur = 0;

while (compteur < 10) { printf("Le nombre est toujours inf 10 !\n"); compteur++; }

While

Ceci est quivalent

int compteur; for (compteur = 0 ; compteur < 10 ; compteur++) { printf("Le nombre est toujours inf 10 !\n"); }

For

Vous aimerez peut-être aussi