Chaine de caractére : problème
Résolu/Fermé
A voir également:
- Chaine de caractére : problème
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
7 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
26 févr. 2006 à 14:34
26 févr. 2006 à 14:34
Salut,
je ne suis pas vraiment content de ce que j'ai fait mais ça marche, donc si tu veux ce n'est pas très propre (j'ai fait quelques copier coller et j'ai ajouter 2 tableaux et 2 condition if - en gros le code a été multiplié par 2) en plus je n'ai pas assez de temps.
En plus (je ne suis pas francophone) je ne sais pas si existe un verbe qui commence avec une voyelle et se fini avec ger. Donc on peux enlever la condition pour ger dans la 1ère partie où on teste les voyelles.
Tu peux tester.
Il faut aussi traiter le cas des verbes comme envoyer.
En fait si tu relis le code tu peux le arranger mieux que je l'ai fait. Compile et teste
je ne suis pas vraiment content de ce que j'ai fait mais ça marche, donc si tu veux ce n'est pas très propre (j'ai fait quelques copier coller et j'ai ajouter 2 tableaux et 2 condition if - en gros le code a été multiplié par 2) en plus je n'ai pas assez de temps.
En plus (je ne suis pas francophone) je ne sais pas si existe un verbe qui commence avec une voyelle et se fini avec ger. Donc on peux enlever la condition pour ger dans la 1ère partie où on teste les voyelles.
Tu peux tester.
Il faut aussi traiter le cas des verbes comme envoyer.
[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; } } }
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
26 févr. 2006 à 14:49
26 févr. 2006 à 14:49
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; } } }
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
26 févr. 2006 à 15:11
26 févr. 2006 à 15:11
*en cas du verbe "aller" on dit que ce n'est pas un verbe du 1er groupe
Bon le verbe aller c'est un verbe de 3ème groupe. En ce cas il faut poser une condition qui va exclure la conjugaison du verbe aller en tant que verbe de la 1ère groupe.
Au lieu de
Bon le verbe aller c'est un verbe de 3ème groupe. En ce cas il faut poser une condition qui va exclure la conjugaison du verbe aller en tant que verbe de la 1ère groupe.
Au lieu de
if ((verb[l-2] != 'e') || (verb[l-1] != 'r'))écrit
if ((verb[l-2] != 'e') || (verb[l-1] != 'r') || (strcmp(verb,"aller") == 0))
merci , merci............beaucoup tu m'as sauvé la vie.
sa sera sympa de ta part si vous pouvez me trouver ou est le probléme dans ce programme
il ne contient aucune erreur , mais je n'arrive pas a l'executer
le but ent de chercher les point-cols dans une matrice
merci d'avance
...............je serai reconnaissante.............................
sa sera sympa de ta part si vous pouvez me trouver ou est le probléme dans ce programme
il ne contient aucune erreur , mais je n'arrive pas a l'executer
le but ent de chercher les point-cols dans une matrice
merci d'avance
#include <stdio.h> main() { int A[50][50]; int MAX[50][50]; int MIN[50][50]; int N, M; int I, J; int AIDE; int C; printf("Nombre de lignes (max.50) : "); scanf("%d", &N ); printf("Nombre de colonnes (max.50) : "); scanf("%d", &M ); for (I=0; I<N; I++) for (J=0; J<M; J++) { printf("Elément[%d][%d] : ",I,J); scanf("%d", &A[I][J]); } printf("Matrice donnée :\n"); for (I=0; I<N; I++) { for (J=0; J<M; J++) printf("%7d", A[I][J]); printf("\n"); } for (I=0; I<N; I++) { AIDE=A[I][0]; for (J=1; J<M; J++) if (A[I][J]>AIDE) AIDE=A[I][J]; for (J=0; J<M; J++) if (A[I][J]==AIDE) MAX[I][J]=1; else MAX[I][J]=0; } for (J=0; J<M; J++) { AIDE=A[0][J]; for (I=1; I<N; I++) if (A[I][J]<AIDE) AIDE=A[I][J]; for (I=0; I<N; I++) if (A[I][J]==AIDE) MIN[I][J]=1; else MIN[I][J]=0; } printf("Points - cols :\n"); for (C=0, I=0; I<N; I++) for (J=0; J<M; J++) if (MAX[I][J]&&MIN[I][J]) { C++; printf("L'élément %d\test un maximum " "sur la ligne %d\n" " \t et un minimum " "sur la colonne %d\n", A[I][J], I, J); } if (C==0) printf("Le tableau ne contient pas de points-cols.\n"); return 0; }
...............je serai reconnaissante.............................
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
éma
26 févr. 2006 à 17:25
26 févr. 2006 à 17:25
Re,
sa sera sympa de ta part si vous pouvez
Ca ne me dérange pas si tu me tutoies, donc décide toi.
Compilé avec
J'exécute ton programme et j'ai ça. Donc dit ce que tu veux obtenir ou si ce que j'obtiens c'est bon
sa sera sympa de ta part si vous pouvez
Ca ne me dérange pas si tu me tutoies, donc décide toi.
Compilé avec
[lamitest@localhost ~]$ gcc --version gcc (GCC) 4.0.2 20051125 (Red Hat 4.0.2-8) Copyright © 2005 Free Software Foundation, Inc. Ce logiciel est libre; voir les sources pour les conditions de copie. Il n'y a PAS GARANTIE; ni implicite pour le MARCHANDAGE ou pour un BUT PARTICULIER. [lamitest@localhost ~]$
J'exécute ton programme et j'ai ça. Donc dit ce que tu veux obtenir ou si ce que j'obtiens c'est bon
[lamitest@localhost ~]$ ./ema_matrice Nombre de lignes (max.50) : 2 Nombre de colonnes (max.50) : 2 Elément[0][0] : 4 Elément[0][1] : 2 Elément[1][0] : 50 Elément[1][1] : 25 Matrice donnée : 4 2 50 25 Points - cols : L'élément 4 est un maximum sur la ligne 0 et un minimum sur la colonne 0 [lamitest@localhost ~]$
éma
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
26 févr. 2006 à 18:52
26 févr. 2006 à 18:52
merci beaucoup pour vous et pardonnez moi
je pense que le probléme est dans mon ordinateur.
merci............merci........merci
pardent encore une fois
je pense que le probléme est dans mon ordinateur.
merci............merci........merci
pardent encore une fois
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
éma
26 févr. 2006 à 19:34
26 févr. 2006 à 19:34
De rien,
Bonne continuation,
lami20j
Bonne continuation,
lami20j
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
26 févr. 2006 à 20:03
26 févr. 2006 à 20:03
Re,
Pour amusement j'ai traduit ton code en Perl.
Si tu as l'occasion de le tester tu peux le faire. Le cas de verbe envoyer n'est pas vérifier.
Je n'ai pas tester tous le verbes non plus, un francophone connais mieux que moi la conjugaison des verbes.
Pour l'exécuter (sous Linux)
Pour amusement j'ai traduit ton code en Perl.
Si tu as l'occasion de le tester tu peux le faire. Le cas de verbe envoyer n'est pas vérifier.
Je n'ai pas tester tous le verbes non plus, un francophone connais mieux que moi la conjugaison des verbes.
Pour l'exécuter (sous Linux)
[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" }
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
simon
26 févr. 2006 à 21:44
26 févr. 2006 à 21:44
Salut,
que vous avez oublier c'est le cas ou le verbe commence avec une voyelle et se termine avec un ger
Voir message N°2
Donc la version sans tester la terminaison ger quand les verbes commence avec une voyelle.
lami20j
que vous avez oublier c'est le cas ou le verbe commence avec une voyelle et se termine avec un ger
Voir message N°2
Donc la version sans tester la terminaison ger quand les verbes commence avec une voyelle.
lami20j
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
simon
26 févr. 2006 à 21:58
26 févr. 2006 à 21:58
Pas émigrer. Ger pas grer
Ce résultat est correct?
Ce résultat est correct?
[lamitest@localhost my_perl_script]$ perl conjugaison2.pl Entrez un verbe du 1ere groupe : emmenager Conjugaison des verbes du 1ere groupe au Present,Imparfait et Future simple ------Present------ j' emmenage tu emmenages il(elle) emmenage nous emmenageons vous emmenagez ils(elles) emmenagent ------Imparfait------ j' emmenageais tu emmenageais il(elle) emmenageait nous emmenagions vous emmenagiez ils(elles) emmenageaient ------Future simple------ j' emmenagerai tu emmenageras il(elle) emmenagera nous emmenagerons vous emmenagerez ils(elles) emmenageront [lamitest@localhost my_perl_script]$
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
26 févr. 2006 à 21:50
26 févr. 2006 à 21:50
Dans le message N°8 il y a une petite erreur
Au debut j'ai utilisé comme clés dans hachage
aje
btu
cil
dnous
evous
fils
Donc cet if fonctionne :
Pour les clés de hachage
aje
btu
'cil(elle)'
dnous
evous
'fils(elles)'
J'ai changé if
Au debut j'ai utilisé comme clés dans hachage
aje
btu
cil
dnous
evous
fils
Donc cet if fonctionne :
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)')
pépereF
Messages postés
36
Date d'inscription
dimanche 11 décembre 2005
Statut
Membre
Dernière intervention
25 janvier 2008
2
18 mars 2007 à 16:57
18 mars 2007 à 16:57
bonjour,
qu'entend on par tri de caractére pour un programme en c
qu'entend on par tri de caractére pour un programme en c