
| Page Précédente 1 2 3 ... 11 12 13 14 15 16 17 ... 50 51 52 53 Suivante | |||||||||||||||||||||||||||||||||||||
| Auteur | Message | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 visiteur sur ce sujet (1 Anonyme) | |||||||||||||||||||||||||||||||||||||
| Page Précédente 1 2 3 ... 11 12 13 14 15 16 17 ... 50 51 52 53 Suivante | |||||||||||||||||||||||||||||||||||||
candide
|
# Posté le 20/12/2008 à 16:37:17 | ||||||||||||||||||||||||||||||||||||
"In C ode we trust"![]()
|
Reprise du dernier message de la page précédente :
Citation : crys'L'objectif de cet exercice est de réaliser un calculateur d'expressions sous la forme NPI (notation polonaise inverse) en vous servant des piles. Vous devez donc vous imaginer un algorithme qui permettrait d'évaluer un calcul en NPI en retournant le résultat. Comme d'habitude le spécification sont assez vagues. Le programmeur est-il censé donner une expression valide ? Sous quelle forme apparaissent les entrées, ce n'est pas anodin du tout à cause des nombres négatifs (cf. ci-dessous) ? L'obligation d'utiliser une pile est une contrainte dictée par la tradition mais on peut s'en abstenir me semble-t-il. Sinon, je trouve l'exercice mal choisi, cf. le titre du post : "Exercices pour débutants en C". C'est beaucoup plus un exercice sur les structures de données et d'algorithmique qu'un exercice de codage en C, ce qui est au bout du compte dans ce zExo la partie la plus facile. Par ailleurs, l'exercice en soi est difficile pour des débutants. La preuve ? toute simple : le code dans K&R qui implémente cette question (§5.10 Command-line Arguments) est très long : environ 125 lignes mais une ligne de C de K&R vaut 3 à 5 lignes chez le débutant, donc on va compter 500 lignes et Kernighan est un maitre en algorithmique donc le codage du débutant sera encore plus long. Noter que les formules doivent tenir dans des tableaux statiques ce qui un grosse limitation et dont la résolution nécessiterait encore plus de lignes de code. Et le pire, ils se sont plantés. D'abord, une formule qui marche : Code : C
Maintenant deux hics : 1°) le programme ne gère pas les formules invalides et pire il répond quelque chose : Code : C
2°) Absolument incroyable, le programme ne sait pas gérer les nombre négatifs et le passage à l'opposé, exemple : Code : C
Le code de K&R : Secret (cliquez pour afficher) Code : C
Au passage, tout ceci me confirme que, malgré tout ce qu'on dit (et surtout qu'on répète sans avoir vérifié par soi-même), le K&R est un livre bâclé (et j'aurais de nombreux autres exemples à donner). Bref, ton exercice me semble totalement inadapté et c'est d'autant plus clair qu'il faisait suite à un exercice quasi-trivial qui avait donné peu de réponses et juste avant un exo super facile sur les tris élémentaires et qui avaient été considérés par toi meme comme difficile (je ne me souviens plus du terme exact). Choisir des exercices ainsi que exemples adaptés à ceux à qui on veut enseigner quelque chose est tâche hautement difficile et c'est en partie à cause de la mauvaise réalisation de cette tâche que l'apprentissage du C est difficile. Une fois de plus, ce ne seront pas les débutants qui répondront substantiellement à cet exo, c'est à craindre en tous cas.
|
||||||||||||||||||||||||||||||||||||
zx-spectrum
|
# Posté le 20/12/2008 à 20:11:01 | ||||||||||||||||||||||||||||||||||||
http://www.worldofspectrum.org![]()
|
Bonjour Candide,
il est toujours difficile de proposer quelque chose. Je reconnais pour ma part que cet exo est particulièrement "hardu", et pas forcément à la portée du réel débutant..... Neamoins, vu que personne se manifeste pour savoir ce que propose Chrys est à leur portée, donc pas de feedback, je pense qu'il fait ce qu'il peut pour nous contenter...... Pour ma part et cela n'engage que moi, j'encourage chrys à continuer à nous proposer des exos. S'ils ne sont pas adaptés à notre niveau, a nous a nous manifester, car j'ai pas vu de zeros comme moi dire : ah halte , je n'arrive pas à suivre..... Ensuite à chacun à faire un effort, et au moins essayer à faire quelque chose, a proposer sa solution. @+ |
||||||||||||||||||||||||||||||||||||
L'Ombre Blanche
|
# Posté le 21/12/2008 à 15:08:49 | ||||||||||||||||||||||||||||||||||||
Hommage à Ewilan.![]()
Ville : Lyon |
Citation : de zx-spectrum
S'ils ne sont pas adaptés à notre niveau, a nous a nous manifester, car j'ai pas vu de zeros comme moi dire : ah halte , je n'arrive pas à suivre..... Ensuite à chacun à faire un effort, et au moins essayer à faire quelque chose, a proposer sa solution. Si, je l'ai dit, et je crois que mon appel à été pris en compte.
Édité
le 21/12/2008 à 15:09:51
par L'Ombre Blanche
|
||||||||||||||||||||||||||||||||||||
shareman
|
# Posté le 21/12/2008 à 15:46:08 | ||||||||||||||||||||||||||||||||||||
charlotte <3![]()
Ville : Mertzwiller |
Le prochain exercice sera très simple (et donc collera avec le titre).
J'ai déjà rédigé l'énoncé.
Nouvel atelier : Codez votre propre petit préprocesseur pour langage C ! Citation : Woody Allen Si l'au-delà existe, c'est à quelle distance du centre ville, et c'est ouvert jusqu'à quelle heure ? |
||||||||||||||||||||||||||||||||||||
yoch
|
# Posté le 21/12/2008 à 18:02:25 | ||||||||||||||||||||||||||||||||||||
![]()
|
Citation : candide
Par ailleurs, l'exercice en soi est difficile pour des débutants. La preuve ? toute simple : le code dans K&R qui implémente cette question (§5.10 Command-line Arguments) est très long : environ 125 lignes mais une ligne de C de K&R vaut 3 à 5 lignes chez le débutant, donc on va compter 500 lignes et Kernighan est un maitre en algorithmique donc le codage du débutant sera encore plus long. Noter que les formules doivent tenir dans des tableaux statiques ce qui un grosse limitation et dont la résolution nécessiterait encore plus de lignes de code. A mon avis, ce genre de preuve n'est pas valable : le nombre de lignes de code n'est aucunement indice de difficulté. Et puis, n'oublions pas l'énoncé : Citation : Pas de titre Pour la dernière question, utiliser seulement les chiffres dans vos calculs et non les nombres à plus d'un chiffre. Pour lire un nombre dans une chaîne, c'est déjà un algorithme tout à part (pas très dur mais faites juste ce qui est demandé), tandis que récupérer un chiffre est très simple (on n'a même pas à réfléchir) et vous aurez tout le temps pour vous concentrer sur l'algorithme de lecture d'expressions en NPI, ce qui est le but de l'exercice. Citation : candide Et le pire, ils se sont plantés. [...] Maintenant deux hics : 1°) le programme ne gère pas les formules invalides et pire il répond quelque chose : Code : C
2°) Absolument incroyable, le programme ne sait pas gérer les nombre négatifs et le passage à l'opposé, exemple : Code : C
Je suis d'accord, ces erreurs sont assez stupéfiantes (pour le passage a l'opposé, encore fallait-il savoir que c'est autorisé, mais pour le reste... a moins que le code ne vise d'autres objectif que la précision algorithmique, et encore !). Maintenant, tout cela est en dehors du cadre de l'exercice tel que défini par l'énoncé, qui était très simple je trouve, et assez instructif globalement (pile, npi). Vis a vis de la simplicité du code dans les cas un peu plus complets que demandé, je trouve que le conseil que j'avais donné (utiliser strtol) était excellent. Voici mon code (les espaces font office de séparateurs, gère les nombres négatifs, gère les erreurs : expression invalide, division par zéro) : Secret (cliquez pour afficher) Code : C
EDIT : ajout de la gestion de division par zéro.
Édité
le 21/12/2008 à 18:48:10
par yoch
|
||||||||||||||||||||||||||||||||||||
zx-spectrum
|
# Posté le 21/12/2008 à 19:36:45 | ||||||||||||||||||||||||||||||||||||
http://www.worldofspectrum.org![]()
|
Citation : L'Ombre Blanche
Citation : de zx-spectrum S'ils ne sont pas adaptés à notre niveau, a nous a nous manifester, car j'ai pas vu de zeros comme moi dire : ah halte , je n'arrive pas à suivre..... Ensuite à chacun à faire un effort, et au moins essayer à faire quelque chose, a proposer sa solution. Si, je l'ai dit, et je crois que mon appel à été pris en compte. Ok , je te rassure on est au moins deux alors : ! @+ |
||||||||||||||||||||||||||||||||||||
candide
|
# Posté le 21/12/2008 à 22:56:13 | ||||||||||||||||||||||||||||||||||||
"In C ode we trust"![]()
|
Citation : yoch
A mon avis, ce genre de preuve n'est pas valable : le nombre de lignes de code n'est aucunement indice de difficulté. Bien sûr que si. En général, un programme de 500 lignes est plus complexe (!= difficile) qu'un programme qui en fait 30. Bien sûr je parle dans les cas usuels, pas de code de l'IOCCC. Ce qui ne veut pas dire que certains codes astucieux et très travaillés de 30 lignes soient moins faciles à concevoir que des codes faisant la même chose en 100 lignes. Citation : yoch Et puis, n'oublions pas l'énoncé : Quel rapport ? Ce que le code de K&R fait, c'est exactement la même chose (la seule différence étant qu'on prend des nombres à un chiffre dans le zExo sinon, c'est pareil : npi et pile). Citation : yoch Voici mon code (les espaces font office de séparateurs, gère les nombres négatifs, gère les erreurs : expression invalide, division par zéro) : Et tu crois que n'importe quel débutant va déjà simplement comprendre ton code ? Ton code est très difficile, il nécessite la maitrise de pas mal de choses non triviales en C, c'est du code ABOUTI, le contraire de ce que sait faire un débutant. Par ailleurs, ton programme, à l'entrée invalide : Code : Autre
répond 5. Voici le code que je propose : Secret (cliquez pour afficher) Code : C
Code : Console
Mon code ne gère pas les expressions invalides (mais ce n'est pas très difficile à ajouter).
Édité
le 21/12/2008 à 22:57:20
par candide
|
||||||||||||||||||||||||||||||||||||
smail26
|
# Posté le 22/12/2008 à 09:12:07 | ||||||||||||||||||||||||||||||||||||
|
|
salut tout le monde moi aussi je participerai à ce sujet car je veux bien apprendre le C
|
||||||||||||||||||||||||||||||||||||
stallaf
|
# Posté le 22/12/2008 à 09:50:25 | ||||||||||||||||||||||||||||||||||||
intuitu personae![]()
|
Citation : Crys
Exercices pour débutants en C Citation : smail26...moi aussi je participerai à ce sujet car je veux bien apprendre le C Et bien, entre des discours de gourous d'experts et des interventions de boulets p'tits nouveaux, comment un débutant peut-il s'y retrouver ?
Gourou, tu deviendras... |
||||||||||||||||||||||||||||||||||||
candide
|
# Posté le 22/12/2008 à 10:30:20 | ||||||||||||||||||||||||||||||||||||
"In C ode we trust"![]()
|
Citation : stallaf
Citation : Crys Exercices pour débutants en C Citation : smail26...moi aussi je participerai à ce sujet car je veux bien apprendre le C Et bien, entre des discours de gourous d'experts et des interventions de boulets p'tits nouveaux, comment un débutant peut-il s'y retrouver ? ![]() Comme quoi, ce n'est pas si évident de proposer les bons exercices d'apprentissage adaptés au public visé, c'est même un vrai boulot, ça s'appelle enseignant et meme les enseignants ne parviennent pas souvent à un résultat satisfaisant. La production d'un petit exo facile pour débutant peut nécessiter des heures de conception, mais tout dépend du degré de rigueur du concepteur. Ici, les exos sont des difficultés inégales, ils s'adressent à un public au savoir trop indéterminé, leur contenu hésite trop entre codage C et algorithmique. Et la rubrique n'a pas encore réussi à fidéliser un public substantiel de zéros, à la différence par exemple du vrai succès des sujets de Nanoc (qui sont en C++ mais c'est dommage qu'il n'y ait pas la meme rubrique mais en C). AMHA, si les zexos veulent cibler un public de débutants, il faut absolument limiter la difficulté de ces exercices, éviter toute question d'algorithmique pure, soigner les spécifications et surveiller la précision des énoncés.
|
||||||||||||||||||||||||||||||||||||
zx-spectrum
|
# Posté le 22/12/2008 à 10:37:46 | ||||||||||||||||||||||||||||||||||||
http://www.worldofspectrum.org![]()
|
Citation : stallaf
Citation : Crys Exercices pour débutants en C Citation : smail26...moi aussi je participerai à ce sujet car je veux bien apprendre le C Et bien, entre des discours de gourous d'experts et des interventions de boulets p'tits nouveaux, comment un débutant peut-il s'y retrouver ? ![]() -sauf que les petits nouveaux je n'en ai vu que deux qui se manifestent... -le discours de gourous comme tu dis, heureusement qu'ils sont la pour nous faire progresser, il suffit juste a un moment donné de leur signaler : stop j'ai rien compris, explications supplémentaires requises, et ils le font (merci au passage pour eux) Le repérage me parait aisé pour les nouveaux, il suffit de réaliser les deux points ci-dessus. Citation : candide Comme quoi, ce n'est pas si évident de proposer les bons exercices d'apprentissage adaptés au public visé, c'est même un vrai boulot, ça s'appelle enseignant et meme les enseignants ne parviennent pas souvent à un résultat satisfaisant. La production d'un petit exo facile pour débutant peut nécessiter des heures de conception, mais tout dépend du degré de rigueur du concepteur. Ici, les exos sont des difficultés inégales, ils s'adressent à un public au savoir trop indéterminé, leur contenu hésite trop entre codage C et algorithmique. Et la rubrique n'a pas encore réussi à fidéliser un public substantiel de zéros, à la différence par exemple du vrai succès des sujets de Nanoc (qui sont en C++ mais c'est dommage qu'il n'y ait pas la meme rubrique mais en C). AMHA, si les zexos veulent cibler un public de débutants, il faut absolument limiter la difficulté de ces exercices, éviter toute question d'algorithmique pure, soigner les spécifications et surveiller la précision des énoncés --> plutôt d'accord, mais il serait bon de savoir le niveau du public qui participe ! pour ma part : débutant, 4 mois d'apprentissage du C @+ @+
Édité
le 22/12/2008 à 10:44:14
par zx-spectrum
|
||||||||||||||||||||||||||||||||||||
candide
|
# Posté le 22/12/2008 à 11:31:11 | ||||||||||||||||||||||||||||||||||||
"In C ode we trust"![]()
|
Citation : zx-spectrum
pour ma part : débutant, 4 mois d'apprentissage du C Ce n'est pas une information vraiment exploitable : ton niveau dépend de ton background, de ton mode d'apprentissage, de la durée quotidienne que tu y passes (moi, quand je me suis lancé dans le C, TOUT mon temps libre y passait), etc. Par exemple, tu as assimilé jusqu'à quel chapitre du cours officiel du sdz ?
|
||||||||||||||||||||||||||||||||||||
zerozeroun
|
# Posté le 22/12/2008 à 11:32:35 | ||||||||||||||||||||||||||||||||||||
Usager=Inconscient+Exigeant![]()
|
Bonjour,
Je viens vous proposer un exercice. Dans la prise en main de la SDL, je viens rajouter un exercice qui ne ferait pas une si mauvaise transition pour le TP du Sokoban: L'usage des tableau 2D. En effet, je vous propose de créer un damier par manipulation de surfaces. Une façon de faire ce code est d'utiliser le tableau à deux dimensions. Mon code ressemblerait à celui des dégradés proposés par M@téo21 dans son tutoriel... (je n'en dis pas plus, je pense que c'est largement suffisant!!!) Je vous proposerai ma solution mardi 23 Décembre!!! Ok??? Savez-vous pour quoi? C'est parce qu'il y a mieux comme cadeau pour vous à Noël!!! Cheers, Zerozeroun Le savoir est de beaucoup la portion la plus considérable du bonheur! |
||||||||||||||||||||||||||||||||||||
candide
|
# Posté le 22/12/2008 à 12:31:43 | ||||||||||||||||||||||||||||||||||||
"In C ode we trust"![]()
|
Citation : zerozeroun
Dans la prise en main de la SDL, A mon avis, dans cette rubrique, il faut totalement exclure tout ce qui n'est pas du C standard, en particulier la SDL.
|
||||||||||||||||||||||||||||||||||||
shareman
|
# Posté le 22/12/2008 à 13:44:27 | ||||||||||||||||||||||||||||||||||||
charlotte <3![]()
Ville : Mertzwiller |
Exactement, je m'auto-cite :
Citation : premier post aucune installation d'une bibliothèque non-standard ne sera nécessaire. De plus, pour l'utilisation des tableaux 2D, il y a zAddition.
Nouvel atelier : Codez votre propre petit préprocesseur pour langage C ! Citation : Woody Allen Si l'au-delà existe, c'est à quelle distance du centre ville, et c'est ouvert jusqu'à quelle heure ? |
||||||||||||||||||||||||||||||||||||
L'Ombre Blanche
|
# Posté le 22/12/2008 à 19:46:39 | ||||||||||||||||||||||||||||||||||||
Hommage à Ewilan.![]()
Ville : Lyon |
Et c'est giga beaucoup trop compliqué pour moi.
|
||||||||||||||||||||||||||||||||||||
candide
|
# Posté le 22/12/2008 à 19:51:29 | ||||||||||||||||||||||||||||||||||||
"In C ode we trust"![]()
|
Citation : L'Ombre Blanche
Et c'est giga beaucoup trop compliqué pour moi. ![]() Qu'est-ce qui est trop compliqué pour toi ? La NPI ? Où en es-tu dans ton apprentissage du C (quel chapitre dans le cours du sdz) ?
|
||||||||||||||||||||||||||||||||||||
L'Ombre Blanche
|
# Posté le 22/12/2008 à 20:27:09 | ||||||||||||||||||||||||||||||||||||
Hommage à Ewilan.![]()
Ville : Lyon |
J'ai buggé au cours de pointeurs, j'ai lu la suite, mais je ne l'ai pas assimilée faute de pratique.
Voici la raison de ma présence sur ce forum. |
||||||||||||||||||||||||||||||||||||
candide
|
# Posté le 23/12/2008 à 00:44:10 | ||||||||||||||||||||||||||||||||||||
"In C ode we trust"![]()
|
Citation : L'Ombre Blanche
J'ai buggé au cours de pointeurs j'ai beaucoup souffert aussi donc je compatis
|
||||||||||||||||||||||||||||||||||||
Floooder
|
# Posté le 23/12/2008 à 18:03:11 | ||||||||||||||||||||||||||||||||||||
|
|
Je pense que pour les pointeurs, l'ideal c'est de vraiment les voir comme des adresses machines, personnellement ca m'a beaucoup aidé
|
||||||||||||||||||||||||||||||||||||
zx-spectrum
|
# Posté le 28/12/2008 à 01:19:39 | ||||||||||||||||||||||||||||||||||||
http://www.worldofspectrum.org![]()
|
bonjour,
Citation : L'Ombre Blanche J'ai buggé au cours de pointeurs, j'ai lu la suite, mais je ne l'ai pas assimilée faute de pratique. Voici la raison de ma présence sur ce forum. -->je bugge moi même encore.....et je suis obligé de regarder mes petites fiches pour comprendre ce que je fais. --> des exos sur ce sujet je suis preneur.... j'en profite au passage pour vous souhaiter à tous de joyeuses fêtes de fin d'année ! @+
Édité
le 28/12/2008 à 01:23:57
par zx-spectrum
|
||||||||||||||||||||||||||||||||||||
shareman
|
# Posté le 03/01/2009 à 21:23:16 | ||||||||||||||||||||||||||||||||||||
charlotte <3![]()
Ville : Mertzwiller |
La correction est en cours de rédaction. Je manque malheureusement de temps mais elle sera publiée bientôt.
Nouvel atelier : Codez votre propre petit préprocesseur pour langage C ! Citation : Woody Allen Si l'au-delà existe, c'est à quelle distance du centre ville, et c'est ouvert jusqu'à quelle heure ? |
||||||||||||||||||||||||||||||||||||
$ViVi
|
# Posté le 10/01/2009 à 13:30:13 | ||||||||||||||||||||||||||||||||||||
|
|
Moi, c'est surtout les algorithmes qui me pose un problème
. Ce serait bien qu'il soient un peu plus simple.
70% des bugs sont entre le clavier et la chaise |
||||||||||||||||||||||||||||||||||||
shareman
|
# Posté le 11/01/2009 à 18:52:51 | ||||||||||||||||||||||||||||||||||||
charlotte <3![]()
Ville : Mertzwiller |
Correction pour zMathEnvois des résultats à réponse : 6 Voilà enfin la correction de l'exercice zMath avec un léger retard. J'ai été très occupé ces temps-ci. C'est parti. Pour mener à bien cet exercice, il fallait apprendre à manipuler les piles. Pour cette correction, je vais reprendre les fonctions mises à disposition par Octal, je les trouve très biens et il y a tout juste ce qu'il nous faut. Les inclusionsCommençons par le plus rapide : les inclusions. Réfléchissons ! Nous allons naturellement inclure stdio.h pour la saisie d'un calcul NPI et l'affichage du résultat. Ensuite, il nous faudra aussi inclure stdlib.h afin de pouvoir utiliser free et malloc, enfin, ces fonctions seront appelées dans les fonctions que je récupère du tuto d'Octal. Code : C
La manipulation des pilesBien entendu, il nous faudra récupérer la structure que propose Octal qui nous servira à construire une pile : Code : C
Ensuite, on va devoir pouvoir ajouter des éléments à la pile : Code : C
Enfin, l'opération inverse, c'est à dire le retrait d'un élément : Code : C
On va même récupérer la fonction pour détruire une pile dans sa totalité. Elle sera très utile dans le cas où l'expression entrée par l'utilisateur de zMath est invalide ce qui pourrait entrainer une fuite de mémoire. Voici la fonction en question : Code : C
La fonction zMath()Maintenant, nous abordons la partie algorithmique. Nous allons construire la fonction qui va nous permettre d'interpréter des expressions NPI et qui va nous retourner le résultat du calcul. Commençons par le prototype : la fonction renverra un entier et prendra en paramètre un pointeur sur la chaîne à évaluer ainsi que la taille de la chaîne (strlen() n'est pas une fonction toujours efficace). On obtient ceci : Code : C
Passons à la déclaration des variables. Il nous faudra bien sûr un objet de type Pile, une variable itérateur pour parcourir la chaîne (que nous allons nommer i ) et trois autres variables qui vont nous servir lors de nos calculs et, à la fin, pour renvoyez le résultat.Code : C
(Prenez l'habitude d'initialiser vos variables, c'est toujours bon) Ensuite, nous allons construire une boucle for afin d'itérer sur la chaîne à évaluer : Code : C
Le code que nous allons construire par la suite sera naturellement à placer à l'intérieur de la boucle. Que faire maintenant ? C'est bien simple : il faut tester la nature du caractère lu à chaque tour de boucle. Six cas de figures sont possibles :
Ce sera tout pour le contenu de la boucle for, vous pouvez donc la fermer ( ). Il nous reste à renvoyer le résultat. Mais pas si vite ! Il est possible, si l'utilisateur a voulu faire le malin, que la pile contient encore plus d'un élément. Il faut donc appeler la fonction pile_clear() avant de renvoyer le résultat. On obtient donc logiquement ceci :Code : C
Et voilà ! En résumé, on obtient le code complet de la fonction zMath() suivant : Secret (cliquez pour afficher) Code : C
On teste !Je vous donne donc un main pour tester tout cela :Code : C
Notez que j'utilise strlen() (oui, si l'on marque la fin de la chaîne à évaluer par '\0', strlen est fiable), incluez donc string.h si vous ne voulez pas vous retrouver avec un joli warning. En compilant ce code, on peut rapidement s'apercevoir qu'il fonctionne :Code : Console
Bien sûr, on peut facilement améliorer tout cela, par exemple en gérant l'opérateur '^' pour les puissances, ou en vérifiant la validité de l'expression NPI. Merci à tous les participants ! crys
Édité
le 14/01/2009 à 16:15:02
par shareman
Nouvel atelier : Codez votre propre petit préprocesseur pour langage C ! Citation : Woody Allen Si l'au-delà existe, c'est à quelle distance du centre ville, et c'est ouvert jusqu'à quelle heure ? |
||||||||||||||||||||||||||||||||||||
birdroun
|
# Posté le 11/01/2009 à 23:23:39 | ||||||||||||||||||||||||||||||||||||
|
|
Si sa c'est un "EXERCICES POUR DÉBUTANTS EN C" je croit que mon dico s'est gouré sur la definition du mot debutant ... .
|
||||||||||||||||||||||||||||||||||||
shareman
|
# Posté le 12/01/2009 à 00:33:37 | ||||||||||||||||||||||||||||||||||||
charlotte <3![]()
Ville : Mertzwiller |
En fait, l'exercice était plus simple que tu ne le crois. Mais, tu as raison. D'ailleur, je me suis juré de proposer des exercices plus simples et le prochain sera plus simple.
Nouvel atelier : Codez votre propre petit préprocesseur pour langage C ! Citation : Woody Allen Si l'au-delà existe, c'est à quelle distance du centre ville, et c'est ouvert jusqu'à quelle heure ? |
||||||||||||||||||||||||||||||||||||
May_Hop
|
# Posté le 13/01/2009 à 17:10:19 | ||||||||||||||||||||||||||||||||||||
![]()
|
Dommage que tu n'expliques pas comment gérer les nombres à plus d'un chiffre, mais peut-être tu as eu peur de mettre trop de notions d'algorithme.
Et sinon : Code : C
C'est moche et redondant ! La preuve, tu as même fait du copier/coller (cf commentaires). Mieux vaut faire une fonction spécifique pour ceci et surtout mettre : Code : C
seulement une fois en début de fonction et pas tout le long du code ... Tu peux aussi utiliser un switch qui est, je pense, plus approprié ici (après c'est aussi question de goût). Code : C
|
||||||||||||||||||||||||||||||||||||
shareman
|
# Posté le 13/01/2009 à 19:29:42 | ||||||||||||||||||||||||||||||||||||
charlotte <3![]()
Ville : Mertzwiller |
J'ai horreur des switch.
Pour l'idée de la factorisation du code, tu n'es pas sûr de tomber sur un opérateur, la solution serait alors de créer une deuxième fonction - comme tu l'as fait -, ce qui impliquerait au moins un test non-nécessaire. Je préfère ma méthode et entres-nous, je pense qu'ici, ce détail de répétition est largement négligeable (je ne suis pas un puriste du C). Et sinon, non, je n'ai rien copié-collé.Citation : May_Hop Dommage que tu n'expliques pas comment gérer les nombres à plus d'un chiffre, mais peut-être tu as eu peur de mettre trop de notions d'algorithme. Tout à fait. Déjà qu'on m'en veut de proposer des exercices comme celui-là. Pour gérer les nombres à plus d'un chiffre, je pense que le mieux est de commencer par lexer la chaîne avant traitement.
Édité
le 13/01/2009 à 19:35:54
par shareman
Nouvel atelier : Codez votre propre petit préprocesseur pour langage C ! Citation : Woody Allen Si l'au-delà existe, c'est à quelle distance du centre ville, et c'est ouvert jusqu'à quelle heure ? |
||||||||||||||||||||||||||||||||||||
May_Hop
|
# Posté le 13/01/2009 à 19:43:49 | ||||||||||||||||||||||||||||||||||||
![]()
|
Citation : crys'
Et sinon, non, je n'ai rien copié-collé. Citation : crys' Code : C
Idem pour la division : Code : C
A moins que tu es tapé 4 fois de suite de le commentaire multiplication ... Citation : crys' tu n'es pas sûr de tomber sur un opérateur Le default est là pour ça. A moins que tu parles d'autres choses. Code : C
Suffit de faire quelque chose dans le genre : Code : C
|
||||||||||||||||||||||||||||||||||||
shareman
|
# Posté le 13/01/2009 à 19:49:01 | ||||||||||||||||||||||||||||||||||||
charlotte <3![]()
Ville : Mertzwiller |
D'accord, mais alors dans le default, il faut rempiler ce que tu as dépilé au début. Moi, je préfère dépiler uniquement quand c'est nécessaire.
Citation : May_Hop A moins que tu es tapé 4 fois de suite de le commentaire multiplication ... Bien sûr que non. Quand je disais "je n'ai rien copié-collé", je parlais du copier-coller durant la rédaction du post. Or ce n'est pas le cas, c'est une inattention qui était déjà présente dans le main.c de mon code, à la base donc. J'édite et puis de toute façon, ça n'a pas grande importance. Je posterai le prochain exercice demain, et, je vous le promet, il sera simple !
Édité
le 13/01/2009 à 19:53:18
par shareman
Nouvel atelier : Codez votre propre petit préprocesseur pour langage C ! Citation : Woody Allen Si l'au-delà existe, c'est à quelle distance du centre ville, et c'est ouvert jusqu'à quelle heure ? |
||||||||||||||||||||||||||||||||||||
May_Hop
|
# Posté le 13/01/2009 à 21:06:32 | ||||||||||||||||||||||||||||||||||||
![]()
|
Citation : crys'
D'accord, mais alors dans le default, il faut rempiler ce que tu as dépilé au début. Moi, je préfère dépiler uniquement quand c'est nécessaire. Ah oui. Mais bon en même temps il suffit de rajouter une seule condition. La lisibilité du code serait largement mieux ! Quand tu fais un copier/coller dans un code, car c'est l'origine de cette répétition (sauf si erreur ), il faut se poser des questions et voir si on ne peut pas éviter ces répétitions.
|
||||||||||||||||||||||||||||||||||||
Retour au forum "Langage C" ou à la liste des forums
Le Site du Zéro vous proposera bientôt de nouveaux cours partant de Zéro dans d'autres domaines que l'informatique !

