 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
sphincer Guest
|
Posted: Thu May 26, 2005 10:47 am Post subject: La torture des tortues |
|
|
Bonjour.
Avant de me lancer, comme je débute en C++, j'aimerais bien avoir des
suggestions pour traiter la chose suivante :
les données :
nb Tortues, définies par nom, famille, de 0 à 10 valeurs de longévité.
Je pense,Tortues sera un enregistrement :
( nom <chaine caractères> ,
famille <chaine caractères>,
longevite <Tableau de 1 à 10 Entiers>,
MoyenneLongevite <Reel> )
1 ébauche d'algo :
TantQue il y-a une Tortue à entrer
saisie(nom)
saisie(famille)
si pas_DejaEntree(nom,famille) -- on vérifie que les
-- caractéristiques n'ont pas -- déjà été fournies,
-- (même nom, même famille)
ajoute_Enregistrement(nom, famille)
SaisieLongevités(Tortue)-- 10 longévités
-- de 1 à 150 ans,
-- ou 200 si non renseigné
-- (prévoir les erreur d'entrée)
CalculMoyenne(Tortue) -- calcul de la moyenne
-- des longévités entrées
-- comprises entre 1 et 150
finsi
finTantQue
Affiche_Classe (Tortue,nom) -- classe et affiche les tortue
-- par nom
Affiche_Classe (Tortue,moyenne) -- classe et affiche les tortue
-- par moyenne de longevité
Affiche_Classe1 (Tortue,moyenne,60) -- classe et affiche les tortue
-- dont moyenne_longevite > 60
Affiche_Classe2(Tortue,longevite,5) -- classe et affiche
-- les 5 + grandes longevités
Affiche_Classe2(Tortue,moyenne, -- classe et affiche
-- les 8 + grandes moyennes de
-- longevités
Si vous avez des exemples/suggestions, les plus simples qui soient (je
suis une bille en programmation, alors faut que je puisse comprendre),
merci de m'en faire part :)
Vous pouvez envoyer directement à mon mail Sphincer(@free.fr)
Grand merci pour vos aides.
|
|
| Back to top |
|
 |
Dimitri PAPADOPOULOS-ORFA Guest
|
Posted: Fri May 27, 2005 9:07 am Post subject: Re: La torture des tortues |
|
|
Bonjour,
| Quote: | Avant de me lancer, comme je débute en C++, j'aimerais bien avoir des
suggestions pour traiter la chose suivante :
[...]
Si vous avez des exemples/suggestions, les plus simples qui soient (je
suis une bille en programmation, alors faut que je puisse comprendre),
|
Je ne suis pas certain que C++ soit le langage le plus adapté pour
débuter. En fait je suis presque certain du contraire... Pourquoi ne pas
utilise Java, C#, Python ou Basic ?
Dimitri Papadopoulos
|
|
| Back to top |
|
 |
Michel Michaud Guest
|
Posted: Fri May 27, 2005 2:02 pm Post subject: Re: La torture des tortues |
|
|
Dans le message d76o5v$jbp$1 (AT) ellebore (DOT) extra.cea.fr,
Dimitri PAPADOPOULOS-ORFANOS <papadopo (AT) shfj (DOT) REMOVE.cea.NOSPAM.fr> a écrit :
| Quote: | Je ne suis pas certain que C++ soit le langage le plus adapté pour
débuter. En fait je suis presque certain du contraire... Pourquoi
ne pas utilise Java, C#, Python ou Basic ?
|
Je sais que ce genre de question peut lancer une guerre et est
peut-être simplement un troll, mais j'ai une nouvelle réponse
depuis quelques temps et je veux la diffuser ici.
Que peut-on faire de spécial avec ces langages qu'on ne peut pas
faire avec C++ et qui est _important pour un débutant_ ?
(En sens inverse, il y a plein de choses simples qu'on peut faire
avec C++, très simplement et pas avec plusieurs de ces langages.
Il vous faut des exemples ?)
--
Michel Michaud [email]mm (AT) gdzid (DOT) com[/email]
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
|
|
| Back to top |
|
 |
sphincer Guest
|
Posted: Fri May 27, 2005 2:17 pm Post subject: Re: La torture des tortues |
|
|
Dimitri PAPADOPOULOS-ORFANOS a écrit :
| Quote: | Bonjour,
Avant de me lancer, comme je débute en C++, j'aimerais bien avoir des
suggestions pour traiter la chose suivante :
[...]
Si vous avez des exemples/suggestions, les plus simples qui soient (je
suis une bille en programmation, alors faut que je puisse comprendre),
Je ne suis pas certain que C++ soit le langage le plus adapté pour
débuter. En fait je suis presque certain du contraire... Pourquoi ne pas
utilise Java, C#, Python ou Basic ?
Dimitri Papadopoulos
|
En basic je saurais faire, ou sous excess,
mais cette petite appplication me permettrait justement de faire mes
1ères armes en C++ (je vais devoir m'y mettre, ainsi qu'au Java, pour le
boulot) et de me familiariser avec ce langage dans lequel je suis une
bille ... pour l'instant :)
Ce n'est pas une application toute faite que je demande, mais juste
quelques orientations, sur les déclarations, par exemple (enregistrement
comprenant des chaines de caractères, réel et tableau d'entiers).
Cet exemple me permettrait de me faire la main sur autre chose que des
exercices simples (tour de Hanoie, affichage de chiffres premiers ...)
et d'avancer plus vite.
J'en profite pour m'excuser du message envoyé plusieurs fois : le
message restait bloqué sur une fenêtre d'attente. J'ai annulé pour
relancer, persuadé que le message n'était pas passé :(
Merci néanmoins du conseil, Dimitri :)
|
|
| Back to top |
|
 |
Matthieu Moy Guest
|
Posted: Fri May 27, 2005 2:22 pm Post subject: Re: La torture des tortues |
|
|
"Michel Michaud" <mm (AT) gdzid (DOT) com> writes:
| Quote: | Que peut-on faire de spécial avec ces langages qu'on ne peut pas
faire avec C++ et qui est _important pour un débutant_ ?
|
Mauvaise question. Penses plutôt à
« Que peut-on faire de dangereux ou quelles mauvaises habitudes peut
prendre un débutant avec C++ et qu'on ne pourrait pas faire avec tous
ces langages ? »
--
Matthieu
|
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Fri May 27, 2005 3:11 pm Post subject: Re: La torture des tortues |
|
|
Michel Michaud wrote:
| Quote: | Dans le message d76o5v$jbp$1 (AT) ellebore (DOT) extra.cea.fr, Dimitri
PAPADOPOULOS-ORFANOS <papadopo (AT) shfj (DOT) REMOVE.cea.NOSPAM.fr> a
écrit :
Je ne suis pas certain que C++ soit le langage le plus
adapté pour débuter. En fait je suis presque certain du
contraire... Pourquoi ne pas utilise Java, C#, Python ou
Basic ?
Je sais que ce genre de question peut lancer une guerre et est
peut-être simplement un troll, mais j'ai une nouvelle réponse
depuis quelques temps et je veux la diffuser ici.
Que peut-on faire de spécial avec ces langages qu'on ne peut
pas faire avec C++ et qui est _important pour un débutant_ ?
|
La question se pose en sens inverse, non ? Qu'est-ce qu'il faut
apprendre de spécial (propre au langage) avant de pouvoir écrire
des programmes simples et corrects ? Donc, par exemple, pour
commencer en Java, il faut avoir aborder des classes et des
fonctions statiques (ce qui est prèsqu'une contradiction) avant
de pouvoir commencer -- en C++, les fonctions, mais aussi
quelques petits détails sur les comportements indéfinis (ne pas
modifier un objet deux fois dans la même expression), et la
syntaxe des déclarations (pour reconnaître quand on a déclaré
une fonction, et non une variable. (À part ce dernier, je ne dis
pas qu'il ne faut pas les apprendre, quelque soit le langage du
début. Mais c'est peut-être un peu exagéré d'exiger
l'apprentissage des classes et des fonctions statiques avant de
pouvoir écrire quoique ce soit.)
Il y a aussi la question de la façon qu'on y programme -- les
Basic classiques sont absolument à éviter, par exemple, et je
dirais qu'il faut, comme minimum, des fonctions récursives avec
variables locales, et des structures de flux (if, while, etc.)
et de données (struct ou record, le nom importe peu). Mais en
dehors de Basic (mais je ne connais pas les Basic modernes), je
crois que tous les langages cités ont ce qu'il faut à cet égard.
| Quote: | (En sens inverse, il y a plein de choses simples qu'on peut
faire avec C++, très simplement et pas avec plusieurs de ces
langages. Il vous faut des exemples ?)
|
Et vice versa, mais en général pour d'autres raisons. J'écris
une interface graphique en Java. En C++, il me faudrait déjà
quelques heures pour trouver une bibliothèque graphique
convenable et l'installer:-). Et encore, celles auxquelles j'ai
jeté un coup oeil jusqu'ici me paraissent bien inférieur à
Swing. Seulement, est-ce que ces choses là sont importantes
pour un débuttant ?
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
|
|
| Back to top |
|
 |
Richard Delorme Guest
|
Posted: Fri May 27, 2005 5:33 pm Post subject: Re: La torture des tortues |
|
|
Michel Michaud a écrit :
| Quote: | Dans le message d76o5v$jbp$1 (AT) ellebore (DOT) extra.cea.fr,
Dimitri PAPADOPOULOS-ORFANOS <papadopo (AT) shfj (DOT) REMOVE.cea.NOSPAM.fr> a écrit :
Je ne suis pas certain que C++ soit le langage le plus adapté pour
débuter. En fait je suis presque certain du contraire... Pourquoi
ne pas utilise Java, C#, Python ou Basic ?
Je sais que ce genre de question peut lancer une guerre et est
peut-être simplement un troll, mais j'ai une nouvelle réponse
depuis quelques temps et je veux la diffuser ici.
|
Par curiosité, quelle est cette réponse ?
| Quote: | Que peut-on faire de spécial avec ces langages qu'on ne peut pas
faire avec C++ et qui est _important pour un débutant_ ?
|
Du graphisme, par exemple. Mais le problème ne se pose pas dans ce que
permettent de faire ces langages, mais plus dans la simplicité des langages.
| Quote: | (En sens inverse, il y a plein de choses simples qu'on peut faire
avec C++, très simplement et pas avec plusieurs de ces langages.
Il vous faut des exemples ?)
|
S'ils peuvent améliorer ma culture, je veux bien.
--
Richard
|
|
| Back to top |
|
 |
Michel Michaud Guest
|
Posted: Sat May 28, 2005 2:01 am Post subject: Re: La torture des tortues |
|
|
Dans le message [email]vpqzmugeol3.fsf (AT) ecrins (DOT) imag.fr[/email],
Matthieu Moy <MatthieuNOSPAM.Moy (AT) imag (DOT) fr.invalid> a écrit :
| Quote: | "Michel Michaud" <mm (AT) gdzid (DOT) com> writes:
Que peut-on faire de spécial avec ces langages qu'on ne peut pas
faire avec C++ et qui est _important pour un débutant_ ?
Mauvaise question. Penses plutôt à
|
Ce n'est pas la mauvaise question, c'est ma (une ?) réponse à la
remarque qui dit que C++ n'est pas bon pour un débutant...
| Quote: | « Que peut-on faire de dangereux ou quelles mauvaises habitudes peut
prendre un débutant avec C++ et qu'on ne pourrait pas faire avec
tous ces langages ? »
|
J'attends une réponse, mais tout en gardant à l'esprit que je
suppose qu'on apprend avec un « guide » (livre, prof., etc.) et
que les habitudes à prendre seront celles qui seront montrées.
Je suis certain qu'avec un mauvais guide, aucun langage ne peut
sauver la mise.
Et il ne faut pas dévier la question : si on me dit que C++ n'est
pas bon pour un débutant, je demande des explications. Poser une
autre question n'est pas une réponse.
--
Michel Michaud [email]mm (AT) gdzid (DOT) com[/email]
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
|
|
| Back to top |
|
 |
Michel Michaud Guest
|
Posted: Sat May 28, 2005 2:03 am Post subject: Re: La torture des tortues |
|
|
Dans le message [email]pxbpsvczqom.fsf (AT) news (DOT) bourguet.org[/email],
Jean-Marc Bourguet <jm (AT) bourguet (DOT) org> a écrit :
| Quote: | "Michel Michaud" <mm (AT) gdzid (DOT) com> writes:
Je sais que ce genre de question peut lancer une guerre et est
peut-être simplement un troll, mais j'ai une nouvelle réponse
depuis quelques temps et je veux la diffuser ici.
Tu as termine ton bouquin?
|
Oui et non. Je sais ce que je dois compléter et modifier avant
la version finale, mais je suis trop occupé en ce moment pour
le faire. Ça ira dans quelques semaines... J'ai hâte de passer
à autre chose (comme mon livre sur les algorithmes et les
structures de données, lui aussi en attente d'un effort pour le
finir !). En ce moment, je fais du C# :-)
--
Michel Michaud [email]mm (AT) gdzid (DOT) com[/email]
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
|
|
| Back to top |
|
 |
Michel Michaud Guest
|
Posted: Sat May 28, 2005 2:28 am Post subject: Re: La torture des tortues |
|
|
Dans le message [email]1117206712.189835.44300 (AT) g14g2000cwa (DOT) googlegroups.com[/email],
[email]kanze (AT) gabi-soft (DOT) fr[/email] <kanze (AT) gabi-soft (DOT) fr> a écrit :
| Quote: | Michel Michaud wrote:
Que peut-on faire de spécial avec ces langages qu'on ne peut
pas faire avec C++ et qui est _important pour un débutant_ ?
La question se pose en sens inverse, non ? Qu'est-ce qu'il faut
|
Pourquoi faudrait-il poser la question en sens inverse. Si
quelqu'un dit que C++ n'est pas bon pour un débutant, je demande
des explications... Poser une autre question n'estpas une réponse
et indique simplement que l'affirmation de base était peut-être
gratuite.
| Quote: | apprendre de spécial (propre au langage) avant de pouvoir écrire
des programmes simples et corrects ? Donc, par exemple, pour
commencer en Java, il faut avoir aborder des classes et des
fonctions statiques (ce qui est prèsqu'une contradiction) avant
de pouvoir commencer --
|
Oui en ce sens-là, ce sont des avantages de C++ comme je le laissais
entrevoir dans mon message. J'avais dit
« (En sens inverse, il y a plein de choses simples qu'on peut faire
avec C++, très simplement et pas avec plusieurs de ces langages.
Il vous faut des exemples ?) »
Mais je ne veux pas dévier la question : on dit que C++ n'est pas
bon pour un débutant. Je veux bien, mais qu'on me dise ce qui rend
Java ou autres meilleurs pour ce rôle...
| Quote: | en C++, les fonctions, mais aussi
quelques petits détails sur les comportements indéfinis (ne pas
modifier un objet deux fois dans la même expression), et la
|
Ce sont des détails qui ne touchent pas les débutants... Je
parle de comportements indéfinis à mes élèves de temps en temps,
mais ce n'est pas pour les empêcher de faire ce qu'ils auraient
naturellement l'intention de faire. Plutôt pour leur confirmer
qu'ils ont raison de vouloir éviter certaines choses qui ne leur
semblent pas très sûres.
| Quote: | syntaxe des déclarations (pour reconnaître quand on a déclaré
une fonction, et non une variable.
|
Encore une fois, c'est un cas qui ne touche vraiment pas les
débutants... Un débutant ne sait pas ce qu'est une fonction : il
ne veut ni en faire, ni savoir comment en déclarer une, ni comment
choisir ce qui devrait en être une et ce qui serait les paramètres.
L'idée de faire son programme en un gros bloc lui plaît assez en
fait ! Et le copier-coller semble leur meilleur ami.
Je suis heureux de pouvoir faire 150 pages de mon livre d'introduction à la
programmation (environ le tiers) avant
d'introduire la notion de modularité dans le code. Il y a beaucoup
à faire avant d'y arriver, si on veut pouvoir se concentrer sur
ce point à partir de ce moment. Si faire des boucles ou un série
de conditions complexes est encore un problème, je ne veux pas
faire des fonctions... pas encore !
| Quote: | (À part ce dernier, je ne dis
pas qu'il ne faut pas les apprendre, quelque soit le langage du
début. Mais c'est peut-être un peu exagéré d'exiger
l'apprentissage des classes et des fonctions statiques avant de
pouvoir écrire quoique ce soit.)
|
On te répondra qu'ils (les débutants) peuvent faire ça sans
comprendre ce que c'est. Je trouve que le problème est de nier
par la suite l'existence ou l'utilité de la notion de fonctions
(ou variables) globales, surtout dans des langages qui abusent
des classes pour y mettre des fonctions statiques... On ne peut
dire qu'il faut faire des classes, expliquer la POO et l'intérêt
des classes et en même temps faire des classes qui n'en sont pas
selon les principes qu'on vient d'expliquer.
[...]
| Quote: | (En sens inverse, il y a plein de choses simples qu'on peut
faire avec C++, très simplement et pas avec plusieurs de ces
langages. Il vous faut des exemples ?)
Et vice versa, mais en général pour d'autres raisons. J'écris
une interface graphique en Java. En C++, il me faudrait déjà
quelques heures pour trouver une bibliothèque graphique
convenable et l'installer:-).
|
Je t'assure que même si faire du graphisme est un sujet qu'un
débutant aimerait bien toucher rapidement, il se rend compte
tout aussi rapidement qu'il a bien des choses à apprendre avant
de pouvoir le faire réellement. Alors la « simplicité » ou la
disponibilité d'un bibliothèque graphique (ou GUI ou autres
semblables) n'est pas non plus une priorité pour un débutant
sérieux. J'ai connu des programmeurs d'expérience tout à fait
incapables (i.e. complètement bloqués) devant des problèmes de
logique tout à fait élémentaires (sans problème technique
particulier), mais très bons pour aligner des boutons ou des
contrôles dans un éditeur graphique de boîtes de dialogue. Ce
n'est pas ce genre de programmeurs que je veux former...
| Quote: | Et encore, celles auxquelles j'ai
jeté un coup oeil jusqu'ici me paraissent bien inférieur à
Swing. Seulement, est-ce que ces choses là sont importantes
pour un débuttant ?
|
Non. Tu as tout compris :-)
--
Michel Michaud [email]mm (AT) gdzid (DOT) com[/email]
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
|
|
| Back to top |
|
 |
Michel Michaud Guest
|
Posted: Sat May 28, 2005 2:35 am Post subject: Re: La torture des tortues |
|
|
Dans le message 429759f4$0$302$7a628cd7 (AT) news (DOT) club-internet.fr,
Richard Delorme <abulmo (AT) nospam (DOT) fr> a écrit :
| Quote: | Michel Michaud a écrit :
Dans le message d76o5v$jbp$1 (AT) ellebore (DOT) extra.cea.fr,
Dimitri PAPADOPOULOS-ORFANOS <papadopo (AT) shfj (DOT) REMOVE.cea.NOSPAM.fr
a écrit :
Je ne suis pas certain que C++ soit le langage le plus adapté
pour débuter. En fait je suis presque certain du contraire...
Pourquoi ne pas utilise Java, C#, Python ou Basic ?
Je sais que ce genre de question peut lancer une guerre et est
peut-être simplement un troll, mais j'ai une nouvelle réponse
depuis quelques temps et je veux la diffuser ici.
Par curiosité, quelle est cette réponse ?
|
Elle suivait :
| Quote: | Que peut-on faire de spécial avec ces langages qu'on ne peut pas
faire avec C++ et qui est _important pour un débutant_ ?
Du graphisme, par exemple. Mais le problème ne se pose pas dans ce
que permettent de faire ces langages, mais plus dans la simplicité
des langages.
|
Un débutant ne fait pas de graphisme.
| Quote: | (En sens inverse, il y a plein de choses simples qu'on peut faire
avec C++, très simplement et pas avec plusieurs de ces langages.
Il vous faut des exemples ?)
S'ils peuvent améliorer ma culture, je veux bien.
|
double nb;
cin >> nb;
Ça me semble déjà beaucoup :-)
(ceci dit, je ne connais pas assez Python pour savoir si c'est
simple ou non dans ce langage, mais encore une fois, je ne dis
pas que les autres langages sont mauvais, je demande simplement
ce qu'ils ont de plus que C++, pour les vrais débutants...)
--
Michel Michaud [email]mm (AT) gdzid (DOT) com[/email]
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
|
|
| Back to top |
|
 |
Pierre Maurette Guest
|
Posted: Sat May 28, 2005 8:10 am Post subject: Re: La torture des tortues |
|
|
Dimitri PAPADOPOULOS-ORFANOS, le 27/05/2005, a écrit :
| Quote: | Bonjour,
Avant de me lancer, comme je débute en C++, j'aimerais bien avoir des
suggestions pour traiter la chose suivante :
[...]
Si vous avez des exemples/suggestions, les plus simples qui soient (je
suis une bille en programmation, alors faut que je puisse comprendre),
Je ne suis pas certain que C++ soit le langage le plus adapté pour débuter.
En fait je suis presque certain du contraire... Pourquoi ne pas utilise Java,
C#, Python ou Basic ?
* Soit le "scope of work" est de découvrir C++ et alors les tortues ne |
sont pas un bon exemple (ou alors très incomplet). En effet,
contrairement aux exemples animaliers habituels (que je n'aime pas
trop, mais peu importe), il ne s'agita pas d'une classe Animal dont
dériverait une classe Tortue puis des classes TortueLuth,
TortueDeHermann, etc.
* Soit sphincter est herpétophile, et il doit résoudre son problème de
classement de reptiles. L'outil idéal n'est alors ni C++, ni C#, ni
Java, etc. mais un gestionnaire simple de données. Ça peut être Access
s'il le possède. Les Affiche_Classe() ne sont que des requêtes simples.
--
Pour répondre directement: enlever une lettre sur deux
wwaannaaddoooo -> wanadoo
Pierre Maurette
|
|
| Back to top |
|
 |
Richard Delorme Guest
|
Posted: Sat May 28, 2005 9:15 am Post subject: Re: La torture des tortues |
|
|
Michel Michaud a écrit :
| Quote: | Je sais que ce genre de question peut lancer une guerre et est
peut-être simplement un troll, mais j'ai une nouvelle réponse
depuis quelques temps et je veux la diffuser ici.
Par curiosité, quelle est cette réponse ?
Elle suivait :
Que peut-on faire de spécial avec ces langages qu'on ne peut pas
faire avec C++ et qui est _important pour un débutant_ ?
|
C'est ce que j'appelle une question, pas une réponse ;-)
| Quote: | Du graphisme, par exemple. Mais le problème ne se pose pas dans ce
que permettent de faire ces langages, mais plus dans la simplicité
des langages.
Un débutant ne fait pas de graphisme.
|
Pourtant, ce livre sur l'apprentissage de la programmation en Python
(donc pour débutants), aborde le graphisme assez vite (au milieu de
l'ouvrage) : http://www.ulg.ac.be/cifen/inforef/swi/python.htm
Faire du graphisme en Python, en Java ou en Visual Basic est
relativement accessible. Le "débutant ne fait pas de graphisme" ne
s'applique qu'au C++.
| Quote: | (En sens inverse, il y a plein de choses simples qu'on peut faire
avec C++, très simplement et pas avec plusieurs de ces langages.
Il vous faut des exemples ?)
S'ils peuvent améliorer ma culture, je veux bien.
double nb;
cin >> nb;
Ça me semble déjà beaucoup
|
En Python, l'équivalent amélioré :
nb = input("Entrez un nombre > ")
C'est plus simple parce que c'est :
- plus clair : pas d'éléments de syntaxe superflus comme le ';', de
symboles obscures comme le '>>'.
- plus court : pas de déclaration de variable.
- complet : la ligne en Python constitue un programme complet (inutile
je suis d'accord), tandis qu'il manque beaucoup de choses dans l'exemple
en C++ (fonction main(), using namespace std, #include <iostream>, etc.)
C'est aussi beaucoup plus puissant :
- On a le droit à un prompt.
- Si elle est disponible, python utilise la bibliothèque GNU readline
pour la saisie, on dispose donc de toute sa puissance (historique, etc.)
- l'expression saisie est évaluée, on peut donc taper un nombre, un nom
de variable, une addition, ou n'importe quoi de plus compliqué...
- nb prend le type de ce qui est saisi, mais on peut toujours s'assurer
que c'est bien un nombre flottant :
if type(nb) != float: raise TypeError, "Ce n'est pas un nombre..."
| Quote: | (ceci dit, je ne connais pas assez Python pour savoir si c'est
simple ou non dans ce langage, mais encore une fois, je ne dis
pas que les autres langages sont mauvais, je demande simplement
ce qu'ils ont de plus que C++, pour les vrais débutants...)
|
A mon avis, il manque à C++ une documentation accessible (c'est surtout
vrai pour g++/linux, la bibliothèque standard n'est pas dans le manpage,
ni dans info et il n'y a pas grand chose de valable sur le web), des
messages d'erreur simple et compréhensible.
Il manque sans doute aussi des tutoriels en français de qualité, alors
qu'il existe des choses très pédagogiques pour Python et Java. Le
problème de C++ est que soit le document est simple d'accès mais manque
de rigueur, soit est rigoureux mais difficile.
--
Richard
|
|
| Back to top |
|
 |
Pierre Maurette Guest
|
Posted: Sat May 28, 2005 9:24 am Post subject: Re: La torture des tortues |
|
|
sphincer, le 26/05/2005, a écrit :
| Quote: | Bonjour.
Avant de me lancer, comme je débute en C++, j'aimerais bien avoir des
suggestions pour traiter la chose suivante :
les données :
nb Tortues, définies par nom, famille, de 0 à 10 valeurs de longévité.
Il y a dès le départ, indépendamment du langage choisi (à priori, le |
choix de C++ est un préalable ?) un problème d'analyse, de
structuration de vos données.
| Quote: | Je pense,Tortues sera un enregistrement :
OK, selon le langage, ce pourra être un record, une struct, une class, |
voire une "fiche" de données, mais le problème de fond est le même,
c'est de faire une petite base de données cohérente. Pour l'instant,
elle ne l'est pas vraiment.
| Quote: | ( nom <chaine caractères> ,
A priori, pourquoi pas ... |
| Quote: | famille <chaine caractères>,
famille est un choix parmi un nombre fini de possibilités, |
éventuellement évolutif. On peut imaginer une saisie présentant les
familles en liste, plus éventuellement un choix "Nouvelle famille", ou
une saisie suivie d'une demande de confirmation "Ajouter à la liste des
familles ?". Vous avez donc à ajouter à votre "base" un nouvel objet,
une liste de familles. Ce pourra être un fichier dans un SGDB, une
enum, un objet bien choisi de la STL, par exemple. Quoi qu'il en soit,
vous ne stockerez dans chaque tortue qu'une clé d'accès à un item
particulier de cet objet.
| Quote: | longevite <Tableau de 1 à 10 Entiers>,
A peu près la même chose que pour famille. A ceci près que le nombre |
d'items semble fixe. Vous pourriez gérer un ensemble (volontairement
imprécis, tableau, STL, etc.) de structures contenant les deux bornes
(entiers ou réels) et la valeur centrale utilisée pour les calculs, per
exemple 100, 109, 104.5 pour les bestioles dont l'espérance de vie est
entre "100 et 110" ans. Ce sont à priori des constantes. Comme pour
famille, vous ne stockez qu'un entier entre 0 et 9 (ou 1 et 10).
| Quote: | MoyenneLongevite <Reel> )
Là, je ne comprends pas. Dans votre ébauche d'algo, vous semblez écrire |
qu'il n'y a qu'une seule moyenne pour l'ensemble des bestioles, ce qui
est logique. Si Tortues est une classe, il s'agira d'une donnée dite
"de classe", déclarée par le mot clé static. Elle pourrait également ne
pas exister, et être calculée à la demande. Sinon, elle sera calculée à
chaque modification (ajout, modification, retrait) de la base.
Mais alors, je ne comprends pas les fonctions Affiche_Classe
(Tortue,moyenne) et Affiche_Classe1 (Tortue,moyenne,60).
| Quote: | 1 ébauche d'algo :
TantQue il y-a une Tortue à entrer
saisie(nom)
saisie(famille)
si pas_DejaEntree(nom,famille) -- on vérifie que les
-- caractéristiques n'ont pas -- déjà été fournies,
-- (même nom, même famille)
Apparemment, vous acceptez plusieurs fois le même nom, si les familles |
sont différentes. Le nom n'est donc pas un identifiant unique. Il n'y a
d'ailleurs pas de champ représentant à lui seul un identifiant unique.
C'est le point intérressant de votre problème. Vous aurez plusieurs
solutions, selon que vous privilégiez la compacité de la base, la
vitesse, la simplicité. L'identifiant unique sera (fait à partir de )
la concaténation du nom et d'une chaîne issue de famille. Vous pouvez
le fabriquer à chaque utilisation. Vous pouvez le stocker en plus de
nom et famille (redondance). Vous pouvez également le stocker tout
seul, et extraire à la demande nom et famille, mais c'est très moyen.
LA première solution est peut être la bonne, surtout si vous avez
besoin par ailleurs d'une fonction vous permettant de chercher un nom
dans une famille donnée, ce qui est probable.
--
Pour répondre directement: enlever une lettre sur deux
wwaannaaddoooo -> wanadoo
Pierre Maurette
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|