Traduire le code source d'un langage à un aut

kamaradclimber -  
Aghaster Messages postés 26 Statut Membre -
Bonjour,
j'ai écrit un programme assez long sur ma calculette (TI-89titanium)
et je souhaiterais afin d'accelerer son execution le traduire en langage comprehensible par mon ordinateur comme le python (j'en connais les rudiments). Je voudrais savoir s'il existe des moyens (autres que la traduction à la main car mon programme est assez long) pour "passer" du langage TI-basic à un langage "PC"
si vous en connaissez merci de me contacter (rokjumpers@hotmail.com)
merci d'avance
kamaradclimber

3 réponses

  1. Aghaster Messages postés 26 Statut Membre 25
     
    Hum... intéressant. J'ai justement recu une TI-89 titanium pour noel. Je doute que cela existe déjà, mais il faudrait que tu te programmes un file parser qui te convertirais ça dans un autre language. Ça serait assez long à programmer et surtout inutile, car c'est pas bien dur traduire un programme en TI-Basic dans un autre language. Post ton code source ici, j'aimerais bien voir ton programme. J't'en enverrai des miens si tu veux.

    -Aghaster
    www.planetcpp.info
    0
  2. kamaradclimber
     
    voila mon code source, il s'agit d'un programme de génétique, (des individus mutent evoluent et meurent dans un environement)

    Prgm
    DelVar delrow
    setMode("Display Digits","FIX 2")
    setMode("Exact/Approx","APPROXIMATE")
    ©note de version : nb reproduction= nb individu / 3
    ©nw : bug extinction espece impossible[regle]
    ©bug impossible maladie trop forte[regle]
    ©cycle haploide
    ©essai maladie v.
    ©©il va falloir considerer apres combien de temps la mutation voulue par la maladie est devenue presque impossible pour en trouver une autre

    Local delrow
    Define delrow(ma2,h)=Prgm
    ©matrice,h
    ©reconstruit m1 ligne par ligne
    ©h= num col vie/mort
    Local a,b,c,d,ma4
    dim(ma2)a
    ©construction 1ere ligne m1©
    1b
    subMat(ma2,b,1,b,a[2])ma3
    If ma3[1,h]=0 Then
    If b+1>a[1] Then
    Goto fin
    EndIf
    While ma2[b,h]=0
    b+1b
    EndWhile
    subMat(ma2,b,1,b,a[2])ma3
    EndIf
    ©lignes suivantes
    For c,b+1,a[1]
    If ma2[c,h]0 Then
    subMat(ma2,c,1,c,a[2])ma4
    augment(ma3;ma4)ma3
    EndIf
    EndFor
    DelVar a,b,c,d,ma4,ma2
    Return ma3
    Lbl fin
    setMode("Display Digits","FLOAT 6")
    DispHome
    EndPrgm

    ©©©©©©©©©©©©©©©©©©©©©©
    Local a,b,c,d,e,d,f,g,h,i,m2,j,l,nbrepro,m,n,nbgen,fl
    ClrIO
    1nbgen:2x
    4sta[1]:1sta2[1]
    [[1,4,2,1,1][1,4,2,1,1][1,4,2,1,1][1,4,2,1,1]]m1
    ©explication
    ©chaque ligne = un individu
    ©chaque colonne =un caractere
    ©colonne1=caractere1
    ©colonne2=esperance vie
    ©colonne3=freq mutations
    ©colonne4=age actuel
    ©colonne5=(vit=1 mort=0
    ©numero col agef
    4f
    ©numero col esp vieg
    2g
    ©numero col vit?h
    5h
    ©numero col freq mutationsl
    3l
    1nbgen
    Lbl a01
    dim(m1)a
    For m,1,iPart((a[1]+6)/8)
    dim(m1)a
    ©repro
    ©©choix organismes
    rand(a[1])b:bc
    1j
    ©©choix 2nd individu
    ©©si 2individu est le meme retirage
    ©©si 30 retirages=pas de repro
    While b=c
    rand(a[1])c
    j+1j
    If j>29 Then
    Goto a3
    EndIf
    EndWhile

    ©©melange genome
    dim(m1)a
    ©ne pas oublier de mettreautant de col ds m2 ken m1
    [[0,0,0,0,1]]m2
    For d,1,a[2]-2
    rand(2)e
    If e=1 Then
    m1[b,d]m2[1,d]
    Else
    m1[c,d]m2[1,d]
    EndIf
    EndFor
    1m2[1,h]
    augment(m1;m2)m1
    EndFor
    Lbl a3
    ©mutation
    dim(m1)a
    For b,1,a[1],1
    ©pkoi -2? car la mutation ne peut enlever le caractere vie ni modifier lage de lindividu
    rand(a[2]-2)c
    ©©mutation
    If rand(abs(iPart(m1[b,l]))+1)=1 Then
    m1[b,c]d
    m1[b,c]+(rand(3)-2)*m1[b,c]/10m1[b,c]
    EndIf
    EndFor

    ©confrontation au milieu
    ©©verif age
    dim(m1)a
    For d,1,a[1]
    If m1[d,f]>m1[d,g] Then
    0m1[d,h]
    Else
    m1[d,f]+1m1[d,f]
    EndIf
    EndFor
    ©maladie
    dim(m1)a
    For d,1,a[1]
    ©cette maladie devient de + en + selective 40eme generation
    If abs(m1[d,1]-.8)ž­.0125*nbgen+.5125 and rand(5)=1 and nbgen<40 Then
    0m1[d,h]
    EndIf
    EndFor

    ©maladie 2
    ©dim(m1)a
    ©For d,1,a[1]
    ©If mod(round(m1[d,1],2)*100,2)=1 and rand(10)=1 Then
    ©0m1[d,h]
    ©EndIf
    ©EndFor

    dim(m1)a
    1d
    ©elimine de la matrice les morts
    ©loperation est a renouveller autant de fois ke dindividus
    ©compte les morts
    dim(m1)a
    1j
    For i,1,a[1],1
    If m1[i,h]=0 Then
    1+jj
    EndIf
    EndFor
    For i,1,j
    dim(m1)a
    delrow(m1,h)
    ma3m1
    EndFor
    ©©si toute pop morte =>fin
    dim(m1)a
    If a[1]=1 Then
    Goto extinct
    EndIf
    ClrIO
    setMode("Display Digits","FLOAT 3")
    ©Disp subMat(m1,1,1,a[1],a[2]-1)
    Disp m1
    setMode("Display Digits","FIX 2")

    nbgen+1nbgen
    Output 10,125,nbgen
    Output 30,105,a
    ©dispgen(nbgen)

    ©stat
    If a[1]sta[x-1] Then
    a[1]sta[x]
    nbgensta2[x]
    x+1x
    EndIf

    Goto a01

    ©extinction espece
    Lbl extinct
    ClrIO
    Output 10,10,"espece eteinte"
    Disp "causes possibles:"
    Disp "pas assez individu pour"
    Disp "reproduction ou une"
    Disp " maladie a decime toute"
    Disp "la population"
    Pause
    Goto fin

    ©fin
    Lbl fin
    DelVar m1
    DelVar ma3
    setMode("Display Digits","FLOAT 6")
    DelVar nbgen
    DispHome
    EndPrgm
    0
  3. Aghaster Messages postés 26 Statut Membre 25
     
    Mouais, le principal défi pour la conversion à un autre language est toute les ces fonctions built-ins du TI-Basic. Je vois pas d'autre solution que de tout réécrire dans un autre language à la main, il n'existe pas de convertisseur de language à ma connaissance.

    -Aghaster
    www.planetcpp.info
    0