Aller au menu - Aller au contenu
Inscris-toi au e-camp "Héberge ton jeu Facebook sur Azure" de Microsoft vendredi 25 mai à 13h30 !

[Exercices] Venez vous entraîner !

Ce mois: Parseur de fonctions mathématiques

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1  2  3  4  ...  43  44  45  46  Suivante
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page 1  2  3  4  ...  43  44  45  46  Suivante
Hors ligne Nanoc # Posté le 30/03/2008 à 17:47:52
Aimez-vous le C++ ?
Avatar
Validateurs

Ville : Durham
Pays : Royaume-Uni
Études : EPFL

Bonjour tout le monde !

Vous le savez certainement, pour progresser en informatique, il faut pratiquer le plus possible. C'est en forgeant qu'on devient forgeron. Malheureusement il est parfois difficile de trouver des exercices pour travailler un point particulier du langage. Ce topic a pour but de vous proposer chaque mois un exercice qui approfondi un aspect du langage C++.

Comment ça marche ?



Chaque début de mois, je vous proposerai un exercice avec parfois plusieurs niveau de difficulté. Ces exercices seront conçu de manière à être réalisables en quelques heures si vous avez choisi le niveau correspondant à vos aptitudes.

Vous aurez alors pendant un mois la possibilité de soumettre vos exercices et la meilleure solution proposée par vous, les zéros, sera donnée comme correction à la fin du mois. Si aucune solution valable n'est proposée, je proposerai un corrigé complet de l'exercice.

Si le concept a du succés, il se peut que la cadence augmente un peu.

Quels sujets seront abordés ?



J'aborderai principalement des sujets en rapport avec le cours de M@teo21 qui ne nécessitent aucune bibliothèque tierce. Il y aura principalement des exercices sur les chaînes de caractères, les flux vers les fichiers, des algorithmes simples et la rédaction de classes "classiques". Vous trouverez toutes les informations nécessaires à la résolution des exercices sur ce site, soit dans le tuto de M@teo21, soit dans les différents tutoriels des membres.

Le but est à terme de proposer une sorte de base de données d'exercices disponibles pour tous en marge des tutoriels du site.


Soumission des réponses



Pour proposer votre réponse à l'exercice du mois, il faut envoyer un message privé à: Réponse_Exercices, qui respecte le format suivant:

Mettez dans le titre le mois de l'exercice et votre pseudo:
Code : Autre
1
Exercice MOIS ANNEE - VOTRE_PSEUDO


Par exemple :

Code : Autre
1
Exercice avril 08 - Nanoc



Dans le corps du message, mettez votre code source dans les balises de code, chaque fichier (si il y en a plusieurs), dans un bloc séparé. Si il y a plusieurs niveaux, indiquez quel niveau vous avez choisi.

Merci de ne pas m'envoyer de MP (à Nanoc) pour soumettre vos réponses.


Il ne sert à rien d'envoyer un code qui ne compile pas ou qui ne fonctionne pas !!


Les exercices



Voici la liste des exercices qui ont déjà été proposés:

Pendant les vacances d'été, un exercice supplémentaire au milieu du mois est proposé. Il s'agit d'exercices plus technique et peut-être un peu plus difficile. Dans le tableau ci-dessous, ils sont suivi d'un petit "2" dans la colonne date.


DateNom de l'exerciceSujetSolution proposée par:SolutionNombre de réponses
Avril 08 Cowsay ! Chaînes de caractères Nanoc solution 20
Mai 08 Le plus grand nombre Classe, opérateurs, tableaux Nanoc solution 7
Juin 08 Compression RLE Fichiers, chaînes de caractères lanfeusst solution 22
Juin 08 - 2 Opérateur virgule Surcharge d'opérateurs Nanoc solution 4
Juillet 08 Statistiques sur des fichiers Fichiers Leilo solution 11
Juillet 08 - 2 Interpréteur BrainFuck Fichiers, pointeurs MatteX et Masthiks solution 25
Août 08 Des chiffres... Algorithme Nanoc solution 5
Sept. 08 ... et des lettres Algorithme Nanoc solution 14
Octobre 08 Fractions Classes, surcharge d'opérateurs Nanoc solution 22
Novembre 08 CRYPTO 1: Le chiffre de César string, algorithmes Chlab_lak solution 15
Décembre 08 CRYPTO 2: Le chiffre de Vigenère string, algorithmes iNaKoll solution 8
Noël 08 Bonus: Project Euler Algorithmes -- -- --
Janvier 09 CRYPTO 3: Cryptage XOR string, algorithmes Nanoc solution 8
Février 09 Chiffres romains string, algorithmes Nanoc solution 23
Avril 09 Polynômes Classe, opérateurs, algorithmes Nanoc solution 3
Vacances de Printemps 09 Bonus: P'tit Langage Tout ! ;) -- -- --
Mai 09 Diff Fichiers -- -- --
Juin 09 Figlet ! Fichiers, chaines de caractères -- -- --
Août 09 Parseur de fonctions mathématiques Chaînes, algorithmes -- -- --




Remarques



Il ne sert strictement à rien de devenir ami avec Reponse_Exercices. Il se connecte qu'une fois par mois pour récupérer les fichiers envoyés.


Si vous avez des questions sur le fonctionnement du tout, n'hésitez pas à les poser dans ce thread. Si vos questions portent plutôt sur un problème de résolution d'exercice, créez un autre fil pour avoir plus de chance d'être lu !

Bonne chance à tous et bien du plaisir
Édité le 16/08/2009 à 12:08:55 par Nanoc
Publicité # Posté le 30/03/2008 à 17:47:52

Hors ligne Reponse_Exercices # Posté le 30/03/2008 à 17:48:13

Pour les modos: Possible de mettre en post-it ? Merci d'avance !
Édité le 30/03/2008 à 18:06:46 par Reponse_Exercices
Hors ligne Nanoc # Posté le 30/03/2008 à 17:48:27
Aimez-vous le C++ ?
Avatar
Validateurs

Ville : Durham
Pays : Royaume-Uni
Études : EPFL

Exercice du mois d'avril 2008



Nom : Cowsay !
Sujet : Chaînes de caractères


Si vous êtes dans le monde de Linux, vous connaissez certainement le petit programme "Cowsay". On lui passe une chaîne de caractère en argument et il dessine une vache dans la console ainsi qu'une petite bulle de bande dessinée où se trouve le texte qu'on lui a passé en argument. Par exemple:

Image utilisateur
Ce que je vous propose c'est de réaliser ce petit programme. Il devra remplir le cahier des charges suivant:

1) Récupérer les arguments du main.
2) Afficher la phrase entrée dans une "bulle" en coupant la phrase au bon endroit (voir l'exemple ci-dessous).
3) Dessiner dessous l'animal (Zozor ?) de votre choix.
4) Utiliser si possible les std::string.

Il ne vous est pas demandé ici d'écrire de classe. Si vous ne savez pas comment faire le point 1, vous pouvez aussi demander à l'utilisateur de rentrer une chaîne après que le programme soit lancé ou consulter le tutoriel disponible dans la catégorie "C": ici.

Si la phrase est trop longue, le programme devra la couper au bon endroit, soit par exemple:

Image utilisateur

avec un découpage au niveau des espaces si il y en a et après un certain nombre de caractère si il n'y en a pas.

Image utilisateur

Vous avez jusqu'au 30 avril pour soumettre vos réponses à Réponse_Exercices.

Bonne chance à tous !

EDIT: Ajout du lien pour le tuto C sur les arguments du main et changement des images.
Édité le 16/04/2008 à 18:22:20 par Nanoc
 
Connecté Shackdown # Posté le 30/03/2008 à 17:50:50
Quand on veut, on peut
Avatar

Études : Lycée François Arago - Perpignan

Hors ligne Hiura # Posté le 30/03/2008 à 18:07:15
Avatar
Flux RSS

Études : EPFL

Oui, Très très bonne initiative!

PS : faute de frape : "pendnat" (§Comment ça marche). :p
 
Hors ligne ornithorynx # Posté le 30/03/2008 à 18:09:01
Groupe : Bannis

Je vais faire ça aussi tiens :) .

EDIT: Hop, de mon côté c'est fini (42 minutes tout pile \o/), je MP ça au compte pour les réponses aux exos ;) .
Édité le 30/03/2008 à 18:55:15 par ornithorynx
Hors ligne Nanoc # Posté le 31/03/2008 à 17:27:34
Aimez-vous le C++ ?
Avatar
Validateurs

Ville : Durham
Pays : Royaume-Uni
Études : EPFL

J'ai déjà reçu plusieurs réponses. Mais la perfection n'est pas encore là :) . Tentez votre chance !
 
Hors ligne raphamil # Posté le 31/03/2008 à 18:07:58
Avatar

Études : Université de Bordeaux

En quoi consisterait la récupération des arguments du main ? A récupérer le texte d'un fichier déposé sur l'application ?

Les langages fonctionnels sont un rien spéciaux, mais ils changent votre manière de voir un programme. Si vous ne connaissez que des dérivés du C (PHP, Python, etc.), changez votre manière de voir ici, et avec OCaml, Haskell, ou Scheme.
 
Hors ligne iNaKoll # Posté le 31/03/2008 à 18:14:10
Grosso merdo
Avatar

Ville : Paris
Pays : France métropolitaine

Non, le texte doit directement être passé en paramètre. Exactement comme le montre l'exemple donné par Nanoc :
Code : Console - Afficher / masquer les numéros de ligne
Nanoc: cowsay "Salut les zéros"

Ainsi on a juste a appeler le programme cowsay suivit de la chaine à "cowsayer" ... ^^

"La constante de couplage est fonction d'une certaine valeur constante que prend le champ scalaire des dilatations dans le vide quantique."
Image utilisateur
 
Hors ligne raphamil # Posté le 31/03/2008 à 18:17:32
Avatar

Études : Université de Bordeaux

De toute façon, je ne pense avoir les connaissances suffisantes (args de main, par exemple), ni la volonté d'être bourrin au point de dessiner un vache à grands coups de cout ^^

Les langages fonctionnels sont un rien spéciaux, mais ils changent votre manière de voir un programme. Si vous ne connaissez que des dérivés du C (PHP, Python, etc.), changez votre manière de voir ici, et avec OCaml, Haskell, ou Scheme.
 
Hors ligne Freedom # Posté le 31/03/2008 à 18:39:08
I can ... but I won't
Avatar

Études : Supoptique

Oups, j'ai bien fait sa mais a part que j'ai pas mis le besoin de mettre les "", ils sont indispensables ou pas ??

FAQ : Fr|En 1 2|C++11 1 2|Template
Site : GotW 1 2|Dr.Dobb's|Bonst Con|OM
Forum / Usenet : Dvlp|clc++
Blog : Deloget|C++Next|Bartosz Milewski
 
Hors ligne Nanoc # Posté le 31/03/2008 à 20:42:22
Aimez-vous le C++ ?
Avatar
Validateurs

Ville : Durham
Pays : Royaume-Uni
Études : EPFL

Non, mais ça m'intéresse de davoir comment t'as gérer les espaces sans.

@Raphamil: Tu peux aussi, comme propoé, demander à l'utilisateur de rentrer une chaîne après le début du programme. Pour les arguments du main y a un tuto sur ce site, dans la partie "C".
 
Hors ligne Freedom # Posté le 31/03/2008 à 20:51:23
I can ... but I won't
Avatar

Études : Supoptique

Je t'es envoyé mon code, tu as qu'a regarder, je savait pas que quand on m'était des apostrophe sa fessait que un paramètre. Ça veut dire que ce que j'ai fait était pas du tout ce que tu attendais.

FAQ : Fr|En 1 2|C++11 1 2|Template
Site : GotW 1 2|Dr.Dobb's|Bonst Con|OM
Forum / Usenet : Dvlp|clc++
Blog : Deloget|C++Next|Bartosz Milewski
 
Hors ligne Nanoc # Posté le 31/03/2008 à 20:56:44
Aimez-vous le C++ ?
Avatar
Validateurs

Ville : Durham
Pays : Royaume-Uni
Études : EPFL

Hors ligne Prosperoh # Posté le 01/04/2008 à 20:24:40
Avatar

Ville : Périgueux
Pays : France métropolitaine
Études : Lycée Louis-le-Grand - Paris 5ème

Très bonne idée ces exercices je m'y mets dès que j'ai fini mon projet en cours :) .
Hors ligne Azerty0 # Posté le 01/04/2008 à 21:18:08
Avatar

effectivement, une super initiative ;)
Hors ligne mt9 # Posté le 01/04/2008 à 22:31:26
Groupe : Bannis

Pourras-t-on voir les pires réponses ? :-'
Genre les plus moches / bugguées :P
Ca permettrait de montrer l'exemple de ce qu'il ne faut pas faire.

Ta mère est tellement grosse qu'elle rentre pas dans un malloc()
 
Hors ligne Hiura # Posté le 02/04/2008 à 13:32:46
Avatar
Flux RSS

Études : EPFL

Citation : mt9
Pourras-t-on voir les pires réponses ? :-'
Genre les plus moches / bugguées :P
Ca permettrait de montrer l'exemple de ce qu'il ne faut pas faire.
Je doute que ce soit une bonne idée. Après tu risques de confondre se qui est bien et ce qui ne l'est pas.
 
Hors ligne Loumnam # Posté le 02/04/2008 à 16:36:15
#ifdef C++ #define SFML

Petite question: pourquoi est-il nécessaire de mettre des guillemets? Pourquoi ne pas simplement concaténer tous les arguments?

EDIT: Nan, c'est bon, merci.
Édité le 02/04/2008 à 16:42:15 par Loumnam

Essayez la SFML, une super API multimédia orientée objet, multi-plate-forme, écrite en C++, aussi simple mais beaucoup plus rapide que la SDL!
 
Hors ligne Nanoc # Posté le 02/04/2008 à 18:12:34
Aimez-vous le C++ ?
Avatar
Validateurs

Ville : Durham
Pays : Royaume-Uni
Études : EPFL

@mt9: Quel intéret ? Je peux par contre indiquer quelques erreurs courantes qui ont été faites. Mais montrer les "plus moches" pour avoir ensuite des trucs du genre "Pfff UnTel est un n@@b il c pas codé", non merci.
 
Hors ligne MatteX # Posté le 02/04/2008 à 18:23:02
The cake is a lie!
Avatar

Ville : Sainte-therese
Pays : Canada
Études : ETS Montréal

Citation : Loumnam
Petite question: pourquoi est-il nécessaire de mettre des guillemets? Pourquoi ne pas simplement concaténer tous les arguments?

EDIT: Nan, c'est bon, merci.


C'est une convention, les guillemets délimites une chaine complète pouvant contenir des caractères blancs.

Pour Linux je ne sais pas, mais en Windows les guillemets sont gérés par l'interpréteur de commande.

Code : Console - Afficher / masquer les numéros de ligne
Programme.exe "Allo mon ami" ca va bien?


Le programme va recevoir un tableau argv contenant 5 chaine:

Code : Console - Afficher / masquer les numéros de ligne
[0] <chemin>\Programme.exe
[1] Allo mon ami
[2] ca
[3] va
[4] bien?


Notez qu'il n'y a pas de guillemets à la case 1.

Programme de test:
Code : C++ - Afficher / masquer les numéros de ligne
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4.  
  5. int main( int argc, char* argv[] )
  6. {
  7.     std::vector<std::string> args( argv, (argv + argc) );
  8.  
  9.     for( size_t i = 0; i < args.size(); i++ )
  10.     {
  11.         std::cout << "[ " << (i + 1) << "] " << args[ i ] << '\n';
  12.     }
  13.     std::cout << std::endl;
  14.  
  15.     return 0;
  16. }

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!
 
Connecté lmghs # Posté le 02/04/2008 à 19:17:03

C'est toujours l'interpréteur de commandes qui s'occupe de la répartition des caractères entres les divers argv[]
 
Hors ligne MatteX # Posté le 02/04/2008 à 19:28:00
The cake is a lie!
Avatar

Ville : Sainte-therese
Pays : Canada
Études : ETS Montréal

C'est ce que je pensais, mais je ne pouvais pas l'affirmer personnellement pour Linux car je n'ai jamais développé sur cette plateforme.

J'en ai juste fait la preuve pour calmer la crainte d'avoir à gérer les guillemets.

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!
 
Hors ligne djo0012 # Posté le 03/04/2008 à 07:27:01

Ville : Montréal
Pays : Canada
Études : Cégep du Vieux-Montréal

tres bonne idéé sa... je vais probablement mis mettre (des que j'ai fini mon @£#%* travaille de philo...)

mais c'est sourtout la partit créé des class qui mintéressera je croi parce que je manque énormément de pratique sur sa :(

desoler pour le francais j'ai un manque de moliere en moi depuis un bout :( Citation : moi-meme
Si vous n'arrivez pas a résoudre un problème c'est que vous n'avez pas assez travaillé dessus.
 
Hors ligne Noodle Juice # Posté le 03/04/2008 à 09:41:34

Études : IUT Blagnac

Yo,

J'ai commencé le C++ hier et je me lance dans cette exercie ^^

Cdt,
Noodle Juice.
Hors ligne anonyme # Posté le 03/04/2008 à 14:35:05

Serait-il possible d'avoir plus d'info sur ce que tu entends par bon ou mauvais programme/code car pour cet exercice, on peut tout faire dans le main (qui sera très gros) ou découper le code en pleins de fonctions. C'est juste pour avoir une idée !!!
Hors ligne danman # Posté le 03/04/2008 à 15:49:49
L'imagine + mieux que savoir
Avatar

Ville : Sathonay-village
Pays : France métropolitaine

d'abord Micbeastkiller je pense que c'est toi qui choisi le code le plus clair possible pour toi.
a toi de voir ^^

sinon a quand le prochain exercice :-°

#LGDF: danman vaincra !
Des connaissances dans l'un ou l'autre domaine? Créez des articles rémunérés sur www.questmachine.org !

Image utilisateur


Pixel Conquest ... Join the battle.
Postez votre image !

 
Hors ligne Nanoc # Posté le 03/04/2008 à 17:12:56
Aimez-vous le C++ ?
Avatar
Validateurs

Ville : Durham
Pays : Royaume-Uni
Études : EPFL

@MicBeastKiller:
En général on dit: Une tâche = une fonction.
Tout dépend de l'interprétation que tu fais de cette phrase. Disons que tout dans le main n'est pas une bonne manière de présenter le code.

@danman:
A la fin du mois. Je vais pas changer maintenant alors que je commence à recevoir des réponses intéressantes.

@djo0012:
Le prochain exercice traitera des classes.
 
Hors ligne Spaz # Posté le 03/04/2008 à 17:23:48

On peut renvoyer son code si on a fait une petite erreur, ou on a droit qu'à un essai ? :-°
Hors ligne Nanoc # Posté le 03/04/2008 à 17:25:27
Aimez-vous le C++ ?
Avatar
Validateurs

Ville : Durham
Pays : Royaume-Uni
Études : EPFL

Ca serait quand même sympa de pas trop spammer... mais si c'est juste une fois, pas de problème.
 

Retour au forum "Langage C++" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx