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 :

Aide devoir ALGO et C


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Aide devoir ALGO et C
    Bonjour, voila je suis en école d'ingénieur et j'ai un devoir à effectuer en programmation, or je suis très mauvaise dans cette matière et j'aimerais de l'aide si possible pour ce devoir, merci beaucoup.

    Le sujet est le suivant:
    Une entreprise organise un sondage musical pour connaitre la popularité des disques participant au TOP 50.
    L'échantillon pourra être divisé en quatre catégories : sexe, âge(>20 ou <20); à chaque personne on demande de citer 5 titres identifiés par des n° de 1 à N (soit N titre de disques).
    Ainsi, on souhaite fournir un logiciel ergonomique, facile d'utilisation permettant d'établir des stats et des listes de personnes selon leur choix.
    L'objectif final étant de créer une mini base de données constituée de fichier regroupant les personnes sondées, permettant de connaître entre autre les 3 titres les + populaires dans toute la population, et les personnes de chaque catégorie ayant cité en premier un des 3 titres les + pop.

    1) Ecrire l'algorithme correspondant au programme.
    2) Traduire en langage C

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut re
    Je sais que le logiciel devra se comporter de cette façon :

    SAISIE =>
    AFFICHAGE => MODULES
    ACTION PRINCIPALE =>

    3 titres les + pop
    => le + pop
    =>notes des titres
    =>note d'un titre
    =>nombre de fois où le titre 'i' est cité en position 'j'

    Mais rien que l'algo je n'y arrive pas!!

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Bonjour,

    Citation Envoyé par mikaado Voir le message
    Bonjour, voila je suis en école d'ingénieur et j'ai un devoir à effectuer en programmation, or je suis très mauvaise dans cette matière et j'aimerais de l'aide si possible pour ce devoir, merci beaucoup.
    Certainement, mais on ne fera pas ton devoir à ta place. Dis-nous ce que tu as fait jusqu'ici et où tu bloques en particulier.

    Le sujet est le suivant:
    Une entreprise organise un sondage musical pour connaitre la popularité des disques participant au TOP 50. […]

    1) Ecrire l'algorithme correspondant au programme.
    2) Traduire en langage C
    Écrire l'algorithme risque d'être très long : c'est une application entière qu'il faut écrire, même si ce n'est pas très difficile. Si ça doit être « ergonomique », ça veut dire qu'il faudra au moins que l'application elle-même se charge de la saisie et de la gestion des données, avant même de commencer à faire des stats dessus. Mais, bon. Soit.

    Est-ce que tu as le droit de faire une application « fenêtrée » en utilisant des composants qui se chargent de la saisie, ou dois-tu tout faire en mode console ?

    Dans tous les cas, il faut que tu commences par définir une structure en C, qui va te servir de tuple pour ta base de données.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut ! J'ai un sujet un similaire sinon le même... et j'aimerais savoir si ce que j'ai fait fonctionne et aussi comment faire pour déterminer les 3 titres les plus nommés dans toute les catégories et les 3 dans chaque catégories. Merci !

    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
    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
    159
    160
    161
    162
    163
    164
    165
    #ifdef HAVE_CONFIG_H
    #include <config.h>
    #endif
    #include <stdio.h>
    #include <stdlib.h>
     
    #define NB 1
    // C'est le nombre de personne total qui vont être sondé
     
     
    typedef struct sOnDage{
    char nom[20];
    char prenom[20];
    int  sexe;
    int  age;	
    int  choix[5];
    }tpersonne;
     
     
    void saisie(tpersonne sonde[NB])    // Demande de saisie des informations 
    {int i,j;
     
     
     
       for(i=0;i<NB;i++){
          printf("\n\nEntrez votre nom:\n");
          gets(sonde[i].nom);
          gets(sonde[i].nom); //On rajoute un gets supplémentaire pour contourner le bug du programme
          printf("\nEntrez votre prenom:\n");
          gets(sonde[i].prenom);
          printf("\nQuelle age avez vous?\n");
          scanf("%i",&sonde[i].age);
          printf("\nSexe Masculin tapez 1, sexe Feminin tapez 2\n");
          scanf("%i",&sonde[i].sexe);
       for(j=0;j<5;j++){     // 5=nombre de titres à selectionner
          printf("Quelle est votre titre préféré n°%i?\n",j+1); 	
          scanf("%i",&sonde[i].choix[j]);  
       }}}
     
     
     
    void affiche(tpersonne sonde[NB])   // Affichage des diférentes informations saisies par l'utilisateur
    {int i,j;
       for(i=0;i<NB;i++){
          printf("Le nom est : %s\n",sonde[i].nom);
          printf("Le prenom est : %s\n",sonde[i].prenom);
     
       if (sonde[i].age<20)
          printf("Vous avez %i ans, vous faites parti de la catégorie moins de 20ans\n",sonde[i].age);
       else if(sonde[i].age>=20)
          printf("Vous avez %i ans, vous faites parti de la catégorie plus de 20 ans\n",sonde[i].age);
       if (sonde[i].sexe==1){
          printf("La personne est un homme\n");
          printf("Son classement est le suivant:\n\n");}
       else{
          printf("la personne est une femme\n");
          printf("son classement est le suivant:\n\n");}
       for(j=0;j<5;j++){
          printf("%i\n",sonde[i].choix[j]);
    }}}
     
     
    //Fonction qui permettra de compter le nombre de fois qu'un titre est citéà une position choisie
    int contage(tpersonne sonde[NB],int titre,int position){
    int i,
    comp=0;
    	for(i=0;i<NB;i++){
    		if(sonde[i].choix[position]==titre)
    			comp=comp+1;
    	}
    	return comp;
    }
     
     
     
    int note_de_titre(tpersonne sonde[NB], int titre, int choix,int position){
    	int i;
    	int s=0;
    	for(i=0;i<choix;i++)
                    if(sonde[i].choix[position]==titre);
                    s=s+1;
    	return s;}
     
     
    //Fonction qui va permettre de sauvegarder les donnée entrés par les utilisateurs
    //Données enregistrés dans le répertoire \Debug\SRC 
    void sauvegarde(tpersonne*sOnDage,int y){
    int i;
    int j;
    char file_name[20];
       FILE*fpt;
       printf("nom du fichier de sauvegarde:\n ");
       scanf("%s",file_name);
       fpt=fopen(file_name,"w");
       for(i=0;i<y;i++){
          fprintf(fpt,"Données personne n°%i\n", i+1); 
          //"fprintf" écris directement dans le fichier
          fprintf(fpt,"Nom: %s\n\n",sOnDage[i].nom);
          fprintf(fpt,"Prénom: %s\n\n",sOnDage[i].prenom);
          fprintf(fpt,"Age(1= <20ans; 2= >20ans): %i\n\n",sOnDage[i].age);
          fprintf(fpt,"Sexe(1=Homme, 2=Femme): %i\n\n",sOnDage[i].sexe);
       for(j=0;j<5;j++){
          fprintf(fpt,"titre n°%i: %i\n",j+1,sOnDage[i].choix[j]);}}
       fclose(fpt);
    }
     
     
    // Permets de charger un fichier déjà sauvegardé auparavant
    void chargement (tpersonne*sOnDage,int*ychargement){
    int i;
    char file_name[20];
    int  *sOnDage;
       FILE *fpt;
       printf("Entrez le nom du fichier que vous voullez charger:\n ");
       scanf("%s", file_name[20]);
       fpt=fopen(file_name,"r");
       fscanf(fpt,"%i",&y);
       sOnDage=(int*)malloc(*y*sizeof(int));
       for(i=0;i<y;i++){
       fscanf(fpt,"%i",& sOnDage[i]);}
    fclose(fpt);
    }
     
     
     
    // Fonction Principale
    int main(){               //On définis toutes les variables qui seront utilisés dans le main
    int z,s, titre, position,note;
    int y=NB;
    int comp;
    int choix[5];
    tpersonne sonde[NB];
     
     
          printf("1: Créer une nouvelle base de donnée\n");
          printf("2: Charger une base de donnée déjà enregistré\n");
          printf("3: Quitter le programme\n\n");
          scanf ("%i",&z);
     
     
          // On utilise un switch car c'est la fonction la plus pratique pour les menus
          switch(z)  
          {   case 1 : saisie(sonde);
                       affiche(sonde);
                       printf("Statistique citation titre \n");
                       printf("Entrez le numéro d'un des titres que vous voulez compter:\n ");
                       scanf("%i",&titre);
                       printf("en quelle position:\n");
                       scanf("%i",&position);
                       comp= contage(sonde,NB,position);
                       printf("\n\nle titre n°%i a été cité en tout %i fois en position %i\n",titre,contage,position);
                       printf("Note des titres\n\n");
                       printf("connaitre la note de quelle titre?\n");
                       scanf("i",&note);
                       s=note_de_titre(sonde,titre,choix,position);
                       printf("\n la note du titre n°%i est de %i",note,s);
                       sauvegarde(sonde,y);  
                       break;
     
              case 2 : chargement(&y);
                       break;
          }
     
     
    }

Discussions similaires

  1. cherche aide en algo
    Par chihade dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 14/03/2007, 16h34
  2. demande aide en algo
    Par luwela dans le forum Algorithmes et structures de données
    Réponses: 20
    Dernier message: 14/12/2006, 22h59
  3. Besoin d'aide pour algo
    Par vodevil dans le forum Langage
    Réponses: 8
    Dernier message: 08/03/2006, 13h45
  4. Aide pour algo voyelle
    Par wareq dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 21/11/2005, 20h49

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