IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Calcul est faux


Sujet :

avec Java

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut Calcul est faux
    bonjour
    troisième ligne de mon output est faux,quelqu'un peut me dire pourquoi svp
    suite[0]1
    suite[1]1
    2
    3
    5
    8
    13
    21

    je m'explique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    suite[i]=suite[i-1]+suite[i-2];
    i = 2 alors
    (2-1)+(2-2)=1 mais au lieu de 1,mon output est 2
    les suites sont bon(3-1)+(3-2)=3
    (4-1)+(4-2)=5

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    import java.util.Scanner;
    public class Test4 
    {	
    	public static void main(String[] args) 
    	{
    		int suite[]=new int [8];
    		suite[0]=1;
    		suite[1]=1;
    		System.out.println("suite[0]"+suite[0]);
    		System.out.println("suite[1]"+suite[1]);
    		for(int i=2;i<suite.length;i++)
    		{	
    			 suite[i]=suite[i-1]+suite[i-2];
    			//suite[i]=suite[i-1]+suite[i-1];
    			System.out.println(suite[i]);
    		}
    	}
    }
    merci d'avance

  2. #2
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    Salut,

    suite[i]=suite[i-1]+suite[i-2] n'est pas égal suite[i]= (suite[i] - 1 ) + (suite[i] - 2).

    Là tu écris suite[2] = suite[1] + suite[0], soit suite[2] = 1 + 1 = 2

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut
    je ne comprend pas bien
    svp expliquez moi
    for i équivaut 2 ??
    je confonds tous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                    suite[0]=0;
    		suite[1]=1;
    		for(int i=2;i<suite.length;i++)
    		{	
    		     suite[i]=suite[i-1]+suite[i-2];
                         System.out.println(suite[i]);
    		}
    merci d'avance

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 49
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    suite[0]=1;
    suite[1]=1;
    System.out.println("suite[0]"+suite[0]); // ici ca affichera 1
    System.out.println("suite[1]"+suite[1]) // ici ca affichera 1 également;
    ....
    for(int i=2;i<suite.length;i++)
    {	
    	suite[i]=suite[i-1]+suite[i-2];//pour i = 2 => 1 + 1 = 2
    ....
    Par contre pour ton deuxième message tu as corrigé ton erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                    suite[0]=0;
    		suite[1]=1;
    Ici tu aura bien 1 pour i = 2 (car 1 + 0 = 1)

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(int i=2;i<suite.length;i++)
    {	
    	suite[i]=suite[i-1]+suite[i-2];//pour i = 2 => 1 + 1 = 2
    ....
    premier fois il fait
    i=2 alors (2-1) + (2-2) ça fait 1+0 =1 je suis d'accord
    deuxième fois
    i=3 alors (3-1) + (3-2) ça fait 2+1 =3 je suis d'accord
    troisième fois
    i=4 alors (4-1) + (4-2) ça fait 3+2 =5 je suis d'accord
    quatrième fois
    i=5 alors (5-1) + (5-2) ça fait 4+3 =7 je ne suis pas d'accord
    cinquième fois
    i=6 alors (6-1) + (6-2) ça fait 5+4 =9 je ne suis pas d'accord

    ainsi de suite............
    car mon output s'affiche comme ceci:
    2
    3
    5
    8
    13
    21

    merci beaucoup pour vos aides

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 49
    Par défaut
    Bonjour,

    Bon tu nous fais une suite de Fibonacci mais faut que l'on soit d'accord sur la valeur du premier terme (suite[0]) est ce qu'il vaut 1 ou 0 (les 2 sont possibles justement... mais le résultat sur la suite n'est pas le même évidemment, enfin le résultat sera juste décalé de 1).
    Je précise que tu le fais commencer à 1 en attendant les résultats pour suite[0] = 0.

    Dans ton dernier message tu mélanges carrément les 2:
    premier fois il fait
    i=2 alors (2-1) + (2-2) ça fait 1+0 =1 je suis d'accord
    deuxième fois
    i=3 alors (3-1) + (3-2) ça fait 2+1 =3 je suis d'accord
    pour la "deuxième fois" je ne suis pas d'accord du tout : dans ton cas i = 3 donc i - 1 = 2 et le résultat de suite[2] = 1 (tu l'as écrit juste au dessus) donc le résultat pour suite[3] = 2 et non 3 (car suite[2] + suite[1] = 1 + 1)

    https://fr.wikipedia.org/wiki/Suite_de_Fibonacci

    Donc pour suite[0] = 1 ton output est juste Fais le commencer a 0 et tu aura ce que tu attends

  7. #7
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    Citation Envoyé par domxaline Voir le message
    [CODE]for(int i=2;i<suite.length;i++)
    {

    premier fois il fait
    i=2 alors (2-1) + (2-2) ça fait 1+0 =1 je suis d'accord
    deuxième fois
    i=3 alors (3-1) + (3-2) ça fait 2+1 =3 je suis d'accord
    troisième fois
    i=4 alors (4-1) + (4-2) ça fait 3+2 =5 je suis d'accord
    quatrième fois
    i=5 alors (5-1) + (5-2) ça fait 4+3 =7 je ne suis pas d'accord
    cinquième fois
    i=6 alors (6-1) + (6-2) ça fait 5+4 =9 je ne suis pas d'accord
    C'est FAUX. Ce que tu écris en Java ne corresponds pas à ce que tu nous décris ici.

    Quand tu écris suite[i-2] avec i = 2, ce n'est pas égal à 2-2 !
    C'est égal a suite[ 2 - 2 ] = suite[ 0 ] = la valeur que tu y met (tu as changé cette valeur dans tes 2 premier posts)

    donc avec ton code, suite[i]=suite[i-1]+suite[i-2].

    la première fois il fait
    i=2 alors suite[2] = suite[2-1] + suite[2-2] = suite[1] + suite[0] = 0 + 1 = 1 (ça va dépendre des valeurs que tu mets à l'initialisation de suite[0] et suite[1])

    Effectivement dans ton cas le résultat est le même, car (2-1) est bien égal à suite[1] et (2-2) à suite[0]. Mais le calcul lui n'est pas le même !

    On le voit dans ton premier post car tu avais écris suite[0]=1 qui n'est PAS ÉGAL à (2-2) => d'où ma première réponse c'est normal car le calcul qui est fait n'est pas celui que tu penses.

  8. #8
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut
    merci beaucoup

Discussions similaires

  1. Indiquer qu'un calcul est en cours
    Par 65days dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 06/08/2009, 10h28
  2. REQUEST_FILENAME est faux dans htaccess
    Par Devether dans le forum Apache
    Réponses: 1
    Dernier message: 08/01/2009, 11h54
  3. Unité de calcul est variable
    Par kfarid dans le forum Access
    Réponses: 1
    Dernier message: 02/06/2008, 14h14
  4. [VBA][SQL] Paramètre manquant (ce qui est faux)
    Par CinErarY dans le forum Access
    Réponses: 4
    Dernier message: 24/12/2006, 17h10
  5. Réponses: 4
    Dernier message: 26/08/2006, 02h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo