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 :

Appel de 2 fonctions


Sujet :

C++

  1. #1
    Candidat au Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Janvier 2014
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Par d�faut Appel de 2 fonctions
    Bonsoir,

    J'essaye actuellement de compter le nombre d�occurrences d'un caract�re (une lettre) dans une suite de lettres et je veux ensuite afficher la masse de cette lettre (puisque cette lettre correspond a un acide amin�).
    Le nombre d�occurrence marche et est affich�, cependant, � la suite de cela le programme fait comme si je n'avais rien mis apr�s alors que je veux afficher une certaine phrase, savez vous d'ou cela pourrait venir ?

    Voici mon programme :

    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 <cstdio>
    #include <cstdlib>
    #include <string>
    #include <iostream>
    #include <cmath>
    #include <conio.h>
     
    using namespace std; 
     
    double A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,V,W,Y;
    float i, n, res=1;
    int p;
     
    K = 128.094 * res;
     
    int nb_occ(char* chaine,char car)                                              
    {
        int c,nbocc = 0,
        size = strlen(chaine);                                       //Taille de la chaine
     
        for (c = 0 ; c < size ; c++)
        {
            if (chaine[c] == car)                                                  
                nbocc ++;                                                           
        }
     
        return nbocc;                                                              
    }
     
    int main(void)                                                         //Fonction principale
    {
     
    n = 1.66054 * 10;                                                               
    p = -27;
    if (p>0) for (i=0; i<p; i++) res=res*n;
    else for (i=0; i<(-p); i++) res=res/n;
     
    getch();
     
        char maChaine[] = "MTYVKKYHPTTKYYGIIHGEKYELQDVLF";
        int nb = nb_occ(maChaine,'K');                                             
     
        cout<<"La chaine : "<<maChaine<<" contient "<<nb<<" fois le caractere 'K'"<<endl;
        cout<<endl;
        fin = nb*K;
        cout<<"La masse de cet acide aminé est : "<<fin<<" Kilogrammes";
     
        system ("PAUSE");
        return 0;
    }


    Cordialement.

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Inscrit en
    D�cembre 2011
    Messages
    9 026
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 9 026
    Par d�faut
    Bonjour,

    Plusieurs remarques :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    double A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,V,W,Y;
    Utilise un tableau.

    En C++, on utilise plus des char * mais des std::string.
    En C++, il existe des algorithmes comme count, count_if.

    Tu as oubli� un std::endl � la fin de ton programme.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Salut

    Je passe rapidement, c'est dommage de s'emb�ter avec du C quand on peut faire hyper simple en C++11.

    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
    #include <unordered_map>
    #include <iostream>
    #include <algorithm>
    #include <string>
     
    size_t nb_occ(std::string const& chaine, char needle) {
      return std::count(chaine.begin(), chaine.end(), needle);
    }
     
    int main() {
      std::string chaine = "MTYVKKYHPTTKYYGIIHGEKYELQDVLF";
     
      // Methode 1 : on compte par caractère isolé
      std::cout << "La chaîne " << chaine << " contient " << nb_occ(chaine,'K') << " fois le caractère 'K'." << std::endl;
     
      // Methode 2 : on compte toutes les occurences de tous les caractères d'un coup
      std::unordered_map<char,size_t> occurences;
      for(char c : chaine) ++occurences[c];
     
      std::cout << "La chaîne " << chaine << " contient " << occurences['K'] << " fois le caractère 'K'." << std::endl;
      std::cout << "La chaîne " << chaine << " contient " << occurences['Y'] << " fois le caractère 'Y'." << std::endl;
     
      return 0;
    }

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Inscrit en
    D�cembre 2011
    Messages
    9 026
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 9 026
    Par d�faut
    Pourquoi lui donner une solution toute faite ?
    Ce n'est pas comme cela qu'il progressera

  5. #5
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2012
    Messages
    788
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 788
    Par d�faut
    Citation Envoy� par Neckara Voir le message
    Utilise un tableau.
    Petite pr�cision : les tableaux en C++ c'est std::vector ou std::array si la taille est connue � la compilation (et qu'il tiens sur la pile).

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Inscrit en
    D�cembre 2011
    Messages
    9 026
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 9 026
    Par d�faut
    Petite pr�cision pour la pr�cision d'Ehonn, std::array vient du C++11, (option -std=c++11 avec gcc).

    Donc si on veut un tableau de taille fixe allou� automatiquement sans faire du C++11 (compilateur trop vieux par exemple), utiliser un tableau n'est pas un drame .

  7. #7
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2012
    Messages
    788
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 788
    Par d�faut
    Et � d�faut d'utiliser un compilateur � jour ou n'importe quel �quivalent � boost::array, on choisira d'encapsuler le tableau dans une classe pour acc�der facilement � sa taille de fa�on s�re via une m�thode (voire on ajoutera les m�thodes pour avoir des it�rateurs sur ce tableau).

  8. #8
    Inactif  


    Homme Profil pro
    Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Inscrit en
    D�cembre 2011
    Messages
    9 026
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 9 026
    Par d�faut
    Citation Envoy� par Ehonn Voir le message
    Et � d�faut d'utiliser un compilateur � jour ou n'importe quel �quivalent � boost::array, on choisira d'encapsuler le tableau dans une classe pour acc�der facilement � sa taille de fa�on s�re via une m�thode (voire on ajoutera les m�thodes pour avoir des it�rateurs sur ce tableau).
    Taille de fa�on s�re :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    int tab[54];
    size_t size = sizeof(tab)/sizeof(*tab);
    It�rateurs :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    int tab[54];
    int * iterator_begin = tab; // normalement ça devrait fonctionner avec les algo de la stl
    int * iterator_end = tab + taille_tab;
    Pourquoi s'enquiquiner � faire une classe/r�inventer std::array ?

  9. #9
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2012
    Messages
    788
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 788
    Par d�faut
    Ton size est m�me pas const ! :p
    Des m�thodes .size() .begin() .end() .cbegin() .cend() sont plus simples � utiliser et � se souvenir, elles sont "STL-friendly".

    Citation Envoy� par Neckara Voir le message
    Pourquoi s'enquiquiner � faire une classe/r�inventer std::array ?
    Car je me place dans ton contexte, pas de support de C++11. Pas envie d'utiliser boost::array ou �quivalement.
    std::array n'a pas �t� normalis� sur un coup de t�te.

  10. #10
    Inactif  


    Homme Profil pro
    Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Inscrit en
    D�cembre 2011
    Messages
    9 026
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 9 026
    Par d�faut
    std::array n'a pas �t� normalis� sur un coup de t�te.
    Je ne dis pas le contraire.

    Mais sans C++11 et si tu tiens absolument � avoir begin()/end()/... autant utiliser un std::vector non?

    Pourquoi perdre du temps � d�velopper une classe qui ne t'apportera au final presque rien ?

    Parce que bon, dans les rares cas o� tu as besoin d'un tableau constant avec imp�rativement begin() et compagnie... et que tu ne veux absolument pas d'allocation dynamique... �a se compte sur les doigts d'une main.

  11. #11
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2012
    Messages
    788
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 788
    Par d�faut
    Citation Envoy� par Neckara Voir le message
    Mais sans C++11 et si tu tiens absolument � avoir begin()/end()/... autant utiliser un std::vector non?
    Plut�t d'accord

    Citation Envoy� par Neckara Voir le message
    Pourquoi perdre du temps � d�velopper une classe qui ne t'apportera au final presque rien ?

    Parce que bon, dans les rares cas o� tu as besoin d'un tableau constant avec imp�rativement begin() et compagnie... et que tu ne veux absolument pas d'allocation dynamique... �a se compte sur les doigts d'une main.
    Citation Envoy� par Neckara Voir le message
    Citation Envoy� par Ehonn Voir le message
    std::array n'a pas �t� normalis� sur un coup de t�te.
    Je ne dis pas le contraire.
    Si �a �t� normalis�, c'est que �a doit servir
    On aura m�me peut �tre std::dynarray en C++17

    (C'est surtout la dissociation entre le tableau et sa taille qui me d�range.)

  12. #12
    Inactif  


    Homme Profil pro
    Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Inscrit en
    D�cembre 2011
    Messages
    9 026
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 9 026
    Par d�faut
    Citation Envoy� par Ehonn Voir le message
    Si �a �t� normalis�, c'est que �a doit servir
    Je ne dis pas le contraire.
    Mais en C++11, le rapport co�t/b�n�fice de l'utilisation de std::array est quasi-nul.

  13. #13
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2012
    Messages
    788
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 788
    Par d�faut
    Citation Envoy� par Neckara Voir le message
    Mais en C++11, le rapport co�t/b�n�fice de l'utilisation de std::array est quasi-nul.
    Bench (si tu parles de performence) !

  14. #14
    Inactif  


    Homme Profil pro
    Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Inscrit en
    D�cembre 2011
    Messages
    9 026
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Doctorant s�curit� informatique � Dipl�m� master Droit/�conomie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : D�cembre 2011
    Messages : 9 026
    Par d�faut
    Je parlais de co�t en d�veloppement (quasi-nul car on a juste un #include � rajouter)

Discussions similaires

  1. Appel d'une fonction
    Par georgeabitbol dans le forum ASP
    R�ponses: 4
    Dernier message: 08/07/2004, 14h29
  2. R�ponses: 4
    Dernier message: 02/06/2004, 16h35
  3. Appel d'une fonction
    Par jfphan dans le forum ASP
    R�ponses: 4
    Dernier message: 14/04/2004, 15h06
  4. A la recherche de l'appel d'une fonction...
    Par karl3i dans le forum C
    R�ponses: 3
    Dernier message: 24/09/2003, 12h34
  5. appel xmlservice via fonction javascript
    Par pram dans le forum XMLRAD
    R�ponses: 2
    Dernier message: 06/05/2003, 14h24

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