[java] operateurs et portee
Forum Programmation : [java] operateurs et portee
bonjour,
voici un petit programme que j'ai fait (il est a l'etat de squellette c juste pour avoir un axe de developpement) :
import ordinateur.*;
import java.util.*;
class Depouillement_des_elections_au_Senat {
public static void main(String args[])
{
ecran.afficher("Combien y-a-t-il de sièges au sénat ? : " );
int NombreDeSièges = clavier.lireUnInt();
ecran.afficher("Combien y-a-t-il eu de votes valides ? : " );
int NombreDeVotes = clavier.lireUnInt();
float QuotientSiège = NombreDeVotes / NombreDeSièges;
System.out.println(QuotientSiège);
ecran.afficher("Combien y-a-t-il de liste ? : " );
int NombreDeListes = clavier.lireUnInt();
String listes[] = new String [NombreDeListes];
int Votes[] = new int [NombreDeListes];
int Sièges[] = new int [NombreDeListes];
long Restes[] = new long [NombreDeListes];
for (int i = 0; i < listes.length; i++)
{
Arrays.fill(listes, "liste " + (i+1));
//ecran.afficher(listes[i]);
ecran.afficher("combien de votes à reçu la " + listes[i] + " ? :" );
Votes[i] = clavier.lireUnInt();
Sièges[i] = Votes[i]/(int)QuotientSiège;
Restes[i] = Votes[i]%(int)QuotientSiège;
}
/* for (int v = 0; v < Votes.length; v++)
{
System.out.println(Votes[v]);
}
*/
/*for (int v = 0; v < Votes.length; v++)
{
System.out.println(Sièges[v]);
}
}
*/
/*for (int v = 0; v < Votes.length; v++)
{
System.out.println(Restes[v]);
}
*/
}
}
*********************************************************
les operation inconnue vienne d'une package (ordinateur)
voila ma question a proprement parler :
comment faire pour avoir la precision la meilleur quand on veut le resultat de la division de deux int (ici en l'ocurence QuotientSiege)
en gros comment effectuer un calcul pour avoir exactement une reponse du genre :
987 / 65 = la reponse avec plein de chiffres derriere la virgule.
d'avance merci.
Salut demande a la fonction quotientsiege de renvoyer un float
je v essayer ça merci!
Alors?
| Citation :
|
Alors quoi de neuf docteur ?
ouais, ça marche tranquil, merci pour le tip ^^
sinon voilà le programme :
import ordinateur.*;
import java.util.*;
public class ElectionAuSenat
{
public static void main(String args[])
{
ecran.afficher(" @@@@@**********- ELECTIONS AU SENAT -**********@@@@@ " );
ecran.afficher("" );
ecran.afficher("Bienvenu Dans le programme du TP4." );
ecran.afficher("Ce programme permet de simuler une Election au Sénat" );
ecran.afficher("" );
ecran.afficher(" Veuillez Appuyer sur ENTER pour commencer" );
int fake = clavier.lireUnInt();
ecran.afficher("Combien y-a-t-il de Sièges au Sénat ? : " );
int NombreDeSieges = clavier.lireUnInt();
ecran.afficher("Combien y-a-t-il de listes ? :" );
int NombreDeListes = clavier.lireUnInt();
ecran.afficher("Combien y-a-t-il eu de votes valides ? :" );
int NombreDeVotes = clavier.lireUnInt();
float Quotient = CalculDuQuotient( NombreDeVotes, NombreDeSieges);
//System.out.println(Quotient);
int NdesListes [] = new int [NombreDeListes];
int VotesListes[] = new int [NombreDeListes];
for (int i = 0; i < NdesListes.length; i++)
{
Arrays.fill(NdesListes, i+1);
//System.out.println(NdesListes[i]);
ecran.afficher("Combien de voies a reçu la liste " + NdesListes[i] + " ? :" );
VotesListes[i] = clavier.lireUnInt();
}
ecran.afficher(" Les Données ont bien été enregistrées et seront traitées " );
ecran.afficher(" Appuyez sur ENTER pour continuer " );
int fake2 = clavier.lireUnInt();
/*for (int v = 0; v < VotesListes.length; v++)
{
System.out.println(VotesListes[v]);
} */
int Sieges[];
Sieges = CalculDeSieges(VotesListes, Quotient, NombreDeListes);
int RestesSieges[];
RestesSieges = CalculDuResteDeSieges(VotesListes, Quotient, NombreDeListes);
/* for (int v = 0; v < Sieges.length; v++)
{
System.out.println(Sieges[v]);
} */
/* for (int v = 0; v < RestesSieges.length; v++)
{
System.out.println(RestesSieges[v]);
}*/
int Total;
Total = SommeDesSieges(Sieges);
//System.out.println(Total);
int SiègesManquants = NombreDeSieges - Total;
//System.out.println(SiègesManquants);
for (int i = 0; i < Sieges.length; i++)
{
Arrays.fill(NdesListes, i+1);
System.out.println(" La liste " + NdesListes[i] + " a obtenu : " + Sieges[i] + " Sièges" );
}
System.out.println("" );
System.out.println("" );
System.out.println(" Il reste " + SiègesManquants + " Sièges non répartis, mais le programme n'est pas encore fini" );
}
public static float CalculDuQuotient( int NombreDeVotes, int NombreDeSieges)
{
float Quotient = NombreDeVotes / NombreDeSieges;
return Quotient;
}
public static int[] CalculDuResteDeSieges(int VotesListes[], float Quotient, int NombreDeListes)
{
int RestesSieges[] = new int [NombreDeListes];
for (int i = 0; i < VotesListes.length; i++)
{
int Gain = VotesListes[i]%(int)Quotient;
RestesSieges[i] = Gain;
}
return RestesSieges;
}
public static int[] CalculDeSieges(int VotesListes[], float Quotient, int NombreDeListes)
{
int Sieges[] = new int [NombreDeListes];
for (int i = 0; i < VotesListes.length; i++)
{
int Gain = VotesListes[i]/(int)Quotient;
Sieges[i] = Gain;
}
return Sieges;
}
public static int SommeDesSieges(int Sieges[])
{
int Total = 0;
for (int i = 0; i < Sieges.length; i++)
{
int temp = Sieges[i];
Total = Total + temp ;
}
return Total;
}
}
Il y a 2595 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
