Site Web
Programmation
Système alternatif
Modélisation 3D
Tutoriel du jour

| Page Précédente 1 2 3 ... 19 20 21 22 23 24 25 ... 36 37 38 39 Suivante | |||||||||||||||||||
| Auteur | Message | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 visiteurs sur ce sujet (1 membre et 1 Anonyme) : Nateags | |||||||||||||||||||
| Page Précédente 1 2 3 ... 19 20 21 22 23 24 25 ... 36 37 38 39 Suivante | |||||||||||||||||||
Mikechaos
|
# Posté le 20/08/2008 à 16:06:02 | ||||||||||||||||||
Zah![]()
études : Cégep Lionel-Groulx |
Reprise du dernier message de la page précédente :
Pour l'exemple du :Code : Console
Je ne vois pas d'autre(s) erreur(s) possible (à part son homonyme, ']')... Je voulais donc savoir s'il y avait d'autre(s) erreur(s) qu'on devait signaler? Citation : Einstein Il y a deux choses d'infinies. -L'univers -La bêtise humaine Bien que pour l'univers, rien n'est encore sûr. Citation : Socrate Le premier pas vers la connaissance, c'est d'admettre qu'on ne sait rien |
||||||||||||||||||
Nanoc
|
# Posté le 20/08/2008 à 16:09:16 | ||||||||||||||||||
Refuseur de tutoriels![]()
|
ah ! ok ! Je sais pas ...
A toi de voir si le langage permet d'autres erreurs ...<taille=tpetit> mon petit doigt me dit que la solution va bientôt sortir...</taille> Mes tutos : [C++] Notions avancées (suite du tuto de M@teo21) Autres : Exercices de C++ pour tous les niveaux ! --- Mots-clés du C++ |
||||||||||||||||||
Chlab_lak
|
# Posté le 20/08/2008 à 16:14:33 | ||||||||||||||||||
Tendou![]()
études : Ecole Supérieure de l'ETML |
Erreur:
---- Au niveau des paramètres du main. ---- De syntaxe dans le code: -------- Pas de code (Pseudo-erreur). -------- '[' ou ']' manquant(s). -------- Un ']' avant son '['. ---- Au niveau des entrées/sorties. Voilà j'en vois pas d'autres. Edit suite au post de Nanoc: Fallait pas que je le dise ?
Édité
le 20/08/2008 à 16:16:38
par Chlab_lak
Teeworlds: Joueur et ancien hébergeur sur la version 0.4.3 Developpez.com : FAQ C++ | Boost.org : La bibliothèque des programmeurs C++ | Siteduzero.com : Charte du forum C++ | Wikibooks.org : Tous les idiomes du C++ | Gotw.ca : Les archives des "Guru of the Week" | Crossbowlabs.com : Principes avancés de conception objet | H-deb : Site d'un professeur | Fclc++ : Un forum C++ avancé | Roguewave.com : Documentation C++ | Dinkumware.com : Documentation C++ |
||||||||||||||||||
Mikechaos
|
# Posté le 20/08/2008 à 16:50:30 | ||||||||||||||||||
Zah![]()
études : Cégep Lionel-Groulx |
Chlab_lak -> Je parlais vraiment du code BF en tant que telle. Donc, les erreurs se résument bien à uniquement au '[' et ']'.
Merci ![]() <édit> mon petit doigt me dit que la solution va bientôt sortir... Et qu'est-ce qui nous dit que ton petit doigt est bien renseigner?
Édité
le 20/08/2008 à 16:51:57
par Mikechaos
Citation : Einstein Il y a deux choses d'infinies. -L'univers -La bêtise humaine Bien que pour l'univers, rien n'est encore sûr. Citation : Socrate Le premier pas vers la connaissance, c'est d'admettre qu'on ne sait rien |
||||||||||||||||||
thesimsone
|
# Posté le 20/08/2008 à 17:18:48 | ||||||||||||||||||
A FOND LES ZEROS!![]()
|
encore une question: dans ton exemple vu que dans (2*3)*(10+1)*10 les parenthèses de 2*3 ne sont pas nécessaires :
Peut-on mettre autant de parenthèses que l'on veut dans la solution? même si non nécessaires? à oui et aussi : si la réponse demandée est 100 et que l'on a un 100 dans nos 6 nombres peut on considérer ce 100 lui-même comme une reponse où faut il faire une opération genre 100/1 pour que la réponse soit validable?
Édité
le 20/08/2008 à 17:28:53
par thesimsone
|
||||||||||||||||||
Nanoc
|
# Posté le 20/08/2008 à 19:10:50 | ||||||||||||||||||
Refuseur de tutoriels![]()
|
Tu peux mettre toutes les parenthèses inutiles que tu veux.
Pour ce qui est du deuxième point, on dira que oui, c'est une réponse. Il faudra cependendant considérer ce tirage comme non-valide pour le niveau 2. Mes tutos : [C++] Notions avancées (suite du tuto de M@teo21) Autres : Exercices de C++ pour tous les niveaux ! --- Mots-clés du C++ |
||||||||||||||||||
Reponse_Exercices
|
# Posté le 20/08/2008 à 19:48:50 | ||||||||||||||||||
|
|
et hop !
|
||||||||||||||||||
Nanoc
|
# Posté le 20/08/2008 à 20:00:26 | ||||||||||||||||||
Refuseur de tutoriels![]()
|
Solution du deuxième exercice du mois de juillet 2008Bonjour tout le monde ! Il est temps que je dévoile une solution pour le2ème exercice du mois de juillet . Vous avez été 25 (!) à m'envoyer une solution. Ce qui montre que l'exercice a eu beaucoup de succès. La plus part des solutions étaient correctes. Certaines avaient un problème avec les parenthèses imbriquées, le point difficile de l'exercice. D'autres étaient tellement complètes qu'elle ne pouvaient pas entrer dans ce post ! (Surtout qu'il existe un compilateur BF qui "pèse" moins de 200 octets, vous êtes loin du compte.) Lecture du fichierLa première étape du programme consistait à lire le fichier BrainFuck et à stocker son contenu dans une chaîne de caractère. Pourquoi ne pas laisser tout dans le fichier ? La raison est simple. Avec les [], le programme peut très bien sauter "en arrière", ce qui n'est pas pratique si l'on navique dans un fichier. Rien de très compliqué, on copie simplement ligne par ligne dans une std::string. Code : C++
On ne lit pas tant qu'on a pas atteint EOF. La méthode avec le getline est la seule méthode correcte. Mise en place de l'interpréteurA partir de là, il fallait mettre en place les élément importants de l'interpéteur, sa "mémoire vive" et son pointeur. Plusieurs choix sont possibles, personellement, j'ai choisi d'utiliser un std::vector<char> avec comme "pointeur" l'indice de la case. On pouvait tout aussi bien utiliser un tableau standard puisque la taille ne varie pas ou encore une string. Idem pour le "pointeur", on pouvait aussi utiliser un vrai pointeur ou un itérateur de la STL. Dans notre cas, nous avons: Code : C++
Interprétaion du codeLes choses intéressantes commencent ici. Pour interpreter le BF, il fallait parcourir la chaine de caractère d'un bout à l'autre en effectuant l'action associée. Pour ce faire, un switch est sans doute le plus approprié Code : C++
Les parenthèsesC'est sans doute le point le plus difficile de l'exercice. La première chose à faire était certainement de vérifier que l'expression est bien parenthésée. Compter le nombre de parenthèses ouvrantes et fermantes n'était pas suffisant. En effet, on peut écrire des expressions qui ont le bon nombre de paranthèses mais qui ne sont pas correctes. Par exemple: Le problème ensuite était qu'une parenthèse ne renvoit pas forcément à la parenthèse suivante du code source, des parenthèses peuvent êtres imbriquées, comme dans l'expression mathématique Il fallait donc trouver un moyen de repérer à quelle parenthèse sauter. Il y a deux grandes techniques pour faire cela. La première consiste à lire une fois tout le code source et de repérer les couples de parenthèses qui vont ensemble puis stocker les positions des couples dans un tableau. Cette solution n'est viable que si le code source n'est pas trop long. La deuxième est plus complexe mais fonctionnera toujours. Il s'agit d'utiliser une pile. Chaque fois qu'on rencontre une parenthèse ouvrante, on ajoute sa position au sommet de la pile. Lorsqu'on rencontre une parenthèse fermante, on saute à la position se trouvant sur le sommet de la pile et on supprime le sommet de la pile. Ce qui est bien c'est que la STL propose une structure de type pile dans l'entête "stack". Un code completPour le code source complet, je vous propose ce mois le code de MatteX qui a réalisé un programme très complet et utilisant beaucoup la STL. Il a également gérer pas mal d'excpetions et il indique le temps d'exécution du programme. Ce n'est pas forcément très facile quand on débute, mais il y a beaucoup de commentaires et n'hésitez pas à poser des questions si nécessaire. BrainFuck.h Secret (cliquez pour afficher) Code : C++ - BrainFuck.h
BrainFuck.cpp Secret (cliquez pour afficher) Code : C++ - BrainFuck.cpp
main.cpp Secret (cliquez pour afficher) Code : C++ - main.cpp
Une solution plus simpleVoici une solution plus simple, dans le sens où elle fait moins appel à la STL. C'est le code de Masthiks. Secret (cliquez pour afficher) Code : C++
Fichier brainfuck.h Code : C++
Fichier brainfuck.cxx Code : C++
Le code inconnuPour ceux qui n'y serait pas parvenu, le code mystère affichait la suite de Fibonacci. RemarquesQuelques remarques sur les codes reçus :
Bonne continuation à tous !
Édité
le 25/08/2008 à 19:40:21
par Nanoc
Mes tutos : [C++] Notions avancées (suite du tuto de M@teo21) Autres : Exercices de C++ pour tous les niveaux ! --- Mots-clés du C++ |
||||||||||||||||||
Freedom
|
# Posté le 20/08/2008 à 21:26:06 | ||||||||||||||||||
I can ... but I won'r![]()
|
Je trouve le code de Mattex extremement long, 300 lignes c'est beaucoup !! Sinon je préfère utiliser un switch comme tu le montre Nanoc qu'un gros if/else if qui n'ameliore pas la lisibilité. Et le code de Mattex tel quel compile pas chez moi, les lignes du genre " trow std::exeption("chaine"); " le compilo aime pas.
|
||||||||||||||||||
Bachir ElMagnifico
|
# Posté le 20/08/2008 à 23:01:23 | ||||||||||||||||||
|
|
|||||||||||||||||||
Mikechaos
|
# Posté le 21/08/2008 à 01:12:36 | ||||||||||||||||||
Zah![]()
études : Cégep Lionel-Groulx |
C'est vrai que le code est long. Mais il est mieux structurer que le mien (je n'ai absolument pas mis d'effort comme la date de remise était dépassé
)Sinon, j'ai utilisé exactement le code que Nanoc "suggère" dans son "pas-a-pas", à la différence que j'ai utilisé un tableau de char* et un pointeur. C'était un exercice très intéressant! (Encore un!). Sinon, je viens de finir celui des statistiques. Très simple, en effet. Par contre, pour moi (et je suis, à temps perdu, écrivain), un paragraphe = un caractère quelconque, suivit d'un ou plusieurs \n suivit d'un autre caractère. Par exemple : "Allo\n\n \n\nGa!" est pour moi, trois paragraphe. "Allo!\nÇa va?" équivaut à deux paragraphes. De plus, dans les outils que j'utilise normalement, le nombre de caractère total ne compte pas les retour à la ligne. Mais bref, ce sont des détails. Je me lance dans le petit nouveau! Citation : Einstein Il y a deux choses d'infinies. -L'univers -La bêtise humaine Bien que pour l'univers, rien n'est encore sûr. Citation : Socrate Le premier pas vers la connaissance, c'est d'admettre qu'on ne sait rien |
||||||||||||||||||
Shackdown
|
# Posté le 21/08/2008 à 10:49:44 | ||||||||||||||||||
|
Quand on veut, on peut
|
Salut,
Merci je vais voir la réponse pour voir si je comprend. Ce ne serait pas plutôt Suite de Fibonacci ?? et non "la suite de Ficonacci."
Partage tes répliques de prof ! Recherche webdesigner pour refonte graphique Réplique de Prof (rémuneration) --> mp Invitations pour lockerz et Google Wave --> Mp moi |
||||||||||||||||||
Nanoc
|
# Posté le 21/08/2008 à 10:56:11 | ||||||||||||||||||
Refuseur de tutoriels![]()
|
@Gollum: Corrigé. Merci.
@Bachir: C'est de l'humour... @Freedom: Pour le switch, je suis entièrement d'accord. Pour le reste, oui il fait 300 lignes, mais elles sont toutes utiles. Le code est documenté, commenté, correct et utilise bien la STL, ce que je voulais mettre en avant ici. Pour ce qui est des exceptions, j'ai corrigé de sorte que ça compile partout. Mes tutos : [C++] Notions avancées (suite du tuto de M@teo21) Autres : Exercices de C++ pour tous les niveaux ! --- Mots-clés du C++ |
||||||||||||||||||
Darkelfe
|
# Posté le 21/08/2008 à 13:18:40 | ||||||||||||||||||
Apprendre tout sur tout !![]()
Ville : Brignais |
C'est pas tellement un problème mais j'ai remarqué une "anomalie" dans le code de MatteX.
Le code suivant (qui ne doit pas fonctionner) passe très bien avec le programme de MatteX : Code : Autre
Si on observe le fonctionnement en détail, on voit que le programme se comporte comme si les deuxième ']' et '[' était inversé (il fait la boucle). Mon problème est que je n'arrive pas à modifier correctement la fonction de vérification pour que le programme renvoie une erreur dans ce cas-là. EDIT : Autant pour moi, je n'avais pas compris que lorsque on met "][" il doit se passe quelque chose (la condition d'entrée dans la boucle est inversé).
Édité
le 21/08/2008 à 14:27:05
par Darkelfe
|
||||||||||||||||||
Mikechaos
|
# Posté le 21/08/2008 à 16:45:14 | ||||||||||||||||||
Zah![]()
études : Cégep Lionel-Groulx |
Citation : Ga
EDIT : Autant pour moi, je n'avais pas compris que lorsque on met "][" il doit se passe quelque chose (la condition d'entrée dans la boucle est inversé). Moi j'ai gérer cela comme une erreur... <édit> Pour le dernier exo : Citation : Règle du jeu (Wikipédia) les nombres de 1 à 10 présents en double exemplaires et les nombres 25, 50, 75 et 100 présents en un seul exemplaire. Faut-il respecter cela?
Édité
le 21/08/2008 à 18:23:54
par Mikechaos
Citation : Einstein Il y a deux choses d'infinies. -L'univers -La bêtise humaine Bien que pour l'univers, rien n'est encore sûr. Citation : Socrate Le premier pas vers la connaissance, c'est d'admettre qu'on ne sait rien |
||||||||||||||||||
Freedom
|
# Posté le 21/08/2008 à 18:44:40 | ||||||||||||||||||
I can ... but I won'r![]()
|
Citation : Darkelfe
Code : Autre
EDIT : Autant pour moi, je n'avais pas compris que lorsque on met "][" il doit se passe quelque chose (la condition d'entrée dans la boucle est inversé). D'après les régles données par Nanoc (et par Wikipedia) ce code n'est pas viable. Quand l'interpréteur arrive sur le 2° ] il doit pouvoir retourner au [ correspondant, or ici il n'y en as pas, idem pour le 2° [. D'ailleur l'interpréteur de Mattex ne marche pas sur ce code (le programme plante). |
||||||||||||||||||
Zebra
|
# Posté le 22/08/2008 à 12:00:02 | ||||||||||||||||||
tick tick![]()
Ville : Meudon |
Bonjour, pour l'exercice sur les chiffre sur les chiffre, j'arrive à quelque chose pour le premier niveau avec une brute force, mais j'ai l'impression qu'elle se répète beaucoup : je m'explique : elle me trouve toujours la solutions, quand il y en a une, en moins de 4 seconde, mais si il y en a pas, il faut au moins 40s pour qu'elle fasse toute les possibilités...
Sinon, j'ai une question : mon programme gère les parenthèse, mais que su 1 "niveau"... Je m'explique : Il peut facilement faire Code : Console
mais pas Code : Console
Et sinon, mon programme ne fonctionne que si tous les chiffres sont utilisés, et ne gère pas la priorité des opérateurs (à part avec les parenthèse...). Est ce grave par rapport à l'énoncé? (Il faut savoir qu'il donne une solution valable dans 70% des cas...) Merci d'avance!
|
||||||||||||||||||
Nanoc
|
# Posté le 22/08/2008 à 12:11:01 | ||||||||||||||||||
Refuseur de tutoriels![]()
|
@ Freedom: En effet. Je n'ai pas été assez sélectif dans mes tests. Je vais corriger le code de MatteX en conséquence quand je rentre chez moi.
@Mikechaos: Non, ca date de l'époque où l'informatique n'existait pas. Et puis ça ne fait que peu de différence. @Zebra: On doit pouvoir faire plus court en brute-force. Pour ce qui est des parenthèses, c'est dommage parce que certains calculs nécessitent une profondeur de 2 (3 ?) parenthèses. C'est peut-être ça qui cause le 70%. Pour ce qui est de la priorité des opérateurs, oui c'est grave, si par exemple ton premier calcul ne donne pas le bon résultat (a+b*c). Mes tutos : [C++] Notions avancées (suite du tuto de M@teo21) Autres : Exercices de C++ pour tous les niveaux ! --- Mots-clés du C++ |
||||||||||||||||||
Dr.Tenma
|
# Posté le 22/08/2008 à 13:12:51 | ||||||||||||||||||
![]()
|
Me disait bien pourquoi je l'avais pas réussi.....Plein de notions que j'ai jamais vu -___- et qui ne sont pas présente sur le site.....
|
||||||||||||||||||
Mikechaos
|
# Posté le 22/08/2008 à 17:29:47 | ||||||||||||||||||
Zah![]()
études : Cégep Lionel-Groulx |
Citation : Dr.Tenma
Me disait bien pourquoi je l'avais pas réussi.....Plein de notions que j'ai jamais vu -___- et qui ne sont pas présente sur le site..... Il y avait moyen de le faire sans ces notions. La seule chose que j'ai utilisé que tu n'as peut-être jamais vu, c'est les stack. Mais il y avait moyen de s'arranger avec les vector, qui sont présents sur le site. Du côté des itérateurs, je ne sais plus s'ils sont présents, mais ils étaient tous remplaçable (par un simple indice, dans le cas de la boucle, et par un pointeur dans le cas des [] imbriqués). Bref, il était très faisable avec les les éléments présents sur le site .
Citation : Einstein Il y a deux choses d'infinies. -L'univers -La bêtise humaine Bien que pour l'univers, rien n'est encore sûr. Citation : Socrate Le premier pas vers la connaissance, c'est d'admettre qu'on ne sait rien |
||||||||||||||||||
Dr.Tenma
|
# Posté le 22/08/2008 à 18:12:08 | ||||||||||||||||||
![]()
|
Ah alors j'ai pas été cherché comme y faut =/
|
||||||||||||||||||
Nanoc
|
# Posté le 23/08/2008 à 10:23:14 | ||||||||||||||||||
Refuseur de tutoriels![]()
|
J'ai corrigé le code pour qu'il soit correct au niveau des parenthèses. J'ai également mit un switch à la place des if-else.
Au vu des remarques, voulez-vous que je publie une version plus simple du code ? Mes tutos : [C++] Notions avancées (suite du tuto de M@teo21) Autres : Exercices de C++ pour tous les niveaux ! --- Mots-clés du C++ |
||||||||||||||||||
Dr.Tenma
|
# Posté le 23/08/2008 à 11:08:35 | ||||||||||||||||||
![]()
|
|||||||||||||||||||
Darkelfe
|
# Posté le 23/08/2008 à 12:17:15 | ||||||||||||||||||
Apprendre tout sur tout !![]()
Ville : Brignais |
|||||||||||||||||||
leopard
|
# Posté le 23/08/2008 à 18:00:29 | ||||||||||||||||||
![]()
|
bijour !
juste une petite idée comme ça .... pourquoi ne pas afficher la difficulté de l'exercice dans le tableau d'affichage de la page1 ? ça pourrait être utile ! peut-être est il dur de juger combien un exercice est difficile mais je pense que ce serait bien, on pourrait organiser un soudage sur une trentaine de personne pour mettre une note sur 10 ..... voila, c'était l'idée à la c** du jour (de leopard) je poste dans la boite à idées ! @++ leoaprd mon site : http://sixelasite.free.fr/ les commentaires sont les bienvenus FreePremiumDomain, un nom de domaine gratuit ! |
||||||||||||||||||
Hertzien'
|
# Posté le 23/08/2008 à 18:23:34 | ||||||||||||||||||
C++, C(encore)++ fort !![]()
|
Puisque c'est une idée à la c**, je pense pas en effet qu'ils l'accepteront
Mon problème : [FFMpeg] Installation Notre équipe : C++ (au complet !) SuperTux : Le jeu qui innove ! SFML - Anim : Ma classe C++ pour gérer les sprites SFML animés |
||||||||||||||||||
leopard
|
# Posté le 23/08/2008 à 18:26:11 | ||||||||||||||||||
![]()
|
le but n'est pas qu'ils l'acceptent. si ils ne l'acceptent pas, les zéros peuvent juger et faire un topic pour ça ....
mon site : http://sixelasite.free.fr/ les commentaires sont les bienvenus FreePremiumDomain, un nom de domaine gratuit ! |
||||||||||||||||||
Mikechaos
|
# Posté le 23/08/2008 à 18:27:15 | ||||||||||||||||||
Zah![]()
études : Cégep Lionel-Groulx |
La notion de difficulté varie trop selon chaque personne.
Même si on prend deux personnes qui n'ont comme base que le tuto de M@téo, ils peuvent trouver un même exercice très facile ou très difficile selon ce que l'un ou l'autre a/n'a pas compris. Citation : Einstein Il y a deux choses d'infinies. -L'univers -La bêtise humaine Bien que pour l'univers, rien n'est encore sûr. Citation : Socrate Le premier pas vers la connaissance, c'est d'admettre qu'on ne sait rien |
||||||||||||||||||
leopard
|
# Posté le 23/08/2008 à 18:32:20 | ||||||||||||||||||
![]()
|
c'est pour ça qu'il faut faire voter au moins 30 personnes
mon site : http://sixelasite.free.fr/ les commentaires sont les bienvenus FreePremiumDomain, un nom de domaine gratuit ! |
||||||||||||||||||
Hertzien'
|
# Posté le 23/08/2008 à 18:51:48 | ||||||||||||||||||
C++, C(encore)++ fort !![]()
|
Par exemple ceux qui ont crée un os et qu'on leur demande de faire un IDE, ils disent que c'est facile. Un zéro par contre pourra dire que c'est difficile
Mon problème : [FFMpeg] Installation Notre équipe : C++ (au complet !) SuperTux : Le jeu qui innove ! SFML - Anim : Ma classe C++ pour gérer les sprites SFML animés |
||||||||||||||||||
leopard
|
# Posté le 23/08/2008 à 19:00:35 | ||||||||||||||||||
![]()
|
bah ouai mais en attendant que tu trouves 30 mecs qui ont chacun codé 1 OS et que tu les fasses voter sur le sdz pour un exercice de nanoc, je vais sur la lune en brasse et je reviens ok ?
![]() ok il y aura des différence au niveau des votes mais globalement, les zéros qui participent aux exercices de nanoc on le même niveau .... (ou tentent de l'avoir comme moi )leopard mon site : http://sixelasite.free.fr/ les commentaires sont les bienvenus FreePremiumDomain, un nom de domaine gratuit ! |
||||||||||||||||||
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 !

