Correcteur orthographique

Correcteur orthographique - C - Programmation

Marsh Posté le 29-05-2010 à 14:21:24    

bonjour:),
alors j ai un mini projt a rendre (verificateur d hortographe)mais j ai pu faire q un simple dictionnaire est ceque quelqu un pourrais m aider merci etvoila le code du dictonnaire  
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <process.h>
#define ESC 27
 
//****************************************************************************
typedef struct definition
{
char t[256];
}definition;
typedef definition *defi ;
typedef struct arbre
{
char car;
arbre *frere;
arbre *fils;
defi def;
}arbre;
typedef arbre *ptr ;
char i='1';
ptr r=NULL,l=NULL,p=NULL;
//***********************les prototyes****************************************
void menu();
void creer();
void inserer_mot();
void inserer_caractere(char *);
void afficher();
//*****************************************************************************
void creer()
{
ptr n=r;
defi d;
clrscr();
p=(ptr)malloc(sizeof(arbre));
d=(defi)malloc(sizeof(definition));
gotoxy(10,12);printf("entrez une definition pour votre arbre :" );
scanf("%s",d->t);
p->car=i;
p->frere=NULL;
p->fils=NULL;
p->def=d;
if(r==NULL)
{
 r=p;
}
else
{
while(n->frere!=NULL)
      n=n->frere;
 n->frere=p;
}
n=r;
/*while(n!=NULL)
      {
      printf("%c %s",n->car,n->def->t);
      n=n->frere;
      getch();
      }*/
i++;
}
//**************************************inserer un mot********************************
void inserer_mot()
{
defi d;
int j=0;
char a[20];
l=r->fils;
clrscr();
printf("entrez le mot a inserer" );
scanf("%s",&a);
 
inserer_caractere(&a);
d=(defi)malloc(sizeof(definition));
printf("donnez la definition" );
scanf("%s",d->t);
l->def=d;
}
//***************void inserer caractére**************************************
void inserer_caractere(char c,int j)
{
int j=0;
if(l==NULL)
{
l=(ptr)malloc(sizeof(arbre));
l->fils=NULL;
l->frere=NULL;
l->def=NULL;
}
else
{
if(l->car!=c)
   {
   l=l->frere;
   j++;
   inserer_caractere(c[j]);
   }
else
   {
   l=l->fils;
   j++;
   inserer_caractere(c[j]);
   }
}
}
}
//**************************************afficher un mot******************************
void afficher()
{
/*if(l->fils!=NULL)
   {
   printf("%c",l->car);
   l=l->fils;
   afficher();
   }
else if(l->def!=NULL)
   {
   printf("%s",l->def->t);
   printf("\n" );
   }
else
   {
   printf("%c",l->car);
   l=l->frere;
   afficher();
   }*/
   printf("%c",l->car);
   l=l->fils;
   getch();
   printf("%c",l->car);
   l=l->fils;  getch();
   printf("%c",l->car);
   l=l->fils; getch();
   printf("%c",l->car);
 
}
//**************************************supprimer un arbre****************************
 
//**************************************programe principle****************************
void menu()
{
char choix;
do{
  clrscr();
  gotoxy(10,10);printf("<1> creer un arbre" );         //*******************
  gotoxy(10,12);printf("<2> supprimer un arbre" );
  gotoxy(10,14);printf("<3> GESTON D'UN ARBRE" );      //menu principal
  gotoxy(13,16);printf("<4> QUITTER" );                //*******************
  choix=getch();
  clrscr();
  switch(choix)
    {
     case'1':printf("<1> creer un arbre" );
             creer();
             getch();
             break;
   case'2':printf("<2> supprimer un arbre" );
             inserer_mot();
           getch();
             break;
     case'3':printf("<3> GESTON D'UN ARBRE" );
             l=r->fils;
             clrscr();
             afficher();
             getch();
             break;
    }
}while(choix!=ESC);
}
void main()
{
ptr p=r;
clrscr();
menu();
clrscr();
getch();
}

Reply

Marsh Posté le 29-05-2010 à 14:21:24   

Reply

Marsh Posté le 29-05-2010 à 14:33:39    

Quelle est la question, au juste ?

 


edit : découpage du sujet dans un sujet à part. Merci d'éviter "d'en mettre partout" à l'avenir (je vois déjà un autre topic que tu as déterré pour ce même sujet), et d'être plus précis dans ta demande.


Message édité par Elmoricq le 29-05-2010 à 14:37:07
Reply

Marsh Posté le 29-05-2010 à 14:36:26    

qu est ce que je dois ajouter pour realiser un verificateur d hortographe :)

Reply

Marsh Posté le 29-05-2010 à 14:42:07    

ah oui vous avez raison :(:( cparce que c est lapemiere fois ou je vais m inscrire dans un forum mnt c bon :)

Reply

Marsh Posté le 29-05-2010 à 15:44:47    

Citation :

verificateur d hortographe

Il va avoir de quoi tester, le soft...
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 29-05-2010 à 21:42:57    

mimineee a écrit :


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <process.h>
#define ESC 27
 
//****************************************************************************
typedef struct definition
{
char t[256];
}definition;
typedef definition *defi ;
typedef struct arbre
{
char car;
arbre *frere;
arbre *fils;
defi def;
}arbre;
typedef arbre *ptr ;
char i='1';
ptr r=NULL,l=NULL,p=NULL;
//***********************les prototyes****************************************
void menu();
void creer();
void inserer_mot();
void inserer_caractere(char *);
void afficher();
//*****************************************************************************
void creer()
{
ptr n=r;
defi d;
clrscr();
p=(ptr)malloc(sizeof(arbre));
d=(defi)malloc(sizeof(definition));
gotoxy(10,12);printf("entrez une definition pour votre arbre :" );
scanf("%s",d->t);
p->car=i;
p->frere=NULL;
p->fils=NULL;
p->def=d;
if(r==NULL)
{
 r=p;
}
else
{
while(n->frere!=NULL)
      n=n->frere;
 n->frere=p;
}
n=r;
/*while(n!=NULL)
      {
      printf("%c %s",n->car,n->def->t);
      n=n->frere;
      getch();
      }*/
i++;
}
//**************************************inserer un mot********************************
void inserer_mot()
{
defi d;
int j=0;
char a[20];
l=r->fils;
clrscr();
printf("entrez le mot a inserer" );
scanf("%s",&a);
 
inserer_caractere(&a);
d=(defi)malloc(sizeof(definition));
printf("donnez la definition" );
scanf("%s",d->t);
l->def=d;
}
//***************void inserer caractére**************************************
void inserer_caractere(char c,int j)
{
int j=0;
if(l==NULL)
{
l=(ptr)malloc(sizeof(arbre));
l->fils=NULL;
l->frere=NULL;
l->def=NULL;
}
else
{
if(l->car!=c)
   {
   l=l->frere;
  j++;
   inserer_caractere(c[j]);

   }
else
   {
   l=l->fils;
  j++;
   inserer_caractere(c[j]);

   }
}
}
}
//**************************************afficher un mot******************************
void afficher()
{
/*if(l->fils!=NULL)
   {
   printf("%c",l->car);
   l=l->fils;
   afficher();
   }
else if(l->def!=NULL)
   {
   printf("%s",l->def->t);
   printf("\n" );
   }
else
   {
   printf("%c",l->car);
   l=l->frere;
   afficher();
   }*/
   printf("%c",l->car);
   l=l->fils;
   getch();
   printf("%c",l->car);
   l=l->fils;  getch();
   printf("%c",l->car);
   l=l->fils; getch();
   printf("%c",l->car);
 
}
//**************************************supprimer un arbre****************************
 
//**************************************programe principle****************************
void menu()
{
char choix;
do{
  clrscr();
  gotoxy(10,10);printf("<1> creer un arbre" );         //*******************
  gotoxy(10,12);printf("<2> supprimer un arbre" );
  gotoxy(10,14);printf("<3> GESTON D'UN ARBRE" );      //menu principal
  gotoxy(13,16);printf("<4> QUITTER" );                //*******************
  choix=getch();
  clrscr();
  switch(choix)
    {
     case'1':printf("<1> creer un arbre" );
             creer();
             getch();
             break;
   case'2':printf("<2> supprimer un arbre" );
             inserer_mot();
           getch();
             break;
     case'3':printf("<3> GESTON D'UN ARBRE" );
             l=r->fils;
             clrscr();
             afficher();
             getch();
             break;
    }
}while(choix!=ESC);
}
void main()
{
ptr p=r;
clrscr();
menu();
clrscr();
getch();
}
 
ah oui vous avez raison :(:( cparce que c est lapemiere fois ou je vais m inscrire dans un forum mnt c bon :)


C'est aussi la première fois que tu fais du C ou quoi ? T'as qu'une seule variable r et p (en plus en globale) et tu lui affectes des résultats de malloc dans une fonction probablement appelée des dizaines de fois. T'as pas peur de perdre de la mémoire par-ci par là ? Par ailleurs tu mets un & dans ton scanf pour une chaine, tu répètes des instructions identiques dans un if et dans son else, tu déclares main de type void. Bon, j'arrête de lire, de toute façon il y a trop de commentaires...
 

mimineee a écrit :

qu est ce que je dois ajouter pour realiser un verificateur d hortographe :)


Ben je sais pas. Analyser ton besoin, découper ton besoin en tâches élémentaires, programmer ces tâches dans des fonctions, faire appeler ces fonctions dans un main, donner à ce main un texte à analyser, savoir déjà écrire les mots correctement pour pouvoir apprendre à un programme à le faire, ouvrir un livre de C pour connaitre les bases de ce langage, bref beaucoup de taf quoi...[:jean-guitou]


Message édité par Sve@r le 29-05-2010 à 21:47:10

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed