Académique Documents
Professionnel Documents
Culture Documents
1
– ALGORITHMIQUE ET PROGRAMMATION -
2
– ALGORITHMIQUE ET PROGRAMMATION -
3
– ALGORITHMIQUE ET PROGRAMMATION -
4
– ALGORITHMIQUE ET PROGRAMMATION -
La représentation graphique permet une lecture aisée des algorithmes mais présente
toutefois l’inconvénient de consommer une place importante. Les opérations dans un
organigramme sont représentées par les symboles dont les formes sont normalisées. Ces
symboles sont reliés entre eux par des lignes fléchées qui indiquent le chemin. C’est ainsi
qu’on a :
5
– ALGORITHMIQUE ET PROGRAMMATION -
6
– ALGORITHMIQUE ET PROGRAMMATION -
7
– ALGORITHMIQUE ET PROGRAMMATION -
8
– ALGORITHMIQUE ET PROGRAMMATION -
9
– ALGORITHMIQUE ET PROGRAMMATION -
10
– ALGORITHMIQUE ET PROGRAMMATION -
• Les données sont des informations nécessaires au déroulement d’un algorithme. On distingue
deux catégories : les constantes et les variables.
• Une constante est une donnée fixe qui ne varie pas durant l’exécution d’un algorithme. Une
constante est caractérisée par son nom et sa valeur (fixe)
11
– ALGORITHMIQUE ET PROGRAMMATION -
• Une variable est un objet dont le contenu peut être modifié par une action
durant l’exécution d’un algorithme. Une variable est caractérisée par son nom,
sa valeur et son type.
12
– ALGORITHMIQUE ET PROGRAMMATION -
•Entier : sert à manipuler les nombres entiers positifs ou négatifs. (Ex : Variables a, b, c : entier ;)
• Réel : sert à manipuler les nombres à virgule. (Ex : Variables r, s : réel ;)
•Caractère : permet de manipuler les caractères alphabétiques et numériques. (Ex : Variable code :
caractère ;)
• Chaîne : sert à manipuler les chaînes de caractères. (Ex : Variable Nom_prenom : chaîne ;)
• Logique : utilise les expressions logiques : (Vrai ou Faux). (Ex : Variable absent : logique ;)
13
– ALGORITHMIQUE ET PROGRAMMATION -
Exemples :
14
– ALGORITHMIQUE ET PROGRAMMATION -
Exemples :
• ’32’ est différent de 32 parce que 32 est trente deux par contre ’32’ représente la suite des
caractères 3 et 2.
• Une variable de type numérique ne peut pas recevoir une chaine de caractères ou logique.
15
– ALGORITHMIQUE ET PROGRAMMATION -
L’affectation est une opération qui consiste à attribuer une valeur à une variable. Elle est
représentée par une flèche orientée à gauche.
Syntaxe d’affectation :
16
– ALGORITHMIQUE ET PROGRAMMATION -
Exercice :
Soient trois variables A, B et C tels que :
17
– ALGORITHMIQUE ET PROGRAMMATION -
Exercice :
Compléter le tableau suivant :
18
– ALGORITHMIQUE ET PROGRAMMATION -
La lecture est une instruction qui permet de lire des données tapées au clavier.
Syntaxe :
Lire (variable1) ;
Lire (variable1, variable2,. . . ) ;
Exemple :
• Lire (nombre) ;
• Lire (nom, prénom, âge) ;
19
– ALGORITHMIQUE ET PROGRAMMATION -
L’écriture est une instruction qui permet d’afficher le contenu d’une variable ou/et
un message sur l’écran .
Syntaxe :
Ecrire(variable) ;
Ecrire(’Message’) ;
Ecrire(’Message’, variable) ;
Exemple :
20
– ALGORITHMIQUE ET PROGRAMMATION -
+ : addition.
- : soustraction.
* : multiplication.
/ : division.
ˆ : puissance.
Div : Division entière.
Mod ou % (modulo) : Reste de la division entière
21
– ALGORITHMIQUE ET PROGRAMMATION -
• Une expression logique simple est une comparaison entre deux expressions arithmétiques.
• Les opérateurs de comparaison usuels sont : > ,= , <, >= ,<=, …
22
– ALGORITHMIQUE ET PROGRAMMATION -
• Lorsqu’un algorithme devient long, il est conseillé d’ajouter des lignes de commentaires dans
l’algorithme, c’est-à-dire des lignes qui ont pour but de donner des descriptions sur les instructions
effectuées.
23
– ALGORITHMIQUE ET PROGRAMMATION -
1. Établir la liste des données en entrée, la liste des données en sortie et les liens
entre elles.
5. La virgule est un séparateur des variables. On peut avoir plusieurs instructions sur une même
ligne séparées par un point virgule
24
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple :
Solution :
25
– ALGORITHMIQUE ET PROGRAMMATION -
26
– ALGORITHMIQUE ET PROGRAMMATION -
27
– ALGORITHMIQUE ET PROGRAMMATION -
28
– ALGORITHMIQUE ET PROGRAMMATION -
29
– ALGORITHMIQUE ET PROGRAMMATION -
Le langage C a été conçu en 1972 par Dennis Richie et Ken Thompson, chercheurs aux Bell Labs, afin de
développer un système d’exploitation UNIX . En 1978, Brian Kernighan et Dennis Richie publient la
définition classique du C dans le livre The C Programming language .Le C devenant de plus en plus
populaire dans les années 80, plusieurs groupes mirent sur le marché des compilateurs comportant des
extensions particulières. Actuellement, de nombreux langages plus modernes comme C++, C], Java et PHP
ou Javascript ont repris une syntaxe similaire au C et reprennent en partie sa logique. C offre au
développeur une marge de contrôle importante sur la machine (notamment sur la gestion de la mémoire).
30
– ALGORITHMIQUE ET PROGRAMMATION -
La constante :
• Elle ne change jamais de valeur pendant l’exécution d’un programme. Elle est généralement stockée
dans la mémoire morte d’une machine.
Syntaxe :
# define <identificateur> <valeur>
# define PI 3.14
31
– ALGORITHMIQUE ET PROGRAMMATION -
Variable :
32
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple :
33
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple :
• Le type : Détermine la taille de la variable et les opérations pouvant être effectuées.
• L’identificateur : C’est le nom affecté à la variable, le nombre de caractères peut être limité, cela
dépend du compilateur utilisé. L’identificateur d’une variable doit toujours être écrit de la même façon :
Mon_Identificateur # mon_identificateur # MON_IDENTIFICATEUR.
• Les seuls caractères autorisés pour les noms (identificateur) de variables sont :
• lettres NON accentuées ;
• chiffres ;
• caractères souligné " _ ".
34
– ALGORITHMIQUE ET PROGRAMMATION -
35
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple :
36
– ALGORITHMIQUE ET PROGRAMMATION -
L’opérateur d’affectation :
• Il permet de modifier la valeur d’une variable.
• L’affectation est toujours effectuée de la droite vers la gauche
• Le programme commence par évaluer la valeur de l’expression puis l’affecte avec
le signe = à la variable par son identificateur.
Syntaxe :
<identificateur> = <expression> ;
37
– ALGORITHMIQUE ET PROGRAMMATION -
38
– ALGORITHMIQUE ET PROGRAMMATION -
La fonction d’affichage printf() permet d’afficher des messages et/ou des valeurs de
variables sous différents formats.
Syntaxe :
printf ("Format",identificateur1, ....,identificateur n) ;
39
– ALGORITHMIQUE ET PROGRAMMATION -
Le format :
• indique comment vont être affiché les valeurs des variables. Il est composé de texte et de codes d’affichage
suivant le type de variable.
Exemple :
40
– ALGORITHMIQUE ET PROGRAMMATION -
Codes d’affichage :
41
– ALGORITHMIQUE ET PROGRAMMATION -
Important :
Au début d’un programme utilisant les fonctions d’affichage et de saisie il est nécessaire
d’écrire # include <stdio.h>, car toutes les fonctions sont déclarées dans ce fichier d’en-tête.
Exemple :
Le programme affiche :
La valeur de a est 1, celle de b est 2, et celle de c est 3.
42
– ALGORITHMIQUE ET PROGRAMMATION -
43
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple :
Le programme affiche :
Salut je suis
etudiant a la FSTH
A bientot
44
– ALGORITHMIQUE ET PROGRAMMATION -
A. La fonction scanf() permet de saisir des valeurs de variables formatées à partir du clavier.
B. Comme printf() elle est composée d’un format et des identificateurs de variables à saisir.
C. A la différence de printf(), le format ne peut contenir de texte, il est juste composé du format des
valeurs à saisir.
Syntaxe :
scanf(<"Format">,&identificateur1, ...., &identificateurn) ;
45
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple :
46
– ALGORITHMIQUE ET PROGRAMMATION -
Remarques :
• Le symbole & est obligatoire devant les identificateurs car scanf() attend des
adresses et non des valeurs, sauf devant un identificateur de chaîne de caractères.
• Les codes d’affichage pour printf deviennent les codes d’entrée pour scanf().
47
– ALGORITHMIQUE ET PROGRAMMATION -
Remarques :
48
– ALGORITHMIQUE ET PROGRAMMATION -
Syntaxe :
putchar(identificateur1) ;
Exemple :
49
– ALGORITHMIQUE ET PROGRAMMATION -
Syntaxe :
identificateur1 = getchar() ;
Exemple :
50
– ALGORITHMIQUE ET PROGRAMMATION -
51
– ALGORITHMIQUE ET PROGRAMMATION -
• Ces opérateurs permettent de simplifier des opérations telles que "ajouter une valeur dans une
variable et stocker le résultat dans la variable".
• Avec les opérateurs d’assignation il est possible d’écrire x = x+2 sous la forme suivante x+=2
52
– ALGORITHMIQUE ET PROGRAMMATION -
53
– ALGORITHMIQUE ET PROGRAMMATION -
54
– ALGORITHMIQUE ET PROGRAMMATION -
55
– ALGORITHMIQUE ET PROGRAMMATION -
56
– ALGORITHMIQUE ET PROGRAMMATION -
Les structures de contrôle définissent la suite dans laquelle les instructions sont
effectuées. Dans ce chapitre, nous allons voir comment les instructions de sélection
connues fonctionnent en algorithmique et en C. Ces structures sont utilisées pour décider
de l’exécution d’un bloc d’instruction : est ce-que ce bloc est exécuté ou non. Ou bien
pour choisir entre l’exécution de deux blocs différents.
57
– ALGORITHMIQUE ET PROGRAMMATION -
Une instruction de choix simple contient un seul bloc d’instructions. Selon une condition (expression
logique), on décide est-ce-que le bloc d’instructions est exécuté ou non.
Si la condition est vraie, on exécute le bloc, sinon on ne l’exécute pas. La syntaxe d’un
test alternatif simple est comme suit :
58
– ALGORITHMIQUE ET PROGRAMMATION -
59
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple :
60
– ALGORITHMIQUE ET PROGRAMMATION -
Solution :
Organigramme :
61
– ALGORITHMIQUE ET PROGRAMMATION -
Algorithme :
62
– ALGORITHMIQUE ET PROGRAMMATION -
En C, l’alternative se code par le mot-clé if (si), et la condition doit obligatoirement être entre
parenthèses. Le bloc d’instructions est soit un bloc C mis entre accolades, soit (déconseillé) une unique
instruction qui n’a pas besoin d’accolades.
La traduction du l’exemple ci-dessus en langage C est :
63
– ALGORITHMIQUE ET PROGRAMMATION -
Un test double contient deux blocs d’instructions : on est amené à décider entre le premier bloc ou le
second. Cette décision est réalisée selon une condition (expression logique ou booléenne) qui peut être vraie
ou fausse. Si la condition est vraie on exécute le premier bloc, sinon on exécute le second. La syntaxe d’un test
alternatif double est comme suit :
64
– ALGORITHMIQUE ET PROGRAMMATION -
65
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple :
Écrire un algorithme qui demande un entier (A) à l’utilisateur, teste si ce nombre est
positif (A >= 0) ou non, et affiche "positif" ou "négatif".
66
– ALGORITHMIQUE ET PROGRAMMATION -
Solution :
Organigramme :
67
– ALGORITHMIQUE ET PROGRAMMATION -
Algorithme :
68
– ALGORITHMIQUE ET PROGRAMMATION -
En C, l’alternative se code par les mots-clés if (si) et else (sinon), et la condition doit obligatoirement
être entre parenthèses. Le bloc d’instructions est soit un bloc C mis entre accolades, soit (déconseillé) une
unique instruction qui n’a pas besoin d’accolades. L’instruction else (sinon) permet de programmer une
exécution alternative lorsque la condition suivant if n’est pas réalisée.
La traduction de l’exemple ci-dessus en langage C est :
69
– ALGORITHMIQUE ET PROGRAMMATION -
Plusieurs structures conditionnelles peuvent être imbriquées, si bien que dans une structure peut
(peuvent) figurer une ou plusieurs structure(s) conditionnelle(s), et les tests peuvent avoir un degré
quelconque d’imbrications.
Syntaxe :
70
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple :
Écrire un algorithme qui demande un entier à l’utilisateur, teste si ce nombre est strictement positif, nul
ou strictement négatif, et affiche ce résultat.
71
– ALGORITHMIQUE ET PROGRAMMATION -
Solution :
Organigramme :
72
– ALGORITHMIQUE ET PROGRAMMATION -
Algorithme :
73
– ALGORITHMIQUE ET PROGRAMMATION -
74
– ALGORITHMIQUE ET PROGRAMMATION -
Lorsque l’imbrication des alternatives devient importante, l’utilisation de la structure à choix multiple
devient nécessaire. Une structure de choix permet, en fonction de plusieurs conditions de type booléen,
d’exécuter des traitements différents selon les valeurs que peut prendre une même variable.
Syntaxe :
75
– ALGORITHMIQUE ET PROGRAMMATION -
• V1, ..., Vn sont des constantes de type scalaire (entier, réel, caractère ...)
• Les instructions i est exécutée si V = V i (on quitte ensuite le selon)
• "autre cas " est exécutée si quelque soit i, V 6 ≠ Vi
Exemple :
76
– ALGORITHMIQUE ET PROGRAMMATION -
Solution :
Algorithme :
77
– ALGORITHMIQUE ET PROGRAMMATION -
78
– ALGORITHMIQUE ET PROGRAMMATION -
• Exercice 1 :
Dans une entreprise, le calcul des jours de congés payés s’effectue de la manière
suivante :
— Si une personne est entrée dans l’entreprise depuis moins d’un an, elle a droit
à deux jours de congés par mois de présence, sinon à 28 jours au moins.
— Si c’est un cadre et s’il est âgé d’au moins 35 ans et si son ancienneté est
supérieure à 3 ans, il lui est accordé 2 jours supplémentaires.
— S’il âgé d’au moins 45 ans et si son ancienneté est supérieure à 5 ans, il lui
est accordé 4 jours supplémentaires, en plus des 2 accordés pour plus de 35 ans.
Ecrire un algorithme (et un programme en C) qui calcule le nombre de jours de congés à partir de l’âge,
l’ancienneté et l’appartenance au collège cadre d’un employé.
79
– ALGORITHMIQUE ET PROGRAMMATION -
80
– ALGORITHMIQUE ET PROGRAMMATION -
La plupart des langages de programmation contiennent des instructions capables de répéter le même
traitement plusieurs fois. Ce sont ces instructions qui sont décrites dans ce chapitre, pour l’algorithmique et
le langage C. On distingue trois boucles différentes :
1. tant que....faire
2. répéter....jusqu’à
3. pour....faire
Nous allons voir qu’en termes d’expressivité, elles ont strictement le même pouvoir (i.e. elles permettent
de faire exactement la même chose). Cependant, la convention veut qu’on les utilise dans des contextes
différents.
81
– ALGORITHMIQUE ET PROGRAMMATION -
82
– ALGORITHMIQUE ET PROGRAMMATION -
La boucle "tant que" permet de répéter l’exécution d’un bloc d’instructions tant
qu’une condition est vraie.
Syntaxe :
83
– ALGORITHMIQUE ET PROGRAMMATION -
Principe :
84
– ALGORITHMIQUE ET PROGRAMMATION -
85
– ALGORITHMIQUE ET PROGRAMMATION -
• Le nombre d’itérations dans une boucle TantQue n’est pas connu au moment d’entrée dans la boucle.
Il dépend de l’évolution de la valeur de condition.
• Une des instructions du corps de la boucle doit absolument changer la valeur de condition de vrai à faux
(après un certain nombre d’itérations), sinon le programme tourne indéfiniment (Risque d’une boucle
infinie).
• Boucle infinie : boucle dont la condition ne change jamais, ce qui provoque un nombre infini de répétitions.
Il s’agit généralement d’une erreur d’exécution
86
– ALGORITHMIQUE ET PROGRAMMATION -
87
– ALGORITHMIQUE ET PROGRAMMATION -
Exercice :
Ecrire un programme qui lit au clavier un entier N et qui calcule la série suivante :
S=1+2+3+......+N
88
– ALGORITHMIQUE ET PROGRAMMATION -
Solution :
89
– ALGORITHMIQUE ET PROGRAMMATION -
En C While signifie " Tant que ". On dit donc à l’ordinateur " Tant que la condition
est vraie, répète les instructions entre accolades ".
Syntaxe :
Tant que condition est vérifiée les instruction 1,..,n sont exécutée. Si condition est
fausse au départ, les instructions ne seront jamais exécutée.
90
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple :
on reprend le même exemple traité précédemment en faisant maintenant recours à l’instruction " while
«
91
– ALGORITHMIQUE ET PROGRAMMATION -
Syntaxe :
92
– ALGORITHMIQUE ET PROGRAMMATION -
Toutes les instructions écrites entre Répéter et jusqu’à sont exécutées au moins une fois et leur exécution
est répétée jusqu’à ce que la condition placée derrière " jusqu’à " soit fausse. L’organigramme suivant
illustre le fonctionnement de la boucle Répéter...jusqu’à :
93
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple :
on reprend le même exemple traité précédemment en faisant maintenant recours à la boucle Répéter
...jusqu’à
94
– ALGORITHMIQUE ET PROGRAMMATION -
Syntaxe :
La boucle do...while fonctionne comme la boucle while, à un petit détail près : elle s’exécutera toujours
au moins une fois, alors qu’une boucle while peut ne pas s’exécuter aucune fois si la condition est fausse dès le
départ .
95
– ALGORITHMIQUE ET PROGRAMMATION -
96
– ALGORITHMIQUE ET PROGRAMMATION -
Cette boucle est utile surtout quand on connaît le nombre d’itérations à effectuer.
Syntaxe :
97
– ALGORITHMIQUE ET PROGRAMMATION -
98
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple 1 :
• Ecrire un algorithme qui affiche le message "Bonjour à tous" 100 fois. Au lieu d’écrire l’instruction :
écrire("Bonjour à tous") ; 100 fois. On utilise
plutôt une boucle :
99
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple 2 :
100
– ALGORITHMIQUE ET PROGRAMMATION -
Solution :
101
– ALGORITHMIQUE ET PROGRAMMATION -
◦ Une expression et/ou une déclaration qui sera le plus souvent l’initialisation d’une variable ;
◦ Une condition ;
◦ Une seconde expression, qui consistera le plus souvent en l’incrémentation
d’une variable.
102
– ALGORITHMIQUE ET PROGRAMMATION -
Syntaxe :
• <initialisation> : séparées par une point virgule, ces instruction définissent les
initialisations de la boucle.
• <test_de_boucle> : expression qui doit être égale à " faux " pour stopper la boucle
• <incrémentation/décrimentation> : séparées par point virgule, elles définissent
la séquence d’instructions à réaliser entre deux itérations (avant d’effectuer l’évaluation de
<test_de_boucle>)
103
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple 1 :
Solution :
104
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple 2 :
Calcul de x à la puissance n où x est un réel non nul et n un entier positif ou nul.
Solution :
105
– ALGORITHMIQUE ET PROGRAMMATION -
• En effet, si le nombre de répétitions est connu, il est conseillé d’utiliser la boucle for
• Par contre, si le nombre d’itérations varie de 1 à n, il est recommandé d’utiliser la boucle do...while
106
– ALGORITHMIQUE ET PROGRAMMATION -
107
– ALGORITHMIQUE ET PROGRAMMATION -
108
– ALGORITHMIQUE ET PROGRAMMATION -
109
– ALGORITHMIQUE ET PROGRAMMATION -
110
– ALGORITHMIQUE ET PROGRAMMATION -
111
– ALGORITHMIQUE ET PROGRAMMATION -
112
– ALGORITHMIQUE ET PROGRAMMATION -
113
– ALGORITHMIQUE ET PROGRAMMATION -
114
– ALGORITHMIQUE ET PROGRAMMATION -
Quand une fonction ne renvoie pas de résultat, on le précise, à la fois dans l’en-tête et dans
sa déclaration, à l’aide du mot-clé void.
Par exemple, voici l’en-tête d’une fonction recevant un argument de type int et ne
fournissant aucune valeur :
}
115
– ALGORITHMIQUE ET PROGRAMMATION -
Le langage C autorise la récursivité des appels de fonctions. Celle-ci peut prendre deux
aspects :
● récursivité directe : une fonction comporte, dans sa définition, au moins un appel à elle-même,
● récursivité croisée : l’appel d’une fonction entraîne celui d’une autre fonction qui, à son tour,
appelle la fonction initiale.
116
– ALGORITHMIQUE ET PROGRAMMATION -
exemple :
117
– ALGORITHMIQUE ET PROGRAMMATION -
118
– ALGORITHMIQUE ET PROGRAMMATION -
Un tableau est un type de variable permettant de stocker plusieurs valeurs de n’importe quel
type simple (Entier, Chaine de caractères ou Booléen) ou complexe (Tableau ou Objet).
Syntaxe :
119
– ALGORITHMIQUE ET PROGRAMMATION -
N.B :
NB_ELEMENTS doit être une constante (par exemple 100) ou une constante symbolique définie
par #define. Mais NB_ELEMENTS ne peut pas être une variable ou une constante définie avec le mot ‐clé
const.
– tab[0] est le premier élément du tableau tab ; on dit que c’est l’élément d’indice 0.
– tab[i] est le (i+1)ème élément du tableau (c’est l’élément d’indice i) ;
120
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple :
121
– ALGORITHMIQUE ET PROGRAMMATION -
La boucle for est très utilisée pour « balayer » tous les éléments d'un tableau. Pour éviter des
dépassements aux effets imprévisibles, la syntaxe employée pour la boucle for doit être :
122
– ALGORITHMIQUE ET PROGRAMMATION -
Dans la définition d'un tableau à deux dimensions, la première paire de crochets contient le nombre de
lignes, la deuxième paire de crochets précise le nombre de colonnes.
123
– ALGORITHMIQUE ET PROGRAMMATION -
tableaux multidimensionnels
Exemple :
124
– ALGORITHMIQUE ET PROGRAMMATION -
L'initialisation d'un tableau à deux dimensions s'effectue en mettant en évidence les deux « sous ‐tableaux »
qui représentent les lignes :
125
– ALGORITHMIQUE ET PROGRAMMATION -
126
– ALGORITHMIQUE ET PROGRAMMATION -
127
– ALGORITHMIQUE ET PROGRAMMATION -
128
– ALGORITHMIQUE ET PROGRAMMATION -
129
– ALGORITHMIQUE ET PROGRAMMATION -
130
– ALGORITHMIQUE ET PROGRAMMATION -
Les fichiers permettent de stocker ou de lire des données sur un support permanent tel que le
disque dur. Les données sont mémorisées sous la forme d'une suite d'octets.
131
– ALGORITHMIQUE ET PROGRAMMATION -
– fichier rempli en mode binaire : Les données ne peuvent être lues/écrites que par programme. Pour
lire/écrire dans un fichier binaire, il existe deux fonctions rapides à utiliser ( fread, fwrite).
– fichier rempli en mode texte : chaque information est stockée sous la forme d’une succession de codes
ASCII. Les données du fichier peuvent être créées ou consultées par l'utilisateur à l'aide d'un éditeur de texte.
- Un fichier texte est un cas particulier de fichier binaire : on peut donc le manipuler en accès binaire, avec
les fonctions de lecture/écriture binaires ( fread, fwrite). Mais on utilise surtout des fonctions
d’entrée/sortie dites "formatées" (fprintf, fgets, fscanf,...).
132
– ALGORITHMIQUE ET PROGRAMMATION -
Quel que soit le type d'accès envisagé, binaire ou texte, il faut suivre la même procédure :
– ouvrir le fichier (fonction fopen) ; on indique le nom du fichier et les détails de l'accès envisagé.
– lire ou écrire dans le fichier : on utilise les fonctions autorisées par l'accès choisi (binaire ou texte).
133
– ALGORITHMIQUE ET PROGRAMMATION -
Tout fichier du disque dur sera associé, une fois ouvert, à une variable de type FILE*, qui doit être
préalablement définie par :
FILE* fic ;
La variable fic est un pointeur sur un objet de type FILE (le type FILE est un modèle de structure défini
dans stdio.h) et on l'appelle le « pointeur de fichier ».
fic donne accès à diverses informations concernant le fichier, en particulier la position actuelle du
« curseur de position » associé au fichier. Le programmeur n'a pas à connaître ces informations qui seront
utilisées par les fonctions : il n'a qu'à fournir le pointeur de fichier aux fonctions de manipulation de fichier.
134
– ALGORITHMIQUE ET PROGRAMMATION -
Tout fichier du disque dur sera associé, une fois ouvert, à une variable de type FILE*, qui doit être
préalablement définie par :
FILE* fic ;
La variable fic est un pointeur sur un objet de type FILE (le type FILE est un modèle de structure défini
dans stdio.h) et on l'appelle le « pointeur de fichier ».
fic donne accès à diverses informations concernant le fichier, en particulier la position actuelle du
« curseur de position » associé au fichier. Le programmeur n'a pas à connaître ces informations qui seront
utilisées par les fonctions : il n'a qu'à fournir le pointeur de fichier aux fonctions de manipulation de fichier.
135
– ALGORITHMIQUE ET PROGRAMMATION -
Exemple :
136
– ALGORITHMIQUE ET PROGRAMMATION -
- r+ : écriture et lecture. Le curseur est positionné au début du fichier. Le fichier doit déjà exister. Ce mode
est peu utilisé.
- w+ : écriture et lecture. Le curseur est positionné au début du fichier. Le fichier est créé s'il n'existe pas, son
ancien contenu est écrasé s'il existe. Ce mode est peu utilisé.
- a+ : écriture et lecture. Le curseur est positionné à la fin du fichier. Celui ‐ci est créé s'il n'existe pas. Ce
mode est peu utilisé.
- b (Binaire) ou t (Text) : cette lettre placée en deuxième position indique si le fichier doit être accédé en mode
texte ou en mode binaire.
mode vaudra par exemple "wt" (fichier texte créé avec accès en écriture seulement) ou "a+b" (fichier binaire
avec accès en lecture et écriture).
137
– ALGORITHMIQUE ET PROGRAMMATION -
138
– ALGORITHMIQUE ET PROGRAMMATION -
Il est indispensable de fermer un fichier avant la fin du programme qui l'utilise pour éviter la perte de
données. Cette fermeture se fait très simplement à l'aide de la fonction fclose, à laquelle on fournit le pointeur
du fichier à fermer :
fclose( fic ) ;
139
– ALGORITHMIQUE ET PROGRAMMATION -
Quel que soit le type de fichier (binaire ou texte), l'accès en mode binaire se fait par les
fonctions fread et fwrite, qui permettent de lire ou d'écrire des suites d'octets.
Il existe aussi des macros getc et putc (ou des fonctions équivalentes fgetc et fputc) qui permettent de lire ou
d'écrire un caractère dans un fichier, qu'il soit binaire ou texte.
140
– ALGORITHMIQUE ET PROGRAMMATION -
Rappelons qu'un fichier texte peut être lu/écrit avec un éditeur (il est composé de caractères ASCII).
141
– ALGORITHMIQUE ET PROGRAMMATION -
142
– ALGORITHMIQUE ET PROGRAMMATION -
143
– ALGORITHMIQUE ET PROGRAMMATION -
-Claude delanoy, programmer en langage C, cours et exercices corrigés, EYROLLES, 5e édition 2009.
-Jacques Jorda & Abdelaziz M’zoughi, Mini manuel d’architecture de l’ordinateur Broché, 2012.
-Robert Strandh &Irène. Architecture de l’ordinateur Portes logiques, circuits combinatoires, arithmétique
binaire, circuits séquentiels et mémoires. Exemple d’architecture. Collection : Sciences Sup, Dunod, mai
2005.
2005
144