0% ont trouvé ce document utile (0 vote)
15 vues3 pages

TD5 MIP Math - Correction

Le document présente plusieurs exercices de programmation en C, incluant des structures pour manipuler des rationnels, la lecture et l'écriture de fichiers, ainsi que le comptage de caractères dans un fichier. Chaque exercice est accompagné de code source et d'explications sur son fonctionnement. Les exercices couvrent des concepts tels que les structures, les fichiers et les opérations sur des données rationnelles.

Transféré par

mo7am5dyt
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
15 vues3 pages

TD5 MIP Math - Correction

Le document présente plusieurs exercices de programmation en C, incluant des structures pour manipuler des rationnels, la lecture et l'écriture de fichiers, ainsi que le comptage de caractères dans un fichier. Chaque exercice est accompagné de code source et d'explications sur son fonctionnement. Les exercices couvrent des concepts tels que les structures, les fichiers et les opérations sur des données rationnelles.

Transféré par

mo7am5dyt
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

CORRECTION TD 5

Ex 1:
# include <stdio.h>
typedef struct rat_t{
int num;
int den;
}rat_t;

/* prototypes */
rat_t lit_rat(void);
void affiche_rat(rat_t c);
rat_t somme_rat(rat_t c1, rat_t c2);
rat_t produit_rat(rat_t c1, rat_t c2);

/* principale */
int main(){
rat_t r1,r2,r3, s,p,res ;
r1=lit_rat();
r2=lit_rat();
r3=lit_rat();
s=somme_rat(r1,r2);
p=produit_rat(s,r3); /* ou p=produit (somme(r1,r2),r3) */
affiche_rat (p);
return 0;
}

rat_t lit_rat(){
rat_t c;
printf (" donner deux entiers a et b pour le rationnel (a/b)\n");
scanf("%d",&[Link]);
scanf("%d",&[Link]);
return c;
}
void affiche_rat(rat_t c){
printf ("(%d/%d)\n",[Link],[Link]);
}
rat_t somme_rat(rat_t c1, rat_t c2){
rat_t c;
[Link]=[Link]*[Link] + [Link]*[Link] ;
[Link]=[Link]*[Link];
return c;
}
rat_t produit_rat(rat_t c1, rat_t c2){
rat_t c;
[Link]=[Link] * [Link];
[Link]=[Link] * [Link];
return c;
}

1
EX 2 :
#include <stdio.h>
int main(){
FILE * f ;
char cNom [80] ; char cPrenom [80] ; int code; char cFiliere [80]; int age ;
f = fopen ("[Link]", "r") ;
if (f==NULL)
printf(" Impossible d’ouvrir le fichier") ;
else{
while (fscanf(f, "%s%s%d%s%d", cNom, cPrenom, &code, cFiliere, &age) !=EOF)
printf (" %s %s %d %s %d\n", cNom, cPrenom, code, cFiliere, age) ;
}
fclose (f) ;
return 0;
}

EX 3 :
#include <stdio.h>
void main(){
FILE * f ;
const int iNB_com=100;
int i;
struct personne{
char cNom [80] ;
char cPrenom [80] ;
int code;
char cFiliere[80];
int age ;
};
struct personne tab [100] ;
int iIndex, iDerniers ;
f = fopen ("[Link]", "r") ;
if (f==NULL)
printf(" Impossible d’ouvrir le fichier") ;
else{
iIndex=0 ;
while (iIndex<iNB_com && fscanf(f," %s%s%d%s%d", tab[iIndex].cNom,
tab[iIndex].cPrenom, & tab [iIndex].code, tab[iIndex].cFiliere, &tab[iIndex].age) !=EOF)
iIndex++ ;
for ( i = 0 ; i < iIndex ; i++)
printf (" %s %s %d %s %d\n", tab[i].cNom, tab[i].cPrenom, tab [i].code,
tab[i].cFiliere, tab[i].age ) ;
fclose (f) ;
}
}

2
EX 4 :
#include<stdio.h>
int compteCarFich(char nomFichier[]){
FILE *f = fopen(nomFichier,"r");
if (f==NULL)
return -1;
int nbC = 0;
char c;
while (fscanf(f,"%c",&c) != EOF)
nbC++;
fclose (f);
return nbC;
}
int main(){
printf ("Nombre de caractères = %lu\n",compteCarFich("[Link]"));
return 0;
}

Vous aimerez peut-être aussi