Erreur incomprise à l'exécution

Discutez d'informatique ici !
Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 19:42

Erreur incomprise à l'exécution

par Rockleader » 09 Déc 2012, 13:44

Salut, je suis en train de travailler sur un programme censé faire l'addition de deux polynômes à l'aide de tableau.

A la compilation tout se passe bien.
Lorsque j'exécute: pour simplifier le programme au début j'ai imposé le degré de chaque polynôme (5)


Donc je rentre le coefficient de chaque monôme jusqu'au degré 5 pour les deux poly, et j'obtiens au moment de faire l'addition l'erreur suivante:

raised CONSTRAINT_ERROR : polynome.adb:46 index check failed


J'ai vérifié que ce ne soit pas à cause de la taille du tableau qui serait dépassé et le problème ne vient pas de là...




EDIT: J'ai rien dis, j'ai ciblé le problème, ça venait bien de mon tableau mais pas de la taille max, j'avais un tableau dont la taille allait de 1 à 20, alors que j'ai des coeff de degré 0 donc mon tableau devait commencer à 0...problème réglé...
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !



Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 09 Déc 2012, 14:44

Bonjour,
A mon avis c'est une mauvaise habitude d'utiliser des tableaux de taille 1 à ...
Avec quel langage faites-vous cela ? Est-ce une option de compilation ?

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 19:42

par Rockleader » 09 Déc 2012, 15:25

C'est en ADA. En effet j'ai l'habitude de définir dès le début de 1 à une taille maximale, mais bon suffit d’adapter au problème, j'avais tout simplement pas fait attention au minimum, d'habitude c’est plutôt le maximum qui pose problème au cas où on dépasse la taille du tableau lors d'une addition par exemple.

Option de compilation, je ne vois pas vraiment de quoi tu veux parler.

S'il y a mieux à faire que d'utliser des tableaux, je ne saurais le dire, j'utilise seulement les connaissances qu'on a mises à notre dispositions. L'autre solution ça serait que je fasse une variable à chaque fois, donc le tableau est pour moi le plus simple quand même^^
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 09 Déc 2012, 15:55

Rockleader a écrit:C'est en ADA. En effet j'ai l'habitude de définir dès le début de 1 à une taille maximale, mais bon suffit d’adapter au problème, j'avais tout simplement pas fait attention au minimum, d'habitude c’est plutôt le maximum qui pose problème au cas où on dépasse la taille du tableau lors d'une addition par exemple.

Option de compilation, je ne vois pas vraiment de quoi tu veux parler.

S'il y a mieux à faire que d'utliser des tableaux, je ne saurais le dire, j'utilise seulement les connaissances qu'on a mises à notre dispositions. L'autre solution ça serait que je fasse une variable à chaque fois, donc le tableau est pour moi le plus simple quand même^^

Je ne connais pas l'ADA, mais finalement, et heureusement, tous les langages informatiques satisfont à le même préoccupation, faire un pont entre l'homme et la machine.
Apparemment c'est un langage compilé et non pas interprété comme le Basic, il y a donc une phase de compilation. Il est courant qu'un compilateur ait des options de compilation, c'est à dire des choix donnés au développeur sur la façon de réaliser cette compilation.
L'utilisation des tableaux est la seule solution à des quantités de problèmes, ce que je voulais dire, c'est que l'indexation à partir de 1 et non pas 0 n'est pas une bonne idée.
Naturellement, je ne saurais critiquer l'utilisation des tableaux, sauf s'ils sont de très grande dimension et presque vides, là, il y a d'autres méthodes.

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite