|
|
|
|
Salut mon ami
je suis qu'un debutante et c'est tres tres urgent STP STP aide moi j'ai beaucoup essayé mais maintenant je n'ai plus de temps. STP STP STP fait le pour moi
il s'ait des chaine de caractére (on n'a pas le droit d'utiliser les pointeurs)
conjugaison d'un verbe du premier groupe au present,futur,imparfait.
mon probleme c'est que j'ai pas sue integrer les cas speciaux qui sont:
*lorsque le verbe commence avec une voyelle on le je devient j'
*lorsque le verbe se termne avec un "ger" ,on ajoute le "e"
*en cas du verbe "aller" on dit que ce n'est pas un verbe du 1er groupe
voici le programme que j'ai fait, il marche mais il ne contient pas les cas:
Salut,
[lamitest@localhost corbeille]$ ./conjugaison verb : envoyer la conjugaison du verbe au present est: j' envoye tu envoyes il envoye nous envoyons vous envoyez ils envoyent la conjugaison du verbe au futur est: j' envoyerai tu envoyeras il envoyera nous envoyerons vous envoyerez ils envoyeront la conjugaison du verbe a l'imparfait est: j' envoyais tu envoyais il envoyait nous envoyions vous envoyiez ils envoyaient [lamitest@localhost corbeille]$ En fait si tu relis le code tu peux le arranger mieux que je l'ai fait. Compile et teste
#include <stdio.h>
#include <string.h>
main()
{
/* Déclarations */
/* Sujets et terminaisons */
char suj1[6][5] = {"je","tu","il","nous","vous","ils"};
char suj2[6][5] = {"j'","tu","il","nous","vous","ils"};
char term1[6][5] = {"e","es","e","ons","ez","ent"};
char term2[6][7] = {"erai","eras","era","erons","erez","eront"};
char term3[6][7] = {"ais","ais","ait","ions","iez","aient"};
char term4[6][7] = {"e","es","e","eons","ez","ent"}; /*cas nous mangeons*/
char term5[6][7] = {"eais","eais","eait","ions","iez","eaient"};/* imparfait */
char verb[20]; /* chaîne contenant le verbe */
int l; /* longueur de la chaîne */
int i; /* indice courant */
/* Saisie des données */
printf("verb : ");
scanf("%s", verb);
/* Contrôler s'il s'agit d'un verbe en 'er' */
l=strlen(verb);
if ((verb[l-2] != 'e') || (verb[l-1] != 'r'))
printf("\"%s\" n'est pas un verbe du premier groupe.\n",verb);
else
{
if((verb[0] == 'a') || (verb[0] == 'e') || (verb[0] == 'i') ||
(verb[0] == '0') || (verb[0] == 'u') )
/* les verbes en voyelles sans les accents*/
{
/* Couper la terminaison 'er'. */
verb[l-2]='\0';
/* Conjuguer ... */
printf("la conjugaison du verbe au present est:\n");
if ((verb[l-3] == 'g')){/* les verbes en ger */
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term4[i]);
}
}
else
{
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term1[i]);
}
}
verb[l-2]='\0';
printf("la conjugaison du verbe au futur est:\n");
for(i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term2[i]);
}
verb[l-2]='\0';
printf("la conjugaison du verbe a l'imparfait est:\n");
if(verb[l-3] == 'g'){
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term5[i]);
}
}
else
{
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term3[i]);
}
}
return 0;
}
else
{
/* Couper la terminaison 'er'. */
verb[l-2]='\0';
/* Conjuguer ... */
printf("la conjugaison du verbe au present est:\n");
if ((verb[l-3] == 'g')){
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term4[i]);
}
}
else
{
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term1[i]);
}
}
verb[l-2]='\0';
printf("la conjugaison du verbe au futur est:\n");
for(i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term2[i]);
}
verb[l-2]='\0';
printf("la conjugaison du verbe a l'imparfait est:\n");
if(verb[l-3] == 'g'){
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term5[i]);
}
}
else
{
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term3[i]);
}
}
return 0;
}
}
}
|
Donc la version sans tester la terminaison ger quand les verbes commence avec une voyelle. Toujours sans tester les verbes de genre envoyer
#include <stdio.h>
#include <string.h>
main()
{
/* Déclarations */
/* Sujets et terminaisons */
char suj1[6][5] = {"je","tu","il","nous","vous","ils"};
char suj2[6][5] = {"j'","tu","il","nous","vous","ils"};
char term1[6][5] = {"e","es","e","ons","ez","ent"};
char term2[6][7] = {"erai","eras","era","erons","erez","eront"};
char term3[6][7] = {"ais","ais","ait","ions","iez","aient"};
char term4[6][7] = {"e","es","e","eons","ez","ent"}; /*cas nous mangeons*/
char term5[6][7] = {"eais","eais","eait","ions","iez","eaient"};/* imparfait */
char verb[20]; /* chaîne contenant le verbe */
int l; /* longueur de la chaîne */
int i; /* indice courant */
/* Saisie des données */
printf("verb : ");
scanf("%s", verb);
/* Contrôler s'il s'agit d'un verbe en 'er' */
l=strlen(verb);
if ((verb[l-2] != 'e') || (verb[l-1] != 'r'))
printf("\"%s\" n'est pas un verbe du premier groupe.\n",verb);
else
{
if((verb[0] == 'a') || (verb[0] == 'e') || (verb[0] == 'i') ||
(verb[0] == '0') || (verb[0] == 'u') ) /* les verbes en voyelles sans les accents*/
{
/* Couper la terminaison 'er'. */
verb[l-2]='\0';
/* Conjuguer ... */
printf("la conjugaison du verbe au present est:\n");
{
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term1[i]);
}
}
verb[l-2]='\0';
printf("la conjugaison du verbe au futur est:\n");
for(i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term2[i]);
}
verb[l-2]='\0';
printf("la conjugaison du verbe a l'imparfait est:\n");
if(verb[l-3] == 'g'){
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term5[i]);
}
}
else
{
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term3[i]);
}
}
return 0;
}
else
{
/* Couper la terminaison 'er'. */
verb[l-2]='\0';
/* Conjuguer ... */
printf("la conjugaison du verbe au present est:\n");
if ((verb[l-3] == 'g')){
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term4[i]);
}
}
else
{
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term1[i]);
}
}
verb[l-2]='\0';
printf("la conjugaison du verbe au futur est:\n");
for(i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term2[i]);
}
verb[l-2]='\0';
printf("la conjugaison du verbe a l'imparfait est:\n");
if(verb[l-3] == 'g'){
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term5[i]);
}
}
else
{
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term3[i]);
}
}
return 0;
}
}
}
|
*en cas du verbe "aller" on dit que ce n'est pas un verbe du 1er groupe
if ((verb[l-2] != 'e') || (verb[l-1] != 'r'))écrit if ((verb[l-2] != 'e') || (verb[l-1] != 'r') || (strcmp(verb,"aller") == 0))
|
Re,
[lamitest@localhost corbeille]$ perl conjugaison2.pl Entrez un verbe du 1ere groupe : partir Le verbe PARTIR n'est pas un verbe du 1ere groupe. [lamitest@localhost corbeille]$ perl conjugaison2.pl Entrez un verbe du 1ere groupe : aimer Conjugaison des verbes du 1ere groupe au Present,Imparfait et Future simple ------Present------ j' aime tu aimes il(elle) aime nous aimons vous aimez ils(elles) aiment ------Imparfait------ j' aimais tu aimais il(elle) aimait nous aimions vous aimiez ils(elles) aimaient ------Future simple------ j' aimerai tu aimeras il(elle) aimera nous aimerons vous aimerez ils(elles) aimeront [lamitest@localhost corbeille]$Le script
#! /usr/bin/perl -w
use warnings;
use strict;
$" = "\n";
my (@present,@imparfait,@future);
my %baratiner = (
aje => ['e','ais','ai'],
btu => ['es','ais','as'],
'cil(elle)' => ['e','ait','a'],
dnous => ['ons','ions','ons'],
evous => ['ez','iez','ez'],
'fils(elles)' => ['ent','aient','ont'],
);
print "Entrez un verbe du 1ere groupe : ";
chomp(my $verb = <STDIN>);
if ($verb !~ /er$/ or $verb eq 'aller'){
print "Le verbe \U$verb\E n'est pas un verbe du 1ere groupe.\n";
}
else {
foreach (sort keys %baratiner) {
my $base = substr($_,1);
push @future, ($base." ".$verb.$baratiner{$_}[2]);
if ($verb =~ /(.*g)er$/) {
if($base eq 'je' or $base eq 'tu' or $base eq 'il' or $base eq 'ils') {# imparfait
push @imparfait,($base." ".$1.'e'.$baratiner{$_}[1]);
}
else {
push @imparfait,($base." ".$1.$baratiner{$_}[1]);
}
if ($base eq 'nous') { $baratiner{$_}[0] = 'eons' }# present
push @present,($base." ".$1.$baratiner{$_}[0]);
}
elsif ($verb =~ /(.*)yer$/) {
push @imparfait,($base." ".$1.'y'.$baratiner{$_}[1]);# imparfait
if ($base eq 'vous' or $base eq 'nous') {# present
push @present,($base." ".$1.'y'.$baratiner{$_}[0]);
}
else {
push @present,($base." ".$1.'i'.$baratiner{$_}[0]);
}
}
elsif ( $verb =~ /(.*)er$/) {
push @present,($base." ".$1.$baratiner{$_}[0]);# present
push @imparfait,($base." ".$1.$baratiner{$_}[1]);# imparfait
}
}
if ($verb =~ /^[aeiou]/){ grep { s/je/j'/ } (@present,@imparfait,@future) }# j'
print "\nConjugaison des verbes du 1ere groupe au Present,Imparfait et Future simple\n";
print "\n"."-" x 6, "Present", "-" x 6,"\n\n";
print "@present\n";
print "\n"."-" x 6, "Imparfait", "-" x 6,"\n\n";
print "@imparfait\n";
print "\n"."-" x 6, "Future simple", "-" x 6,"\n\n";
print "@future\n"
}
|
Dans le message N°8 il y a une petite erreur
if($base eq 'je' or $base eq 'tu' or $base eq 'il' or $base eq 'ils') Pour les clés de hachage aje btu 'cil(elle)' dnous evous 'fils(elles)' J'ai changé if if($base eq 'je' or $base eq 'tu' or $base eq 'il(elle)' or $base eq 'ils(elles)') |