RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Programme en C migrant sous Borland C++

Forum : IDE C++ - BORLAND C++
Sous Catégorie : Borland C++
Type du sujet : Sujet Normale
FAQ : FAQ IDE C++ - BORLAND C++

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM IDE C++ - BORLAND C++

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
tomato
Nouveau membre
Inscrit : 27/04/2004
Messages : 3
Message
#4905
Posté le 12/05/04 à 13:36
Bonjour,
J'ai un programme écrit en langace C que je dois faire tourner sur Borland C ++.
Est-ce qu'il serait possible que quelqu'un m'indique quels sont les points à modifier dans ce programme pour passer en Borland C++ ?
Par avance, merci beaucoup.

Voici le programme (avec des commentaires pour moi) :
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/**************** Définition d'une structure ******************/
typedef struct compteMot
{
char*mot;
int nbOcc;
}CompteMot;

/******************** Les constantes ************************/
enum {MAXLONGUEUR=200};

/* Le tableau où seront rangées les structures de type CompteMot*/
CompteMot*tableau;

/* Le nombre de mots*/
int nbMots=0;

/* La taille du tableau contenant les mots */
int tailleTableau=50;

char chercherIndice(char*,int*);
char placer(char*,int);

/******************** La fonction principale *******************
Le programme :
- Ouvre en lecture un fichier contenant un texte, fichier dont le nom
est indiqué sur la ligne de commande. Dans le cas où l'utilisateur omet
de donner un nom de fichier d'entrée sur la ligne de commande, le programme
demande à l'utilisateur d'indiquer le texte directement par le clavier.
- Trie les mots et compte le nombre d'occurence de chaque mot
- Indique la liste triée des mots, un mot par ligne, avec pour chaque mot,
son nombre d'occurences. Si l'utilisateur a donné sur la ligne de commande
deux noms de fichiers, le premier pour le fichier d'entrée
contenant le texte, le second pour un fichier de sortie, cette liste est
sauvée sur le fichier de sortie. Sinon, la liste est indiquée à l'écran. */

int main(int argc,char**argv)
{
char ligne[MAXLONGUEUR],*s,*mot;
int indice,nbremots,motpresent;
FILE fichier;
int i;
char motsentree[26][50];
nbremots=0;
printf(“Entrez vos mots, terminer par un simple return quand termine:\n”);
do
{gets(motsentree[nbremots]);
nbremots++:
}
while (strlen(motsentree[nbremots-1])!=0);
if(argc>1)fichier=fopen(argv[1],"r");
else
{
fichier=stdin;
printf("Indiquez votre texte\n");
}
tableau=(CompteMot*)malloc(tailleTableau*sizeof(CompteMot));
if(tableau==NULL)
{
printf("problème d'allocation\n");
exit(1);
}
while((fgets(ligne,MAXLONGUEUR,fichier)!=NULL)&&(strlen(ligne)>1))
{
s=ligne;
while((mot=strtok(s,"[]{}\\\n{}()*/\"#.;:,\t'?!-<>&%+="))!=NULL)
{
motpresent=0;
for(i=0;i<nbremots-1;i++)
{if(strcmp(motsentree[i],mot)==0)
motpresent=1;
}
if(motpresent==1)
{
if(!chercherIndice(mot,&indice))placer(mot,indice);
else tableau[indice]nbOcc++;
}
s=NULL;
}
}
fclose(fichier);
printf("\n");
for(i=0;i<nbMots;i++)
printf("%s:%d fois\n",tableau[i].mot,tableau[i].nbOcc);
return 0;
}


/****************** La fonction chercherIndice *****************/
/*Si le mot ne figure pas :
- la fonction indique, avec la variable adrIndice, l'indice ou
il convient que le mot se trouve
- la fonction retourne 0
Si la donnee figure :
- la fonction indique, avec la variable adrIndice, l'indice ou
le mot figure
- la fonction retourne 1*/

char chercherIndice(char*mot,int*adrIndice)
{
int gauche=0,droite=nbMots-1;
int milieu;
int compare;

while(gauche<=droite)
{
milieu=(gauche+droite)/2;
compare=strcmp(mot,tableau[milieu].mot);
if(compare<0)droite=milieu-1;
else if(compare>0)gauche=milieu+1;
else
{
*adrIndice=milieu;
return 1;
}
}
*adrIndice=gauche;
return 0;
}

/****************** La fonction placer ******************/
/*Decale vers la gauche les mots qui se trouvent
a des indices aux moins egaux a "indice" et met le mot "mot"
a l'indice "indice" dans le tableau.
ATTENTION : il faut allouer de la mémoire pour y mettre le nouveau
mot par une copie */

char placer(char*mot,int indice)
{
int i;
char*leMot;

leMot=(char*)malloc((strlen(mot)+1)*sizeof(char));
if(leMot==NULL)
{
printf("problème d'allocation\n");
exit(1);
}
strcpy(leMot,mot);
if(nbMots==tailleTableau)
{
printf("Le tableau est plein, nous reallouons\n");
tailleTableau+=50;
tableau=(CompteMot*)realloc(tableau,
tailleTableau*sizeof(CompteMot));
if(tableau==NULL)
{
printf("problème d'allocation\n");
exit(1);
}
}
for(i=nbMots;i>indice;i--)tableau[i]=tableau[i-1];
tableau[indice].mot=leMot;
tableau[indice].nbOcc=1;
nbMots++;
return 1;
}

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6571
Message
#22219
Posté le 25/07/04 à 12:52
Salut, à première vue, il n'y a pas vraiment de choses qui soit bloquante, le C++ acceptant tout code en C.

Tu peux faire un essai et puis nous retourner les erreurs du compilo pour mieux apprécier si c'est faisable ou non sans modification.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu]Image.

Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE


    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.