Documente Academic
Documente Profesional
Documente Cultură
18/19
Pr. Chaabelasri
Généralité
Caractéristiques
• Structuré
• Modulaire: peut être découpé en modules qui peuvent être
compilés séparément.
• Universel: n'est pas orienté vers un domaine d'application
particulier.
• Typé: tout objet C doit être déclaré avant d’être utilisé.
• Portable: sur n'importe quel système en possession d'un
compilateur C.
Pour les scientifiques, C ou Fortran ?
Fortran et C, sont les langages les plus demandés et utilisés pour le calcul intensif
Outils de développements
• Editeur de texte, compilateur en même temps
( IDE ) => Dev-C++
– Directives du préprocesseur
– Déclaration d ’objets externes (variables, fonctions)
– Interface de la fonction
– Bloc d ’instructions
Directives du préprocesseur
• #include <math.h> : insère les interfaces des
fonctions mathématiques comme par exemple
fabs() qui évalue la valeur absolue d ’un réel
19
Opérateurs et expressions
• Opérateurs relationnels:
– <,>,<=,=>
• Opérateurs d’égalité:
– ==, !=
• Opérateurs logiques:
– && et
– || ou
20
Opérateurs et expressions
• Opérateur conditionnel:
– result = mode > 0 ? 1 : 0;
if mode>0 then result=1 else result=0.
• Opérateurs d’assignation:
– =, *=, /=, %=, +=, -=, <<=, >>=, &=, |=, ^=
21
Fonctions en C
• Plusieurs fonctions pré-définies:
– printf(), sin(), atoi(), …
22
Boucle et branchement
Besoin:
•Calcul répétitif
•Calcul avec condition ( comparaison …)
boucle while
• La boucle while :
while(test) {
instructions;
}
• Exemple
…
int i;
i = 0;
while (i < 10) {
printf(« i = %d \n »,i);
i++; }
…
« Tant que i est inférieur à 10, écrire i à l ’écran, incrémenter i »
boucle : do … while
• La boucle do … while :
do {
instructions;
} while (test);
• Exemple :
for (i = 0 ; i <= 50 ; i++) {
printf(« i = %d\n »,i);
}
– if (expression_test){
bloc d ’instructions 1
}else{
bloc d ’instructions 2
}
Tests (suite)
• Enchaînement de if :
if (expression_test1)
bloc_d_instructions_1
else if (expression_test2)
bloc_d_instructions_2
else if (expression_test3)
bloc_d_instructions_3
...
else
bloc_d_instructions_final
Choix multiple: « switch case »
/* Utilisation de switch case */
main()
{
char choix;
…
switch(choix)
{
case ‘a’ : fonctionA();
default : erreur(3);
}
}
29
Expressions évaluées dans les tests
• if (a = b) : erreur fréquente, expression toujours
vraie !
• if (a == b) : a égal à b
• if (a != b) : a différent de b
• if (a > b) : a supérieur à b
• if ((a >=b)&&(a>0)) : a supérieur ou égal à b et a
positif
• if ((a<=b)||(a>0)) : a inférieur ou égal à b ou a
positif
• ...
Les tableaux
L ’allocation dynamique de mémoire (les tableaux)
• Le programme doit disposer d ’un espace mémoire où ranger les
éléments d ’un tableau
double * tab; /* déclaration d ’un tableau de taille variable (en réalité c ’est un pointeur) */
double tabfixe[50]; /* Tableau de taille fixe, 50 éléments */
\n : fin de ligne
\t : tabulation horizontale
\a : sonnerie
Gestion des fichiers
Lecture/Ecriture dans fichiers
• Principe : identique aux lecture/écriture sur clavier/écran
En fait, le clavier et l'écran sont des fichiers particuliers
• Déclaration :
FILE * variable-interne
ex : FILE * f; // f est une variable spéciale de type "fichier"
Ouverture de fichier : fopen
• variable = fopen("nom du fichier sur disque",mode d'ouverture)
mode d'ouverture :
syntaxe : chaîne de caractères
1er caractère :
'r' = read = lecture
'w' = write = écriture
'a' = append = écriture à la fin
• Exemple
FILE * f;
f = fopen ("c:\texte.txt","r1234");
if (f==NULL) printf ("le fichier est absent\n");
else printf ("ok\n");
•
Fermeture du fichier
Supprime l'association fichier physique-variable interne
: fclose
• La variable interne peut être associée à un autre fichier physique
• Syntaxe
fclose (variable interne)
• Exemple :
FILE * f;
f= fopen (fichier1, "r");
….
fclose (f);
…
f= fopen (fichier2,"w");
…
Lecture dans fichier
• Lecture :
fgetc() et getc() ↔ getchar()
exemple
c=fgetc(f);
fscanf() ↔ scanf()
exemple
fscanf(f,"%d",i) le 1er argument est la variable interne fichier
• le caractère EOF indique la fin de fichier
• Ecriture
fputc () ↔ putchar()
fprintf() ↔ printf()
Exemple: Ecriture
Ecriture d’une lettre Ecriture d’une phrase, voir un text
Exemple: Lecture
Lecture du clavier
void main () {
float z,t;
z = puiss(10.7,2);
t = puiss (z, -6);
...
}
Règles de déclaration et d'appel
• Toute fonction ne peut appeler que des fonctions déclarées avant elle ou elle-même (la fonction main ne
peut pas s'appeler).
... f1 (..) {
...
}
... f2 (...) {
...
}
... f3 (...) {
...
}
void main (...) {
...
}
la fonction main peut appeler f1,f2,f3
la fonction f3 peut appeler f1,f2,f3
la fonction f2 peut appeler f1, f2
la fonction f1 peut appeler f1