IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Debutant en C++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut Debutant en C++
    Salut,

    je suis debutant en C++.
    Comment ecrire un programme qui d'abord demande de saisir dix chiffres puis les affiche en ordre croissant.

    Ceci parait simple mais le probleme c'est que je dois integrer ce code dans un autre code que j'ai deja ecrit et qui affiche le max ,le minimum et la moyenne.

    Voici le code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #include<iostream>
    #include <stdlib.h>
     
    class Employee
    {
    void moyenne()
    {
    int t[10],i;
    double s=0; 
    for(i=0;i<10;i++)
       {
       cout<<"Entrer le salaire de l'employe N"<<i<<" : ";
       cin>>t[i];
       }
    for(i=0;i<10;i++)s=s+t[i];
    s=s/10;
    cout<<"La moyenne du salaire est de : "<<s<<endl;
     
    }
     
    void minimum()
    {
     int t[10],i,ppt;
    for(i=0;i<10;i++)
     
    ppt=t[0];
    for(i=1;i<10;i++) if(ppt>t[i])ppt=t[i];
    cout<<"Le salaire minimum est "<<ppt<<endl;
    }
     
    void maximum()
    {
     int t[10],i,ppt;
    for(i=0;i<10;i++)
     
    ppt=t[0];
    for(i=1;i<10;i++) if(ppt<t[i])ppt=t[i];
    cout<<"Le salaire maximum est "<<ppt<<endl;
    }
    };
     
    int main()
    {
    Employee E;
    E.moyenne();
    E.minimum();
    E.maximum();
     
    system ("pause");
    return 0;
    }

  2. #2
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Essaie de faire quelque chose avant, car tu as déjà programmé semble t'il vu ce que tu dis.

    On ne va pas faire ton exercice à ta place.
    Mais on peut t'aider si tu as une question d'ordre technique.

    N'oublie pas de consulter la FAQ !

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Quelques remarques sur le code que tu proposes :

    La classe Employee devrait décrire, d'après son nom, UN(e) employé(e) alors qu'elle décrit 10 individus (pourquoi 10 et pas 9 ou 11 ?). Ce nom est bien trompeur: c'est en fait une collection d'employé(e)s. Admettons !

    Si je demande le salaire moyen, avec la méthode moyenne() , je n'ai pas forcément envie de rentrer les salaires des individus au clavier ni de le voir s'afficher sur l'écran. J'ai simplement envie d'avoir une méthode qui me donne le salaire moyen, libre à moi d'entrer les données comme je veux et de faire ce que je veux du résultat. Il y a une confusion sur le rôle de cette méthode parce qu'elle fait trois choses qui n'ont rien à voir entre elles : (1) elle lit les données à un endroit fixé à l'avance (mais ne les mémorise pas),
    (2) elle calcule la moyenne (mais ne me renvoie pas le résultat),
    (3) elle m'informe du résultat en l'affichant à un endroit que je ne peux pas choisir.
    Son utilité est extrèmement restreinte par ces contraintes.

    minimum() et maximum() sont encore plus exotiques. Elles calculent la valeur minimum (ou maximum) de salaires qu'elles ne connaissent pas et sortent aussi le résultat (qui naturellement est sans rapport avec la réalité) à un endroit que je ne peux pas choisir.

    Ces méthodes devraient renvoyer un double et me laisser le choix de traiter le résultat.

    Il manque une méthode qui permette d'obtenir les salaires de tous les individus pour les mémoriser dans un membre de la classe (en d'autres termes l t[] ne doit pas être un objet local aux méthodes mais une donnée membre de la classe et la classe doit permettre de l'initialiser)

  4. #4
    Membre éclairé Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Par défaut
    Pour ce qui concerne les 10 nombres à entrer et les trier, tu n'as qu'à faire par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <vector>
    #include <algorithm>
    
    int i = 0;
    int n;
    std::vector<int> chiffres;
    
    while (i < 10)
    {
       // demander à l'utilisateur un chiffre
       std::cout << "Entrer un chiffre" << std::endl; 
       // sauvegarder le chiffre dans la variable n
       std::cin >> n;
       // copier l'élément dans le vecteur
       chiffres.push_back(n); 
       // incrémenter le nombre de chiffres lu
       i++; }
    
    sort(chiffres.begin(), chiffres.end()); // trier les chiffres
    Ensuite tu lis affiches chaque élément de ton vecteur,

    Pour en savoir plus sur la classe vecteur:
    http://www.cppreference.com/cppvector/index.html
    http://www.codersource.net/c++_vector_stl.html

    Remplace également ton

    par

    stdlib.h est obsolète en C++

  5. #5
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Par défaut
    Salut,
    j'vais commencer par un conseil, si tu veux des réponses à tes questions, faut que les gens aient envie de t'aider. Et pour ce, faut que le problème soit clair et le code soit lisible, sans quoi les gens passent à un autre post. Si je peux te suggèrer, mettre des espaces, et mettre une belle indentation. Et sur ce forum,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     les balises [ CODE ] et [ / CODE ] exsitent.
    Bon pour ce qui est de ton problème, tu as plusieurs choix... Dis toi tjs que le calcul vaut le travail, soit tu pars pour le faire vite et tout croche et tu patch ensuite. (mauvaise idée) Soit tu penses à ton algo, tu gribouille sur une feuille de papier, tu perd 15 min de prog, mais t'en sauves 25 de patchage pis de modifs et ta structure est plus belle et plus compéhensible.

    Donc là faut te demander est-ce que la Classe Employe contient les 10 salaires ? ou chaque employé a un salaire en variable membre, par défaut à 0, et toi dans le main, tu demandes les dix salaires et les places et ensuite les calcules avec tes fonctions ?! du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    class CEmploye
    {
          CEmploye(void); //Constructeur par défaut.
          ~CEmploye(void); //Destructeur.
     
          int m_iSalaire; //int ou double ou float, selon le setSalaire.
     
    public :
     
          void setSalaire(int iSalaire); // int ou double ou float, comme tu veux.
          int getSalaire(void); //int ou double ou float, selon le m_iSalaire.
    };
     
    int main()
    {
        const int iNOMBRE_EMPLOYE = 10;
     
        CEmploye oUnEmploye[iNOMBRE_EMPLOYE ];
        int iSalaire[iNOMBRE_EMPLOYE];
     
        for(int i = 0 ; i < iNOMBRE_EMPLOYE ; i++)
        {
             cout << "Quel est le salaire de l'employe ::: " << i << endl;
             cin >> iSalaire[i];
             oUnEmploye[i].setSalaire(iSalaire[i]);
        }
     
    //Ensuite tu parcours le tout avec des boucles for et la fonction getSalaire().
     
        return 0;
    }

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut debutant en C++
    Salut,

    J'ai bien lu ton message concernant mon code.
    Au niveau de la confusion c'est parce que j'ai traduit en francais un exercice en anglais. C'est pour cela que le code est un peu.

    Je suis en train d'apprendre en anglais.

    D'autrepart, je ne suis pas encore alle au cours de vecteur, pour l'instant j'ai etudiee le C++ que jusqu'au "encapsulation et Abstraction".

    Mais ton conseil est bienvenu pour moi, je te remercie infiniment.

    ok je vais essayer ton code.

    A plus

  7. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    <HS>
    Il est difficile de parler d'ordre pour apprendre le C++. En simplifiant, on en a deux aujourd'hui :
    - l'historique : qui reprend l'ordre du C et rajoute après ce qui est spécificque au C++ en commençant par les classes
    - le "moderne" : qui ne s'intéresse pas à l'histoire du langage, mais plutôt à ce qu'un débutant à besoin de connaitre. Bref un ordre pédagogique qui n'oublie pas que le C++ dispose aussi d'une bibliothèque standard.

    Soit, les cours les plus côtés aujourd'hui ont tendance à montrer les vecteurs avant les classes. Histoire d'apprendre à gérer correctement la mémoire sans se poser de questions afin de pouvoir se concentrer d'abord sur ce qui est important.
    </>
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #8
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut Afficher la somme
    comment afficher la somme des chiffres compris entre 1 et 100?
    en utilisant le constructs.

Discussions similaires

  1. [FLASH] pb debutant
    Par ultrakas dans le forum Flash
    Réponses: 2
    Dernier message: 05/06/2003, 00h48
  2. [debutant] Questions sur 1 futur projet
    Par cyrull22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/04/2003, 21h49
  3. [debutant]Limiter le temps de saisi
    Par Nasky dans le forum C
    Réponses: 5
    Dernier message: 17/03/2003, 15h47
  4. [Debutant] Fichier war
    Par saispasfau dans le forum JBuilder
    Réponses: 2
    Dernier message: 17/03/2003, 15h32
  5. Réponses: 3
    Dernier message: 09/02/2003, 01h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo