UN REPERTOIRE

cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 - 21 mai 2003 à 21:19
Sun-Burst Messages postés 11 Date d'inscription dimanche 9 novembre 2003 Statut Membre Dernière intervention 28 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.

https://codes-sources.commentcamarche.net/source/10796-un-repertoire

Sun-Burst Messages postés 11 Date d'inscription dimanche 9 novembre 2003 Statut Membre Dernière intervention 28 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és 152 Date d'inscription lundi 5 août 2002 Statut Membre Dernière intervention 15 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és 170 Date d'inscription vendredi 25 avril 2003 Statut Membre Derniè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és 3 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 23 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és 170 Date d'inscription vendredi 25 avril 2003 Statut Membre Derniè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és 39 Date d'inscription jeudi 2 janvier 2003 Statut Membre Derniè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és 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
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és 39 Date d'inscription jeudi 2 janvier 2003 Statut Membre Derniè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és 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
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és 39 Date d'inscription jeudi 2 janvier 2003 Statut Membre Derniè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és 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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és 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
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és 39 Date d'inscription jeudi 2 janvier 2003 Statut Membre Derniè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és 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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és 39 Date d'inscription jeudi 2 janvier 2003 Statut Membre Derniè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és 39 Date d'inscription jeudi 2 janvier 2003 Statut Membre Derniè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;
}

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
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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és 61 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 18 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;
}

pourrait facilement etre remplacé par

if ( choix > 0 && choix < rempli + 1 )
{
if(choix<=20) supprimer(choix-1);
else supprimer(25);
..........
cs_ToToL Messages postés 170 Date d'inscription vendredi 25 avril 2003 Statut Membre Derniè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és 3 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 23 mai 2003
22 mai 2003 à 06:47
salut,
camel a raison, l'utilisation des goto est fortement deconseillé.
cs_camel Messages postés 77 Date d'inscription dimanche 9 juin 2002 Statut Membre Dernière intervention 18 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és 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
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;
}

le_programme_en_lui_meme:;
Rejoignez-nous