Faire une somme

Signaler
Messages postés
28
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
6 avril 2003
-
Messages postés
28
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
6 avril 2003
-
voila un autre truc, peut-etre JHelp tu verrais le truc dans ca :)

le debut et comme le jeu du nombre mysterieux, mais apres g pas compri comment faire la somme mais aussi ce qu'il a voulu dire par la donnee de remise, voila le probleme:
Réaliser un projet Java (un seul) qui saisit et valide un entier impair n entre 51 et 251 inclusivement. Il affiche des messages appropriés si la donnée est invalide. Dès que la donnée est valide, le projet permet alors de calculer et d'afficher la somme suivante:

somme = 1 + 1/3 + 1/5 + 1/7 + . . . + 1/n

en utilisant la boucle do ? while ?.

en utilisant la boucle while ?.

en utilisant la boucle for


(ce sont là trois manières différentes d'obtenir le même résultat).

Le projet doit fonctionner pour plusieurs entiers tant que l'utilisateur décide de continuer.


Données pour la remise

Première série de données : 26, 301, 75

L'usager veut continuer

Deuxième série de données : 204, 101

L'usager décide de quitter.

merci

ne fais pas ce que je dis, ne dis pas ce que je fais :)

11 réponses

Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
Salut,
pour ta somme :
// on prend la variable n comme limite
// boucle do while
int somme = 0;
int i = 1;
do
{
   somme += 1/i;
   i +=2 ;
}while(i <= n);

// boucle while
somme=0;
i=1;
while (i <= n)
{
     somme += 1/i;
     i += 2;
}

//boucle for
somme = 0;
for (i=1 ; i <= n ; i+2) 
   somme += 1/i;

Voila, pour ce qui est de la donnée de remise, à mon avis, c'est un jeu d'essai pour que tu testes avec ces valeurs là
Duss
Messages postés
28
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
6 avril 2003
1
merci, g fais presque la mm chose, mais je n'arrive pas a valider le nombre n, peut-etre que c la fatigue et comme ont dit, je dois dormir la dessus et demain est un autre jour ;)

public static void main(String[] args) throws IOException {
// constantes permettant de limiter le choix par l'ordinateurfinal int  BORNE_INF 51, BORNE_SUP 251;
// reponse de l'usager
    char reponse;

// le nombre saisit par par l'usager
int n;
// declarer la somme et la valeur a ajouter
int somme;
int valeur;
// utilisation de la boucle Do...While pour calculer la somme 
   do{ 
 somme = 0; /* on intialise la somme */
 valeur= 1; /* premiere valeur a ajouter dans la somme */ 
// Methode permettant de choisir un nombre aléatoire
 n = Utile.lireEntier("Entrez un entier impair entre 51 et 251: ");
// valider le choix le nombre
           while (n < BORNE_INF || n > BORNE_SUP)
                System.out.println(" Veuillez entrer un nombre compris entre 51 et 251: ");
                  if ( n % 2 == 0 )
                 
    System.out.println(" Veuillez entrer un nombre impair! : ");
           
                  else{
        	           somme += valeur ;
        	           valeur += 1/n ;
                      }        System.out.println(" Somme 1 +...+ 1/n" +" " + somme ); 
// demander si l'usager veut continuer
reponse = Utile.lireCaractere("\n\n\t\tVoulez-vous continuer? (o/n): ");
reponse = Character.toUpperCase(reponse);
   }while( reponse == 'O');

}

Dans la boucle while qui gere la validation de l'entier n, il ne fais que me repeter le message d'erreur a l'infini, g pas vu l'etincelle

ne fais pas ce que je dis, ne dis pas ce que je fais :)
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
Salut,
pour ta boucle while c'est normal car il faut que tu refasse saisir le nombre sinon ca bouge pas et du coup tu boucle !!
Duss
Messages postés
28
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
6 avril 2003
1
c regle pour la validation mais par contre kan j'affiche la somme de la forme " 1+....+1/n" le resultat donne tjrs 1 !!

do{ 
 somme = 0; /* on intialise la somme */
     i = 1; /* premiere valeur a ajouter dans la somme */ 
// Methode permettant de choisir un nombre aléatoire n = Utile.lireEntier("Entrez un entier impair entre 51 et 251: ");
 // boucle Do...While pour faire la somme
  do{
// valider le choix le nombre
       if  ( (n < BORNE_INF || n > BORNE_SUP) || n % 2 == 0) {
           System.out.println(" Veuillez entrer un nombre impair compris entre 51 et 251: ");
               n = Utile.lireEntier("Refaites votre choix : ");
               }
           else {
            somme += 1/i ;
        	        i +=2 ;                
                } 
   }while ( i <= n); 


pk ca m'affiche tjrs somme = 1 ????
ne fais pas ce que je dis, ne dis pas ce que je fais :)
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
euh c'est quoi ce premier do ?
Duss
Messages postés
28
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
6 avril 2003
1
ben la premiere boucle Do..While c pour faire le choix si l'usager veux continuer le tirage ou pas, elle finit avec While( reponse == 'O')
a l'interieur de cette boucle g mis un if pour valider le nombre n etant impair et 51<= n >=251
l'ordinateur force l'usager a entrer un bon nombre et ca marche, dans le else du if g mis notre condition qui est:
somme += 1/i
i+=2
mais comme je t'es dis la somme me viens tjrs = 1, soit qu'il choisit par exemple 51 ou 251 ou 249 :sad)
j'aurai pas du??

ne fais pas ce que je dis, ne dis pas ce que je fais :)
Messages postés
358
Date d'inscription
jeudi 24 octobre 2002
Statut
Non membre
Dernière intervention
13 avril 2020

kaloway
Messages postés
890
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2004
12
ecoute, moi j'ai testé le script et ca marche, ca me donne 2 et des brouettes !!!
Duss
Messages postés
28
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
6 avril 2003
1
mais duss, comme dit Kaloway ca donne tjrs 1, comme si il prend la vlaeur somme+ = 1/i et comme i on l'a initialisé a 1, il ne fait que ca.
sauf si tu as declaré i etant float comme a dit Kaloway.
sinon tu vois ou l'erreure dans mon travail en le comparant au tien??
merci
ne fais pas ce que je dis, ne dis pas ce que je fais :)
Messages postés
28
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
6 avril 2003
1
Kaloway
tu me dis en 2) ajouter une variable X(float) initialisé a 1, elle va faire le travail de ce que g mis?? a savoir valeur( ou i)=1?? je la remplace par X=1??
et si je ne remplace pas, quel serait le lien entre valeur( ou i ) et X?? car i je l'es incrémente de 2 comme ca elle sera tjrs impaire et g mis jusqu'a ce que i<=n, donc jusqu'au nombre choisi
ne fais pas ce que je dis, ne dis pas ce que je fais :)
Messages postés
28
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
6 avril 2003
1
et oui, Kaloway bien vu, il fallait le float pour la somme et i pas le int :blush)
thxs alot
ne fais pas ce que je dis, ne dis pas ce que je fais :)