I.S.I.L - Institut Supérieur des Ingénieurs Liégeois

Nous vous souhaitons la bienvenue et une bonne visite sur le forum de
I.S.I.L - Institut Supérieur des Ingénieurs Liégeois

Merci de vous connecter ou vous inscrire.
I.S.I.L - Institut Supérieur des Ingénieurs Liégeois

Forum d'entraide


    question exam donné par Connia

    Partagez

    Matthias
    Apprenti
    Apprenti

    Messages : 22
    Date d'inscription : 15/04/2009
    Age : 27

    question exam donné par Connia

    Message par Matthias le Ven 18 Juin - 22:05

    voila un exemple de programme que le prof nous avait dit qu'on pourrait avoir a l'exam

    c'est un programme qui va chercher plusieur nombre dans une seul chaine voir plusieurs apres un =

    genre tu crée ton fichier : fichier.txt

    et puis tu met dedans zegzeherhrtj=55234dhtrjdeuj=5618284
    et il te rend les deux nombres

    Code:

    #include<stdio.h>
    #include<string.h>
    #include<ctype.h>
    #include<stdlib.h>
    #define MAX 300
    #define TAILLE 25
     void insert(char *);
    void main(){
       char nom[TAILLE];
       char encore;
       do{
       
          
               printf("Entrer un nom de fichier avec son extension ?  ");
              gets(nom); fflush(stdin);
              printf(" \n");
              insert(nom);
       
    do{
       printf("\n\n Voulez-vous recommencer  (o/n) ? : ");
       encore = getchar(); fflush(stdin);
       printf("\n");
       }
      while (tolower(encore)!='o' && tolower(encore)!='n');
    }
      while (tolower(encore) == 'o' );
       }
    void insert(char s[TAILLE]){
        FILE *fp1;
        char buf[MAX];
       
       char *str;
        fp1=fopen(s,"rt");
       if(fp1==0){
           perror(s);
           printf("\nVerifier l extension,le nom de fichier et si le fichier existe belle et bien \n\n");
                 }
       else
       {
              fgets(buf,MAX,fp1);
             char ligne[150],*ptr,*separateur="=";
             strcpy(ligne,buf);
             int a;
             ptr = strtok(ligne,separateur);
             if(ptr){
                  do{
                     ptr=strtok(NULL,separateur);
                     if(ptr){ sscanf(ptr,"%d",&a);
                           printf("a= %d\t",a);}
                    
                  }while(ptr);
             }         
       }       
    }


    Jordan L
    Apprenti
    Apprenti

    Messages : 19
    Date d'inscription : 11/02/2009

    Re: question exam donné par Connia

    Message par Jordan L le Sam 19 Juin - 14:14

    Merci almiqui pour ton prog Very Happy
    Mais j'ai une petite question : ton programme n'affiche que les chiffres car tu as initialisé a en entier ? car a un moment donné ptr= des lettres si j'ai bien compris ? et ton sscanf va transformer les chaine de caractere en valeur numérique ?

    Matthias
    Apprenti
    Apprenti

    Messages : 22
    Date d'inscription : 15/04/2009
    Age : 27

    Re: question exam donné par Connia

    Message par Matthias le Sam 19 Juin - 21:28

    en fait ton sscanf va chercher des chiffres dans ta chaine de caractère et va commencer a la traduire en entier

    et il va s'arreter dès qu'il rencontrera un caractère qui n'est pas un entier

    la grosse utilité pour seul qui n'aurait pas vu c'est que la valeur est bien un entier donc ou pourrait les multiplier entre eux directement si je ne me trompe pas genre si tu as =5 et =6 tu pourrais directement les multiplier mais je dois encore faire des tests

    voila la suite un autre programme que connia avait proposé cad l'exo du palindrome (attention je n'ai pas changé les titres des fonctions mais le programme est bien celui du palindrome )

    Code:


    #include<stdio.h>
    #include<ctype.h>
    #include<stdlib.h>
    #include<math.h>
    #include<string.h>
    #pragma warning (disable:4996)
    void countcar(char*);
    void main(){
         char encore,text[100];
        
       do{
            printf("\n Entrer la phrase  ");
            gets(text);
            printf("\n");

      countcar(text);
     
      do{
       printf("\n\n Voulez-vous recommencer  (o/n) ? : ");
       encore = getchar(); fflush(stdin);
       printf("\n");
       }
      while (tolower(encore)!='o' && tolower(encore)!='n');
         }
     while (tolower(encore) == 'o' );
    }


    void countcar(char *text ){

    int i,j,n = strlen(text);
    int k=0;
     
      for(i=0;i<n;i++){

         j=(n-i-1);
            if(text[i]==text[j]) k++;

    }
                  if( n==k) printf(" le mot est bien un palindrome");
               else printf(" le mot n'est pas un palindrome");
    }


    Matthias
    Apprenti
    Apprenti

    Messages : 22
    Date d'inscription : 15/04/2009
    Age : 27

    Re: question exam donné par Connia

    Message par Matthias le Sam 19 Juin - 21:35

    je vous conseil fortement de les imprimer pour l'exam comme ça vous les aurez deja au cas ou

    Contenu sponsorisé

    Re: question exam donné par Connia

    Message par Contenu sponsorisé Aujourd'hui à 0:23


      La date/heure actuelle est Sam 3 Déc - 0:23