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 :

[débutant] besoin d'aide pour un programme


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut [débutant] besoin d'aide pour un programme
    bonjour a tous je suis tout nouveau j'ai un Tp d'info pour vendredi et j'ai commencer a le préparer mais j'ai beaucoup de mal je vous met le sujet et ce que j'ai commencer a faire merci beaucoup je demande de l'aide pas de le faire même si ca pourrai etre cool
    Exercice1 :


    Ecrire l’algo (en fr ou a défaut en language c ) pour une fonction extraire(paramètre T, nT,V). qui à partir d’un tableau T de nT composantes entières dont certaines peuvent être redondante (les nombres en 2,3…. Exemplaire sont dits redondantes) réalise les traitement suivants :
    -détermine un tablo V composé des nv composantes redondantes de T
    -renvoie nv le nombre d’élément rangés dans V

    ex num : avec nt=6 et T=(2,15,18,5,18,15) on obtient V=(15,18°) et nv=2
    conseils : gérer 2 indices, l’un pour la gestion de T et l’autre pour V.

    b) écrire un programme applicatif qui :
    _entre au clavier un tableau value de nval valeur réelle
    _enregistre ce tableau dans un ficher redondan.dat
    _appelle le sous programme extraire() pour déterminer un tableau échantillon contenant les nech valeur redondantes du tableau valeur.
    _affiche a l’écran le nombre d’élément redondants.


    Exercice2 :

    a) définir une structure tPRODUIT composée de :
    b) –une variable nom de 30 caractères
    c) –une variable réelle prix
    d) b)définir une fonction produitMedian(parametre produits , ne) produit étant un tableau (liste) de structure de type tProduit et np étant le nombre de produits.la fonctions doit :
    -calculer la moyenne des prix du tableau produit
    -renvoyer le numéro de la structure (cest a dire le numero de a case du tableau Produit)
    qui contient le prix le plus proche de la moyenne.

    Ex num : avec ne=4 et T=[(prod0,,(prod1,11),(prod2,9),(prod3,14)] la strucutre d’indice 1 cest a dire (prod1,11) est la plus proche de la moyenne 10.5 des produits.

    Conseil : fabs() permet de déterminer l’écart absolu entre le prix d’un produit et la moyenne


    et voila ce que jai fai pour la 1er question apres peu plus moi

    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
    int extraire(int T, int nT, int V)
    {
    int val,i,j,index,nv ;
    nV=0;
    index=0;
    for (i=0;i<nT;i++)
    {
    val=T[i];
    j=0;
    while (j<n)
    {
    if( (T[j]==val)&&(I ! =0))
    {
    nV++;
    V[index]=val;
    Index++;
    }
    j++ 
    }
    }
    return(nV)
    }

  2. #2
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Salut,

    Se presenter, je sais pas

    Mais coller le sujet en plein un post, ça c'est a proscrire je dirai, essayes plutôt de faire passer ça sous un autre pretexte...

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    ah désolé , j'arrive pas a editez mon post désolé les admins on va dire que j'ai besoin d'un coup de pousse alors je vien de finir ca :

    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
     
    int extraire(int T, int nT, int V){
    int i,j,nv=0,deja=0;
    //parcourir tout le tablo i de 0 a nT-1
    for (i=0;i<nT;i++){
    //parcourir la fin du tablo j de i a nt-1
    for(j=i;j<nT;j++){
    //si l'on retrouve t[i]=t[j] ce chiffre et redondant
    if( (T[i]==T[j])&&(I ! =0)){
    //il faut verifier que ce nombre n'est deja pas dans el tablo v
    deja=0;
    for (k=0;k<nv;k++){
    if(V[k]=T[i])
    deja=1;
    }
    //ajoute a v et incrementer nv
    if(deja==0){
    V[nv]=T[i];
    nV++;
    }
    }
    }
    }
    return(nV)
    }

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Utilise [code] pour que ton code soit indenté.
    Et ensuite on fait pas le travail à ta place.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    ne t'inkiet pas je ne demande pas de me faire le programme je veux juste un peu d'aide cest tout

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Points : 444
    Points
    444
    Par défaut


    Y'a déjà pas mal d'indications sur ce que tu souhaites faire, ensuite cherche, essaye et reviens sur des points précis sur lesquels tu butes.

    Je ne suis pas contre aider les gens, mais il faut que ceux-ci y mettent du leur, et je crois que c'est le cas de pas mal de monde sur ce forum. Et ce n'est peut-être pas ton intention, mais coller un énoncé d'exo avec ta réponse à la première question et une demande d'aide ça fait un peu "voilà, j'ai fait le début merci de me faire les questions qui restent".

  7. #7
    Invité
    Invité(e)
    Par défaut
    Petit effort de ma part, voici les codes indentés (ya des choses qui sont au dessus des capacités de tout le monde, cela était simplement au-dessus des siennes). J'ai eu la flemme pour l'orthographe... De toute manière, le code reste moche, commentaires inutiles, mauvais noms de variable.

    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
    int extraire(int T, int nT, int V)
    {
        int val, i, j, index, nv;
        nV = 0;
        index = 0;
        for(i = 0; i < nT; i++)
        {
            val = T[i];
            j = 0;
            while(j < n)
            {
                if( (T[j] == val) && (I != 0) )
                {
                    nV++;
                    V[index] = val;
                    Index++;
                }
                j++
            }
        }
        return nV;
    }
    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
    int extraire(int T, int nT, int V)
    {
        int i, j, nv = 0, deja = 0;
        //parcourir tout le tablo i de 0 a nT-1
        for (i = 0; i < nT; i++)
        {
            //parcourir la fin du tablo j de i a nt-1
            for(j = i; j < nT; j++)
            {
                //si l'on retrouve t[i]=t[j] ce chiffre et redondant
                if( (T[i] == T[j]) && (I != 0) )
                {
                    //il faut verifier que ce nombre n'est deja pas dans el tablo v
                    deja = 0;
                    for (k = 0; k < nv; k++)
                    {
                        if(V[k] = T[i])
                        deja = 1;
                    }
                    //ajoute a v et incrementer nv
                    if(deja == 0)
                    {
                        V[nv]=T[i];
                        nV++;
                    }
                }
            }
        }
        return nV;
    }
    Ose me dire sincèrement que ma version est moins lisible que la tienne.

    Sinon, il est évidement hors de question que l'on fasse l'exercice à ta place. Ceci est un forum d'entraide, il ne faut pas voir les gens comme des espèces de pigeons qui aiment faire le boulot à ta place. Je te dirige donc moi aussi vers la FAQ.

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    hé j'ai pas demandé que l'on me fasse l'exo , je travaille ou fur et a mesure cest tout désolé faut pas s'enerver les copinsss je suis pas tres bon je l'avou mais faut pas non plus me descendre comm ca

    voila ce que j'ai pour le 2)

    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
    struct tPRODUIT 
    { 
        char nom[30]; 
        unsigned int prix; 
     }; 
     
    int produitMedian(struct tPRODUIT* prod,int ne) 
    { 
     int moyenne=0; 
     int num=0; 
     int ecart; 
     int total=0; 
      int i=0; 
      for(i=0;i<ne;i++) 
       { 
         total+= prod[i].prix; 
       } 
      moyenne= total/ne; 
      ecart=(prod[0].prix>moyenne ? prod[0].prix -moyenne : prod[0].prix +      moyenne); 
      num=0; 
      for(i=0;i<ne;i++) 
      { 
         int nouvelecart=(prod[0].prix>moyenne ? prod[0].prix -moyenne :      prod[0].prix + moyenne); 
         if (nouvelecart<ecart ) { ecart=nouvelecart; num=i;} 
      } 
      printf("La moyenne est de %d et le numero le plsu proche est le   %d\n",moyenne,"); 
     
      return num; 
    }

  9. #9
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Tu as testé ta fonction avec "nt=6 et T=(2,15,18,5,18,15) on obtient V=(15,18°) et nv=2" ?

    Et avant de passer à la 2ème question, il vaut mieux finir la première, non ? Et en plus, c'est plutôt facile

  10. #10
    Expert éminent sénior
    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
    Points : 13 926
    Points
    13 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int extraire(int T, int nT, int V)
    {
    ....
            val = T[i]; // ERREUR T n'est pas un tableau mais un int
    .....
            if( (T[j] == val) && (I != 0) ) //ERREUR  ci-dessus + I non défini
    ....
          V[index] = val; // ERREUR V n'est pas un tableau mais un int
    Il faut commencer par corriger ces erreurs. Les déclarations des paramètres T et V sont incorrectes

  11. #11
    Expert éminent sénior
    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
    Points : 13 926
    Points
    13 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int produitMedian(struct tPRODUIT* prod,int ne) 
    { 
     int moyenne=0; 
     ....
     int ecart; 
     int total=0;
    A moins que tu ne sois pas à 1 euro près, l'utilisation de int pour représenter ces grandeurs est surprenante.
    en conséquence ceci sera une division entière.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ecart=(prod[0].prix>moyenne ? prod[0].prix -moyenne : prod[0].prix +      moyenne);
    La dernière partie de cette expression ne fait surement pas le calcul prévu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       for(i=0;i<ne;i++) 
      { 
         int nouvelecart=(prod[0].prix>moyenne ? prod[0].prix -moyenne :      prod[0].prix + moyenne); 
         if (nouvelecart<ecart ) { ecart=nouvelecart; num=i;} 
      }
    Idem pour nouvelecart. De plus, tu ne fais pas assez attention à ce que tu fais : On devrait avoir prod[i]!!

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    merci beaucoup pour tes conseil donc voila ce que j'ai fait hier soir et fini today

    pour lexercice 2

    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
    #include<iostream>
    #include<conio>
     
    struct Tproduit
    {
    char nom[30],float prix;
    }Tproduit; 
     
    Tproduit tab[100]; 
     
    int median(Tproduit t,int ne){ 
     
      float Pmoyen=0;float PrixMoyen=0; 
      float ecart; 
       int indice=0; 
     
       for(int i=0;i<ne;i++) 
       { 
          Pmoyen = Pmoyen + t[i].prix; 
       } 
     
      PrixMoyen=Pmoyen/ne; 
     cout<<("\nle prix moyen est de %f",PrixMoyen); 
     
       ecart=fabs(t[0].prix,PrixMoyen) 
     
       for(int i=0;i<ne;i++)
    { 
           if(fabs(t[i].prix,PrixMoyen) < ecart)
    { 
                      ecart= fabs(t[i].prix,PrixMoyen); 
                    indice=i; 
           } 
       } 
     
       return indice; 
    getch()
    } ;
    et pour l'exo 1
    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
    52
    53
    54
    55
    56
    57
    58
    59
    exercice1 :
    #include<iostream>
    #include<conio>
     
    int extraire(int *t[], int nt,int *v[]) 
    { 
    int nv =0; 
     
    for(int i=0;i<nt;i++){ 
    for(int j=1;j<nt;j++){ 
    if(t[i]==t[j] && nv!=0){ 
    for(int k=0;k++;k<nv){ 
    if(t[i]==v[k]){ 
    break; ==========comprend pas cette fonction
     }
    else
    { 
    v[nv]=t[i]; 
     nv++; 
     } 
      } 
     }
    else
    { 
      v[nv]=t[i]; 
     nv++; 
     } 
     } 
    } 
    return nv; 
    }
    void main() 
    { int *nt;int *t[];int *v[]; 
    int redondance=0; 
    cout<<("Veuillez entrer le nombre de valeur du tableau /n"); 
     cin>>(%d,&nt); 
     
    for(int i=0;i<nt;i++){ 
            cout<<("veuillez entrer la valeur numero %d",i+1); 
            cin>>(%d,&t[i]); 
            } 
    FILE *fichier; 
    fichier = fopen(redondant.dat, "w"); 
     
    if (!fichier) 
            { cout<<("ERREUR: Impossible d'ouvrir le fichier: \n");} 
            else{ 
                     for(int i=0;i<nt;i++)
    { 
                             cout<<(fichier, "%d\n", t[i]); 
      } 
     } 
     
     fclose(fichier); 
    redondance=extraire(t,nt,v); 
     
    cout<<("Dans ce tableau il y a %d redondance(s)",redondance); 
    getch() ;
    }

  13. #13
    Expert éminent sénior
    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
    Points : 13 926
    Points
    13 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int median(Tproduit t,int ne){ 
     
      float Pmoyen=0;float PrixMoyen=0; 
      float ecart; 
       int indice=0; 
     
       for(int i=0;i<ne;i++) 
       { 
          Pmoyen = Pmoyen + t[i].prix; 
       }
    t n'est pas un tableau !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       ecart=fabs(t[0].prix,PrixMoyen)
    A ma connaissance, fabs ne prend pas deux arguments (et il manque un ; )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       return indice; 
    getch()
    } ;
    Le getch() ne sera jamais exécuté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int extraire(int *t[], int nt,int *v[])
    A ma connaissance, il s'agit de tableau de int, PAS de tableau de pointeur sur int (et reprend l'indentation de cette fonction STP)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    break; ==========comprend pas cette fonction
    Comment peut-on utiliser quelque chose dont on ne sait pas ce qu'elle fait (en l'occurence elle permet de sortir d'une boucle ou d'un switch)

    Je ne veux pas, loin de là, te décourager, mais ces remarques (sauf la derniere ) ont du déjà être formulées par le compilateur . Tu dois absolument prendre en compte les erreurs et les warnings du compilateur et ne JAMAIS les ignorer. L'aide associée permet de comprendre le pourquoi des choses. Faire des erreurs est instructif à la condition de les comprendre et de les résoudre. La programmation aléatoire par essai/erreur ne peut aboutir à rien de bon. Il y a une logique dans tout cela et il faut la saisir. Personne ne peut faire ce chemin pour toi, tout juste te remettre dans les rails.
    Corriges tout cela !

    Alors, remets-toi au boulot , il n'est jamais trop tard (et ce forum est la pour t'aider à la mesure de tes efforts) !

    Amicalement

Discussions similaires

  1. [Débutant] Besoin d'aide pour modifier un jeu
    Par stoff66 dans le forum Assembleur
    Réponses: 9
    Dernier message: 31/08/2006, 19h24
  2. [Débutant]Besoin d'aide pour gestion d'exceptions
    Par H1B4K dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2006, 11h01
  3. [Free Pascal] Besoin d'aide pour un programme
    Par ricomix dans le forum Free Pascal
    Réponses: 3
    Dernier message: 04/06/2006, 18h01
  4. [débutant].besoin d'aide pour servlet
    Par 2tsiris dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 30/03/2006, 15h36

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