Question de débutante, débutante, débutante

Question de débutante, débutante, débutante - C - Programmation

Marsh Posté le 10-05-2010 à 14:40:56    

Bonjour,
je me lance dans la programmation et je choisi, étrangement, de commencer par le C (ça à l'air plus rigoureux alors bon, je me dis qu'après ça sera plus facile pour comprendre et apprendre les autres, et puis ça me permettra d'avoir de bonnes habitudes). J'ai une petite question toute bête, j'essaye (tant bien que mal) grâce à un bouquin, bancal, (va falloir que je pense à m'acheter un bouquin un peu plus complet, des suggestions?) à faire un programme à deux joueurs ou le premier joueur fixe un nombre entre 0 et 1000 et le deuxième joueur doit le trouver avec des indications c'est plus, c'est moins, et tu brules. (là tout vas bien). Après j'aimerai faire en sorte qu'il puisse taper soit sur 1 pour recommencer soit sur tout le reste pour fermer le programme. Alors mon problème c'est que je ne sais pas trop ou mettre la boucle. Jusque là j'en mets une en do...while pour le petit jeu et une autre en do...while pour la question mais forcement on ne peut recommencer qu'une seule fois! je devrais surement mettre le tout dans une boucle mais ça me parait insurmontable! (ehhh!! j'en peux plus!!!). J'espere que l'explication est compréhensible ou sinon je peux juste vous montrer mon code. Enfin bref, merci d'avance et si vous pourriez me conseiller des bouquins ou un site (autre que le site du zéro par pitié! parce que bon j'ai un peu du mal avec l'orthographe et les smileys en boucle)!  


---------------
Kes wins a Million - on debian in love
Reply

Marsh Posté le 10-05-2010 à 14:40:56   

Reply

Marsh Posté le 10-05-2010 à 15:10:04    

Le C, rigoureux  :whistle: Le développeur, lui, doit l'être, mais le langage est super laxiste. Pour du rigoureux, regards Ruby, Python voire Java...
 
Pour ta question sur la boucle, je comprends pas pourquoi tu dis que le 2ième do...while() fait qu'on ne peut recommencer à jouer qu'une fois :??:
do...while(le joueur à taper 1 pour dire qu'il recommence) va faire qu'une fois le petit jeu terminé, on lui demande s'il veut recommencer, il tape "1" et paf, la boucle recommence... Je vois pas le pb.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 10-05-2010 à 15:29:34    

eh bien enfait le problème c'est que la boucle repart mais elle ne repart qu'une fois; une fois qu'on a refait le petit jeu et bien on ne repose plus la question est le programme s'arrête. Donc python est plus rigoureux que C (eh m****!)


---------------
Kes wins a Million - on debian in love
Reply

Marsh Posté le 10-05-2010 à 16:02:52    

t'as pas bien positionnée ta question dans la boucle alors ou t'as un pb de condition dans ton while. Montre ton code?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 10-05-2010 à 16:05:09    

y'a pas moins rigoureux comme langage que le C (ou si, l'ASM ou de vieux langages genre BASIC). Mais comme dis précédemment, faire du bon impose d'être soit même rigoureux, vue que le compilo le fait pas pour toi. Commencer par le C est par contre normal, c'est la base de tout et à la source de nombreux langages et savoir manier la mémoire est très formateur.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 10-05-2010 à 18:02:54    

ah oui en effet problème de condition, j'avais donné deux conditions totalement paradoxale enfin bref, merci je sais pas pourquoi j'y ai pas pensé à relire ce que j'avais fait! -_- Ouf j'ai commencé par le bon truc :D merci ^^


---------------
Kes wins a Million - on debian in love
Reply

Marsh Posté le 13-05-2010 à 21:31:20    

kes tion a écrit :

Bonjour,
je me lance dans la programmation et je choisi, étrangement, de commencer par le C (ça à l'air plus rigoureux alors bon, je me dis qu'après ça sera plus facile pour comprendre et apprendre les autres, et puis ça me permettra d'avoir de bonnes habitudes).


Le C est tout sauf rigoureux. Tu peux par exemple créer un tableau de 10 caractères et le remplir avec 15. Ou aller voir ce qu'il y a à l'indice 18 ou -25. Le compilo compilera sans problème. Mais quand tu voudras exécuter ton prog...
C'est à toi d'être rigoureuse quand tu écris du C. En ce sens ce langage peut t'aider car il te forcera à prendre de bonnes habitudes. Malheureusement il ne te dira pas, si tu écris mal un truc, en quoi c'est mal écrit. Mais bon, on est là pour ça...
 

kes tion a écrit :

J'ai une petite question toute bête, j'essaye (tant bien que mal) grâce à un bouquin, bancal, (va falloir que je pense à m'acheter un bouquin un peu plus complet, des suggestions?) à faire un programme à deux joueurs ou le premier joueur fixe un nombre entre 0 et 1000 et le deuxième joueur doit le trouver avec des indications c'est plus, c'est moins, et tu brules. (là tout vas bien). Après j'aimerai faire en sorte qu'il puisse taper soit sur 1 pour recommencer soit sur tout le reste pour fermer le programme. Alors mon problème c'est que je ne sais pas trop ou mettre la boucle. Jusque là j'en mets une en do...while pour le petit jeu et une autre en do...while pour la question mais forcement on ne peut recommencer qu'une seule fois! je devrais surement mettre le tout dans une boucle mais ça me parait insurmontable! (ehhh!! j'en peux plus!!!). J'espere que l'explication est compréhensible ou sinon je peux juste vous montrer mon code.  


Faut apprendre maintenant à découper ton code en fonctions. Chaque fonction sera associée à une étape importante du jeu. Tu peux par exemple écrire une fonction "saisie()" qui fait saisir un nombre et qui se charge de contrôler que la saisie est correcte. Puis une fonction "jeu()" qui utilisera une fois la fonction "saisie()" pour faire saisir le nombre à trouver puis une seconde fois la fonction "saisie()" lorsque l'autre joueur cherche le nombre. Et une fonction "analyse()" qui se charge de déduire si le nombre entré est proche ou loin du nombre à trouver. Bref tu essayes de découper au mieux tes outils afin de pouvoir les réutiliser au maximum. Plus ton découpage sera fin et précis plus tes outils seront réutilisables facilement.
Ensuite en final tu mets tout ça dans une jolie boucle qui recommence tant qu'on veut...
 

kes tion a écrit :

Enfin bref, merci d'avance et si vous pourriez me conseiller des bouquins ou un site (autre que le site du zéro par pitié! parce que bon j'ai un peu du mal avec l'orthographe et les smileys en boucle)!  


http://fr.lang.free.fr/cours/Langa [...] e_v2.0.pdf


Message édité par Sve@r le 13-05-2010 à 21:33:24

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 14-05-2010 à 11:10:58    

Langage rigoureux, clair, compact :  CaML powaa !!


Message édité par islington le 14-05-2010 à 11:11:45
Reply

Marsh Posté le 14-05-2010 à 13:40:45    

MERCI Swea@r!!!!!!!!! ça y est je suis arrivée au passage sur les fonctions et en effet, c'est beaucoup plus facile (enfin facile... faut que je me casse un peu la tête quand même :) )! en tout merci pour le lien, bien mieux que le bouquin que j'avais! et je tacherai d'être rigoureuse!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed