Beruflich Dokumente
Kultur Dokumente
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf(« Programmation en C\n");
return 0;
}
Exemple
char c;
c='a';
putchar ( c );
putchar ('\n');
putchar('b');
Les entrées/sorties (lecture/écriture)
gets, puts permettent de lire et écrire des chaînes de caractères
exemple :
#include <stdio.h>
int main()
{
char ligne[80];
gets(ligne);
puts(ligne);
return 0;
}
Opérateurs
Opérateurs bi-opérandes
+ , -,* , / , % (modulo)
Opérateurs unaires (un opérande)
incrémentation, décrémentation : ++ (+1) , -- (-1)
exemple :
int i =1;
++i;
printf("%d",i) ; -> 2;
Syntaxes : ++i ou i++
++i : la valeur de i est d'abord incrémenté, la valeur résultat est
utilisée dans l'expression courante
i++ : la valeur courante de i est utilisée dans l'expression courante,
puis i est incrémenté
Opérateurs d'affectation
Affectation et opération : +=, -=, *=, /=, %=,<<= , >>=, &=, |=,
^=
Exemple :
int i;
i= 3;
i+=2; (i=i+2;)
printf("%d\n",i); -> 5
Opérateurs relationnels et logiques
Valeur logique :
0 : faux
#0 : vrai
Syntaxe
expression1 ? expression2 : expression3
est équivalent à :
if (expression1) expression2; else expression3;
Exemple :
maximum = (x>y) ? x : y;
pow(x,y) xy z=pow(x,y)
if (expression) action1 ;
else action2 ;
fin de l'instruction if
…
if (z == 3) {
printf("calcul juste");
z=z+10;
}
else printf ("problème");
printf ("%d",z);
…
Switch en C
Sélection multiple : en C, la sélection ne peut être qu'une comparaison
à des constantes
…
switch (z) {
case 3 : printf("ok"); break;
case 4 : printf("PB1"); break;
default : "printf ("PB2");
};
…
Itération en C
Ex: imprimer tous les nombres de 1 à 10
Exemples :
stocker les 100 premiers nombres pairs : 0,2,4,...,196,198
int i, t[100];
for (i=0; i < 100; i=i+1)
t[i]= 2*i;
Matrices
int mat[2][2];
for(i=0;i<2;i++)
for(j=0;j<2;j++)
scanf(‘’%d’’,&mat[i][j]);
Chaînes de caractères
#include "string.h"
....
char S1[]="abcd";
char S2[20];
S2 = S1 ; incorrect
strcpy(S2,S1);
Déclaration :
FILE * variable-interne
ex : FILE * f; // f est une variable spéciale de type "fichier"
Ouverture de fichier : fopen
Ouverture et affectation
variable = fopen("nom du fichier sur disque",mode d'ouverture)
mode d'ouverture :
'r' = read = lecture
'w' = write = écriture
'a' = append = écriture à la fin
Exemple
FILE * f;
f = fopen ("c:\texte.txt", "r");
if (f==NULL) printf ("le fichier est absent\n");
else printf ("ok\n");
Fermeture du fichier : fclose
Syntaxe
fclose (variable interne)
Exemple :
FILE * f;
f= fopen (fichier1, "r");
….
fclose (f);
…
f= fopen (fichier2,"w");
…
Lecture/Ecriture dans fichier
Lecture :
fgetc()
exemple
c=fgetc(f);
fscanf()
exemple
fscanf(f,"%s’’,s1) le 1er argument est la variable interne fichier
le caractère EOF indique la fin de fichier
La fonction feof(f) teste la fin de fichier
Ecriture
fputc ()
fprintf (f,"%d",i)
Exercice
Afficher à l'écran le contenu d'un fichier
main()
{
FILE * f;
char fichier[100]; char mot[20];
/* acquisition du nom */
scanf("%s",fichier);
/*ouverture*/
f=fopen(fichier,"r");
if (f==NULL) printf("erreur\n");
else
{
while (!feof(f))
{
fscanf(f,’’%s’’,mot);
printf("%s",mot);
}
fclose (f);
}
Lecture et écriture de fichiers binaires
FILE *f;
int x[10];
fwrite(x,10,1,f);
fread(x,10,1,f);
Fonctions
Les fonctions permettent de structurer un programme , de faciliter sa
maintenance et sa lisibilité
Déclaration
type nom (type_arg1 arg1, …, type_argn argn) {
…
return (valeur retournée);
}
variables globales
Les variables déclarées avant la 1ere fonction peuvent être utilisées dans
toutes les fonctions. Ces variables sont dites globales.
#include "stdio.h"
int i;
void f1 () {
i = i+1;
}
void main(){
i=0;
f1();
printf("%d\n",i) -> 1
}
Visibilité des variables
variables locales
Les variables déclarées dans une fonction ne peuvent être utilisées
que dans cette fonction. Ces variables sont dites locales.
void f1 () {
int i;
i = i+1;
}
void main(){
i=0; -> ERREUR : i n'existe pas pour main
...
}
Visibilité des variables
1, 1, 1, 1, … 1, 2, 3, 4, …
Récursion
Définitions :
Une notion est dite récursive quand elle fait référence à elle-même
Exemple :
n! = n*(n-1)!