Bonsoir tout le monde; dans l’exécution de mon programme PegaleNP il y a un test if qui ne fonctionne pas alors que le résultat devrait être correct vue l'exemple de trace élucider ici:
on comprend la trace même si je n'ai pas pu intercepter le début de l’exécution;
Voici le test ifCode:Veuillez saisir le nombre d’étudiants : 15 Veuillez saisir le nombre pair d’étudiant incompatible : 7 Veuillez saisir le nombre d’étudiants à sélectionner par pair : 10 ------Menu principal --------- 1. Liste d’étudiants 2.Liste d’étudiants incompatibles 3. Sélection d’étudiants 4.Quitter Taper votre choix : Veuillez respecter le menu! ------Menu principal --------- 1. Liste d’étudiants 2.Liste d’étudiants incompatibles 3. Sélection d’étudiants 4.Quitter Taper votre choix : 1 Veuillez saisir l’Id de l’étudiants : 001 Veuillez saisir l’Id de l’étudiants : 002 Veuillez saisir l’Id de l’étudiants : 003 Veuillez saisir l’Id de l’étudiants : 004 Veuillez saisir l’Id de l’étudiants : 005 Veuillez saisir l’Id de l’étudiants : 006 Veuillez saisir l’Id de l’étudiants : 007 Veuillez saisir l’Id de l’étudiants : 008 Veuillez saisir l’Id de l’étudiants : 009 Veuillez saisir l’Id de l’étudiants : 010 Veuillez saisir l’Id de l’étudiants : 011 Veuillez saisir l’Id de l’étudiants : 012 Veuillez saisir l’Id de l’étudiants : 013 Veuillez saisir l’Id de l’étudiants : 014 Veuillez saisir l’Id de l’étudiants : 015 ------Menu principal --------- 1. Liste d’étudiants 2.Liste d’étudiants incompatibles 3. Sélection d’étudiants 4.Quitter Taper votre choix : 2 Veuillez saisir l’Id de l’étudiant1 incompatible: 001 Veuillez saisir l’Id de l’étudiant2 incompatible: 003 Veuillez saisir l’Id de l’étudiant1 incompatible: 005 Veuillez saisir l’Id de l’étudiant2 incompatible: 007 Veuillez saisir l’Id de l’étudiant1 incompatible: 009 Veuillez saisir l’Id de l’étudiant2 incompatible: 011 Veuillez saisir l’Id de l’étudiant1 incompatible: 013 Veuillez saisir l’Id de l’étudiant2 incompatible: 015 Veuillez saisir l’Id de l’étudiant1 incompatible: 014 Veuillez saisir l’Id de l’étudiant2 incompatible: 002 Veuillez saisir l’Id de l’étudiant1 incompatible: 010 Veuillez saisir l’Id de l’étudiant2 incompatible: 004 Veuillez saisir l’Id de l’étudiant1 incompatible: 012 Veuillez saisir l’Id de l’étudiant2 incompatible: 006 ------Menu principal --------- 1. Liste d’étudiants 2.Liste d’étudiants incompatibles 3. Sélection d’étudiants 4.Quitter Taper votre choix : 3 ----------------- idRecherché a été trouvé: 002 tabEtudInc[0][0] 001 tabEtudInc[0][1] 003 tabEtudInc[1][0] 005 tabEtudInc[1][1] 007 tabEtudInc[2][0] 009 tabEtudInc[2][1] 011 tabEtudInc[3][0] 013 tabEtudInc[3][1] 015 tabEtudInc[4][0] 014 tabEtudInc[4][1] 002 tabEtudInc[5][0] 010 tabEtudInc[5][1] 004 tabEtudInc[6][0] 012 tabEtudInc[6][1] 006 indice : 4 002 = 014 ET 013 != 002 OU 002 = 002 ET 013 != 014 Compteur: 1 tabEtudSelectCopy: 008 tabEtudSelectCopy: 014 nb: 5 ----------------- idRecherché a été trouvé: 005 tabEtudInc[0][0] 001 tabEtudInc[0][1] 003 tabEtudInc[1][0] 005 tabEtudInc[1][1] 007 tabEtudInc[2][0] 009 tabEtudInc[2][1] 011 tabEtudInc[3][0] 013 tabEtudInc[3][1] 015 tabEtudInc[4][0] 014 tabEtudInc[4][1] 002 tabEtudInc[5][0] 010 tabEtudInc[5][1] 004 tabEtudInc[6][0] 012 tabEtudInc[6][1] 006 indice : 1 005 = 005 ET 006 != 007 OU 005 = 007 ET 006 != 005 Compteur: 1 tabEtudSelectCopy: 008 tabEtudSelectCopy: 014 nb: 1 ----------------- idRecherché a été trouvé: 009 tabEtudInc[0][0] 001 tabEtudInc[0][1] 003 tabEtudInc[1][0] 005 tabEtudInc[1][1] 007 tabEtudInc[2][0] 009 tabEtudInc[2][1] 011 tabEtudInc[3][0] 013 tabEtudInc[3][1] 015 tabEtudInc[4][0] 014 tabEtudInc[4][1] 002 tabEtudInc[5][0] 010 tabEtudInc[5][1] 004 tabEtudInc[6][0] 012 tabEtudInc[6][1] 006 indice : 2 009 = 009 ET 012 != 011 OU 009 = 011 ET 012 != 009 Compteur: 1 tabEtudSelectCopy: 008 tabEtudSelectCopy: 014 nb: 5 ----------------- idRecherché a été trouvé: 010 tabEtudInc[0][0] 001 tabEtudInc[0][1] 003 tabEtudInc[1][0] 005 tabEtudInc[1][1] 007 tabEtudInc[2][0] 009 tabEtudInc[2][1] 011 tabEtudInc[3][0] 013 tabEtudInc[3][1] 015 tabEtudInc[4][0] 014 tabEtudInc[4][1] 002 tabEtudInc[5][0] 010 tabEtudInc[5][1] 004 tabEtudInc[6][0] 012 tabEtudInc[6][1] 006 indice : 5 010 = 010 ET 009 != 004 OU 010 = 004 ET 009 != 010 Compteur: 1 tabEtudSelectCopy: 008 tabEtudSelectCopy: 014 nb: 0 ----------------- idRecherché a été trouvé: 007 tabEtudInc[0][0] 001 tabEtudInc[0][1] 003 tabEtudInc[1][0] 005 tabEtudInc[1][1] 007 tabEtudInc[2][0] 009 tabEtudInc[2][1] 011 tabEtudInc[3][0] 013 tabEtudInc[3][1] 015 tabEtudInc[4][0] 014 tabEtudInc[4][1] 002 tabEtudInc[5][0] 010 tabEtudInc[5][1] 004 tabEtudInc[6][0] 012 tabEtudInc[6][1] 006 indice : 1 007 = 005 ET 012 != 007 OU 007 = 007 ET 012 != 005 Compteur: 1 tabEtudSelectCopy: 008 tabEtudSelectCopy: 014 nb: 6 ----------------- idRecherché a été trouvé: 003 tabEtudInc[0][0] 001 tabEtudInc[0][1] 003 tabEtudInc[1][0] 005 tabEtudInc[1][1] 007 tabEtudInc[2][0] 009 tabEtudInc[2][1] 011 tabEtudInc[3][0] 013 tabEtudInc[3][1] 015 tabEtudInc[4][0] 014 tabEtudInc[4][1] 002 tabEtudInc[5][0] 010 tabEtudInc[5][1] 004 tabEtudInc[6][0] 012 tabEtudInc[6][1] 006 indice : 0 003 = 001 ET 006 != 003 OU 003 = 003 ET 006 != 001 Compteur: 1 tabEtudSelectCopy: 008 tabEtudSelectCopy: 014 nb: 8 -----------------
Ce test est il fausse?Code:if(((id1 == tabEtudInc[Indice][0]) && (id2 != tabEtudInc[Indice][1])) || ((id1 == tabEtudInc[Indice][1]) && (id2 != tabEtudInc[Indice][0]))) { // Si le couplage est possible alors on les tire tous les deux tabTirage[0][0] = id1; tabTirage[0][1] = id2; tabEtudCopy.remove(nb); Ajouter = true; compteur++;// trace System.out.println("Compteur: "+compteur);// pr la trace } else {
Ou c'est une erreur technique de java?
Dans certains endroits du code j'avais utilisé while qui n'a pratiquement pas fonctionné mais en transformant en do....while ça marché ; la question est pourquoi cet état de fait?
Ici, dans if il accède une seule fois et fait un tirage sans mettre Ajouter à vrai et sans incrémenter le compteur aussi alors que le compteur me sert de moyen pour déterminer la complexité; pour les autres fois ils ne n’accède pas et reste planter dans la boucle.
Merci pour votre aide
-----