Ex a réaliser avec erreur inconnue
Fermé
DjNellio
Messages postés
9
Date d'inscription
vendredi 7 octobre 2016
Statut
Membre
Dernière intervention
19 mars 2017
-
Modifié par baladur13 le 7/10/2016 à 18:44
DjNellio Messages postés 9 Date d'inscription vendredi 7 octobre 2016 Statut Membre Dernière intervention 19 mars 2017 - 7 oct. 2016 à 20:03
DjNellio Messages postés 9 Date d'inscription vendredi 7 octobre 2016 Statut Membre Dernière intervention 19 mars 2017 - 7 oct. 2016 à 20:03
A voir également:
- Ex a réaliser avec erreur inconnue
- Erreur 0x80070643 - Accueil - Windows
- Money manager ex - Télécharger - Bourse & Finance
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 38 free ✓ - Forum Mobile
2 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
7 oct. 2016 à 19:29
7 oct. 2016 à 19:29
Bonjour,
Le problème c'est que tu fais des li.remove donc la taille de la liste peut changer et tu n'auras pas toujours li.size() == mots.length
Du coup avec ton
De manière générale quelques remarques :
1) Tu n'as pas besoin de mettre des espaces dans tes opérations, et je t'invite à les simplifier afin qu'il n'y en ait pas, ou à les interdire au même titre que le point dans 8.1
2) Tu as mis tout ton code dans la méthode main, c'est illisible et compliqué, tu gagnerais à découper ton code en méthodes intermédiaires
3) Est-ce que tu connais la notation polonaise ? C'est très pratique dans ce genre de problème.
Par décomposition tu as
Le problème c'est que tu fais des li.remove donc la taille de la liste peut changer et tu n'auras pas toujours li.size() == mots.length
Du coup avec ton
for (int i =0 ; i < mots.length; i++)tu peux te retrouver à un moment avec
i >= li.size()et c'est ça qui fait planter ton
li.get(i);...
De manière générale quelques remarques :
1) Tu n'as pas besoin de mettre des espaces dans tes opérations, et je t'invite à les simplifier afin qu'il n'y en ait pas, ou à les interdire au même titre que le point dans 8.1
2) Tu as mis tout ton code dans la méthode main, c'est illisible et compliqué, tu gagnerais à découper ton code en méthodes intermédiaires
3) Est-ce que tu connais la notation polonaise ? C'est très pratique dans ce genre de problème.
Par décomposition tu as
5+3x2-1=(5+3x2)-1=(5+(3x2))-1ce qui donne en notation polonaise
- 1 (5+(3x2))puis
- 1 + 5 (3x2)et au final
- 1 + 5 x 3 2. Cette transcription permet ensuite d'utiliser une pile, car si tu lis de droite à gauche, tu vas consommer deux opérandes 2 et 3, l'appliquer à un opérateur x, calculer le résultat 6 et le remettre dans la pile, ce qui donne
- 1 + 5 6et en recommençant tu consommes deux opérandes 6 et 5 dans la pile, un opérateur + et tu remets le résultat 11, on a donc
- 1 11puis pareil on consomme 11, 1 et - on calcule 10 ce qui devient notre résultat final puisqu'il n'y a rien d'autre.
DjNellio
Messages postés
9
Date d'inscription
vendredi 7 octobre 2016
Statut
Membre
Dernière intervention
19 mars 2017
7 oct. 2016 à 19:52
7 oct. 2016 à 19:52
L'erreur maintenant , c'est que peut importe le résultat du Booléen , il passe d'office dans le cas caract interdit en cas de chiffre. Les signe mathématiques passent.
DjNellio
Messages postés
9
Date d'inscription
vendredi 7 octobre 2016
Statut
Membre
Dernière intervention
19 mars 2017
7 oct. 2016 à 19:53
7 oct. 2016 à 19:53
Exemple :
Entrez une expression mathématique simple
5 + 2 + 3 + 4
5
+
2
+
3
+
4
5
true
Caractère interdit
+
false
Caractère interdit
+
false
Caractère interdit
3
true
Caractère interdit
4
true
Caractère interdit
Entrez une expression mathématique simple
5 + 2 + 3 + 4
5
+
2
+
3
+
4
5
true
Caractère interdit
+
false
Caractère interdit
+
false
Caractère interdit
3
true
Caractère interdit
4
true
Caractère interdit
DjNellio
Messages postés
9
Date d'inscription
vendredi 7 octobre 2016
Statut
Membre
Dernière intervention
19 mars 2017
7 oct. 2016 à 20:03
7 oct. 2016 à 20:03
D'ailleurs il teste 5 , le "+" , mais pas le deux et saute le dernier "+"
7 oct. 2016 à 19:42
1 ) les espaces sont obligés par l'exercise ( Fait expres pour pouvoir avoir un séparateur facile )
2 ) Obligé aussi car on n'as pas encore vu les méthodes ( Ca fait que deux semaines que l'on apprends a raison de 3 h / sem)
3 ) Non :/
7 oct. 2016 à 19:49
7 oct. 2016 à 19:52
7 oct. 2016 à 19:52