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

Caml Discussion :

Programmation graphique (OcamL)


Sujet :

Caml

  1. #41
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Points : 1 104
    Points
    1 104
    Par défaut
    Tu pourrais mettre le code entier de ton programme (avec tes commentaires en commentaire), à un endroit facile à accéder (typiquement pas la balise [code] en BBcode), par exemple http://paste.pocoo.org/ ?

    Si possible, en ayant intégré les modifications suggérées jusque là, histoire que ce soit le plus clair et court possible.

  2. #42
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    j'ai eu quelques petits problèmes avec internet ces derniers jours, je ne mets donc ma réponse que maintenant

    Voilà donc le lien : http://paste.pocoo.org/show/79407/

  3. #43
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Points : 1 104
    Points
    1 104
    Par défaut
    Version sans l'erreur de syntaxe, et en ayant viré les erreurs de typages évidentes :
    http://paste.pocoo.org/show/79442/
    (Par contre j'ai reformaté histoire de pouvoir lire le code sans m'arracher les yeux)

    Il reste des problèmes dans le bout à la fin qui commence par "| 0,0 ->", tu utilises une fonction inconnue (compare_lst), et compare3 n'a pas du tout assez d'arguments. Comme je ne savais pas ce que tu voulais faire, j'ai laissé.

    L'erreur de syntaxe était toute conne (mais avec la présentation bordélique du code, on l'a même pas vu !). Tu écrivais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    match foo with
    ( | .. -> ...
      | .. -> .. )
    On ne peut pas mettre les motifs entre parenthèse. Il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (match foo with
    | ... -> ..
    | ... -> ..
    Ainsi, c'est tout le bloc qui est parenthésé, et c'est correct.

    Sinon, il reste des choses largement améliorables dans le style du code, je reviendrai faire un laïus si j'ai le temps (si d'autres veulent, qu'ils se gènent pas :-° ).

  4. #44
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup, je vais tester tout ça.

    J'avais au départ réutilisé la fonction comparer_lst de alex_pi, mais je suis finalement revenu à mes fonctions comparer2 et comparer3 de départ.
    J'ai donc omis de tout remplacer

  5. #45
    Invité
    Invité(e)
    Par défaut
    Que signifie un "unbound constructor 0" ?

  6. #46
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par mton062 Voir le message
    Que signifie un "unbound constructor 0" ?
    Que ton constructeur n'est pas borné

    Ok ça ne t'aide pas

    Ça veut dire qu'il ne reconnait pas le constructeur que tu lui passes. Si le compilateur dit « unbound » c'est parce qu'en programmation fonctionnelle, on parle de liaison (bind, qui a pour verbe to bind, d'où le unbound) et non d'affectation ou d'initialisation.

    Je ne comprends pas pourquoi il met 0 par contre...
    Tu dois avoir un chti problème de syntaxe je suppose.
    Le morceau de code qui réfère s'il te plait.

  7. #47
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    Que tu dois remplacer la lettre O par zéro
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  8. #48
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par SpiceGuid Voir le message
    Que tu dois remplacer la lettre O par zéro
    Pourtant le message qu'il a écrit contient bien un 0 et non un O ?
    Est-ce qu'il aurait triché en recopiant ?

  9. #49
    Invité
    Invité(e)
    Par défaut
    Bah c'était bien ça l'erreur, je comprends pas vraiment comment ces O sont parvenus à s'"infiltrer" dans mon programme, bah.

    Enfin comme on dit, dans la vie, il y a des O et des bah

    Maintenant, il me met un autre type d'erreur, je vous recopie ça tout à l'heure

  10. #50
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    je comprends pas vraiment comment ces O sont parvenus à s'"infiltrer" dans mon programme
    c'est une faille de sécurité non patchée, les vilains O attendent sournoisement que tu fasse Shift+o pour s'installer dans ta source et se faire passer pour un 0 innoffensif

    Maintenant, il me met un autre type d'erreur, je vous recopie ça tout à l'heure
    Vas y moderato quand même, relis-toi, réfléchis-y, lis le manuel, les tutoriels, etc...
    Bref, autant que possible cherches par toi-même, c'est tout bénéfice pour toi car il n'y a pas plus formateur.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  11. #51
    Invité
    Invité(e)
    Par défaut
    En fait, c'est ce match qui pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    match machintruc with
    | 1,1 | 2,1 | 1,2 | 2,2 | 1,99 | 2,99 | 99,1 | 99,2 | 99,99 ->                              | 0,1 | 0,2 | 0,99 ->
    | 1,0 | 2,0 | 99,0 ->
    | 0,0 ->
    pour exprimer tous les autres cas (qui finiront en failwith "exception au choix", si j'ai bien compris), faut-il mettre ?
    J'ai l'impression que ça ne veut pas marcher.
    Ainsi, il faudrait peut-être que je revois l'ordre de ma disjonction de cas.

    Après correction : http://paste.pocoo.org/show/79596/

    J'ai corrigé une erreur (un i+1 au lieu d'un i-1, ça n'aurait pas empêché le programme de fonctionner);
    j'ai essayé de rajouter des cas, qui amènent au failwith
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    | 0,_ | 1,_ | 2,_ | 99,_ | _,0 | _,1 | _,2 | _,99 | _,_
    et changé le cas à la fin : devient pour englober tous les cas.

    Par contre, il me dit toujours ceci :

    Warning P : this pattern-matching is not exhaustive.
    Here is an exemple of a value that is not matched : 7 (pourtant, j'ai mis des "_ ->" partout où il fallait)

    et aussi Warning U : this match case is unused
    (en parlant du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    | 99 -> matApres.(i).(n-j) <- 99 (*on remet les obstacles à chaque tour*)
    )
    Dernière modification par Invité ; 16/07/2008 à 21h05.

  12. #52
    Invité
    Invité(e)
    Par défaut
    Bon, en résumé, je crois avoir trouvé la réponse, désolé de poster comme ça, faut croire que ça m'aide

    Le truc qu'il n'a pas apprécié, c'est que je fasse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    |1|2
    |3|4
    |5|6
    |0
    |_
    J'avais fait dans cette ordre pour déjà traiter les cas les + simples à résoudre.
    J'ai donc remis le cas 0 en 1ère position, et pour la 1ère fois, il m'accepte intégralement le programme.
    Reste à voir s'il fonctionne, et encore mieux, si les résultats qu'il fournit sont corrects

    Et faut que je me lance dans la programmation graphique...tutorial me voilà :p

  13. #53
    Invité
    Invité(e)
    Par défaut
    Par contre, quand je lance le programme avec une matrice, il aime pas la tête de ma matrice

    C'est bien sous cette forme ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [|[|0; 0; 1|]; [|0; 0; 0|]; [|0; 0; 99|]|]
    Il me dot Exception : Invalid_argument "index out of bounds"

  14. #54
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par mton062 Voir le message
    Par contre, quand je lance le programme avec une matrice, il aime pas la tête de ma matrice

    C'est bien sous cette forme ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [|[|0; 0; 1|]; [|0; 0; 0|]; [|0; 0; 99|]|]
    Il me dot Exception : Invalid_argument "index out of bounds"
    Fait un effort pour lire l'exception... -_-
    Ça devrait te donner un indice de ce qui ne fonctionne pas. Et tu verras que ça n'a rien à voir avec la manière dont tu écris tes tableaux a priori.

  15. #55
    Invité
    Invité(e)
    Par défaut
    C'est pas un bon argument... euh pourtant c'est une matrice ?
    Avec 3 entiers derrière...
    Les arguments me semblent bon comme ça

  16. #56
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Si le compilateur n'arrivait pas à compiler ton code, ce ne serait pas une exception, mais plus probablement une erreur de syntaxe ou de typage.

    Si le compilateur réussit à compiler ton code, alors ce n'est pas une erreur de syntaxe.

    Là, il te parle d'accès hors limites. J'imagine qu'à l'exécution tu essaies d'accéder à l'élément 3, 10 ou 42 de ton tableau, qui n'existe pas. Évidemment, puisque tu donnes une seule ligne - et qui marche (teste-la toute seule, tu verras) -, on ne peut pas vraiment t'aider. Mais tu devrais réussir à t'en sortir tout seul maintenant : vérifie tes accès aux tableaux.

  17. #57
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par LLB Voir le message
    Là, il te parle d'accès hors limites. J'imagine qu'à l'exécution tu essaies d'accéder à l'élément 3, 10 ou 42 de ton tableau, qui n'existe pas. Évidemment, puisque tu donnes une seule ligne - et qui marche (teste-la toute seule, tu verras) -
    Pourrais-tu préciser ? Je ne vois pas très bien de quoi il s'agit...

  18. #58
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut


    Tes questions sont trop basiques , on est pas contre mais il faut aussi savoir devenir autonome.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  19. #59
    Invité
    Invité(e)
    Par défaut
    C'est juste un problème de compréhension de la phrase.
    J'ai pas compris le "Evidemment puisque tu donnes une seule ligne", et je ne risque pas de trouver la réponse dans un tutorial

  20. #60
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par mton062 Voir le message
    C'est juste un problème de compréhension de la phrase.
    J'ai pas compris le "Evidemment puisque tu donnes une seule ligne", et je ne risque pas de trouver la réponse dans un tutorial
    Il te dit que tu ne nous donnes qu'une seule ligne de ton code, et pas celle où il y a l'erreur, donc on ne peut pas t'aider... Néanmoins ça m'inquiète sur ta maitrise du Français si tu n'as pas compris cela.

    --
    Jedaï

Discussions similaires

  1. [GraphDev] Langage de programmation graphique
    Par shaman99 dans le forum Autres langages
    Réponses: 2
    Dernier message: 18/05/2006, 01h22
  2. Programmation graphique en mode 12h
    Par tchingoo dans le forum Assembleur
    Réponses: 1
    Dernier message: 16/06/2005, 22h45
  3. Programmation graphique ... SDL ??
    Par Franck.H dans le forum C
    Réponses: 9
    Dernier message: 29/04/2004, 20h51
  4. Réponses: 3
    Dernier message: 15/03/2004, 00h55
  5. Programmation Graphique VESA
    Par rulianf dans le forum C
    Réponses: 5
    Dernier message: 30/06/2003, 20h31

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