Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de calcul en JAVA

    6 février 2016 à 17:24:32

    Hello à tous ! 

    Alors voilà : j'apprends actuellement le langage JAVA à l'iut, et je me suis lancé un petit défi : faire un programme calculant la moyenne d'un élève en fonction du nombre de notes qu'il possède et du coefficient de chaque note (exprimé en %). Pour cela, j'ai réalisé le code suivant (il doit certainement y avoir des fautes, je n'ai pas relu réellement, je suis en train d'essayer de résoudre ce problème qui me casse la tête !) : 

    import java.util.*;
    
    public class Moyenne_Bouclefor {
    
    	public static void main(String[] args) {
    		double tab_notes [] = new double [50];
    		double tab_coeff [] = new double [50]; 
    		double Resultat_moy_note = 0; 
    		double Resultat;
    		double tab_moyenne_note [] = new double [50]; // tableau pour chaque coefficient * chaque note
    		Scanner sc = new Scanner(System.in);
    		System.out.println("Entrer le nombre de notes que vous souhaitez rentrer: ");
    		int nmbr_valeurs = sc.nextInt();
    		int i;
    		for (i = 0; i != nmbr_valeurs; i++) {
    			System.out.println("Veuillez entrer votre note ainsi que son coefficient");
    			tab_notes[i] = sc.nextDouble(); 
    			tab_coeff [i] = sc.nextDouble ();
    			Resultat_moy_note = (tab_notes[i] * tab_coeff[i]);
    			tab_moyenne_note [i] = Resultat_moy_note;
    			Resultat_moy_note = 0;
    		}
    	}
    }

    Alors voilà : imaginons que j'ai deux notes (nombre de notes demandé au début) l'utilisateur rentre par exemple : 12 50 (50 étant son coeff) : le programme prend alors ces deux nombres, les multiplies, pour ensuite placer le résultat dans un tableau nommé tab_moyenne_note qui aura, dans chaque cases (pas toutes bien sûr), les valeurs des résultats. Ensuite, la même chose par exemple pour 15,5 50.
    Une fois cela fait, il faut additionner ces deux valeurs stockées et les diviser par 100, et c'est là que viens mon problème : sachant que je ne sais qu'au début du programme combien de notes vont être rentrées, et donc combien de coefficients, quelle pourrait être l'expression mathématique pouvant prendre en compte chaque cases pleines du tableau, afin de les additionner et de les diviser par 100 ensuite ? J'ai peut être une petite idée avec une boucle for, mais sans plus ..

    Merci! 

    • Partager sur Facebook
    • Partager sur Twitter
      6 février 2016 à 19:01:46

      Je viens d'écrire une roman pour que ma co crash :(

      Je vais donc te coriger directement ton programme

              for (i = 0; i != nmbr_valeurs; i++) {
                  System.out.println("Veuillez entrer votre note ainsi que son coefficient");
                  note = sc.nextDouble();
                  coeff = sc.nextDouble ();
                  tot_Coef +=coeff;//fais l'ensemble des coefs
                  tot_Note += note*coeff// fais l'ensemble des notes
              }
       moyenne = tot_Note/tot_Coef // calcule ma moyenne

      -
      Edité par PabloPalle 13 janvier 2017 à 23:23:54

      • Partager sur Facebook
      • Partager sur Twitter
        7 février 2016 à 1:11:48

        Une "collection" serait plus adapté à ton problème par rapport à un tableau. En effet tu pollues ton code avec plusieurs tableaux pour stocker tes notes et coeffs, crée une classe "Note" contenant ces infos plutôt, de plus si l'enseignant saisi 51 notes ton programme aura un problème de type ArrayIndexOutOfBoundsException.

        Par rapport à ton problème initial, tu déclares une variable i en dehors de la boucle for, donc une fois avoir rempli tes tableaux dans la première boucle for, sors de ce dernier et crée une nouvelle boucle for pour effectuer ton agrégat en t'aidant du i.

        • Partager sur Facebook
        • Partager sur Twitter
        Site : https://gokan-ekinci.appspot.com | Miagiste en recherche d'emploi | Profil [Dév. Java SE & EE | Dév. QlikView]
          10 février 2016 à 17:46:08

          Merci pour toutes vos réponses ! Désolé du temps que j'ai mit pour répondre !

          Merci Pablo, je vais essayer ton idée ainsi que celle de Gugelhupf, merci à vous deux ! 

          • Partager sur Facebook
          • Partager sur Twitter

          Problème de calcul en JAVA

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown