Vous êtes sur la page 1sur 10

Cours : Algorithmique & Programmation C

Chapitre : Notions de Base

COURS ALGORITHMIQUE & PROGRAMMATION C


CHAPITRE NOTIONS BASE

DE

Cours : Algorithmique & Programmation C

Chapitre : Notions de Base

1.

STRUCTURE DUN PROGRAMME C

En langage C le programme principal et les sous programmes sont dfinies comme des fonctions. La fonction particulire nomme main() est la fonction principale dun programme C. Syntaxe: <include des bibliothques> main() { <dclaration des variables> <instructions> } Exemple: #include <stdio.h> /* Bibilothque dentres-sorties standard */ int main() /* Notre premier programme en C */ { printf("Bonjour\n") ; return 0; } REMARQUES : Les commentaires sont utiliss pour des raisons de lisibilit et de comprhension du programme. Un commentaire est une chane de caractres comprise entre /* et */. Cette chane est ignore par le compilateur C et peut dborder sur plusieurs lignes. Le langage C distingue les minuscules, des majuscules. Les mots rservs (exemples : for, while, return, struct ) du langage C doivent tre crits en minuscules. Aprs la compilation et lors de ldition de liens, les fonctions prcompiles des bibliothques seront ajoutes au programme compil afin dobtenir un programme complet excutable.

Cours : Algorithmique & Programmation C

Chapitre : Notions de Base

Schma: Bibliothques de fonctions et compilation

Cours : Algorithmique & Programmation C

Chapitre : Notions de Base

2.

LES VARIABLES ET LEURS TYPE EN C

Les variables permettent de reprsenter les donnes dun programme. Chaque variable est matrialise par un emplacement mmoire identifi par un nom ou un identificateur. Les variables contiennent les valeurs qui sont utilises pendant lexcution du programme. Chaque variable possde : un nom un type une valeur 2.1. Les noms des variables en C : Les noms des variables en C sont composs de lettres et de chiffres : Lensemble des symboles utilisables: {0,1,2, ...9, A,B,...,Z,_,a,b,....,z} Le premier caractre doit tre une lettre ou le symbole _ C distingue les majuscules et les minuscules. Exemple: compteur et Compteur sont deux variables diffrentes La longueur des identificateurs nest gnralement pas limite (C distingue gnralement les 31 premiers caractres) Le choix des noms des variables est important pour la lisibilit dun programme. Exemples : Identificateurs corrects Nom1 Nom_2 _Nom_3 Moyenne_des_etudiants CoefMatiere A_B Identificateurs incorrects 1Nom Nom.2 Nom-3 Moyenne des etudiants CoefMatire A+B

2.2. Les types des variables en C : Le type nous indique de quel sorte de variable il sagit : entier, dcimal, caractre, ... Le type est une caractristique restreignant les champs de valeurs possibles et les oprateurs applicables : Les types entiers : int : entier standard short : entier court 3

Cours : Algorithmique & Programmation C

Chapitre : Notions de Base

long : entier long char : caractre Les types rationnels float : dcimal double : dcimal long On distingue deux caractristiques concernant les types : le domaine des valeurs admissibles Le nombre doctets rserv pour une variable 2.2.1 Les types entiers Le langage C distingue plusieurs types d'entiers: ___________________________________________________________ TYPE DESCRIPTION TAILLE MEMOIRE ___________________________________________________________ int entier standard sign 4 octets: - 231 n 231-1 unsigned int short unsigned short char entier positif entier court sign entier court non sign caractre sign 4 octets: 0 n 232 2 octets: - 215 n 215-1 2 octets: 0 n 216 1 octet : - 27 n 27-1

unsigned char caractre non sign 1 octet : 0 n 28 _____________________________________________________________ REMARQUE : En langage C, le type char est un cas particulier du type entier : un caractre est un entier de 8 bits Exemple : Le caractre 'b' a pour valeur 98 (son code ASCII). 2.2.2 Les types rels Un rel est compos - d'un signe- d'une mantisse - d'un exposant Un nombre de bits est rserv en mmoire pour chaque lment. Le langage C distingue 3 types de rels: _________________________________________________________ TYPE DESCRIPTION TAILLE MEMOIRE _________________________________________________________ float rel standard 4 octets double rel double prcision 8 octets long double rel long 10 octets __________________________________________________________

Cours : Algorithmique & Programmation C

Chapitre : Notions de Base

2.3 Dclaration de variables Pour tre utilise, une variable doit tre dclare : Syntaxe: <Type> <NomVar1>,<NomVar2>,...,<NomVarn> ; Exemples: int compteur, x, y; float racine; char touche; /* Dclaration avec initialisation */ int nombre = 1; char lettre = A ; REMARQUE : La dclaration dune variable se traduit par une rservation de place mmoire dont le contenu est imprvisible !

3.

LES CONSTANTES EN C

Les constantes sont utilises pour calculer des valeurs, pour initialiser des variables Les constantes entires 100 : int 0144 : int (en octal) 0x64 : int (en hexadcimal) Les constantes rationnelles 123.4 : float (notation dcimale) 1234e-1 : float (notation exponentielle) Les caractres constants (entours dapostrophes) A dsigne la lettre A (sa valeur est 65 = code ASCII) On distingue des caractres non imprimables qui sont identifis par leurs codes internes commenant par \ : \n : nouvelle ligne \t : tabulation horizontale \b : espacement arrire \f : saut de page \r : retour chariot \v : tabulation verticale \\ : back slach \" : guillemet \ : apostrophe 5

Cours : Algorithmique & Programmation C

Chapitre : Notions de Base

Constante chane de caractres (entoure de guillemets) Une chane peut ne comporter aucun caractre : " " Le compilateur insert automatiquement un caractre nul \0 la fin de chaque chane de caractres. Dfinition de constantes #define <NomConstante> <Valeur> Exemples : #define PI 3.14 #define LETTRE_1 A

4.

AFFECTATION DES VARIABLES

Laffectation est une instruction qui permet de placer une valeur dans une variable qui doit tre pralablement dclare. Syntaxe:
<nom_variable> = <expression> ;

Exemple: Affecter le nombre 5 la variable A est quivalent Ranger dans la zone mmoire A lentier 5 scrit en C : A=5; Schmatiquement: 5

A On distingue plusieurs types daffectations : 5 A

Affectation avec des valeurs constantes : placement dune valeur dans une variable. Exemple : Montant = 6; Affectation avec des valeurs de variables : la valeur placer dans une variable peut provenir dune autre variable. Exemple : A = 2; B = A;

Affectation avec des valeurs dexpressions : On peut ranger dans une variable le rsultat dun calcul. 6

Cours : Algorithmique & Programmation C

Chapitre : Notions de Base

Exemple :

A = 2; B = A + 2;

5.

LES OPRATEURS

En langage C, on distingue plusieurs types doprateurs. 5.1 Les oprateurs simples Oprateurs arithmtiques : + : Addition : Soustraction * : Multiplication / : Division (entire et rationnelle) Attention : 2/4 vaut 0 mais 2.0/4 vaut 0.5 % : Modulo (reste de la division entire) Oprateurs logiques : (1: vrai et 0: faux) && : Et logique (AND) || : ou logique (OR) ! : Ngation (NOT) Oprateurs de comparaison : (1: vrai et 0: faux) == : gale != : diffrent de <, <=, >, >= : plus petit, plus petit ou gal, REMARQUES : Les rsultats des oprations de comparaison et des oprateurs logiques sont du type int : la valeur 1 correspond la valeur boolenne Vrai la valeur 0 correspond la valeur boolenne Faux Les oprateurs logiques considrent toute valeur diffrente de zro comme Vrai et zro comme Faux Exemples : 0 && 2 0 (faux) !2 0 (faux) 5 || !(32 > 4) 1 (vrai) 5.2 Les oprateurs daffectation Pour la plupart des expressions de la forme : expr1 = (expr1) op (expr2) Il existe une formulation quivalente qui utilise un oprateur daffectation : expr1 op= expr2 7

Cours : Algorithmique & Programmation C

Chapitre : Notions de Base

Exemple: i=i+2; devient i += 2 ; Liste des oprateurs daffectation: += -= *= /= %= : : : : : ajouter diminuer de multiplier par diviser par modulo

5.3 Les oprateurs dincrmentation et de dcrmentation Les affectations les plus frquentes sont du type : i = i + 1; et i = i - 1; Les oprateurs ++ et -- sont employs pour les cas suivants : Incrmenter ou bien dcrmenter de 1 une variable i++; et ++i; ou bien i--; et --i; Incrmenter ou bien dcrmenter de 1 une variable et en mme temps affecter sa valeur une autre variable x = i++; passe la valeur de i x et incrmente aprs i x=i--; passe la valeur de i x et dcrmente aprs i x=++i; incrmente dabord i et passe la valeur x x=--i; dcrmente dabord i et passe la valeur x Exemple: i = 5; a = ++i ; /* i = 6 et a = 6 */ i = 5; a = i++ ; /* i = 6 et a = 5 */ 5.4 La priorit des oprateurs Les constantes et les variables sont des expressions. Les expressions peuvent tre combines entre elles par des oprateurs et former ainsi des expressions plus complexes. Lordre dvaluation des diffrentes parties dune expression est en principe le mme quen mathmatiques. Exemple: x = 2*A+3*B+4*c; Classe de priorit: Priorit 1 (la Priorit 2 Priorit 3 Priorit 4 Priorit 5 (*,+,=)

plus forte) : ( ) : ! ++ -:* / % :+ : < <= > >= 8

Cours : Algorithmique & Programmation C

Chapitre : Notions de Base

Priorit Priorit Priorit Priorit

6 7 8 9

: : : :

== != && || = += -= *= /= %=

6.

CONVERSION DE TYPE

En langage C, on distingue deux types de conversion : 6.1. Conversion de type automatique Si les oprandes sont de diffrents types, le rsultat de lopration est converti vers le type le plus grand ( pas de perte de prcision). Pour laffectation la donne droite est convertie dans le type de celle de gauche, il y a perte de prcision si le type de la destination est plus faible. Exemple: int i = 8; float x = 12.5; double y; y = i * x; /* Pas de perte de prcision */ 6.2. Conversion de type force (casting) On peut convertir explicitement une valeur en forant la transformation. Syntaxe: <NomVariable> = (<Type>)<Expression>; Exemple: int i = 2, j = 4; float y, z; y = i / j; /* y = 0.0 */ z = (float)i / j; /* y = 0.5*/ changs!

Les contenus de i et j nont pas