sweetty rang spécial niveau1


Age : 20 Inscrit le : 07 Juil 2007 Messages : 149
| Sujet: Théorie de langages et compilation TP N°1 Sam 1 Mar - 14:12 | |
| Exercice1: Réaliser en langage C un macro-processeur simple.Ce dernier va procéder comme suit: 1.Il lit un fichier texte déjà crée.Ce dernier est composé de trois sectionss:une seule section "en-tête",des sections "macro-défintions" et une section "corps" unique.
2.Lorsqu'il rencontre une instruction de la forme ".def texte1 texte2",il remplace dans le corps toute occurence de "texte1" par "texte2".
3.Le résultat de la transformation est enregistré dans un second fichier.
Exemple: "input.txt" fichier à donner au macro-processeur. .tete ceci est un exemple .def x 12 .def y 3 .def z 1987 .corps Il est né le x / y / z . Si a + x = z , alors a = z - x . Il y a plusieurs des zéros dans 100! Ce code est extranaturel.
"output.txt" fichier que le macro-processeur doit générer: .tete ceci est un exemple .corps Il est né le 12 / 3 / 1987 . Si a + 12 = 1987 , alors a= 1987 - 12 . Il 3 a plusieurs des zéros dans 100! Ce code est exxtranaturel. |
|
sweetty rang spécial niveau1


Age : 20 Inscrit le : 07 Juil 2007 Messages : 149
| |
imane Membre


Age : 20 Inscrit le : 18 Sep 2007 Messages : 34
| Sujet: Re: Théorie de langages et compilation TP N°1 Sam 1 Mar - 14:53 | |
| Exercice2: Realiser en langage C un macro-processeur simple qui se contente d'inclure le contenu d'un fichier dans un autre lorsqu'il rencontre une instruction de la forme ".ajoute fichier" |
|
myster Débutant


Age : 20 Inscrit le : 21 Mar 2008 Messages : 5 Localisation : earth
| Sujet: Re: Théorie de langages et compilation TP N°1 Dim 30 Mar - 19:30 | |
| la solution de l'exercice N°2
#include main() { FILE *F1,*F2,*F3; char s[100],c,d; F1=fopen("input1.txt","r"); F2=fopen("output1.txt","w"); //fscanf(F1,"%s",s); //c=fgetc(F1); while(c!=EOF) { fscanf(F1,"%s",s); if(strcmp(s,".ajout")==0) { fscanf(F1,"%s",s); F3=fopen(s,"r"); d=fgetc(F3); fprintf(F2,"\n\n"); while(d!=EOF) { fprintf(F2,"%c",d); d=fgetc(F3); } fprintf(F2,"\n\n"); fclose(F3); } else { fprintf(F2,"%s",s); fprintf(F2,"%c",c); } c=fgetc(F1); } fclose(F1); fclose(F2); getch(); } |
|