Analyseur de texte

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 332 fois - Téléchargée 34 fois

Contenu du snippet

Ceci est un exercice de l'iut informatique de toulouse à compléter

Source / Exemple :


#include "chaine.h"
#include "entreeSortie.h"
#include "chaine.cpp"
#include "entreeSortie.cpp"

//---------------------------------------------//
// DECLARATION DES CONSTANTES                  //
//---------------------------------------------//
const int TAILLE_MAX = 255 ;

//---------------------------------------------//
// DEFINITION DES TYPES                        //
//---------------------------------------------//
typedef Chaine TabChaine [TAILLE_MAX] ;
typedef char TabChar [TAILLE_MAX] ;

// definition d une structure resultat pour comptage de chars
struct nbchars
{
       int nbutil ;  // nombre de lettres
       int nbponct ; // nombre de ponctuation
       int nbechap ;  // nombre de caractere d echappement
       int nbcesure ; // nombre de \n
       int nbespace ; // nombre d espcace ' '
} ;

//---------------------------------------------//
// PROTOTYPE DES SOUS-PROGRAMMES               //
//---------------------------------------------//
// Ecriture d un tableau de chaine
void afficherTexte (const TabChaine texte ) ;

// Compte le nombre de chars utiles, de ponctuation,
// d echappement, de cesure et d espace du texte
nbchars compteChar (const TabChaine texte ) ;

// Compte le nombre de chars Total du Texte
int compteCharTotal ( const TabChaine texte ) ;

// Compte la longueur logique d un tableau de chaine de caracteres
// Le tableau se termine logiquement lorque l on rencontre la chaine
// "EOT" pour End Of Table
int longueur (const TabChaine tab ) ;

// Renvoie le nombre de mots du texte et liste tous les mots
// du texte
int analyseur (const TabChaine texte ) ;

//---------------------------------------------//
// Programme principal                         //
//---------------------------------------------//
int main()
{
      // Tableau contenant le texte a analyser
      TabChaine  texte = { "\t Le jeune Takezo et son ami d'enfance, Matachi, \n",
      "rechappent d'une miraculeuse \n","et terrible catastrophe.\n","EOT" };
      // Tableau contenant la liste des mots tabous
      // a ne pas prendre en compte lors de l analyse du texte
      TabChaine tabou = {"Le","qui","plu","tard","EOT"} ;

      // resultat des differents comptages
      nbchars res ;
      // Compteur des mots du texte
      int nbmots ;

      afficherTexte (texte) ;
      res = compteChar (texte) ;

      afficherNL (uneChaine("")) ;
      afficher (uneChaine("Nb caracteres utiles .... : "));
      afficherNL (res.nbutil);
      afficher (uneChaine("Nb caracteres ponctuation .... : "));
      afficherNL (res.nbponct);
      afficher (uneChaine("Nb caracteres echappement .... : "));
      afficherNL (res.nbechap);
      afficher (uneChaine("Nb caracteres cesure .... : "));
      afficherNL (res.nbcesure);
      afficher (uneChaine("Nb caracteres espacement .... : "));
      afficherNL (res.nbespace);
      afficher (uneChaine("Nb caracteres total .... : "));
      afficherNL (compteCharTotal(texte)) ;
      afficher (uneChaine("longueur liste tabou .... : "));
      afficherNL(longueur(tabou));
      afficher (uneChaine("Liste des mots du texte : "));
      nbmots = analyseur (texte) ;
      afficher (uneChaine("Nb de mots du texte : "));
      afficherNL (nbmots);

      saisir () ;
}

//-------------------------------------------//
// CORPS DES SOUS PROGRAMMES                 //
//-------------------------------------------//
void afficherTexte (const TabChaine texte )
{
     for ( int j = 0 ; inf(texte[j],uneChaine("EOT")) ; j++ )
     {
         for (int i = 0 ; i < longueur (texte[i]) ; i++ )
         {
             if (egal(texte[i],uneChaine("EOT")))
             {   afficherNL (uneChaine (" ")) ; }
             else
             {   afficher (texte[i]) ;  }
         }

     }
}

int compteCharTotal ( const TabChaine texte ) 
{
     int CharTotal = 0 ;
     for (int c = 0 ; diff(texte[c],uneChaine("EOT")) ; c++ )
      { CharTotal = longueur (texte[c]) + CharTotal ; }

    return (CharTotal) ;

}

nbchars compteChar (const TabChaine texte ) 
{
        nbchars ici  ;
        for ( int j = 0 ; inf(texte[j],uneChaine("EOT")) ; j++ )
        {
            for (int i = 0 ; i < longueur (texte[i]) ; i++ )
            {
                
            }

         };
         return (ici) ;
}

int longueur (const TabChaine tab )
{
     int longs = 0 ;
     for ( int j = 0 ; supEgal(tab[j],uneChaine("EOT")) ; j++ )
     {
         longs = longueur(tab[j]) + longs ;

     };
     return (longs) ;
}

int analyseur (const TabChaine texte )
{
    // dans un mot
    const int DEDANS = 1 ;
    // a l exterieur d un mot
    const int DEHORS = 0 ;

    int nbmots = 0 ;
    int etat = DEHORS ;

    // a suivre ......

    return (nbmots) ;
}

Conclusion :


Il faut completer les deux corps des fonctions compteChar et analyseur .

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
jeudi 23 janvier 2003
Statut
Membre
Dernière intervention
23 janvier 2003

comme a dit "skone007" il manque t'es header
Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
2
Ce serait plus élégant de faire une allocation dynamique pour tes 2 tableau.
Evite d'écrire tout en majuscules :)
Messages postés
20
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
1 mars 2006

C UN MINI ANALYSEUR DE TEXTE CONTENU DANS UN TABLEAU
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
11
explike a koi sert ta source, donnes en une description...
Messages postés
20
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
1 mars 2006

pERSONNE NE TROUVE ALORS C BIEN DOMMAGE
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.