// Proprietaire Antoine Chapusot
#include <stdio.h>
#define NLECT 10 // nombre de cases du tableau
void ecrire (char enr); // déclaration des fonctions
void lire ();
int nvlect=NLECT; // nombre de cases vides
int tlect=0, qlect=0; // tete et queue de lecture
int lect_actif=0; // temoin d'activite
char Tampon [NLECT]; // tableau
int main(void) // fonction principale (executee en premier)
{
ecrire('c'); getchar();
ecrire('h'); getchar();
ecrire('a'); getchar();
ecrire('p'); getchar();
lire(); getchar();
lire(); getchar();
lire(); getchar();
lire(); getchar();
lire(); getchar();
lire(); getchar();
ecrire('c'); getchar();
ecrire('h'); getchar();
ecrire('a'); getchar();
ecrire('p'); getchar();
ecrire('c'); getchar();
ecrire('h'); getchar();
ecrire('a'); getchar();
ecrire('p'); getchar();
lire(); getchar();
lire(); getchar();
lire(); getchar();
lire(); getchar();
lire(); getchar();
lire(); getchar();
return 0;
}
// {A} et {B} sont des etiquettespour vous reperer dans les tests if-else
void lire () {
if (nvlect < NLECT) // {B} y a t il des cases non vides? (pas vide?)
{ // {B} oui alors:
lect_actif=1; // actif = on va acceder au tableau
printf("%c\n", Tampon[tlect]); // sortie de la valeur a l'index tlect
if (tlect == NLECT) tlect=0; /* On augmente l'indice et Test pour eviter */
else tlect=tlect+1; /* que l'indice deborde du tableau */
nvlect=nvlect+1; // une case libre de plus
lect_actif=0; // on a fini nos operations
}
else {printf("tampon vide\n");} // {B} non alors on affiche une erreur
}
void ecrire (char enr) {
if (nvlect > 0) // {A} il y a des cases vide? (pas plein?)
{ // {A} oui alors:
lect_actif=1; // actif = on va acceder au tableau
Tampon[qlect]=enr; // on ecrit enr dans la case "qlect" du tableau
if (qlect == NLECT) qlect=0; /* On diminue l'indice et Test pour eviter */
else qlect=qlect+1; /* que l'indice deborde du tableau */
nvlect=nvlect-1; // une case libre en moins
lect_actif=0; // on a fini nos operations
}
else {printf("tampon plein\n");} // {A} non alors on affiche une erreur
}
Comments
0 B
|👍
/👎