cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 2006
-
21 mai 2003 à 21:19
Sun-Burst
Messages postés11Date d'inscriptiondimanche 9 novembre 2003StatutMembreDernière intervention28 juillet 2007
-
17 mars 2004 à 21:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Sun-Burst
Messages postés11Date d'inscriptiondimanche 9 novembre 2003StatutMembreDernière intervention28 juillet 2007 17 mars 2004 à 21:39
Oula utilisation des goto c'est fortement déconseillé !!
Et puis tu pourré utilisé la compilation séparée (plusieurs fichiers .c avec un .h contenant tes lib :)
De plus tes grand blocs switch ne servent strictement a rien car tu retest la saisie dans les if qui suivent -_-
soit tu fais des POF (procédures ou fonctions) que tu appel dans les switch, soit tu vire les switch et tu test la saisie seulement dans les if...
Les 2 à la fois c'est pas joli joli tout ca
cs_fred23
Messages postés152Date d'inscriptionlundi 5 août 2002StatutMembreDernière intervention15 juillet 2006 17 janv. 2004 à 19:50
Bonsoir,
J'ai voulu testé ton code, mais je n'ai pas le CONIO.C déclaré dans les include.
Pourrais tu me l'envoyer par Email.? Merci.
frederic@merle.fr
A+
Fred23
cs_ToToL
Messages postés170Date d'inscriptionvendredi 25 avril 2003StatutMembreDernière intervention 9 juillet 2008 23 mai 2003 à 07:20
Ok Merci pour le conseil mais mettre des appelle de fonction a la place je trouve pa trop sa mieu car sa revint a faire des goto
HeilongJiang
Messages postés3Date d'inscriptionjeudi 8 mai 2003StatutMembreDernière intervention23 mai 2003 23 mai 2003 à 07:05
re,
le goto est pratique mais n'est principalement pas utilise pour la relecture d'un code, surtout qd tu n'en n'est pas l'auteur,
raison pour laquelle je n'ai pas lu ton code :)
>HeilongJiang: dans le code de camel il ne parle pas de goto
hmm. je crois qu'ils les a appele "ces trucs"
cs_ToToL
Messages postés170Date d'inscriptionvendredi 25 avril 2003StatutMembreDernière intervention 9 juillet 2008 22 mai 2003 à 16:15
MErci pour tout c'est commentaire mais la question est pouquoi le goto est fortement déconseiller car moi je trouve sa super pratike
cs_Baltawar
Messages postés39Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention 1 août 2003 22 mai 2003 à 14:11
Comme disait ma grand-mere, "Qui peut le plus peut le moins" ...
A+
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 22 mai 2003 à 14:06
C++ et C c'est pas la même philosophie bien entendu mais je justifie mon idée de "surcouche" par le fait que tu peux compiler un programme C avec un compilateur C++.
Ca justifie aussi pourquoi "Visual C++". Si il compile du C++, il sait compiler du C.
cs_Baltawar
Messages postés39Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention 1 août 2003 22 mai 2003 à 13:43
Kaid, le C++ n'est pas une surcouche du C, ca philosophie est bien differente. En fait, certaines personnes confondent l'environnement de dévelloppement "Borland" ou"Visual", avec le language lui-meme. C'est sur, on peut faire un soft en C avec l'environement Visual C++.
Interessente cette discution ...
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 22 mai 2003 à 13:34
Baltawar: D'accord sur ce point de vue. C++ étant une surcouche du C, certaines personnes utilisent C++ comme le C et "oublient" complétement que C++ est orienté objet.
cs_Baltawar
Messages postés39Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention 1 août 2003 22 mai 2003 à 13:29
salut Kaid,
Ok "cout, cin" sont des instruction C++, la structure de son soft, c'est du C, pas du C++.
A+
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 22 mai 2003 à 11:44
La phrase celebre du jour attribue a "Je vous ai compris":
des chercheurs on en trouve, des trouveurs on en cherche.
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 22 mai 2003 à 11:36
- Les gotos on peut s'en passer facilement dans ce cas:
int choix=0;
while(choix != 7)
{
cin>>choix;
switch(choix)
{
case 1 : function1(); break;
case 2 : function2(); break;
case 3 : function3(); break;
case 4 : function4(); break;
case ...
case 7 : break;
default : cout<<"Erreur";
}
}
Si trinitacs passe par ici il vous dirait même de remplacer le switch par un tableau de pointeurs de fonctions.
- Baltawar: C'est du C++ (cout, cin, ...) et pas du C.
- Concernant les profs, certains ont des doctorats en informatique et ce qui les intéressent c'est de faire de la recherche et je pense que pour ca il y a plus de places dans le public que dans le privé.
cs_Baltawar
Messages postés39Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention 1 août 2003 22 mai 2003 à 10:55
Salut BruNews,
"pourquoi il est prof au lieu de gagner beaucoup plus en produisant dans le privé ", la reponse est toute bete, "c'est une grosse faignasse", dans le privé il faut bosser, alors qu'en tant que prof ...
A+
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 22 mai 2003 à 10:53
Salut Baltawar,
"ton prof t'as jamais dit" pourquoi il est prof au lieu de gagner beaucoup plus en produisant dans le privé ? Faudrait lui demander, surement un oubli de sa part.
ciao...
cs_Baltawar
Messages postés39Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention 1 août 2003 22 mai 2003 à 10:38
Rectification :
if( (choix >=1) || (choix <= 20) ), c'est pas un OU ( || ) c'est un ET (&&)
> if( (choix >1) && (choix <= 20) )
cs_Baltawar
Messages postés39Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention 1 août 2003 22 mai 2003 à 10:37
Salut Totol,
Bravo pour ton 1er soft, mais c'est pas du C++, c'est du C ...
Sinon oui, tu peux l'optimisé :
switch( choix1[0] )
{
case '1' : goto le_programme_en_lui_meme;
case '2' : goto le_programme_en_lui_meme;
case '3' : goto le_programme_en_lui_meme;
case '4' : goto le_programme_en_lui_meme;
case '5' : goto le_programme_en_lui_meme;
case '6' : goto le_programme_en_lui_meme;
case '7' : goto fin;
default : goto fin0;
}
devient :
switch( choix1[0] )
{
case '1' :
case '2' :
case '3' :
case '4' :
case '5' :
case '6' : goto le_programme_en_lui_meme;
case '7' : goto fin;
default : goto fin0;
}
c'est deja mieux, mais les GOTO !!!!! ton prof t'as jamais dis "PAS DE GOTO" ??
autre chose :
switch(choix)
{
case 1 : supprimer(0); break;
case 2 : supprimer(1); break;
case 3 : supprimer(2); break;
case 4 : supprimer(3); break;
case 5 : supprimer(4); break;
case 6 : supprimer(5); break;
case 7 : supprimer(6); break;
case 8 : supprimer(7); break;
case 9 : supprimer(8); break;
case 10 : supprimer(9); break;
case 11 : supprimer(10); break;
case 12 : supprimer(11); break;
case 13 : supprimer(12); break;
case 14 : supprimer(13); break;
case 15 : supprimer(14); break;
case 16 : supprimer(15); break;
case 17 : supprimer(16); break;
case 18 : supprimer(17); break;
case 19 : supprimer(18); break;
case 20 : supprimer(19); break;
default : supprimer(25); break;
}
voila, pour ces deux points, il y en a d'autre ... Mais continu comme ca t'es sur la bonne voix ...
A+
Balt
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 22 mai 2003 à 10:22
Salut ToTol,
le goto n'est pas bien vu mais il est efficace si BIEN employe.
Prenons le cas du "horrible" comme dit Kaid:
tu as 7 tests dans switch avant 'default'. Si tu n'as pas un compilo very intelligent c'est mortel pour les perfs car on force sa sortie asm a suivre une logique etablie. Faut donc bien penser la chose ou ne pas employer goto.
On remet en ordre:
if(choix1[0]) == 7) goto fin;
if(choix1[0]) < 1 || choix1[0] > 6) goto fin0;
le_programme_en_lui_meme est ici avec 3 tests prealables.
ciao...
roswell117
Messages postés61Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention18 novembre 2005 22 mai 2003 à 10:15
camel a raison et ce code "lourd"
if ( choix > 0 && choix < rempli + 1 )
{
switch(choix)
{
case 1 : supprimer(0); break;
case 2 : supprimer(1); break;
..................
case 20 : supprimer(19); break;
default : supprimer(25); break;
}
cs_ToToL
Messages postés170Date d'inscriptionvendredi 25 avril 2003StatutMembreDernière intervention 9 juillet 2008 22 mai 2003 à 07:22
HeilongJiang : dans le code de camel il ne parle pas de goto
camel : par quoi par exemple?
Kaid : ce que tu appelle un block horribleme ser car si je vire les goto du debut et bien je n'est plus ke la sortit qui marche donc je suis obliger et c - long ke des if
HeilongJiang
Messages postés3Date d'inscriptionjeudi 8 mai 2003StatutMembreDernière intervention23 mai 2003 22 mai 2003 à 06:47
salut,
camel a raison, l'utilisation des goto est fortement deconseillé.
cs_camel
Messages postés77Date d'inscriptiondimanche 9 juin 2002StatutMembreDernière intervention18 mai 2007 21 mai 2003 à 21:42
Ces trucs pourraient etre remplacer par des choses plus simple je pense
switch(choix)
{
case 1 : supprimer(0); break;
case 2 : supprimer(1); break;
case 3 : supprimer(2); break;
case 4 : supprimer(3); break;
case 5 : supprimer(4); break;
case 6 : supprimer(5); break;
case 7 : supprimer(6); break;
case 8 : supprimer(7); break;
case 9 : supprimer(8); break;
case 10 : supprimer(9); break;
case 11 : supprimer(10); break;
case 12 : supprimer(11); break;
case 13 : supprimer(12); break;
case 14 : supprimer(13); break;
case 15 : supprimer(14); break;
case 16 : supprimer(15); break;
case 17 : supprimer(16); break;
case 18 : supprimer(17); break;
case 19 : supprimer(18); break;
case 20 : supprimer(19); break;
default : supprimer(25); break;
}
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 21 mai 2003 à 21:19
A quoi sert ce bloc (horrible) ?
switch( choix1[0] )
{
case '1' : goto le_programme_en_lui_meme;
case '2' : goto le_programme_en_lui_meme;
case '3' : goto le_programme_en_lui_meme;
case '4' : goto le_programme_en_lui_meme;
case '5' : goto le_programme_en_lui_meme;
case '6' : goto le_programme_en_lui_meme;
case '7' : goto fin;
default : goto fin0;
}
17 mars 2004 à 21:39
Et puis tu pourré utilisé la compilation séparée (plusieurs fichiers .c avec un .h contenant tes lib :)
De plus tes grand blocs switch ne servent strictement a rien car tu retest la saisie dans les if qui suivent -_-
soit tu fais des POF (procédures ou fonctions) que tu appel dans les switch, soit tu vire les switch et tu test la saisie seulement dans les if...
Les 2 à la fois c'est pas joli joli tout ca
17 janv. 2004 à 19:50
J'ai voulu testé ton code, mais je n'ai pas le CONIO.C déclaré dans les include.
Pourrais tu me l'envoyer par Email.? Merci.
frederic@merle.fr
A+
Fred23
23 mai 2003 à 07:20
23 mai 2003 à 07:05
le goto est pratique mais n'est principalement pas utilise pour la relecture d'un code, surtout qd tu n'en n'est pas l'auteur,
raison pour laquelle je n'ai pas lu ton code :)
>HeilongJiang: dans le code de camel il ne parle pas de goto
hmm. je crois qu'ils les a appele "ces trucs"
22 mai 2003 à 16:15
22 mai 2003 à 14:11
A+
22 mai 2003 à 14:06
Ca justifie aussi pourquoi "Visual C++". Si il compile du C++, il sait compiler du C.
22 mai 2003 à 13:43
Interessente cette discution ...
22 mai 2003 à 13:34
22 mai 2003 à 13:29
Ok "cout, cin" sont des instruction C++, la structure de son soft, c'est du C, pas du C++.
A+
22 mai 2003 à 11:44
des chercheurs on en trouve, des trouveurs on en cherche.
22 mai 2003 à 11:36
int choix=0;
while(choix != 7)
{
cin>>choix;
switch(choix)
{
case 1 : function1(); break;
case 2 : function2(); break;
case 3 : function3(); break;
case 4 : function4(); break;
case ...
case 7 : break;
default : cout<<"Erreur";
}
}
Si trinitacs passe par ici il vous dirait même de remplacer le switch par un tableau de pointeurs de fonctions.
- Baltawar: C'est du C++ (cout, cin, ...) et pas du C.
- Concernant les profs, certains ont des doctorats en informatique et ce qui les intéressent c'est de faire de la recherche et je pense que pour ca il y a plus de places dans le public que dans le privé.
22 mai 2003 à 10:55
"pourquoi il est prof au lieu de gagner beaucoup plus en produisant dans le privé ", la reponse est toute bete, "c'est une grosse faignasse", dans le privé il faut bosser, alors qu'en tant que prof ...
A+
22 mai 2003 à 10:53
"ton prof t'as jamais dit" pourquoi il est prof au lieu de gagner beaucoup plus en produisant dans le privé ? Faudrait lui demander, surement un oubli de sa part.
ciao...
22 mai 2003 à 10:38
if( (choix >=1) || (choix <= 20) ), c'est pas un OU ( || ) c'est un ET (&&)
> if( (choix >1) && (choix <= 20) )
22 mai 2003 à 10:37
Bravo pour ton 1er soft, mais c'est pas du C++, c'est du C ...
Sinon oui, tu peux l'optimisé :
switch( choix1[0] )
{
case '1' : goto le_programme_en_lui_meme;
case '2' : goto le_programme_en_lui_meme;
case '3' : goto le_programme_en_lui_meme;
case '4' : goto le_programme_en_lui_meme;
case '5' : goto le_programme_en_lui_meme;
case '6' : goto le_programme_en_lui_meme;
case '7' : goto fin;
default : goto fin0;
}
devient :
switch( choix1[0] )
{
case '1' :
case '2' :
case '3' :
case '4' :
case '5' :
case '6' : goto le_programme_en_lui_meme;
case '7' : goto fin;
default : goto fin0;
}
c'est deja mieux, mais les GOTO !!!!! ton prof t'as jamais dis "PAS DE GOTO" ??
autre chose :
switch(choix)
{
case 1 : supprimer(0); break;
case 2 : supprimer(1); break;
case 3 : supprimer(2); break;
case 4 : supprimer(3); break;
case 5 : supprimer(4); break;
case 6 : supprimer(5); break;
case 7 : supprimer(6); break;
case 8 : supprimer(7); break;
case 9 : supprimer(8); break;
case 10 : supprimer(9); break;
case 11 : supprimer(10); break;
case 12 : supprimer(11); break;
case 13 : supprimer(12); break;
case 14 : supprimer(13); break;
case 15 : supprimer(14); break;
case 16 : supprimer(15); break;
case 17 : supprimer(16); break;
case 18 : supprimer(17); break;
case 19 : supprimer(18); break;
case 20 : supprimer(19); break;
default : supprimer(25); break;
}
devient :
if( (choix >=1) || (choix <= 20) )
{
supprimer(choix - 1);
}
else
{
supprimer(25);
}
voila, pour ces deux points, il y en a d'autre ... Mais continu comme ca t'es sur la bonne voix ...
A+
Balt
22 mai 2003 à 10:22
le goto n'est pas bien vu mais il est efficace si BIEN employe.
Prenons le cas du "horrible" comme dit Kaid:
tu as 7 tests dans switch avant 'default'. Si tu n'as pas un compilo very intelligent c'est mortel pour les perfs car on force sa sortie asm a suivre une logique etablie. Faut donc bien penser la chose ou ne pas employer goto.
On remet en ordre:
if(choix1[0]) == 7) goto fin;
if(choix1[0]) < 1 || choix1[0] > 6) goto fin0;
le_programme_en_lui_meme est ici avec 3 tests prealables.
ciao...
22 mai 2003 à 10:15
if ( choix > 0 && choix < rempli + 1 )
{
switch(choix)
{
case 1 : supprimer(0); break;
case 2 : supprimer(1); break;
..................
case 20 : supprimer(19); break;
default : supprimer(25); break;
}
pourrait facilement etre remplacé par
if ( choix > 0 && choix < rempli + 1 )
{
if(choix<=20) supprimer(choix-1);
else supprimer(25);
..........
22 mai 2003 à 07:22
camel : par quoi par exemple?
Kaid : ce que tu appelle un block horribleme ser car si je vire les goto du debut et bien je n'est plus ke la sortit qui marche donc je suis obliger et c - long ke des if
22 mai 2003 à 06:47
camel a raison, l'utilisation des goto est fortement deconseillé.
21 mai 2003 à 21:42
switch(choix)
{
case 1 : supprimer(0); break;
case 2 : supprimer(1); break;
case 3 : supprimer(2); break;
case 4 : supprimer(3); break;
case 5 : supprimer(4); break;
case 6 : supprimer(5); break;
case 7 : supprimer(6); break;
case 8 : supprimer(7); break;
case 9 : supprimer(8); break;
case 10 : supprimer(9); break;
case 11 : supprimer(10); break;
case 12 : supprimer(11); break;
case 13 : supprimer(12); break;
case 14 : supprimer(13); break;
case 15 : supprimer(14); break;
case 16 : supprimer(15); break;
case 17 : supprimer(16); break;
case 18 : supprimer(17); break;
case 19 : supprimer(18); break;
case 20 : supprimer(19); break;
default : supprimer(25); break;
}
21 mai 2003 à 21:19
switch( choix1[0] )
{
case '1' : goto le_programme_en_lui_meme;
case '2' : goto le_programme_en_lui_meme;
case '3' : goto le_programme_en_lui_meme;
case '4' : goto le_programme_en_lui_meme;
case '5' : goto le_programme_en_lui_meme;
case '6' : goto le_programme_en_lui_meme;
case '7' : goto fin;
default : goto fin0;
}
le_programme_en_lui_meme:;