OVH Cloud OVH Cloud

La torture des tortues

22 réponses
Avatar
sphincer
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,8) -- 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.

10 réponses

1 2 3
Avatar
Dimitri PAPADOPOULOS-ORFANOS
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

Avatar
Michel Michaud
Dans le message d76o5v$jbp$,
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
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/

Avatar
sphincer
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 :)


Avatar
Matthieu Moy
"Michel Michaud" 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 à

« 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

Avatar
Jean-Marc Bourguet
"Michel Michaud" 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?

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
kanze
Michel Michaud wrote:
Dans le message d76o5v$jbp$, Dimitri
PAPADOPOULOS-ORFANOS a

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.

(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


Avatar
Richard Delorme
Dans le message d76o5v$jbp$,

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 ?

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.

(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


Avatar
Michel Michaud
Dans le message ,
"Michel Michaud" 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
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/


Avatar
Michel Michaud
Dans le message ,
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.

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...

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.

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 !

(À 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.

[...]
(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...

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
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/


Avatar
Michel Michaud
Dans le message 429759f4$0$302$,
Dans le message d76o5v$jbp$,
Dimitri PAPADOPOULOS-ORFANOS

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 :

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.

(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
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/



1 2 3