Calcul de moyennes
Résolu/Fermé
akybienvenu
Messages postés
48
Date d'inscription
samedi 26 décembre 2015
Statut
Membre
Dernière intervention
4 novembre 2019
-
Modifié par teutates le 19/03/2016 à 01:41
akybienvenu Messages postés 48 Date d'inscription samedi 26 décembre 2015 Statut Membre Dernière intervention 4 novembre 2019 - 21 mars 2016 à 17:23
akybienvenu Messages postés 48 Date d'inscription samedi 26 décembre 2015 Statut Membre Dernière intervention 4 novembre 2019 - 21 mars 2016 à 17:23
A voir également:
- Calcul de moyennes
- Calcul moyenne excel - Guide
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Logiciel calcul surface terrain gratuit - Télécharger - Outils professionnels
- Formule de calcul excel - Guide
2 réponses
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
19 mars 2016 à 14:28
19 mars 2016 à 14:28
Bonjour,
Ligne 3: définition de globales.
~ Quand une globale n'est pas indispensable, elle ne doit pas exister
~ une variable doit avoir un nom explicite.
~ éviter de déclarer plusieurs variables sur une même ligne.
Après lecture de cette seule ligne je connais déjà la moyenne des notes de l'étudiant.
Lignes 14 et 15: Même commentaires avec en plus :
~ Comment créer une variable qui si elle est utilisée peut tout casser (relit toi).
Lignes 16 à 20: des fonctions sans paramètre :
~ une fonction, en plus d'être nommée clairement, doit recevoir les données nécessaires et retourner les données calculées. Cela limite les erreurs et améliore la lisibilité. exemple: void saisirNotes( Ingenieur tableDesIng[], int nbMaxIng, int nbMaxNotes )
Ensuite, le code n'est pas si mal écrit ni mal posé, je pense que tu es plus doué en programmation que tu ne le penses car tu l'as écrit malgré les nommages qui rendent la lecture très pénible. Je pense qu'améliorer la lisibilité est un minimum afin que nous puissions mieux t'aider.
Cdlt Dalfab
Ligne 3: définition de globales.
~ Quand une globale n'est pas indispensable, elle ne doit pas exister
~ une variable doit avoir un nom explicite.
~ éviter de déclarer plusieurs variables sur une même ligne.
Après lecture de cette seule ligne je connais déjà la moyenne des notes de l'étudiant.
Lignes 14 et 15: Même commentaires avec en plus :
~ Comment créer une variable qui si elle est utilisée peut tout casser (relit toi).
Lignes 16 à 20: des fonctions sans paramètre :
~ une fonction, en plus d'être nommée clairement, doit recevoir les données nécessaires et retourner les données calculées. Cela limite les erreurs et améliore la lisibilité. exemple: void saisirNotes( Ingenieur tableDesIng[], int nbMaxIng, int nbMaxNotes )
Ensuite, le code n'est pas si mal écrit ni mal posé, je pense que tu es plus doué en programmation que tu ne le penses car tu l'as écrit malgré les nommages qui rendent la lecture très pénible. Je pense qu'améliorer la lisibilité est un minimum afin que nous puissions mieux t'aider.
Cdlt Dalfab
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
Modifié par Dalfab le 21/03/2016 à 15:14
Modifié par Dalfab le 21/03/2016 à 15:14
Bonjour, il manque les balises pour le code
Et il semblerait que mon commentaire au sujet de t1[] n'a pas été pris en compte;
t1 est un tableau de 0 ingénieur d'après ta définition, il ne peut donc pas contenir plus de 0 ingénieur, tout tentative produit une fonctionnement aléatoire ou un plantage.
Je cite quand même la fonction moyenne()
Et il semblerait que mon commentaire au sujet de t1[] n'a pas été pris en compte;
t1 est un tableau de 0 ingénieur d'après ta définition, il ne peut donc pas contenir plus de 0 ingénieur, tout tentative produit une fonctionnement aléatoire ou un plantage.
Je cite quand même la fonction moyenne()
void moyenne() { printf("voici les moyennes des differents ingenieurs \n"); for ( i=0 ; i<NbreIngenieurs ; i++ ) { printf( "l'ingenieur : %s %s\n" , t1[i].nom , t1[i].prenom ); for ( j=0 ; j<NbreDeMatieres ; j++ ) { // les coefficients devraient venir des Matières, hors il n'y pas de table matière mais un coefficient défini par Ingénieur, !!! float TotalDesNoteCoefficienter = 0; // la valeur initiale est vitale float TotalDesCoefficient = 0; // la valeur initiale est vitale TotalDesNoteCoefficienter += t1[i].Note[j]*t1[i].coefficient; // cumul des notes coefficientées TotalDesCoefficient += t1[i].coefficient; // coef curieux, à corriger!! } // on ferme la boucle for ici t1[i].LaMoyonne= TotalDesNoteCoefficienter/TotalDesNoteCoefficienter; printf( "la moyenne de l'ingenieur %s %s\n" , t1[i].nom , t1[i].prenom ); printf( "est %f" , t1[i].LaMoyonne ); } }
akybienvenu
Messages postés
48
Date d'inscription
samedi 26 décembre 2015
Statut
Membre
Dernière intervention
4 novembre 2019
21 mars 2016 à 17:22
21 mars 2016 à 17:22
BONSOIR Dalfab,
merci pour ton aide j'ai travailler encore sur le programme ca marche
encore merci
merci pour ton aide j'ai travailler encore sur le programme ca marche
encore merci
akybienvenu
Messages postés
48
Date d'inscription
samedi 26 décembre 2015
Statut
Membre
Dernière intervention
4 novembre 2019
21 mars 2016 à 17:23
21 mars 2016 à 17:23
je vais beaucoup te fatiguer souvent , par ce que je suis vraiment passionne de l'informatique
Modifié par akybienvenu le 19/03/2016 à 23:09
merci pour tes suggestions , je vais corriger tous ce que vous avez dis.. rendre mon programme lisible et le remettre pour que vous m'aidiez .
Modifié par akybienvenu le 21/03/2016 à 13:19
j'ai revu le programme et je pense qu'il es lisible ,
maintenant mes soucis sont au niveau des fonction moyenne et fonction lire
-lorsque je fais entrer les coefficients puis la moyenne a l'affichage il n'affiche que la dernière valeur calculer eux lieu de m'afficher tous.
-maintenant comme j'ai utilise des boucle pour mon travail je ne sais pas comment calculer la somme des notes coefficienter selon le nombre de matière?parceque je n'ai pas de definir le max de matieres c'est l'utilisateur qui choisir le nombre qu'il veux
merci
int NbreIngenieurs;
int NbreDeMatieres;
int i;
int j;
typedef struct
{ char classe[100];
wchar_t nom[100];
wchar_t prenom[200];
int matricule;
float note[150];
float coefficient;
float NoteCoefficienter;
float LaMoyonne;
}Ingenieur;
typedef Ingenieur TableDesIng[0];
TableDesIng t1;
void presentation();
void lire();
void SaisirNotes();
void moyenne();
int main()
{
printf("bienvenue dans le programme de calcul de moyenne\n");
printf("voulez-vous calculer la moyenne de combien ingenieur??\n");scanf("%d",&NbreIngenieurs);
printf("l'ingenieur a t-il compose dans combien de matiere?\n");scanf("%d",&NbreDeMatieres);
printf("renseigner les informations de la liste\n");
presentation();
SaisirNotes();printf("\n");
lire();printf("\n");
moyenne();printf("\n");
printf("travail achever..............MERCI\n");
}
void presentation()
{
for(i=0;i<NbreIngenieurs;i++)
{
printf("entrez le nom de l'ingenieur %d\n ",i+1);scanf("%s",&t1[i].nom);
printf("entrez le prenoms de l'engenieur %d\n",i+1);scanf("%s",&t1[i].prenom);
printf("entrez le matricule de l'ingeieur %d\n",i+1);scanf("%d",&t1[i].matricule);
printf("entrez la classe de l'ingenieur %d\n",i+1);scanf("%s",&t1[i].classe);
}
printf("voici la liste\n");printf("\n");
for(i=0;i<NbreIngenieurs;i++)
{
printf("NOM: %s PRENOMS: %s MATRICULE: %dINP CLASSE: %s",t1[i].nom,t1[i].prenom,t1[i].matricule,t1[i].classe);printf("\n");
}
}
void SaisirNotes()
{ for(i=0;i<NbreIngenieurs;i++)
{ printf("LES DIFFERENTES MOYENNES OBTENUES PAR L'INGENIEUR DANS CHAQUE MATIERE SONT:\n");printf("\n");
printf(" la moyenne obtenue par l'ingenieur %s\n ",t1[i].nom );printf("\n");
for(j=0;j<NbreDeMatieres;j++)
{
printf("dans la matiere : %d\n ", j+1);printf("\n");scanf("%f",&t1[i].note[j]);
printf(" entrer le coefficient : %d\n",j+1);printf("\n");scanf("%f",&t1[i].coefficient);
}
}
}
void lire()
{
printf("les igenieurs et leur differentes moyennes suivit des coefficients \n");
for(i=0;i<NbreIngenieurs;i++)
{ printf("l'ingenieur : %s %s\n",t1[i].nom,t1[i].prenom );
for(j=0;j<NbreDeMatieres;j++)
{ t1[i].NoteCoefficienter=t1[i].coefficient*t1[i].note[j];
printf(".........MOYENNE COEFFICIENTER.........:%f",t1[i].NoteCoefficienter) ;
}
}
}
void moyenne()
{ printf("voici les moyennes des differents ingeniieurs \n");
for(i=0;i<NbreIngenieurs;i++)
{
printf("l'ingenieur : %s %s\n",t1[i].nom,t1[i].prenom );
for(j=0;j<NbreDeMatieres;j++)
{ float TotalDesNoteCoefficienter;
float TotalDesCoefficient;
TotalDesNoteCoefficienter= t1[i].NoteCoefficienter+t1[i].NoteCoefficienter;
TotalDesCoefficient=t1[i].coefficient+t1[i].coefficient;
t1[i].LaMoyonne=( TotalDesNoteCoefficienter/TotalDesNoteCoefficienter);
printf("la moyenne de l'ingenieur %s %s\n",t1[i].nom,t1[i].prenom);
printf("est %f",t1[i].LaMoyonne);
}
}
}