TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : Précédente 1 2 3 ... 21 22 23 24 25 26 27 28 29 Suivante | |||
| Auteur | Message | ||
|---|---|---|---|
| 1 visiteur sur ce sujet (1 anonyme) | |||
| Page : Précédente 1 2 3 ... 21 22 23 24 25 26 27 28 29 Suivante | |||
Nanoc
|
# Posté le 30/08/2008 à 23:04:15 | ||
Apprenez à utiliser la STL !!![]() Groupe : Membres |
Reprise du dernier message de la page précédente :
Solution du mois de juillet 2008(Enfin !)Avec un peu de retard, je vous présente la solution de l'exercice du mois de juillet sur les statistiques des fichiers. J'ai reçu une dizaine de réponses et j'ai finalement retenu celle de Leilo. J'ai d'ailleurs reçu une explication complète du programme que je vous donne tel-quel ici. J'ai retenu ce code parce qu'il utilise les exceptions, les manipulateurs de flux et que la lecture du fichier se fait de manière correcte. C'est un excellent exemple, il manque juste un peu de commentaires à mon goût. Solution complèteCher Nanoc, Voici mon code pour l'exercice sur les "Statistiques sur des fichiers", La grande difficulté de cette exercice était l'algo de calcul des mots et des paragraphes. En effet pour ma part mon algo se contente de compter les blancs entre chaque mots et d'en déduire le nombre de mots, par exemple si dans une phrases il y a 3 blancs mot1 blanc mot2 blanc mot3 blanc mot4 Ici trois blanc donc quatre mots. Néanmoins il faut ignorer tout blanc se situant en début ou fin de ligne, là se situé une première dificulté. En outre il ne suffisait pas de compter le nombre d'espaces ou de tabulations pour avoir le nombre de blancs, un blanc peut aussi être une suite d'espaces ou de tabulations, là se situe la seconde dificulté, Enfin il fallait reitérer le même procéder pour compter les paragraphes mais cette fois ci avec les '\n' paragraphe 1 '\n' paragraphe 2 '\n' paragraphe 3 Deux ' \n ' donc trois paragraphes et on se confronte encore au même difficultés de '\n' situés au debut ou/et à la fin De même 2 paragraphes peuvent être séparés par plusieurs '\n' PS: j'ai voulu utiliser un maximum la STL et ai donc pensé utiliser le predicat isspace() de <cctype> mais pour certain caractères tel que ' à ' la fonction renvoyé true alors qu'elle ne devait pas , j'ai donc implementé mon propre prédicat IsSpace() Remarque de Nanoc: Oui std::isspace() est une excellente idée, mais il ne marche qu'avec les caractères ASCII standards c'est-à-dire sans les accents. PS2: j'ai volontairement tout placé dans un fichier pour me simplifier la vie ![]() J'espère ne pas trop t'avoir dégouté avec mes explications mais je tenai à t'en faire part dans le cas ou te ne comprendrai pas mon algo voila Bonne lecture Code : C++
Remarques sur les codes reçusEn fait, je n'ai pas grand chose à dire ce mois, les codes étaient globalement très bien. Les points suivants sont néanmoins à soulever:
Il ne sert à rien d'envoyer votre code si il ne fonctionne pas ou pire, si il ne compile pas. Merci à tous ceux qui ont participé. Et bonne chance avec l'exercice suivant !
Édité
le 30/08/2008 à 23:06:12
par Nanoc
Exercices de C++ pour tous les niveaux ! Mes tutos: Tri de Shell --- [C++] Manipulateurs de flux --- [C++] Notions avancées (suite du cours de M@teo21) |
||
lmghs
|
# Posté le 30/08/2008 à 23:58:42 | ||
|
Groupe : Membres |
Si je puis me permettre,
- préférez toujours les exceptions dérivant de std::exception (ici : std::runtime_error est très bien) - pour le isspace, allez le chercher dans la partie C++ et non la partie C -> <locale>, afin de passer la locale de la langue courante à std::isspace<>() -- j'avoue, je n'ai pas testé. Pour le ispace du C, il faut avoir changé la locale globale si je ne m'abuse. NB: dans l'absolu, il faudrait jouer avec ispunct(...)||ispace(...) - ou tout simplement, convertissez la ligne extraite en flux (std::istringstream), et utilisez ensuite l'opérateur d'extraction (op>>()) pour extraire chaque mot. - ces fonctions me paraisse faire trop de choses. Il ne faut pas avoir peur de les découper. |
||
Dr.Tenma
|
# Posté le 01/09/2008 à 15:00:04 | ||
![]() Groupe : Membres |
Arf j'avais carrément oublié cet exercice, y me manquait les paragraphes =/
Puis moi j'ai un code plus court http://pastebin.com/d4e1804d8
Quand le chat n'est pas là les souris sont sous morphine |
||
lmghs
|
# Posté le 01/09/2008 à 15:54:24 | ||
|
Groupe : Membres |
Ta détection des paragraphes n'est pas bonne -- tu confonds "\\n" et "\n" qui sont tout deux inexploitables en fait, vu que tu extrais avec std::getline.
Un nouveau paragraphe commence sur le premier \S après un ^\s*$ (en notation expression régulière, ce qui n'est qu'un détail) Pourquoi passer par un char* ? std::string fournit un opérateur [] (même si tu n'en as pas besoin) On NE fait JAMAIS de lecture sur eof.
Édité
le 01/09/2008 à 15:55:08
par lmghs
|
||
Hertzien'
|
# Posté le 02/09/2008 à 10:02:10 | ||
C++, C(encore)++ fort !![]() Groupe : Membres |
J'ai une question que je me suis posé toujours, pourquoi on lis jamais sur eof ?
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 |
||
lmghs
|
# Posté le 02/09/2008 à 10:34:05 | ||
|
Groupe : Membres |
Réponse dans la FAQ C++ de développez.
|
||
icare14
|
# Posté le 09/09/2008 à 21:25:34 | ||
![]() Groupe : Membres |
je me demandais si il n'était pas possible de mettre les exos et les réponses dans un sujet à part de telle manière que pour trouver ou refaire des exos on aie pas à parcourir les 24 pages actuellement et les futurs 150 pages qui vont venir
voilà c'est tout sinon bon courage à nanoc qui fait unsuper boulot Citation : Pas de titre Le français est un langage de communication pas si difficile à coder de ça ! |
||
BoudBoulMan
|
# Posté le 09/09/2008 à 21:59:03 | ||
Saucisse transgénique![]() Groupe : Membres |
Nanoc édite régulièrement le 1er post pour y mettre les liens vers les posts de chaque énoncé et chaque solution.
Pas besoin de créer un nouveau topic. |
||
icare14
|
# Posté le 09/09/2008 à 22:29:42 | ||
![]() Groupe : Membres |
ok merci j0avais pas vu
Citation : Pas de titre Le français est un langage de communication pas si difficile à coder de ça ! |
||
Nanoc
|
# Posté le 15/09/2008 à 20:55:56 | ||
Apprenez à utiliser la STL !!![]() Groupe : Membres |
Exercice du mois de septembre 2008Nom : ... et des lettres Sujet : Algorithme IntroductionVous connaissez très certainement le célèbre jeu télévisé "Des chiffres et des lettres". Ce que je vous propose ce mois est de coder un programme qui résoud l'autre partie du jeu, "Le mot le plus long". Les règles du jeu sont simples mais le jeu est assez difficile. On tire au hasard 9 lettres et on cherche un mot français (orthographié correctement) écrits avec ces 9 lettres. Si on ne trouve pas de mots de 9 lettres, on cherche en 8 lettres et ainsi de suite. Le tirage des lettres, se passe de la manière suivante. On demande au joueur si il désire une consonne ou une voyelle et on lui donne une lettre au hasard selon son choix et on recommence pour les 8 autres. Le règlement impose qu'il y ait au minimum 2 voyelles. (Y est une voyelle) L'exerciceVotre programme devra tirer au hasard des lettres selon les règles définies au-dessus. Il devra ensuite chercher la meilleure solution possible à partir du dictionnaire suivant: Dictionnaire de 323 578 mots (3.5 Mio) et l'afficher à l'écran. Si il y a plusieurs solutions, libre à vous de les afficher toutes ou non. Ce qui donne par exemple : Code : Console
Remarque concernant le dictionnaire: Le dico contient des verbes conjugués ainsi que des pluriels. Il est donc suffisament complet. Il ne contient que des caractères sans majuscules, sans accents et sans cédilles. Votre programme devra fonctionner avec le dictionnaire situé dans le même dossier que l'exécutable et ne pas nécessiter d'autres fichiers que celui fourni. ---------------------------------------------------------------------- La donnée est assez courte, mais je pense que le tout est assez clair. N'hésitez pas à poser des questions si ce n'est pas le cas. Vous avez jusqu'au 15 octobre pour soumettre vos réponses à Réponse_Exercices. Bonne chance à tous !
Édité
le 15/09/2008 à 20:59:55
par Nanoc
Exercices de C++ pour tous les niveaux ! Mes tutos: Tri de Shell --- [C++] Manipulateurs de flux --- [C++] Notions avancées (suite du cours de M@teo21) |
||
gymnopaul
|
# Posté le 15/09/2008 à 21:13:10 | ||
I could go supersonic !![]() Groupe : Membres |
Superbe exo
! Je me lance dès que mon site est fini !
Projet en cours : 2D-3D-Games -> Tutoriels vidéo sur la création de jeux vidéos Mes connaissances : Langages : C - C++ (mon préféré ) - HTML - PHP - SQL3D : Blender |
||
C_dur
|
# Posté le 16/09/2008 à 15:06:24 | ||
|
C'est facile quand on sait Groupe : Membres |
Bonjour à tous,
Sympa l'exo... mais pas simple pour autant Pas question de modifier le contenu du dico (un classement par taille par ex) ? a+ C_dur "Le travail en équipe est extrêmement important... ne fusse que pour pouvoir s'en prendre à quelqu'un si quelque chose devait tourner mal " |
||
Nanoc
|
# Posté le 16/09/2008 à 17:19:28 | ||
Apprenez à utiliser la STL !!![]() Groupe : Membres |
Ton programme peut très bien commencer par créer un nouveau fichier ne contenant que les mots de 9 lettres et moins à partir du dictionnaire fourni si tu veux. Tu peux également le classer par taille par la même occasion.
Mais par souci de comparaison, le dictionnaire doit être le même pour tout le monde. Exercices de C++ pour tous les niveaux ! Mes tutos: Tri de Shell --- [C++] Manipulateurs de flux --- [C++] Notions avancées (suite du cours de M@teo21) |
||
C_dur
|
# Posté le 16/09/2008 à 17:30:06 | ||
|
C'est facile quand on sait Groupe : Membres |
Citation : Nanoc
et ne pas nécessiter d'autres fichiers que celui fourni. Citation : Nanoc Ton programme peut très bien commencer par créer un nouveau fichier Je suppose que tu as voulu dire que je pouvais créer un fichier temporaire (dans la mémoire) ? Merci pour les infos C_dur "Le travail en équipe est extrêmement important... ne fusse que pour pouvoir s'en prendre à quelqu'un si quelque chose devait tourner mal " |
||
Nanoc
|
# Posté le 16/09/2008 à 17:34:49 | ||
Apprenez à utiliser la STL !!![]() Groupe : Membres |
Dans la RAM ou sur le disque peu importe.
Tu peux faire ce que tu veux en fait du moment que le programme n'a besoin que du fichier fourni. Exercices de C++ pour tous les niveaux ! Mes tutos: Tri de Shell --- [C++] Manipulateurs de flux --- [C++] Notions avancées (suite du cours de M@teo21) |
||
C_dur
|
# Posté le 16/09/2008 à 19:00:50 | ||
|
C'est facile quand on sait Groupe : Membres |
ah, ok ! J'ai enfin compris la nuance :+(
Désolé pour le dérangement.... et merci encore pour l'exo "Le travail en équipe est extrêmement important... ne fusse que pour pouvoir s'en prendre à quelqu'un si quelque chose devait tourner mal " |
||
Anarchie93
|
# Posté le 17/09/2008 à 22:35:13 | ||
![]() Groupe : Membres |
Oups,
Je viens d'envoyer mon code pour le compte est bon un peu en retard à reponse-exercices du fait que je n'ai vu cet exercice que le 13 septembre, un peu avant de m'inscrire sur le site! J'espére qu'il le verra!!! sinon tant pis
![]() Depuis longtemps je pense que si le travail était une chose si remarquable, les riches et les puissants l'auraient gardé pour eux! |
||
Nanoc
|
# Posté le 18/09/2008 à 10:50:53 | ||
Apprenez à utiliser la STL !!![]() Groupe : Membres |
Pas de problème ! Reponse_Exercice voit tout
Exercices de C++ pour tous les niveaux ! Mes tutos: Tri de Shell --- [C++] Manipulateurs de flux --- [C++] Notions avancées (suite du cours de M@teo21) |
||
MatteX
|
# Posté le 26/09/2008 à 04:33:43 | ||
The cake is a lie!![]() Groupe : Membres |
Bon désolé du retard dans la discussion... En passant, je suis content d'avoir proposé un code assez structuré pour être utiliser en exemple. Mon code semble ne pas faire l'unanimité, ce n'est pas grave. S'il plante, je suis désolé, j'ai fait ça sur l'heure du midi et j'avoue ne pas avoir rudement testé.
En réponse à Darkelfe et aussi Freedom Citation : Darkelfe 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). [...] Donc [ ] = tant que valeur du pointeur != 0 ] [ = tant que valeur du pointeur == 0 Ce n'est pas décrit partout (le Wikipedia francophone parle seulement de la première forme), mais je trouvais que cela ajoutais du piquant à mon interpréteur et du Fuck au BrainFuck. La difficulté réside dans la capacité de déterminer qu'est-ce qui débute une boucle et ce qui la termine... j'ai choisi, si ma mémoire est bonne, d'accepter l'imbrication seulement des boucles semblables. Source : http://en.wikipedia.org/wiki/Brainfuck http://www.muppetlabs.com/~breadbox/bf/ Je suis bien d'accord pour le switch. C'est l'habitude des langages un peu moins évolués qui n'ont pas ce genre de structure conditionnelle qui me fait opter pour les if-else. P.S. Si ça plante (ou plantais, je ne sais si Nanoc a corrigé) je suis navré. Je n'ai pas testé beaucoup de code BrainFuck dans mon interpréteur. D'ailleurs je suis encore surpris qu'il ai servi d'exemple principal. Merci
liens utiles: FAQ C++ (developpez.com) | GotAPI.com | H-Deb Mon futur ex-blog | Logique : http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx Propriétaire d'un Dell Inspiron 1720, Core 2 Duo 2.4Ghz, 3Go DDR2, 8600M GT 256Mo. Avec Blu-Ray! |
||
Nanoc
|
# Posté le 07/10/2008 à 17:50:23 | ||
Apprenez à utiliser la STL !!![]() Groupe : Membres |
Je me permet de faire un peu de pub pour la suite de mon tuto: http://www.siteduzero.com/tutoriel-3-8 [...] avancees.html
Sinon, pour répondre à MatteX: Oui j'ai corrigé ton code. Exercices de C++ pour tous les niveaux ! Mes tutos: Tri de Shell --- [C++] Manipulateurs de flux --- [C++] Notions avancées (suite du cours de M@teo21) |
||
gymnopaul
|
# Posté le 07/10/2008 à 18:10:03 | ||
I could go supersonic !![]() Groupe : Membres |
Super cool, je me mets tout de suite à la lecture du tuto
.
Projet en cours : 2D-3D-Games -> Tutoriels vidéo sur la création de jeux vidéos Mes connaissances : Langages : C - C++ (mon préféré ) - HTML - PHP - SQL3D : Blender |
||
The French
|
# Posté le 07/10/2008 à 18:13:46 | ||
un zero, deux zero, zzzzzzzz![]() Groupe : Membres |
Merci beaucoup Nanoc pour ce tuto.
Est-ce que tu pourrais lister sur quoi va être ton tuto stp? Merci d'avance |
||
Meseira
|
# Posté le 14/10/2008 à 15:29:01 | ||
![]() Groupe : Membres |
Citation : Nanoc
Remarque concernant le dictionnaire: [...] Il ne contient que des caractères sans majuscules, sans accents et sans cédilles. Je voudrais juste faire remarquer que le dictionnaire que tu fournis contient des lettres majuscules contrairement à ce qui est dit dans l'énoncé. Le 'A' par exemple (mais il y en a bien d'autres): Code : Console
Édité
le 14/10/2008 à 15:30:20
par Meseira
|
||
Nanoc
|
# Posté le 14/10/2008 à 22:07:20 | ||
Apprenez à utiliser la STL !!![]() Groupe : Membres |
Aaaarg ! Il me semblait pourtant avoir vérifié... Bon je vais corriger cela.
Mais bon, cela ne change rien à l'exercice. @The French: Les sujets suivants devraient être: - T.P. sur le polymorphisme - Exceptions - Templates (au moins 3 chapitres) - T.P. sur les templates - Héritage multiple (au moins 2 chapitres) - T.P. sur l'héritage multiple - ... Exercices de C++ pour tous les niveaux ! Mes tutos: Tri de Shell --- [C++] Manipulateurs de flux --- [C++] Notions avancées (suite du cours de M@teo21) |
||
Hiura
|
# Posté le 14/10/2008 à 22:35:44 | ||
![]() Groupe : Membres |
OuOuuu!! Je sens que je vais déguster!
[Merci]
|
||
gymnopaul
|
# Posté le 15/10/2008 à 12:35:59 | ||
I could go supersonic !![]() Groupe : Membres |
Oui ça fait plaisir ça
!
Projet en cours : 2D-3D-Games -> Tutoriels vidéo sur la création de jeux vidéos Mes connaissances : Langages : C - C++ (mon préféré ) - HTML - PHP - SQL3D : Blender |
||
Nanoc
|
# Posté le 15/10/2008 à 18:09:51 | ||
Apprenez à utiliser la STL !!![]() Groupe : Membres |
Exercice du mois d'octobre 2008Nom : Fractions Sujet : Classes, surcharge d'opérateurs En C++, vous pouvez représenter différents types de données. Les entiers, les nombres réels, les nombres complexes,... Mais il n'existe pas de type représentant une notion que l'on retrouve souvent en mathématique, les fractions. Vous l'avez sûrement deviné, je vous propose ce mois de créer une classe pour palier à ce "manque". Cet exercice est également un grand classique de la programmation. L'exerciceLe but de cet exercice est de réaliser une classe Fraction qui permettera de représenter la notion de fraction. Pour rappel, une fraction est un nombre donné par le rapport de deux nombres entiers. Par exemple Votre classe devra fournir les services suivants: 1) Construction à partir d'un nombre entier. 1 bis) Construction à partir d'un couple d'entier "Numérateur-Dénominateur". 2) Construction à partir d'un nombre à virgule (double). 3) Construction à partir d'une chaine de caractère de la forme "35/8" (sans les ""). 4) Surcharge des opérateurs arithmétiques usuels (+,-,*,/) et pourquoi pas puissance via l'opérateur ^. Attention aux divisions par 0. Pensez également à implémenter les versions +=,-=,*=,/= et ^= des opérateurs. Vous pouvez également réfléchir à la question des opérateurs du type "Fraction + Entier" ou "Reel + Fraction". 5) Surcharger l'opérateur << pour l'affichage dans un flux. (Pensez au cas particulier des fractions comme 6) Surcharger les opérateurs de comparaison (==,!=,<,>,<=,>=). 7) Proposer une fonction "toDouble" qui convertit la fraction en nombre à virgule. 8) Proposer un moyen de connaître le dénominateur et le numérateur. Votre fraction devra toujours être exprimée sous forme irréductible. C'est-à-dire que Pour trouver un moyen d'implémenter les opérateurs, je vous laisse revoir vos cours de maths ou Wikipedia par exemple. Vous avez jusqu'au 14 novembre pour soumettre vos réponses à Réponse_Exercices. Bonne chance à tous ! EDIT: Ajout d'un constructeur que j'avais oublié.
Édité
le 15/10/2008 à 20:54:25
par Nanoc
Exercices de C++ pour tous les niveaux ! Mes tutos: Tri de Shell --- [C++] Manipulateurs de flux --- [C++] Notions avancées (suite du cours de M@teo21) |
||
lmghs
|
# Posté le 15/10/2008 à 19:00:49 | ||
|
Groupe : Membres |
4) Le fait que tu ne parles par de "I + R", "R + I", "+=", etc.
C'est fait pour ? (je soulève la question parce que le tuto n'a pas choisi de montrer la façon idiomatique de procéder, et que du coup ils risquent de reproduire l'erreur classique ; alors que l'exo en lui même est suffisamment simple pour guider vers cette solution idiomatique) |
||
gymnopaul
|
# Posté le 15/10/2008 à 20:02:30 | ||
I could go supersonic !![]() Groupe : Membres |
Très bon exercice, je m'y mets tout de suite
!
Projet en cours : 2D-3D-Games -> Tutoriels vidéo sur la création de jeux vidéos Mes connaissances : Langages : C - C++ (mon préféré ) - HTML - PHP - SQL3D : Blender |
||
Nanoc
|
# Posté le 15/10/2008 à 20:05:41 | ||
Apprenez à utiliser la STL !!![]() Groupe : Membres |
Citation : lmghs
4) Le fait que tu ne parles par de "I + R", "R + I", "+=", etc. C'est fait pour ? (je soulève la question parce que le tuto n'a pas choisi de montrer la façon idiomatique de procéder, et que du coup ils risquent de reproduire l'erreur classique ; alors que l'exo en lui même est suffisamment simple pour guider vers cette solution idiomatique) Non, cela me semblait évident. Mais tu as raison, je vais détailler. Avec le constructeur depuis un double ou un int, les I+R et R+I ne devraient pas être nécessaires.
Édité
le 15/10/2008 à 20:07:29
par Nanoc
Exercices de C++ pour tous les niveaux ! Mes tutos: Tri de Shell --- [C++] Manipulateurs de flux --- [C++] Notions avancées (suite du cours de M@teo21) |
||
raphamil
|
# Posté le 15/10/2008 à 20:28:58 | ||
![]() Groupe : Membres |
Qu'est-ce que tu entends par "construction à partir d'un entier" : un entier est déjà sous forme irrédutible, non ? Donc pas raison de le changer ?
(Je préfère être spur pour éviter de commencer par faire n'importe quoi )Pour la construction à partir d'une chaîne de caractères, on a à gérer qu'une seule division, pas des cas du style : 35/3/2 ? Edit : fautes de frappe (j'en ai maaare...)
Édité
le 15/10/2008 à 20:32:05
par raphamil
(\__/) Exécuter plusieurs fonctions au chargement d'une page • Une horloge temps réel grâce à Javascript (nouveau) • Séparer le comportement de la strucure (bientôt) • Chercher plus rapidement dans la doc Qt(/¤.¤\) <= Lapinator ! ![]() ('')|('') ![]() |
||
Retour au forum "Langage C++" ou à la liste des forums
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
RSS tutoriels |
RSS news
Édité par Simple IT SARL :
Nous contacter
| Notre blog | Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
138 Zéros connectés |
8 requêtes |
0.0712s (0.0541s)
