Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C++ > [Exercices] Venez vous entraîner ! > Lecture du sujet

[Exercices] Venez vous entraîner !

Un nouvel exercice chaque mois

Vous devez être inscrit pour pouvoir poster des messages

Page : 1  2  3  4  ...  20  21  22  23  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1  2  3  4  ...  20  21  22  23  Suivante
Hors ligne Nanoc # Posté le 30/03/2008 à 17:47:52
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres
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 -- Plus tard --
Juillet 08 - 2 Interpréteur BrainFuck Fichiers, pointeurs MatteX et Masthiks solution 25
Août08 Des chiffres... Algorithme -- Plus tard --





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 25/08/2008 à 19:41:03 par Nanoc
Hors ligne Reponse_Exercices # Posté le 30/03/2008 à 17:48:13
Groupe : Membres
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
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres

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

Exercices de C++ pour tous les niveaux !
Mes tutos: Tri de Shell --- [C++] Gestion des exceptions --- [C++] Manipulateurs de flux
---
[C++] Notions avancées (suite du cours de M@teo21) (New)

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça.

 
Hors ligne Gollum # Posté le 30/03/2008 à 17:50:50
Avatar
Groupe : Membres
Tres bonne idée, jy participerais surment... :D


Vend Mp4 Zazz 4go blanc !! (infos par mp)

/!\ MON DERNIER PROJET QUI TIENS LA ROUTE /!\

 
Hors ligne Hiura # Posté le 30/03/2008 à 18:07:15
Avatar
Groupe : Membres
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
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres
J'ai déjà reçu plusieurs réponses. Mais la perfection n'est pas encore là :) . Tentez votre chance !

Exercices de C++ pour tous les niveaux !
Mes tutos: Tri de Shell --- [C++] Gestion des exceptions --- [C++] Manipulateurs de flux
---
[C++] Notions avancées (suite du cours de M@teo21) (New)

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça.

 
Hors ligne raphamil # Posté le 31/03/2008 à 18:07:58
Avatar
Groupe : Membres
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 ?

(\__/)
(/¤.¤\) <= Lapinator ! ^^
('')|('')
Exécuter plusieurs fonctions au chargement d'une pageUne horloge temps réel grâce à Javascript (nouveau) • Séparer le comportement de la strucure (bientôt) • Chercher plus rapidement dans la doc Qt
72.73% apple-geek
 
Hors ligne iNaKoll # Posté le 31/03/2008 à 18:14:10
Grosso Merdo..
Avatar
Groupe : Membres
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.
 
Hors ligne raphamil # Posté le 31/03/2008 à 18:17:32
Avatar
Groupe : Membres
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 ^^

(\__/)
(/¤.¤\) <= Lapinator ! ^^
('')|('')
Exécuter plusieurs fonctions au chargement d'une pageUne horloge temps réel grâce à Javascript (nouveau) • Séparer le comportement de la strucure (bientôt) • Chercher plus rapidement dans la doc Qt
72.73% apple-geek
 
Hors ligne Freedom # Posté le 31/03/2008 à 18:39:08
apprenti
Groupe : Membres
Oups, j'ai bien fait sa mais a part que j'ai pas mis le besoin de mettre les "", ils sont indispensables ou pas ??

Citation : The Who
We're not gonna take it
Never did and never will

YAGNI

Architecture logicielle & Développement
 
Hors ligne Nanoc # Posté le 31/03/2008 à 20:42:22
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres
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".

Exercices de C++ pour tous les niveaux !
Mes tutos: Tri de Shell --- [C++] Gestion des exceptions --- [C++] Manipulateurs de flux
---
[C++] Notions avancées (suite du cours de M@teo21) (New)

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça.

 
Hors ligne Freedom # Posté le 31/03/2008 à 20:51:23
apprenti
Groupe : Membres
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.

Citation : The Who
We're not gonna take it
Never did and never will

YAGNI

Architecture logicielle & Développement
 
Hors ligne Nanoc # Posté le 31/03/2008 à 20:56:44
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres
Je n'ai dit nul part que les apostrophes ne faisaient qu'un paramètre !

Exercices de C++ pour tous les niveaux !
Mes tutos: Tri de Shell --- [C++] Gestion des exceptions --- [C++] Manipulateurs de flux
---
[C++] Notions avancées (suite du cours de M@teo21) (New)

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça.

 
Hors ligne gymnopaul # Posté le 01/04/2008 à 20:24:40
Avatar
Groupe : Membres
Très bonne idée ces exercices je m'y mets dès que j'ai fini mon projet en cours :) .

Mes connaissances :
Langages : C - C++ (mon préféré ^^ ) - HTML - PHP - MySQL
3D : Blender

Projet terminé : Pong
Projet en cours : 2D-3D-Games

 
Hors ligne Azerty0 # Posté le 01/04/2008 à 21:18:08
Avatar
Groupe : Membres
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
Groupe : Membres
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
Groupe : Membres
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
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres
@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.

Exercices de C++ pour tous les niveaux !
Mes tutos: Tri de Shell --- [C++] Gestion des exceptions --- [C++] Manipulateurs de flux
---
[C++] Notions avancées (suite du cours de M@teo21) (New)

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça.

 
Hors ligne MatteX # Posté le 02/04/2008 à 18:23:02
The cake is a lie!
Avatar
Groupe : Membres
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!
 
Hors ligne lmghs # Posté le 02/04/2008 à 19:17:03
Groupe : Membres
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
Groupe : Membres
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
Groupe : Membres
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
Groupe : Membres
Yo,

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

Cdt,
Noodle Juice.
Hors ligne MicBeastKiller # Posté le 03/04/2008 à 14:35:05
Groupe : Membres
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
Miammmmmm boulon !
Avatar
Groupe : Membres
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 :-°

http://www.inzeprog.net
la version finale V3 approche :)
tous a vos marque pages !!! ;)
 
Hors ligne Nanoc # Posté le 03/04/2008 à 17:12:56
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres
@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.

Exercices de C++ pour tous les niveaux !
Mes tutos: Tri de Shell --- [C++] Gestion des exceptions --- [C++] Manipulateurs de flux
---
[C++] Notions avancées (suite du cours de M@teo21) (New)

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça.

 
Hors ligne Spaz # Posté le 03/04/2008 à 17:23:48
Groupe : Membres
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
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres
Ca serait quand même sympa de pas trop spammer... mais si c'est juste une fois, pas de problème.

Exercices de C++ pour tous les niveaux !
Mes tutos: Tri de Shell --- [C++] Gestion des exceptions --- [C++] Manipulateurs de flux
---
[C++] Notions avancées (suite du cours de M@teo21) (New)

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça.

 

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 | Fil RSS | XHTML 1.0 | CSS 2.0
Édité par Simple IT SARL : Nous contacter | 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.

Nombre de connectés 333 Zéros connectés | Requêtes SQL 7 requêtes | Temps de génération de la page : Total (SQL) 0.0485s (0.0249s)