Aller au menu - Aller au contenu

[Exercices] Venez vous entraîner !

Ce mois: Parseur de fonctions mathématiques

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page Précédente  1  2  3  ...  20  21  22  23  24  25  26  ...  36  37  38  39  Suivante
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page Précédente  1  2  3  ...  20  21  22  23  24  25  26  ...  36  37  38  39  Suivante
Hors ligne leopard # Posté le 23/08/2008 à 19:00:35
Avatar

Reprise du dernier message de la page précédente :
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 ? :p
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 !
 
Hors ligne Zebra # Posté le 23/08/2008 à 22:33:19
tick tick
Avatar

Ville : Meudon
Pays : France métropolitaine

Bonjour, j'ai encore un question à propos du dernier exercice. Peut on afficher le résultat comme à la télé? C'est à dire : au lieu d'afficher comme dans l'énoncé,
Code : Console
(2*3)*(10+1)*10

on affiche à la place :
Code : Console
2 * 3 = 6
10 + 1 = 11
6 * 11 = 66
66 * 10 = 660


Merci d'avance pour votre réponse
Hors ligne Nanoc # Posté le 24/08/2008 à 10:58:26
Refuseur de tutoriels
Avatar
Validateurs

Ville : Lausanne
Pays : Suisse
études : EPFL

@Zebra : Oui bien sûr. Selon moi c'est plus dificile à faire, mais c'est plus facile à suivre. Bonne idée !

@leopard : Je suis pas contre l'idée, mais la difficulté d'un exercice peut être assez subjective et dépend aussi de ce qu'on utilise comme outil. Le dernier exercice "version MatteX" est difficile pour un zéro parce qu'il utilise énormément la SL qui n'est pas présentée sur ce site.
Une version n'utilisant que des outils "simples" serait sûrement jugée beaucoup plus simples.
Mais il est vrai que cet exercice est plus difficile que celui sur les statistiques.

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++
 
Hors ligne Paul Helly # Posté le 24/08/2008 à 11:12:04
I could go supersonic !
Avatar

Ville : Longuenesse
Pays : France métropolitaine

J'attends aussi avec impatience la solution des statistiques :) (qui est le seul exercice que j'ai réussi :D ).

"Tant que tu ne peux pardonner à autrui d'être différent, tu es encore bien loin du chemin de la sagesse." Sagesse chinoise

Apprenti Hacker
 
Hors ligne Nanoc # Posté le 24/08/2008 à 11:14:38
Refuseur de tutoriels
Avatar
Validateurs

Ville : Lausanne
Pays : Suisse
études : EPFL

Au vu des questions et du succès du BF, j'avais complètement oublié l'exo sur les statistiques. Mais je pense pulier une correction d'ici demain.

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++
 
Hors ligne Dr.Tenma # Posté le 24/08/2008 à 21:51:14
Avatar

Sinon on pourrait avoir une solution de BF simplifiée stp ?
 
Hors ligne Nanoc # Posté le 25/08/2008 à 08:47:19
Refuseur de tutoriels
Avatar
Validateurs

Ville : Lausanne
Pays : Suisse
études : EPFL

Oui, oui, ça vient. Je suis pas à plein temps sur le Sdz non-plus hein...

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++
 
Hors ligne Hertzien' # Posté le 25/08/2008 à 11:47:38
C++, C(encore)++ fort !
Avatar

T'en es où dans tuto des notions avancées ?

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
 
Hors ligne Nanoc # Posté le 25/08/2008 à 13:41:37
Refuseur de tutoriels
Avatar
Validateurs

Ville : Lausanne
Pays : Suisse
études : EPFL

Je pense reprendre la rédaction en septembre quand j'aurai du temps libre.

EDIT: J'ai ajouté une solution plus simple pour le code BF.
Édité le 25/08/2008 à 19:34:05 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++
 
Hors ligne candide # Posté le 26/08/2008 à 00:44:34
"In C ode we trust"
Avatar


Citation : Nanoc

Niveau 2


Quand on propose un tirage, on est pas assuré qu'on puisse bien atteindre le résultat souhaité, ce qui n'est pas pratique pour les gens qui jouent.
Le but est ici d'écrire un programme qui donne un tirage (résultat + les 6 nombres) qui assure qu'on puisse atteindre le résultat.


Je ne vois pas l'intérêt de cette question : par exemple, on n'a qu'à donner pour valeur au tirage la somme des six nombres.

Citation : Nanoc

Mais j'avoue que je n'ai pas pensé à faire ça, ce qui complique pas mal l'exerice d'où le niveau 2.

Je ne vois pas ce qu'il y a de compliqué.

Citation : Nanoc

Le but n'est pas ici de reproduire le jeu mais plutôt de reproduire le programme informatique qui aide le présentateur à vérifier que la solution est correcte.


Pas clair du tout. Vérifier qu'une solution convient ou pas est trivial, il suffit de vérifier les calculs. Je ne vois pas où tu veux en venir et je ne pense pas être le seul.



 
Hors ligne Nanoc # Posté le 26/08/2008 à 14:48:27
Refuseur de tutoriels
Avatar
Validateurs

Ville : Lausanne
Pays : Suisse
études : EPFL

1 et 2) Plus je vais en avant, plus je me dis que je me suis complètement planté en réflechissant sur le point 2 qui est finalement très simple. Je vais reformuler tout ça.

3) En clair: Le but n'est pas de présenter les 6 nombres et le résultat à une personne, attendre que celle-ci donne la réponse et vérifier si elle est correcte.
Le but est de réaliser un programme qui cherche la solution du problème. Qui joue à la place de l'humain au jeu.

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++
 
Hors ligne candide # Posté le 26/08/2008 à 15:54:44
"In C ode we trust"
Avatar

Citation : Nanoc

Le but est de réaliser un programme qui cherche la solution du problème. Qui joue à la place de l'humain au jeu.

Oui, ça je pense que c'était clair, le compte est bon est un classique de la programmation.

D'ailleurs, il doit être aussi possible de faire un Mot le plus long comme dans le jeu de la télé.

Et au passage, une bonne idée de programmation est de faire un solveur de Boggle, comme celui-ci : massiveboggle (attendre la fin du jeu pour voir le solveur opérer).


 
Hors ligne Nanoc # Posté le 26/08/2008 à 16:03:01
Refuseur de tutoriels
Avatar
Validateurs

Ville : Lausanne
Pays : Suisse
études : EPFL

Le mot le plus long viendra :)

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++
 
Hors ligne Lecureuil # Posté le 27/08/2008 à 14:19:22
Avatar

Ville : Krautergersheim
Pays : France métropolitaine

Ou un interpréteur Malbolge ? :-°
:lol:
Édité le 27/08/2008 à 14:20:12 par Lecureuil
 
Hors ligne raphamil # Posté le 27/08/2008 à 14:23:24
Avatar

OMGWTFBBQ !
Pas fou non ?

(\__/)
(/¤.¤\) <= Lapinator ! ^^
('')|('')


[...Signature en travaux...]
 
Hors ligne Goten # Posté le 27/08/2008 à 21:31:31

Citation : Nanoc
Le mot le plus long viendra :)



Le problème c'est que la qualité du programme découle de la liste de mot qui va avec le logiciel... plus la liste est complète plus le programme est 'fort'. Donc faudrait trouver la même pour tout le monde!
Hors ligne Paul Helly # Posté le 27/08/2008 à 21:48:37
I could go supersonic !
Avatar

Ville : Longuenesse
Pays : France métropolitaine

Pourquoi pas recopier le dictionnaire :D ?

"Tant que tu ne peux pardonner à autrui d'être différent, tu es encore bien loin du chemin de la sagesse." Sagesse chinoise

Apprenti Hacker
 
Hors ligne Hiura # Posté le 27/08/2008 à 23:24:00
Avatar
Flux RSS

études : EPFL

Citation : gymnopaul
Pourquoi pas recopier le dictionnaire :D ?
Pourquoi pas prendre la liste des mot de OpenOffice ou autre? ;)
 
Hors ligne Nanoc # Posté le 28/08/2008 à 08:31:00
Refuseur de tutoriels
Avatar
Validateurs

Ville : Lausanne
Pays : Suisse
études : EPFL

Evidemment que ca dépend du dictionnaire. Mais pour un dictionnaire donné, on peut toujours comparer les programmes à la vitesse de recherche.
Parce que chercher une séquence aléatoire dans un fichier de 100'000 entrées c'est pas forcément évident à faire de manière efficace.

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++
 
Hors ligne Paul Helly # Posté le 28/08/2008 à 10:35:36
I could go supersonic !
Avatar

Ville : Longuenesse
Pays : France métropolitaine

Citation : Hiura
Pourquoi pas prendre la liste des mot de OpenOffice ou autre? ;)

Ah oui c'est pas bête :D ...

Je parlais au second degré :-° ...

Citation : Nanoc
Evidemment que ca dépend du dictionnaire. Mais pour un dictionnaire donné, on peut toujours comparer les programmes à la vitesse de recherche.
Parce que chercher une séquence aléatoire dans un fichier de 100'000 entrées c'est pas forcément évident à faire de manière efficace.

Alors oui c'est un très bon exercice :) .

"Tant que tu ne peux pardonner à autrui d'être différent, tu es encore bien loin du chemin de la sagesse." Sagesse chinoise

Apprenti Hacker
 
Hors ligne Hiura # Posté le 28/08/2008 à 16:13:53
Avatar
Flux RSS

études : EPFL

Citation : gymnopaul
Je parlais au second degré :-° ...
T'inquiète, j'avais compris. ;)
 
Hors ligne Shackdown # Posté le 28/08/2008 à 17:58:27
Quand on veut, on peut

Citation : Lecureuil
Ou un interpréteur Malbolge ? :-°
:lol:


Vas y fais toi plaisir :-° tu nous fais signe quand tu est au bord du suicide :) :p

Le mot le plus long, ca ma l'air assez interressant cela vivement cette exercice :D


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
 
Hors ligne M41d3n-dc # Posté le 30/08/2008 à 18:49:11
Mode sudo activé !!
Avatar

Ville : Aubergenville
Pays : France métropolitaine

bonjour

N'ayant plus d'idée de logiciel pour Qt, je me suis dit qu'un peu d'entrainement serais le bien venus :lol: .
J'ai donc commencé le dernier exercice ("Les chiffres..."), et j'ai reussi a faire choisir aléatoirement le nombre a atteindre, mais pour les 6 de la liste je n'y arrive pas ! voici mon code :

Secret (cliquez pour afficher)

Main.cpp
Code : C++
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#include <iostream>
#include "chiffre.h"

using namespace std;

int main()
{
    Chiffre chiffre;

    chiffre.randomNbToDo();
    chiffre.randomNbCh();
    getchar();
    return 0;
}


Chiffre.h

Code : C++
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#ifndef DEF_CHIFFRE
#define DEF_CHIFFRE

class Chiffre
{
    public:
        Chiffre();
        void randomNbToDo();
        void randomNbCh();

    private:
        int nbToDo;
        int nbChoose[5];
};

#endif


Chiffre.cpp

Code : C++
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <time.h>

#include "chiffre.h"

using namespace std;

Chiffre::Chiffre()
{
}

void Chiffre::randomNbToDo()
{
    srand(time(NULL));

    int nbMax = 1000;
    nbToDo = (rand() % (nbMax)) + 1;
    cout << "Nombre a atteindre : " << nbToDo << endl;
}

void Chiffre::randomNbCh()
{
    int listePossible[] = {1,2,3,4,5,6,7,8,9,10,25,50,75,100};
    srand(time(NULL));

    for(int i = 0; i < 5; i++)
    {
        nbChoose[i] = (rand() % (listePossible)) + 1;
        cout << "Nombre choisi : " << nbChoose[i] << endl;
    }
}



voici les erreurs que me donne le comilateur :

Code : Console
-------------- Build: Release in Chiffres ---------------

Compiling: chiffre.cpp
C:\Users\Vincent\Desktop\Programmation\Exercices CMD\Chiffre et lettres\Chiffres\chiffre.cpp: In member function `void Chiffre::randomNbCh()':
C:\Users\Vincent\Desktop\Programmation\Exercices CMD\Chiffre et lettres\Chiffres\chiffre.cpp:28: error: invalid operands of types `int' and `int[14]' to binary `operator%'
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings


merci de votre aide :)
Hors ligne Bachir ElMagnifico # Posté le 30/08/2008 à 18:54:49
Avatar
Flux RSS

la prochaine fois tu ouvre un sujet approrié.
pour ton probleme: il vient du fait que tu fait un int mopdulo pointeur, donc forcement le compilo n'est pas content.
Édité le 30/08/2008 à 20:02:32 par Bachir ElMagnifico

Image utilisateur
 
Hors ligne Hertzien' # Posté le 30/08/2008 à 19:57:41
C++, C(encore)++ fort !
Avatar

nbChoose[i] = (rand() % (listePossible)) + 1;
Devient
nbChoose[i] = listePossible[(rand() % (sizeof(listePossible) / sizeof(int)) + 1)];

Tu peux remplacer les deux sizeof par la taille du tableau listePossible
Édité le 30/08/2008 à 21:10:08 par Hertzien'

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
 
Hors ligne Nanoc # Posté le 30/08/2008 à 20:16:15
Refuseur de tutoriels
Avatar
Validateurs

Ville : Lausanne
Pays : Suisse
études : EPFL

En C++, on utilise rarement sizeof. Ici, on en a clairement pas besoin.

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++
 
Hors ligne Hertzien' # Posté le 30/08/2008 à 21:12:18
C++, C(encore)++ fort !
Avatar

Oui je suis d'accord, seulement j'ai écrit le bout de code à l'aveugle. :p Je voulais pas compter le nombre des élèment.
Pourquoi "rarement" ?

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
 
Hors ligne Skydreamer # Posté le 30/08/2008 à 21:40:17
Avatar

Ville : Thionville
Pays : France métropolitaine

Parce que les allocations dynamiques n'en ont pas besoin.

Développeur et graphiste du site des zCorrecteurs :)
zCorrecteurs.fr
 
Hors ligne Nanoc # Posté le 30/08/2008 à 22:34:00
Refuseur de tutoriels
Avatar
Validateurs

Ville : Lausanne
Pays : Suisse
études : EPFL

Parce qu'à moins de devoir manipuler finement la mémoire en on a pas besoin. Pour continuer la discussion, merci de créer un nouveau thread.

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++
 
Hors ligne M41d3n-dc # Posté le 30/08/2008 à 22:38:15
Mode sudo activé !!
Avatar

Ville : Aubergenville
Pays : France métropolitaine

ok merci :) mais sa ne doit pas etre tres bon car voici le resultat :

Code : Console
Nombre a atteindre : 79
Nombre choisi : 10
Nombre choisi : 8
Nombre choisi : 2293484  // ??
Nombre choisi : 8
Nombre choisi : 100



que voudrait il utiliser alors a la place des sizeof ?? ou est ce mon code qui est mal codé ??

merce
ps : la prochaine fois je créerais un topic ;)
Hors ligne Nanoc # Posté le 30/08/2008 à 23:04:15
Refuseur de tutoriels
Avatar
Validateurs

Ville : Lausanne
Pays : Suisse
études : EPFL

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ète



Cher 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 :p
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' :o

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 :D

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++
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
//fichier main.cpp

#include <iostream>
#include <fstream>
#include <iomanip>
//#include <cctype>   // isspace()

using namespace std;

int  GereArguments(char argc ,char *argv[])           ;
bool IsSpace      (char C )                           ;
void Calcul       (const string & , ostream & = cout );
void AfficherAide (void);


int main(char argc,char*argv[])
{
    bool retour;
    try
    {
        retour = GereArguments(argc,argv);
    }
    catch(const string & e)
    {
        cerr << e;
        retour = EXIT_FAILURE;
    }
    return retour;
}

int  GereArguments(char argc ,char *argv[])
{
    if (argc > 4 || argc < 2)
    {
        AfficherAide();
        return EXIT_FAILURE;
    }
    string NomFichier = argv[1];

    if (argc > 2 )
    {
        string Argument2  = argv[2];
        if (Argument2 != "-d")
        {
            AfficherAide();
            return EXIT_FAILURE;
        }
        if (argc == 3) throw string("Veuillez preciser le nom du fichier de sortie\n");

        string FichierDeSortie = argv[3];

        ofstream FluxDeSortie(FichierDeSortie.c_str(),ios::out | ios::trunc);
        if (FluxDeSortie)
        {
            Calcul(NomFichier, FluxDeSortie);            
        }
        else
            throw string("Erreur dans l'ouverture du fichier destination : " + FichierDeSortie );
    }
    else
    {
        Calcul(NomFichier);
    }
    return EXIT_SUCCESS;
}

void Calcul (const string & FichierAnalyse, ostream & FluxDeSortie )
{
    ifstream FluxAnalyse (FichierAnalyse.c_str(), ios::in);

    if(FluxAnalyse)
    {
        cout << "Calcul en cour..." << endl   ;
        string Buffer                         ;

        unsigned int NbCaracEnTout     = 0    ;
        unsigned int NbCaracSansEspace = 0    ;
        unsigned int NbMots            = 0    ;
        unsigned int NbParagraphe      = 0    ;
        bool         PrecIsSpace       = true ;
        bool         PrecIsCR          = true ;
        bool         BufferEstVide            ;

        while ( getline(FluxAnalyse,Buffer) )
        {
            BufferEstVide = (Buffer == "");


            if ( BufferEstVide && !PrecIsCR )++NbParagraphe;

            PrecIsCR =  BufferEstVide;

            PrecIsSpace = true ;
            for (unsigned i = 0 ; i < Buffer.size() ; i++)
            {
                ++NbCaracEnTout;

                if ( IsSpace(Buffer[i]) )
                {

                    if ( 0 == i || i == Buffer.size()-1 || IsSpace( Buffer[i+1] ) )continue;
                    if (!PrecIsSpace) ++NbMots;

                }
                else
                {
                    ++NbCaracSansEspace;
                    PrecIsSpace = false ;
                }
             }
             if ( !BufferEstVide )++NbMots;

        }
        if (!PrecIsCR) ++NbParagraphe;


        FluxDeSortie << "+"          << setfill('-') << setw(40) << "+"
                     << setfill('-') << setw(8)      << "+"      << endl

                     << setfill(' ') << "| "    << left  << setw(37) << "Nombre de caracteres :"
                     << setfill(' ') << " | "   << right << setw(5) << NbCaracEnTout << " |"   << endl

                     << "| "    << left  << "Nombre de caracteres (hors espace) : "
                     << " | "   << right << setw(5 ) << NbCaracSansEspace << " |"   << endl

                     << "| "    << left  << setw(37) << "Nombre de mots :  "
                     << " | "   << right << setw(5 ) << NbMots << " |"   << endl

                     << "| "    << left  << setw(37) << "Nombre de paragraphes : "
                     << " | "   << right << setw(5 ) << NbParagraphe  << " |"   << endl

                     << "+" << setfill('-') << setw(40) << "+"
                     << setfill('-') << setw(8) << "+" << endl ;
    }
    else
               throw string("Erreur pour l'ouverture du fichier : "+ FichierAnalyse);

    if (FluxDeSortie != cout) cout  << "Calcul termine avec succes \n";
}



bool IsSpace (char C)
{
    return ( C == ' '  ||
             C == '\t' ||
             C == '\n' );
}

void AfficherAide (void)
{
    cout <<"Aide: \nCeci est un programme permettant de calculer differente statistiques a partir d'un "
           "fichier texte situe dans le repertoire courant de l'executable\n\n"
           "Commande : Statisqtique Nom_du_Fichier_A_Analyser\n\n"
           "Option   : -d Nom_du_Fichier_Ou_Sauver_Les_Resultats \n\n"
           "Exemple  : - Statistique test.txt --> Permet d'analyser le fichier test.txt\n"
           "           - Statistique test.txt -d temp.txt --> Analyse le fichier test.txt et stoque les resultats dans temp.txt \n";
}



Remarques sur les codes reçus



En fait, je n'ai pas grand chose à dire ce mois, les codes étaient globalement très bien. Les points suivants sont néanmoins à soulever:

  • C'est bien d'utiliser les manipulateurs de flux, mais c'est encore mieux de les utiliser tout le temps. Par exemple pour faire le cadre avec des "+".
  • Lancer des exceptions, c'est très bien. Les rattraper et agir en conséquence (ici: afficher un messafe d'erreur) c'est encore mieux.


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

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++
 

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

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