-
Hello,
J'avance tout doucement dans mes transcodages en fonction de mes moments libres.
C'est instructif et plus difficile que prévu.
Je me rend compte que j'ai des codes sources de différents BASIC.
Il y a du QBASIC, mais d'autres BASIC. J'ai oublié d'où cela provient.
J'ai eu des surprises avec des ASN et ACS ( -> arc sin et arc cos ) inconnus de QB, mais un équivalent en QB64PE avec _ASIN et _ACOS.
ASN (x) ne renvoie pas un code d'erreur, mais 0.
De même les fonctions inconnues de QB.
Il a fallu adapter des INT x en INT (x), QB ne digérant pas l'absence des (), de même toutes les fonctions, alors que le BASIC d'origine semble les avoir acceptées.
L'absence de message d'erreur m'a parfois donné quelques soucis alors que je ne l'avais pas repéré.
Je commence par tester le code avec QB64PE. Ensuite j'envisage le transcodage.
Beaucoup de ce sources sont du spaghetti bidouillé. Parfois des pseudo SUB adressés par le numéro de ligne avec un retour par aiguillage en fonction d'un marqueur au moment de l'appel.
C'est beaucoup du labyrinthe finalement, pire que spaghetti.
Très souvent que des variables globales sans spécification, donc double par défaut et sans déclaration du tout.
Parfois un DefDble A,Z.
Je reconnais facilement "mes" codes sources bien mieux structurés, quoique à mes débuts...
J'ai souvent réservé les variables commençant par I à N pour les entiers ( rappel de "INT" ). Une habitude venue du FORTRAN.
Je constate souvent des cheminement de codes peu performants, voire défectueux. Le niveau en maths des concepteurs ne brillait pas. D'où des codes sources médiocres, voire défectueux. Des modes de résolution de systèmes d'équations sommaires par ex.
Parfois, je n'ai pu comprendre le but du code... J'ai abandonné dans nombre de cas.
Je me rend compte de la pathologie des codes mal écrits et mal conçus. La quasi absence de commentaire souvent.
Je n'ai pas à rougir des mes anciens codes... enfin pas trop.:calim2:
C'est très instructif et très pédagogique finalement.
Je pense à quelques codes pour diverses fonctionnalités qui, améliorés, pourront prendre place dans les exemples du forum.
Merci à toutes/tous pour vos commentaires.
-
Hello,
J'ai pu obtenir un transcodage provisoire en C.
Quelques codes sans grand intérêt qui passent aux oubliettes.
Nombre de codes source BASIC sans structures et des variables globales qui passent en code C, mais en variables globales et des sub void XXX( void ) compatibles ou similaires. Des goto moins sympa en véritables labyrinthes parfois...
Cela permet d'avoir un programme en C qui fonctionne afin de tester.
C'est commode dans un premier temps.
Reste à transférer et intégrer/adapter les variables dans ces sub/fonctions.
Je réserve cela pour les moments libres, d'autant que j'ai des programmes fonctionnels malgré un code source bof bof !
Je vais plutôt passer à des programmes plus sérieux et afin d'en faire profiter le forum.
En particulier sur la distribution normale P(x), Q(x), A(x) en statistics ( + fonction inverse ). Le plus difficile va être de rédiger le texte ( pdf ) accompagnant. Je ne sais pas si je vais y grouper Khi2 et Student vu que cela utilise des bases communes telles que la fonction gamma incomplète. Je ne vais pas utiliser la méthode simpliste des séries numériques approximatives, mais une formulation mathématique. D'un autre côté, des modules simples et clairs sont plus (+) pédagogiques qu'une usine.
J'envisage des factorisation en nombres premiers, mais plus performant que le crible rudimentaire simpliste pour les passionné.e.s du domaine.
Merci à toutes/tous.