Telechargé par nadirberrouane

l2-algo-resume-cours-c

publicité
Département Informatique, USTHB
Langage C : Résumé
1. Structure d’un programme C
Un programme est un ensemble de fonctions. La fonction "main" constitue le point d’entrée pour l’exécution.
Un exemple simple :
#include <stdio.h>
int main()
{
printf (“this is an example \n”);
return 0;
}
2. Commentaire:
/* …………………..texte……………………*/
On utilise aussi le commentaire du C++ qui est valable pour C:
// …………………………
3. Mots clés :
auto – double – int – break – else – long – switch – case – enum – register – typedef – char – extern – return – union – const – float –
short – unsigned – continue – goto – sizeof – volatile – do – if – static – while
Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB
Prof. Slimane LARABI
Page 1
Département Informatique, USTHB
Langage C : Résumé
4. Opérateurs
Type d’opérateur
Calcul
Opérateur
+
addition
Opérateurs bit à bit
Assignation
&
and
=
Opérateur
soustraction
|
Opérateur
*
Multiplication
+=
-=
j+=2 j=j+2
++
--
Comparaison
==
!=
Logique
||
or
&&
and
!
not
<<
i=2<<2
*
*p
[]
Tab[i]
(type)
(int)x_réel
sizeof
sizeof(float)
Evaluation
séquentielle
Evaluation
conditionnelle
>>
j=j>>2
&
&p
()
i=(*p)+5
%
Reste de division entière
^
xor
not
*=
/=
j+=2 j=j+2
Opérateur
/
division
~
or
Incrémentation
Opérateurs de
décalage de bits
Opérateurs de
manipulation de
bits
Accès à la mémoire
Opérateur
|=
&=
>
>=
^=
<
<=
.
structure. champ

p champ _de_la_structure
,
x,y évalue x puis y
?:
x=(x>4)?j:j+1
Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB
Prof. Slimane LARABI
Page 2
Département Informatique, USTHB
Langage C : Résumé
5. Ordre de priorités des opérateurs
Par ordre décroissant :
()[]
+ - ++ -- ! ~ * & (type) sizeof
* / %
+ << >>
< <= > >=
== !=
&
^
|
&&
||
? :
= += -= *= /= %= &= ^= |= <<= >>=
,
Encas de priorités identiques, l’associativité es appliqué en allant de gauche à droite pour tous les opérateurs à l’exception de :
? :
= += -= *= /= %= &= ^= |= <<= >>=
? :
= += -= *= /= %= &= ^= |= <<= >>=
Exemple : (a=b=c=d)  (a=(b=(c=d))

Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB
Prof. Slimane LARABI
Page 3
Département Informatique, USTHB
Langage C : Résumé
6. Les types de base
int (short int, int, long int, unsigned)
Les tailles dépendent des machines:
Exemple: short int  2 octets, int, long int  4 octets
float
char
Les constantes entières:
-décimale: +23, -54
-octale: 012 00001010  10
-hexadécimal: 0x2A  00101010  42
Constante non signée (0..255) si elle est préfixée ou suffixée par U ou u: 014u 001100  12
Constante de type long int : 12l ou 12L
Les constantes réelles:
–float
–double
–long double
Les caractères:
char my_character=’a’;
char str[11]= "chaîne de " ;
Les constantes énumérées:
enum couleur = {vert=4, bleu, rouge}; les valeurs se comportent comme des entiers (4, 5, 6).
Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB
Prof. Slimane LARABI
Page 4
Département Informatique, USTHB
Langage C : Résumé
7. Instructions
If (expression) {bloc} else {bloc};
Le else est regroupé avec ile if le plus interne, sinon on doit utiliser les crochets :
If(m==0) if (n !=4) nb++; else nb=0;
switch (expression)
{
case const1: instructions; break;
case const2: instructions; break;
..
default: instructions;
}
while (expression) {instructions;}
for (expre1 ; expr2 ; expr3) { instructions;}
do
{instructions;}
while (expression);
break; quitter une boucle (for, do, while)
continue: passer à l’itération suivante, mais ne quitte pas la boucle.
goto etiq; aller à l’instruction étiquetée par etiq.
Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB
Prof. Slimane LARABI
Page 5
Département Informatique, USTHB
Langage C : Résumé
8. Liste chaînée
typedef struct MaListe
{
int Contenu;
struct MaListe *pSuivant;
} Maliste;
Maliste *Tete;
Tete = NULL;
9. Pointeur sur tableau
Tableau à une dimension tab[n]:
int *ptab;
ptab=(int*) malloc (n*sizeof(int));
10. Instructions d’entrée /sortie
putchar (c)
getchar()
printf("message %format % format ", arg1, arg2);
Formats de printf:
Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB
Prof. Slimane LARABI
Page 6
Département Informatique, USTHB
Caractère
d, i
o
x, X
u
c
s
f
e, E
g, G
p
%
Type
d’argument
int
int
int
int
int
char *
double
double
double
void *
no argument
Langage C : Résumé
Affiché comme:
nombre décimal
nombre octal non signé (sans précéder par zéro)
nombre hexadécimal non signé (sans 0x or 0X)
Nombre décimal non signé
un caractère
Affiche les caractères de la chaîne jusqu’à '\0' ou bien en spécifiant le nombre
[-]m.dddddd, où le nombre de d est précisé (par défaut 6).
Affiche sous le format [-]m.dddddde+/-xx or [-]m.ddddddE+/-xx, où le nombre de d est spécifié dans le
format (par défaut 6).
utilise %e or %E si l’exposant est inférieur à -4 or supérieur ou égal à la précision; autrement, utilise %f.
pointeur
affiche %
scanf(format, liste d'adresses)
Formats de scanf :
Caractère
Input Data
Entier décimal
Argument type
d
i
Entier
int *. Il peut être octal ou hexadécimal.
o
Entier octal (précédé ou non par zéro)
int *
u
x
c
Entier décimal non signé
hexadecimal integer (with or without leading 0x or 0X)
caractère
unsigned int *
int *
s
Chaîne de caractères (sans quottes)
e, f, g
%
Nombre flottant avec en option le signe, le point décimal et l’exposant
littéral %
int *
char *. Le prochain caractère en entrée is placé dans le buffer
désigné. Pour lire le prochain caractère différent de l’espace, %1s
est utilisé.
char *, pointant un tableau de caractères se terminant par '\0'.
float *
Sans assignation
Support de cours : Algorithmique, 2ème année Licence Informatique, LMD, USTHB
Prof. Slimane LARABI
Page 7
Téléchargement