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

Autres IDE Pascal Discussion :

Delphi -> CodeTyphon : comportement étonnant


Sujet :

Autres IDE Pascal

  1. #1
    Membre averti

    Profil pro
    dirlo
    Inscrit en
    Février 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : dirlo

    Informations forums :
    Inscription : Février 2008
    Messages : 83
    Points : 404
    Points
    404
    Par défaut Delphi -> CodeTyphon : comportement étonnant
    Bonjour,

    Je suis en train de traduire un de mes vieux projets Delphi pour Lazarus CodeTyphon.
    Tout se passe plutôt bien avec les outils de conversion. Super

    Par contre, j'ai une erreur que je traque et je tombe sur ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    type ...
    Plot3D = Array[1..21,1..3] of extended;
    ...
    var ...
    Cdef: Plot3d;
    ...
     
     for i := 2 to 5 do
        begin
        Cdef[i,1]:= (x2-x1)/5*(I-1)+x1 ;
        Jonct[3].Eval(Cdef[i,1],Cdef[i,2],Cdef[i,3]);
        end;

    J'ai mis un point d'arrêt sur la ligne 13, quelques points de suivi et voici le résultat au second passage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    i                               3
    x1                            547.904
    x2                            0
    (x2-x1)/5*(I-1)+x1   328.7426
    Cdef[i,1]                  0
    Cdef[2,1]                 473.2240
    Cdef[3,1]                 0
    Par la suite, je n'obtiens plus que des '0' dans le tableau.
    ça m'a rappelé un phénomène que j'avais déjà rencontré avec l'optimisation de code, j'ai donc encadré ce bout de code des directives {$o-} et {$o+}, sans succès.

    Inutile de préciser que ça tournait sous Delphi comme ça.

    Merci de votre aide,

    Patrick

  2. #2
    Membre averti

    Profil pro
    dirlo
    Inscrit en
    Février 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : dirlo

    Informations forums :
    Inscription : Février 2008
    Messages : 83
    Points : 404
    Points
    404
    Par défaut petite précision utile
    Mon projet au départ tourne sous Win (delphi), et maintenant, je veux le compiler pour Linux.
    A tout hazard, je l'ai recompilé sous CodeTyphon + Win, et là, miracle, ça roule!

    Et je ne suis pas plus avancé!

  3. #3
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour,

    Dans ton code, on ne voit pas quand Cdef[i,2],Cdef[i,3] recoivent une valeur.
    On ne sait pas ce que sont Jonct et Eval, et s'ils servent à cela ?
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

  4. #4
    Membre averti

    Profil pro
    dirlo
    Inscrit en
    Février 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : dirlo

    Informations forums :
    Inscription : Février 2008
    Messages : 83
    Points : 404
    Points
    404
    Par défaut
    Merci Tintinux pour ta réponse.

    Citation Envoyé par tintinux Voir le message
    Dans ton code, on ne voit pas quand Cdef[i,2],Cdef[i,3] recoivent une valeur.
    On ne sait pas ce que sont Jonct et Eval, et s'ils servent à cela ?
    Bien deviné, mais ça n'est pas le problème.

    En ligne 13, tu vois que j'assigne une valeur à Cdef[i,1].
    Quand i = 3, dans cet exemple d'exécution, cette valeur est (x2-x1)/5*(I-1)+x1 = 328.7426 (ligne 5 de mes points de suivi)

    ET ligne 8

    Cdef[3,1] = 0!

    L'assignation n'a pas fonctionné! C'est la dessus que je bute.

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Je ne sais pas pourquoi, mais avec un code de test similaire sous Windows, j'obtenais une erreur à l'exécution jusqu'à ce que j'initialise la variable Cdef grâce à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FillByte(Cdef, SizeOf(Cdef), 0);
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    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
    procedure TForm1.Button2Click(Sender: TObject);
    type
      Plot3D = Array[1..21,1..3] of Extended;
    var
      Cdef: Plot3d;
      i: integer;
      x1, x2, z: Extended;
    begin
      //FillByte(Cdef, SizeOf(Cdef), 0);
      x1 := 547.904;
      x2 := 0;
      for i := 2 to 5 do
        begin
        Cdef[i,1]:= (x2-x1)/5*(I-1)+x1 ;
        Cdef[i,2] := Cdef[i,1] * Cdef[i,3];
        end;
      ShowMessage(FloatToStr(Cdef[3,1]));
     
    end;
    passe sans problème sous Ubuntu et CT64 mais pas sans le FillByte sous Windows7 et CT32...
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  7. #7
    Membre averti

    Profil pro
    dirlo
    Inscrit en
    Février 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : dirlo

    Informations forums :
    Inscription : Février 2008
    Messages : 83
    Points : 404
    Points
    404
    Par défaut
    Merci tourlourou d'avoir repris mon code.

    Si je fais la même chose que toi, Ubuntu T64, ça va.
    pour autant, mon pgm entier ne tourne pas sous ubuntu T64. (sous WT60, oui)
    Si je rajoute .

    FillByte(Cdef, SizeOf(Cdef), 0);
    ça n'arrange rien!

    Un problème de débordement?
    Ma langue au chat. (ou au toutou d'oubountoulourou).

Discussions similaires

  1. Comportement étonnant de split
    Par epehj dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/07/2013, 12h59
  2. [Objective-C] comportement étonnant du focus
    Par Paul TOTH dans le forum Objective-C
    Réponses: 1
    Dernier message: 20/08/2012, 14h47
  3. Comportement étonnant du Calendar.getTime()
    Par michaeljeru dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 24/07/2010, 13h42
  4. comportement étonnant de safari et de chrome
    Par julien1451 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/03/2010, 20h49
  5. Comportement étonnant mais heureux pour moi
    Par pelloq1 dans le forum Requêtes
    Réponses: 3
    Dernier message: 05/05/2009, 10h34

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