Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Exercices] Venez vous entraîner !

Ce mois: Parseur de fonctions mathématiques

22 juillet 2008 à 12:33:51

Citation : Nanoc

Citation : Gollum

Citation : nono212

Regardes sur Wikipédia : pleins d'infos.
Sinon relis bien le post de Nanoc ^^ (merci Nanoc grâce à toi j'ai compris le BrainFuck, avant je connaissais ce langage mais je ne comprenais rien :p ).


Déjà fait au moins 5 fois à chaque fois mais je pédale dans la semoule o_O



Qu'est-ce que tu ne comprends pas ? (Cet exercice est plus difficile que les autres et c'est voulu. Les exercices de début de mois sont plus simples.)




Salut,
Je ne comprend pas le BF enfaite :euh:
J'ai regarder sur google si il y'avait une explication mais pas grand chose de concluant.
J'ai compris le principe: c'est un tampon de lecture qui ce déplace sur une "piste" ...

:)
  • Partager sur Facebook
  • Partager sur Twitter
22 juillet 2008 à 13:38:06

Ok mais quel point de l'explication n'est pas clair ? Tu n'as pas rien compris.

On ne te demande pas de programmer en BF (chose qui est vraiment difficile), mais d'écrire un programme qui lit le code-source BF et fait les instructions associées à chaque symbole du langage.
  • Partager sur Facebook
  • Partager sur Twitter
Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
22 juillet 2008 à 13:52:15

Je ne comprend pas comment des signes + etc... peuvent arriver a afficher "HELLO WORLD" :)

Si je ne comprend pas le fonctionnement complet du BF je suis à 100 km de faire l'interpreteur :)
  • Partager sur Facebook
  • Partager sur Twitter
22 juillet 2008 à 13:58:23

Tu as un tableau de caractère. Quand tu fais "+", ca augmente la valeur du caractère. Si tu l'augmente assez (au-delà de 65), tu arrives dans les caractères affichables "abc...". C'est tout. Y a rien de magique là-dedans.

Et je dirais qu'il n'y a même pas besoin de le savoir pour coder l'interpréteur.
  • Partager sur Facebook
  • Partager sur Twitter
Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
22 juillet 2008 à 14:13:57

Regarde les tables ASCII : quand tu affiches un caractère en BF, ça l'affiche par rapport à la table ASCII... (si l'octet pointé contient 100 et que tu l'affiches, ça affichera "d")
  • Partager sur Facebook
  • Partager sur Twitter
22 juillet 2008 à 14:26:17

@Nanoc, merci j'ai compris. Par contre qu'elle est la taille du tableau? et Au debut ou ce situe le tampon de lecture? Au debut du tableau?


@nono212, merci pour le lien
:)
  • Partager sur Facebook
  • Partager sur Twitter
22 juillet 2008 à 14:32:59

C'est expliqué dans la donnée. Le tableau fait 30'000 cases toutes à 0 au début. quand on sort du tableau d'un coté, on rentre de l'autre coté.

Le tampon de lecture se situe à la première case au début du tableau.
  • Partager sur Facebook
  • Partager sur Twitter
Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
22 juillet 2008 à 14:33:21

Lis le message quelques pages plus loin... (l'énoncé)
  • Partager sur Facebook
  • Partager sur Twitter
22 juillet 2008 à 15:27:44

Ok merci à vous deux je vais voir si j'arrive à quelques choses :)
  • Partager sur Facebook
  • Partager sur Twitter
24 juillet 2008 à 0:42:28

Salut à tous,

Je suis entrain de faire l'exercice sur les stats, j'arrive au bout mais pb :

lorsque je veux utiliser setw(int) le compilateur n'est pas ok :
cout << setw(47) << "Nombre de caractères total : " << charNV+charV << endl;

Citation : Pas de titre

error: ‘setw’ was not declared in this scope



j'ai bien déclaré iostream, d'ailleurs il ne me jette pas sur cout

je suis sous linux, pouvez-vous m'aider ???
  • Partager sur Facebook
  • Partager sur Twitter
24 juillet 2008 à 0:54:27

ce n'est pas plutôt "#include <iomanip>" ou #include <manip>" ?
  • Partager sur Facebook
  • Partager sur Twitter
24 juillet 2008 à 1:11:18

:waw: OUI

c'est #include <iomanip>

:honte: je n'avais pas vu ça fait 15mn que je cherchais ...

Merci, merci, merci
  • Partager sur Facebook
  • Partager sur Twitter
8 août 2008 à 11:01:45

Il n'y a plus personne ? :(
  • Partager sur Facebook
  • Partager sur Twitter
8 août 2008 à 14:43:19

on attends tous le 15 de ce mois :)
  • Partager sur Facebook
  • Partager sur Twitter
9 août 2008 à 2:31:15

C'est peut-être un peu hors sujet, mais je le dit quand même, au pire ça pourrait même donner des idées d'exercices à certains...

Je voulais savoir si c'était un bon exercice de gérer les chiffres significatifs ?
En fait, je me doute bien que c'est un bon exercice, mais selon vous, est-ce dans le même niveau de difficulté que l'interpréteur Brainfuck ?

Certains points me font croire que ce problème n'est pas si facile que ça (mais je me fait peut-être des illusions) et j'aimerais vos avis sur le sujet.

P.S.: Si vous préférez que j'ouvre un nouveau topic sur le forum C++, je peux le faire.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
9 août 2008 à 9:20:27

Nan, c'est bien plus simple à mon avais. ;)
  • Partager sur Facebook
  • Partager sur Twitter
9 août 2008 à 11:54:51

B'jour, je suis sur l'exercice du BrainF*ck...Et je voulais savoir si le pointeur était obligatoire et quel interet de ne pas passer directement par le tableau ?
  • Partager sur Facebook
  • Partager sur Twitter
9 août 2008 à 13:15:58

Tu représente la mémoire comme tu veux.
  • Partager sur Facebook
  • Partager sur Twitter
9 août 2008 à 14:16:25

Citation : Chlab_lak

Tu représente la mémoire comme tu veux.



Ha bha non, les consigne c'est un tableau de 30 000 char, un tableau c'est un tableau, donc pas comme tu veut. Et pareil pour le pointeur, un pointeur c'est un pointeur. Enfin c'est comme ca que j'ai lu les consignes, tu peut nous éclairer Nanoc ??
  • Partager sur Facebook
  • Partager sur Twitter
FaQ : Fr | En 1 2 | C++11 | Template || Blog : Deloget | C++|Boost--Dev | C++Next | GotW || Installer Boost
9 août 2008 à 14:20:21

un string contient un tableau de char en inerne, dans pour moi c'est la meme chose
  • Partager sur Facebook
  • Partager sur Twitter
9 août 2008 à 14:24:30

Un interpréteur se doit de respecter la norme du langage, mais à l'intérieur (l'implémentation) l'interpréteur fait comme il veut, du moment que ça respecte la norme (dans notre cas, un tableau de 30'000 octets). C'est comme la SL, il y a une norme, mais chaque distribution l'implémente à sa façon, du moment que ça respecte la norme.
  • Partager sur Facebook
  • Partager sur Twitter
9 août 2008 à 15:48:43

Alors obligé de passer par un pointeur ou je peux me servir directement du tableau qui lui même est déjà un multitude de pointeurs.....
  • Partager sur Facebook
  • Partager sur Twitter
9 août 2008 à 15:50:39

tu fais comme tu veux mais je vois mal comment tu va faire sans pointeur pour repérer la case courante !
  • Partager sur Facebook
  • Partager sur Twitter
9 août 2008 à 15:59:45

Un itérateur convient bien sûr. Mais pour moi c'est un "pointeur", il joue en tout cas le même rôle. Ici je mets dans le même panier pointeur, itérateur et variable entière pour le parcours du tableau (size_t, ...)

Sans un truc de ce genre c'est difficile !
  • Partager sur Facebook
  • Partager sur Twitter
9 août 2008 à 16:16:01

juste pour éviter les ambibuités:
- Un pointeur est un itérateur (trivial)
- Un itérateur n'est pas un pointeur

sinon moi j'ai utilisé un entier
  • Partager sur Facebook
  • Partager sur Twitter
9 août 2008 à 18:16:53

Les choix d'implémentations sont libres. La solution la plus simple, selon moi, est quand même le std::vector<char> et un pointeur. C'est aussi la solution la plus proche de l'esprit de la machine de Turing dont s'inspire le BF. Mais d'autres possibilités sont aussi correctes, du moment, que tous les programmes valides dans le modèle "normal" fonctionnent aussi sur votre interpréteur.
  • Partager sur Facebook
  • Partager sur Twitter
Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
10 août 2008 à 11:46:49

Bonjour, a quand les exercices Août ?

Svp regarder ma signature
  • Partager sur Facebook
  • Partager sur Twitter