Calcul de moyennes
Résolu
akybienvenu
Messages postés
53
Statut
Membre
-
akybienvenu Messages postés 53 Statut Membre -
akybienvenu Messages postés 53 Statut Membre -
bonsoir ,
je ne suis pas tres doue dans la programmation donc j'ai decider de creer un programme qui calcul la moyennes de chaque eleves selon les matieres dans les quelles il a composer et le coefficient de la matiere. . mon probleme se trouves au niveau de la fonction void_moyenne . JE NE SAIS PAS COMMENT FAIRE LE CALCUL POUR CALCULER LAS MOYENNES DES ETUDIANTS
je ne suis pas tres doue dans la programmation donc j'ai decider de creer un programme qui calcul la moyennes de chaque eleves selon les matieres dans les quelles il a composer et le coefficient de la matiere. . mon probleme se trouves au niveau de la fonction void_moyenne . JE NE SAIS PAS COMMENT FAIRE LE CALCUL POUR CALCULER LAS MOYENNES DES ETUDIANTS
#include <stdio.h> #include <stdlib.h> int a,n,i,j; typedef struct { char classe[100]; wchar_t nom[100]; wchar_t prenom[200]; int matricule; float note[150]; float coef; float p; float moy; }Ingenieur; typedef Ingenieur TABLEING[0]; TABLEING t1; void presentation(); void lire(); void saisie(); void moyenne(); void moyennegeneral(); int main() { printf("bienvenue dans le programme de calcul de moyenne\n"); printf("voulez-vous calculer la moyenne de combien ingenieur??\n");scanf("%d",&a); printf("l'ingenieur a t-il compose dans combien de matiere?\n");scanf("%d",&n); printf("renseigner les informations de la liste\n"); presentation(); saisie();printf("\n"); lire();printf("\n"); moyenne();printf("\n"); printf("travail achever..............MERCI\n"); } void presentation() { for(i=0;i<a;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<a;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 saisie() { for(i=0;i<a;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<n;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].coef); } } } void lire() { printf("les ingenieurs et leur differentes moyennes suivit des coefficients \n"); for(i=0;i<a;i++) { printf("l'ingenieur : %s %s\n",t1[i].nom,t1[i].prenom ); for(j=0;j<n;j++) { t1[i].p=t1[i].coef*t1[i].note[j]; printf(".........MOYENNE COEFFICIENTE.........:%f",t1[i].p) ; } } } void moyenne() { printf("voici les moyennes des differents ingeniieurs \n"); for(i=0;i<a;i++) { printf("l'ingenieur : %s %s\n",t1[i].nom,t1[i].prenom ); for(j=0;j<n;j++) { float m; float tcoef; m = t1[i].p+t1[i].p; m=m+m; tcoef=t1[i].coef+t1[i].coef; tcoef=tcoef+tcoef; t1[i].moy=( m/tcoef); printf("la moyenne de l'ingenieur %s %s\n",t1[i].nom,t1[i].prenom); printf("est %f",t1[i].moy); } } }
A voir également:
- Calcul de moyennes
- Calcul moyenne excel - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Logiciel gratuit calcul surface m2 - Télécharger - Outils professionnels
2 réponses
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
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 ); } }
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 .
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);
}
}
}