Rechercher : dans
Par :

Conjugaison c++

Dernière réponse le 13 avr 2008 à 17:13:44 September, le 30 oct 2007 à 09:42:25 
 Signaler ce message aux modérateurs

Bonjour à tous

voilà j'ai fait un programme qui conjuge les verbes du 1er groupe juste au présent.
il marche et tous mais je suis sur "using namespace en std" et il faut que je le mets en "using namespace System" et en uilisant les méthodes "Compare" et "Substring" de la classe String.

voilà mon programme en std

#include "stdafx.h"
#include<iostream>
#include <iomanip>

using namespace std;

int main()
{
char *sujet[6]={"je","tu","il","nous","vous","ils"};
char *sujet1[6]={"j'","tu","il","nous","vous","ils"};
char *terminaissons[6]={"e","es","e","ons","ez","ent"};
char *terminaissons1[6]={"e","es","e","eons","ez","ent"}; // cas pour les verbes en ger
char verbe[32];
int i;
int l;

cout<<"Saisir un verbe du 1er groupe :"<<endl;
cin>>verbe;

while(((verbe[l-2] !='e') || (verbe[l-1] !='r') || (strcmp(verbe,"aller")==0)))
{
// Contrôle s'il s'agit d'un verbe en 'er'
l=strlen(verbe);
if(((verbe[l-2] !='e') || (verbe[l-1] !='r') || (strcmp(verbe,"aller")==0)))
{
cout<<"Saisir un verbe du 1er groupe s'il vous plait :"<<endl;
cin>>verbe;
}
else
{
// Les verbes en voyelles
if((verbe[0]=='a') || (verbe[0]=='e') || (verbe[0]=='i') || (verbe[0]=='o') || (verbe[0]=='u'))
{
// Couper la terminason 'er'
verbe[l-2]='\0';
cout<<"La conjugaison est au present"<<endl<<endl;
if((verbe[l-3]=='g')) //Les verbes en ger
{
for(int i=0;i<6;i++)
{
cout<<sujet1[i]<<ends<<verbe<<terminaissons1[i]<<endl;
}
}
else
{
for(int i=0;i<6;i++)
{
cout<<sujet1[i]<<ends<<verbe<<terminaissons[i]<<endl;
}
}
return 0;
}
else
{
// Couper la terminason 'er'
verbe[l-2]='\0';
cout<<"La conjugaison est au present"<<endl<<endl;
if((verbe[l-3]=='g')) //Les verbes en ger
{
for(int i=0;i<6;i++)
{
cout<<sujet[i]<<ends<<verbe<<terminaissons1[i]<<endl;
}
}
else
{
for(int i=0;i<6;i++)
{
cout<<sujet[i]<<ends<<verbe<<terminaissons[i]<<endl;
}
}
return 0;
}
}
}
}

et j'ai essayé en System mais j'ai des erreurs et ça marche pas et j'ai pas compris comment utiliser le substring

#include "stdafx.h"
#include <iostream>
#include <string>
#using<mscorlib.dll>

using namespace System;

int main(array<System::String ^> ^args)
{
char sujet[6]={"je","tu","il","nous","vous","ils"};
char sujet1[6]={"j'","tu","il","nous","vous","ils"};
char terminaissons[6]={"e","es","e","ons","ez","ent"};
char terminaissons1[6]={"e","es","e","eons","ez","ent"}; // cas pour les verbes en ger
char verbe;
int i;
int l;

Console::WriteLine("Saisir un verbe du 1er groupe :\n");
verbe=Console::Read();
while((((verbe=Console::Read())[l-2] !='e') || ((verbe=Console::Read())[l-1] !='r') || (SubString(verbe,"aller")==0)))
{
// Contrôle s'il s'agit d'un verbe en 'er'
l=compare(verbe);
if((((verbe=Console::Read())[l-2] !='e') || ((verbe=Console::Read())[l-1] !='r') || (SubString(verbe,"aller")==0)))
{
Console::WriteLine("Saisir un verbe du 1er groupe s'il vous plait :\n");
Console::ReadLine();
}
else
{
// Les verbes en voyelles
if((verbe[0]=='a') || (verbe[0]=='e') || (verbe[0]=='i') || (verbe[0]=='o') || (verbe[0]=='u'))
{
// Couper la terminason 'er'
verbe[l-2]='\0';
Console::WriteLine("La conjugaison est au present \n \n");
if((verbe[l-3]=='g')) //Les verbes en ger
{
for(int i=0;i<6;i++)
{
Console::WriteLine(sujet1[i],"_",verbe,terminaissons1[i],"\n");
}
}
else
{
for(int i=0;i<6;i++)
{
Console::WriteLine(sujet1[i],"_",verbe,terminaissons[i],"\n");
}
}
return 0;
}
else
{
// Couper la terminason 'er'
verbe[l-2]='\0';
Console::WriteLine("La conjugaison est au present \n \n");
if((verbe[l-3]=='g')) //Les verbes en ger
{
for(int i=0;i<6;i++)
{
Console::WriteLine(sujet[i],"_",verbe,terminaissons1[i],"\n");
}
}
else
{
for(int i=0;i<6;i++)
{
Console::WriteLine(sujet[i],"_",verbe,terminaissons[i],"\n");
}
}
return 0;
}
}
}
}

voilà si quelqu'un peut me donne un petit coup de main pour que j'arrive à comprendre mes erreurs et j’ai pas compris comment on utilise le substring
merci d'avance à ceux qui m'aider

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « Conjugaison c++ » dans :
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
3D Secure / Verified by Visa / SecureCode: Qu'est-ce que c'est ? VoirDepuis octobre 2008, les banques et commerçants en ligne ont commencé à adopter le système 3DSecure pour les paiements sur Internet. Qu'est-ce que c'est ? 3DSecure est appelé "Verified by Visa" chez Visa, et "SecureCode" chez Mastercard. (Les logos...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Télécharger Conjugaison VoirCe petit logiciel totalement gratuit peut s'avérer très pratique lors de la saisie d'un texte sur un logiciel de traitement de texte. Si vous avez un doute sur la conjugaison d'un verbe, ce logiciel vous permettra de le conjuguer dans 8 temps : ...
Télécharger Visual C++ Express VoirVisual C++ Express est une version "gratuite" et allégée de Visual Studio ; l'utilisation requiert l'inscription sur le site de Microsoft. Cet environnement de développement permet de créer des application Win32 ou du .NET C.
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...

1

mamiemando, le 30 oct 2007 à 10:01:01

Bon très sincèrement le programme avec std me plaît beaucoup plus car il a une chance modulo quelques modifications de pouvoir compiler sous linux, donc rien que pour ça il est mieux. Maintenant tu t'es vraiment cassé la tête avec les char *. Utilise des std::string ce sera beaucoup plus simple. Accessoirement quand tu appelles sujet[i] avec i allant de 0 à 5 le programme fait n'importe quoi si le sujet fait moins de 5 caractères.

Pense aussi à donner des vrais noms de variables, et évite les headers non standard (stdafx.h par exemple)

D'un point de vue esthétique il serait plus logique de faire une fonction qui teste si le verbe commence par une voyelle :

inline bool commence_par_voyelle(const std::string & str){
  return str[0] == 'a' || str[0] == 'e' || str[0] == 'i' 
      || str[0] == 'o' || str[0] == 'u' || str[0] == 'y';
}

et d'appeler en conséquence le bon sujet. Idem avec les verbes en g

std::cout << (commence_par_voyelle(verbe) ? sujet_voyelle[i] : sujet_consonne[i]) << '\t' 
    << radical << (verbe_en_g(verbe) ? terminaison_g[i] : terminaison_sans_g[i]) << std::endl;


Bonne chance

Répondre à mamiemando

2

September, le 30 oct 2007 à 10:19:55

Ok Merci mamiemando pour que j'améliore mon programme en standard mais il marche c'est le plus important ^^, j'ai pas trop envi de le chaner tanr qu'il marche c'est le plus important pour moi ^^

mais merci pour que j'améliore

mon problème est de passer de standard à System, c'est un peu dur mais j'essaye

Merci mamiemando pour l'aide

Répondre à September

3

mamiemando, le 30 oct 2007 à 20:01:15

C'est surtout sans intérêt à mon humble avis, à part pour la beauté l'exercice. De manière générale il vaut mieux avoir un code portable.

Bonne continuation

Répondre à mamiemando

4

 penguin, le 2 nov 2007 à 19:10:13

A part si c'est un exercice genre TP de bts, mais l'espace de nom System, c'est anti-portabilite, anti autre chose que microsoft ;)

Répondre à penguin
Collection CommentÇaMarche.net