
| Page Précédente 1 2 3 ... 10 11 12 13 14 15 16 ... 50 51 52 53 Suivante | |||||||||
| Auteur | Message | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 visiteur sur ce sujet (1 Anonyme) | |||||||||
| Page Précédente 1 2 3 ... 10 11 12 13 14 15 16 ... 50 51 52 53 Suivante | |||||||||
Floooder
|
# Posté le 04/12/2008 à 22:06:26 | ||||||||
|
|
Reprise du dernier message de la page précédente :
Effectivement ce n'est pas ce qui etait demandé...Maintenant si c'est seulement la première lettre de chaque phrase, je ferrai quelque chose comme ca : Code : C
Édité
le 04/12/2008 à 22:11:25
par Floooder
|
||||||||
YoruNoHikage
|
# Posté le 06/12/2008 à 18:08:46 | ||||||||
Twitter est mon passe-temps :)![]()
|
j'ai beau relire, rerelire etc ... le cours sur les fonctions et les pointeurs mais j'ai du mal à piger si vous pouviez faire quelques exos sur ça et une petite aide je vous serais tres reconnaissant
|
||||||||
stallaf
|
# Posté le 06/12/2008 à 18:50:03 | ||||||||
intuitu personae![]()
|
Bonjour,
Citation : Crys Je posterais la correction de zAddition samedi normalement. Plus beaucoup de temps avant l'élection de Miss France. Mais bon, il te reste un peu de temps, enfin... normalement. Gourou, tu deviendras... |
||||||||
shareman
|
# Posté le 06/12/2008 à 20:07:00 | ||||||||
charlotte <3![]()
Ville : Mertzwiller |
C'est vrai, cela ne se fait pas de dire qu'on va faire ça à tel moment alors qu'on est pas sûr et puis finalement on ne le fait pas. Vraiment désolé mais manque de temps, je posterais cette correction demain ou mercredi au plus tard !
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 ? |
||||||||
shareman
|
# Posté le 07/12/2008 à 14:48:38 | ||||||||
charlotte <3![]()
Ville : Mertzwiller |
Correction pour zAdditionEnvois des résultats à réponse : 5 Vu le nombre d'envois de code, je suppose que cet exercice était un peu trop difficile, ou du moins, vous pensiez qu'il l'était ! En réalité, il n'en est rien et c'était surtout un exercice d'algorithme, ce qui implique qu'il fallait commencer par une partie 'réflexion'. Pour la correction, je vais faire de même. Étudions ensemble le problème ! Si vous ne commencez pas par concevoir avant de coder, vous serez très vite perdus ! L'algorithmeLa concaténation de matrices est une chose relativement simple, courante mais qui mérite réflexion, surtout quand on débute en programmation. Supposons que je dispose de deux matrices Nous aimerions les concaténer afin d'obtenir une nouvelle matrice Le nombre de colonnes de Notez le contenu de Simple, non ? Le codeParmi les codes et explications envoyés à réponse, tous suivant à peu de choses près le même principe, j'ai retenu le code d'Eusebus, avec les explications qui vont avec. Il n'y rien à dire, le code est structuré, clair, compréhensible, compile, et laisse à l'utilisateur de choix des dimensions des matrices Secret (cliquez pour afficher) Citation : Eusebus Salut ![]() Voici mon code, les explications suivent derrière : main.cCode : C
main.hCode : C
ExplicationsEn fait j'ai fait un peu plus que ce que l'exercice proposait, j'avais envie de m'amuser un peu. Je programme sous linux, ce qui explique que j'utilise assez souvent (et donc ici) les arguments du main. Mon programme va générer des matrices (contenant des chiffres entre 0 et 9) de manière aléatoire, en fonction du nombre de lignes et de colonnes que l'on demande à l'appel du programme. Pour me simplifier la vie, j'ai défini une structure assez simple contenant le nombre de lignes, de colonnes et la matrice en elle-même. Cela me permet d'éviter d'avoir des fonctions avec un nombre trop important d'arguments. Donc, trois fonctions, une pour initialiser les deux matrices à concaténer, une pour les afficher (le copier/coller de code, c'est moche => fonction), et la fonction zaddition à proprement parler. L'utilisation de atoi ne fait pas planter le programme si l'utilisateur de fournit pas un nombre en argument au main, puisque dans ce cas atoi renvoie 0. J'ai décidé de ne pas me prendre la tête avec la gestion des erreurs (du style "l'argument rentré n'est pas correct", etc...), mais il faudrait le faire. Ah la flemme... Sinon mon code compile sans warnings avec -W -Wall -ansi -pedantic et fonctionne parfaitement chez moi, j'ai testé avec différents arguments. Un exemple : Code : Console
Bonne fin de journée ! ![]() Encore un grand merci à tout ceux qui ont participé à cet exercice ! crys PS : Le prochain pour bientôt.
Édité
le 07/12/2008 à 17:02:53
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 ? |
||||||||
python-guy
|
# Posté le 07/12/2008 à 16:23:02 | ||||||||
Vive archLinux.![]()
|
|||||||||
shareman
|
# Posté le 07/12/2008 à 16:37:07 | ||||||||
charlotte <3![]()
Ville : Mertzwiller |
Mouarf !
J'avais la tête tellement concentré sur l'algorithmique que je n'ai même pas vu ça ! Corrigé !
Édité
le 07/12/2008 à 16:43:19
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 ? |
||||||||
candide
|
# Posté le 07/12/2008 à 16:46:39 | ||||||||
"In C ode we trust"![]()
|
Citation : crys'
Et enfin, cerise sur le gâteau, on doit lancer l'exécutable à l'aide de l'invite de commande en précisant les dimensions souhaitées en paramètre du main (il y a un tutoriel non-officiel qui traite ce sujet -> à lire !). La majorité des programmes 'de pros' en mode console suivent ce principe. Le problème c'est qu'on ne pose la cerise que lorsque le gâteau est prêt. Or c'est loin d'etre le cas, il y a plusieurs insuffisances du point de vue du langage C : -- retours d'allocation non vérifiés, -- pas de libérations. Sinon, il est curieux que la fonction zaddition() reçoive des paramètres de type différents : pourquoi tantot de type matrice_t, tantot pointeur sur matrice_t.
|
||||||||
shareman
|
# Posté le 07/12/2008 à 16:52:12 | ||||||||
charlotte <3![]()
Ville : Mertzwiller |
Pour la libération de la mémoire, j'ai corrigé, cela ne se reproduira plus.
Pour ce qui est de la fonction zaddition, demande à Eusebus pourquoi il a préféré passer par des instances de matrice_t au lieu de pointeurs pour mat1 et mat2.
Édité
le 07/12/2008 à 16:57:13
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 ? |
||||||||
Eusebus
|
# Posté le 07/12/2008 à 16:55:44 | ||||||||
Geek mangeur de cookies![]()
|
En effet j'ai fait ça un peu rapidement, je voulais y apporter quelques correctifs.
Il serait en effet plus propre de vérifier les allocations, j'avoue avoir eu un peu la flemme, mais j'ai estimé que l'exercice étant la fonction zaddition, je pouvais être un peu incomplet ailleurs (c'est mal je sais mais comme précisé c'était fait assez rapidement). Sinon, pour zaddition, en effet c'est une erreur de ma part, étant donné que par principe j'envoie toujours des pointeurs de structures à mes fonctions, mea culpa. Je ne sais pas ce qui m'a pris Je vais essayer de reposter un code plus propre d'ici 15 minutes. Edit : bon en fait il a corrigé, resterait plus qu'à check les retour des malloc...
Édité
le 07/12/2008 à 17:07:44
par Eusebus
"Ce qui est affirmé sans preuve peut être nié sans preuve" Euclide "Tout ensemble inductif admet au moins un élément maximal." Lemme de Zorn |
||||||||
shareman
|
# Posté le 07/12/2008 à 17:00:10 | ||||||||
charlotte <3![]()
Ville : Mertzwiller |
Le plus grave, c'est que moi je n'ai rien remarqué.
EDIT : c'est bon, tout est corrigé. Mercredi : exercice suivant ! Au menu : Pile, algorithmique, chaîne !
Édité
le 07/12/2008 à 17:05:17
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 ? |
||||||||
zx-spectrum
|
# Posté le 08/12/2008 à 07:48:22 | ||||||||
http://www.worldofspectrum.org![]()
|
merci pour la correction et les petits plus
@+ Post scriptum : j'ai essaye ton code et petit probleme : Code : C
sur cette ligne j'ai une erreur :'allocation undeclared' (first use in this function) De plus, j'ai vu sur differents post que le meilleur moyen de faire une allocation serait de faire comme j'ai fait ici: Secret (cliquez pour afficher) Code : C
Par contre je sais que mon code est loin d'être optimisé, mais me semble plus facile à lire pour les débutants (je n'utilise aucune contraction permise du langage, j'ai un peu de mal avec pour ma part, et il faut que je relise le cours de mateo) ! Bon si quelqu'un peut me dire si j'ai tout bien fait , notamment dans mes controles 'd erreurs d'allocation' et dans ma liberation de la memoire pour les "free" ! Merci
Édité
le 09/12/2008 à 21:51:03
par zx-spectrum
|
||||||||
zx-spectrum
|
# Posté le 09/12/2008 à 22:00:09 | ||||||||
http://www.worldofspectrum.org![]()
|
UP
|
||||||||
Eusebus
|
# Posté le 09/12/2008 à 22:27:15 | ||||||||
Geek mangeur de cookies![]()
|
Il a oublié de mettre "Allocation pour les lignes" en commentaire
Mets-le entre /* */ et ça devrait aller. ![]() En ce qui concerne l'allocation, c'est vrai que j'aurais pu écrire (pour la fonction init par exemple) Code : C
La première manière comme la seconde sont correctes, après la 2e est en effet à préférer pour des questions de maintenance et de facilité de modification (si j'veux par exemple que val soit de type (float **) ) ça évite d'avoir à farfouiller partout dans le code pour modifier les alloc.
Édité
le 09/12/2008 à 22:35:39
par Eusebus
"Ce qui est affirmé sans preuve peut être nié sans preuve" Euclide "Tout ensemble inductif admet au moins un élément maximal." Lemme de Zorn |
||||||||
zx-spectrum
|
# Posté le 09/12/2008 à 22:33:39 | ||||||||
http://www.worldofspectrum.org![]()
|
j'ai cherche midi à 14 h alors que la solution etait plus simple
l'oubli des // pour les commentaires merci, je vais pouvoir etudier ton code @+ |
||||||||
candide
|
# Posté le 09/12/2008 à 23:04:52 | ||||||||
"In C ode we trust"![]()
|
Citation : zx-spectrum
Code : C
sur cette ligne j'ai une erreur :'allocation undeclared' (first use in this function) Oui, il y a oublié les slash de commentaires. Citation : zx-spectrum De plus, j'ai vu sur differents post que le meilleur moyen de faire une allocation serait de faire comme j'ai fait ici: OK mais on n'est pas toujours obligé de ne pas faire simple. Et pour être encore plus direct je dirais qu'il ne faut pas confondre la cerise et le gâteau et donc savoir distinguer l'accessoire de l'essentiel et hiérarchiser les nécessités. Ce que je veux dire c'est qu'il assez grotesque de veiller à des détails et négliger (ou ne pas vérifier) des éléments importants. Citation : zx-spectrum Par contre je sais que mon code est loin d'être optimisé, Je ne sais pas pourquoi sur ce forum beaucoup d'intervenants emploient le terme "optimiser" ou ses dérivés à tort et à travers. Citation : zx-spectrum Bon si quelqu'un peut me dire si j'ai tout bien fait , notamment dans mes controles 'd erreurs d'allocation' et bien justement : Citation : zx-spectrum Code : C
Tu utilises tab1 (ligne 18) et tu vérifies APRÈS (ligne 23) si l'allocation a réussi. Dans la meme ligne (ligne 18), tu as privilégié un détail (sizeof*tab au lieu d'un tout bête sizeof(int *) ) et tu a as négligé un point essentiel (la vérification opportune du retour). Au passage, il n'est pas usuel de capitaliser l'initiale d'une variable. Sinon, une question qui n'a pas été évoqué dans ce post et qui a sa place me semble-t-il : qui doit se charger d'allouer l'espace nécessaire pour le tableau concaténé. Si on regarde comment la bibliothèque standard (fonction strcat) règle ce type de problème, on voit que ce n'est pas la fonction qui concatène (ici : zaddition) qui alloue et perso, je trouve cette solution plus claire : une fonction = un boulot bien précis. En plus ça rend le code plus autonome, plus accessible au débutant (l'allocation dynamique suppose connues pas mal de choses pour etre entamée). Au passage je note que le code proposé ne donne pas d'exemple de concaténation de tableaux statiques (ce type d'exemple peut être souhaité par un débutant).
|
||||||||
zx-spectrum
|
# Posté le 09/12/2008 à 23:38:51 | ||||||||
http://www.worldofspectrum.org![]()
|
Merci Candide pour tes remarques constructives, je vais revoir ma copie pour mes "malloc" et je reposterai ma nouvelle solution obtenu
Je suis d'accord avec toi sur le fait, qu'une solution avec des tableaux statiques aurait été plus simple pour les débutants, car j'ai moi même des difficultées à déchiffrer le code d'Eusebus Il serait bien que d'autres débutants comme moi se manifestent pour savoir à quel niveau ils se situent, et ne pas avoir peur de dire ce qu'ils en pensent ! Je constate que peu de personnes postent leur code ce qui m'amène a dire : - soit ils comprennent pas grand chose, a ce qu'on fait ici - soit cela ne les intéressent pas. Le but de se propos : est bien sûr d'aider Chys à choisir ses sujets, et de preciser peut être une méthode à employer. En tout cas je remercie tous les intervenants, et j'encourage à continuer. @+ |
||||||||
shareman
|
# Posté le 10/12/2008 à 18:06:19 | ||||||||
charlotte <3![]()
Ville : Mertzwiller |
Titre : zMath
Mois : décembre Sujet : algorithmique, pile ObjectifL'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. Il existe un tutoriel non-officiel sur ce site traitant des piles (structure de données), vous allez devoir le lire pour mener à bien cet exercice. Mais voyons cela de plus près ! La notation polonaise inverseQu'est-ce que cette notation ? En réalité, c'est tout simple, la NPI est une notation de calculs mathématiques sous une autre forme que celle que nous avons l'habitude d'utiliser. Dans cette notation, il n'existe pas de parenthèses. Pour vous expliquer concrètement de quoi il s'agit, voici une expression mathématique simple écrite ordinairement que je vais ensuite convertir en utilisant la NPI : Exprimé en NPI, on obient : Comment ai-je fait ? En réalité, le but de la NPI est de pouvoir lire le calcul à partir du début puis, dés que l'on rencontre un opérateur ( Calcul NPI : Pourquoi utiliser les piles ?La pile est une structure de données que la majorité des programmeurs considère comme adaptée à l'évaluation d'expressions mathématiques en NPI. La principe de la pile et de pouvoir facilement ajouter des valeurs au sommet de la pile et de les récupérer en temps voulu à partir du sommet (LIFO : last in, first out). Imaginons que nous avons un calcul NPI à lire, nous allons lire l'expression et pour chaque nombre rencontré, nous allons l'ajouter au sommet de la pile (opération couramment nommée 'push'). Dés que l'on rencontre un opérateur, on récupère les deux dernières valeurs lues en les retirant de la pile ('pop') et en ajoutant à la pile la valeur qui résulte du calcul de ses deux valeurs par l'opérateur. En gros, pour ceux qui se sentent à l'aise, on aurait aussi pu écrire ou : Un exemple concretÀ présent, je vais vous montrer ce que doit pouvoir réaliser votre algorithme en utilisant les piles. Supposons que je veuille résoudre le calcul Code : Autre
Où récupérer le calcul ? Quelles valeurs autorisées ?Pour la première question, je vous laisse le choix : soit vous récupérez l'expression mathématique en NPI à partir d'un fichier et vous afficher le résultat en console, soit on demande à l'utilisateur d'entrer cette expression directement par le clavier lors de l'exécution du programme. 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. Un exemple de programme pourrait être : Code : Console
Pour les plus férus d'algorithmique, vous êtes libres d'implémenter la lecture et la récupération de nombre à plus d'un chiffre ! Je corrigerais cet exercice dans plus ou moins trois semaines (on m'a demandé de laisser un peu plus de temps cette fois). Merci pour votre (future) participation ! crys
Édité
le 10/12/2008 à 20:03:33
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 ? |
||||||||
python-guy
|
# Posté le 10/12/2008 à 18:56:31 | ||||||||
Vive archLinux.![]()
|
|||||||||
shareman
|
# Posté le 10/12/2008 à 19:22:38 | ||||||||
charlotte <3![]()
Ville : Mertzwiller |
Pas vraiment, la NPI est une notation souvent utilisée en programmation ou qui a souvent été utilisée, un exercice de ce genre est typique.
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 ? |
||||||||
zx-spectrum
|
# Posté le 10/12/2008 à 19:35:36 | ||||||||
http://www.worldofspectrum.org![]()
|
bonjour chrys,
peut on avoir un joker supplémentaire : une semaine de plus pour pouvoir faire l'exo. Pour ma part je vais avoir besoin d'un peu plus de temps, déja pour comprendre le cours que j'ai pas encore vu @+ |
||||||||
shareman
|
# Posté le 10/12/2008 à 20:00:47 | ||||||||
charlotte <3![]()
Ville : Mertzwiller |
Mais pas de soucis ! Même si il faut y passer un mois, l'important, c'est que vous compreniez et que vous réussissiez tout en apprenant. Vous avez donc à peu près 3 semaines.
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 11/12/2008 à 02:10:04 | ||||||||
![]()
|
Bonjour,
Je me permet de poster le pseudo-code de crys' de façon plus lisible selon moi, car on "visualise" mieux la pile: Code : Autre
Et puis : lien vers le tuto sur les piles et les files. |
||||||||
zx-spectrum
|
# Posté le 11/12/2008 à 06:18:31 | ||||||||
http://www.worldofspectrum.org![]()
|
Merci Yoch pour ce complément d'info
@+ Ps: tu m'as fait gagné 24 H
|
||||||||
yoch
|
# Posté le 11/12/2008 à 20:40:46 | ||||||||
![]()
|
Citation : crys'
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. Je propose a ceux qui voudraient améliorer leur calculette NPI sans pour autant se préoccuper de cette deuxième question algorithmique d'utiliser la fonction strtol(), particulièrement adaptée. Autre idée d'amélioration, pour ceux qui veulent : que le programme signale si erreur dans l'expression mathématique d'entrée. |
||||||||
réponse
|
# Posté le 11/12/2008 à 22:35:06 | ||||||||
S'exercer, c'est la clef !![]()
|
Excellente idée.
Je me charge de la récéption des réponses proposées par les zér0s concernant ce topic d'exercices pour débutants en C ! |
||||||||
yoch
|
# Posté le 12/12/2008 à 07:24:14 | ||||||||
![]()
|
@ Flooder : T'as réfléchi une seconde avant d'écrire ça ?
Citation : Flooder Code : C
Par ailleurs, ton code pour zStrcap est inutilement compliqué (a part le fait qu'il ne compilait pas pour cause de fautes de frappe) : Code : C
Édité
le 12/12/2008 à 07:53:11
par yoch
|
||||||||
Floooder
|
# Posté le 12/12/2008 à 14:16:50 | ||||||||
|
|
Citation
@ Flooder : T'as réfléchi une seconde avant d'écrire ça ? Effectivement, j'ai bug
|
||||||||
L'Ombre Blanche
|
# Posté le 19/12/2008 à 21:37:24 | ||||||||
Hommage à Ewilan.![]()
Ville : Lyon |
Hello, voici mon premier post.
Et je souhaiterais pouvoir participer à ce topic, Or, je ne peux pas, a cause de mon niveau ( en effet très bas .).Donc, si il y aurais possibilité de faire de genres de TP sur les cours aux alentours du cours sur les pointeurs, s'il vous plaît, je vous en serait reconnaissant. Donc voilà, désolé si je chamboule un peu tout, mais bon, là je patauge dans la semoule.
|
||||||||
shareman
|
# Posté le 19/12/2008 à 22:28:21 | ||||||||
charlotte <3![]()
Ville : Mertzwiller |
Salut,
Je tenterais de faire un peu plus simple pour le prochain exercice mais voici ce que je te conseille d'ici là : continue à lire les chapitres du cours de M@teo21 en faisant sérieusement tous les TPs et en allant te documenter si nécessaire sur d'autres sites.
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 ? |
||||||||
candide
|
# Posté le 20/12/2008 à 16:37:17 | ||||||||
"In C ode we trust"![]()
|
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.
|
||||||||
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 !

