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

Pascal Discussion :

Récupération de vieux programmes en FORTRAN et en PASCAL


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur aéronautique à la retraite
    Inscrit en
    Avril 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur aéronautique à la retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2020
    Messages : 2
    Par défaut Récupération de vieux programmes en FORTRAN et en PASCAL
    bonjour à tous, merci pour votre accueil sur ce forum, dont je découvre la grande richesse.
    HISTORIQUE :
    Le confinement m'a permis de faire du rangement dans mes cartons. J'ai redécouvert des programmes écrits pendant mes études (1990) en FORTRAN et/ou en PASCAL (V5).
    Ces programmes de calculs scientifiques pour l'aéronautique légère (domaine de vol, portance des profils, des ailes ...), possédaient une interface très primaire.
    Ces programmes tournaient à l'époque sous PC 80286, en DOS 3.3 et carte graphique Hercules.
    Ils ne marchent plus sur mon ordinateur familial actuels (Windows vista) !!
    Aussi, j'aimerai les faire fonctionner à nouveau et peut-être même les rendre plus conviviaux !
    QUESTIONS / AIDE :
    1 - Quel langage et quelle version pourrait reconnaitre ces vieilles versions, éventuellement les mettre à jour et les recompiler ? J'ai vu que DELPHI prenait la suite du Pascal, Est-ce le bon choix pout ne pas tout recommencer ?
    2 - Quel éditeur de texte adapté me conseillez-vous ?
    Vous trouverez ci-joint un de ces programmes (calcul et représentation du domaine de vol d'un planeur), les sous-programmes associés à l'époque, ainsi que le scan des résultats obtenus en 1991 (cas du planeur JP15-36).
    Merci de votre aide, Cordialement.
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 052
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 052
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue !

    Pour faire fonctionner d'antiques programmes écrits pour DOS, rien de tel que... DOS : l'émulateur DosBox est fait pour cela. Il est possible d'y réinstaller Turbo Pascal.

    Le compilateur Free Pascal offre une certaine compatibilité avec Turbo Pascal au niveau du langage, mais si le code d'origine contient des appels système de bas niveau ou des accès directs au matériel, je pense que c'est fichu d'avance.

    J'ai compulsé les fichiers attachés, que de souvenirs !

    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 172
    Billets dans le blog
    9
    Par défaut
    Bonjour et bienvenue !

    J'ajoute mon grain de sel à la réponse d'Alcatîz.

    Donc, effectivement la solution la plus facile, c'est DOSBox + Turbo Pascal. Encore faudra-t-il apprendre à utiliser DOSBox. Ce n'est pas la mer à boire mais ça va vous demander un effort quand même. Ensuite votre logiciel aura toujours besoin de DOSBox pour fonctionner. Mais bon, pourquoi pas ? Si vous voulez partager votre logiciel avec quelqu'un, vous pourrez faire un paquetage prêt à l'emploi incluant DOSBox.

    Maintenant il y a une autre possibilité, qui demandera des modifications importantes dans le code, mais qui vous évitera la contrainte d'utiliser DOSBox, et qui vous permettrait d'avoir un rendu plus joli. Ce serait d'utiliser Free Pascal avec l'unité WinGraph. Vous aurez à refaire toute la base de l'affichage, mais sans avoir à changer l'architecture du programme. Ça vous prendra plus de temps mais au bout du compte vous aurez peut-être quelque chose de mieux. Pour vous faire une idée, je vous conseillerais de télécharger l'unité WinGraph et de compiler et d'exécuter le programme de compilation.

    Concernant l'éditeur de texte, personnellement je recommanderais Geany ou Notepad++. Autrement Free Pascal est livré avec un éditeur qui ressemble à celui de Turbo Pascal.

    Voilà, bon courage !

    P.-S. Pour répondre explicitement à votre question sur Delphi, non Delphi n'est pas la solution, puisque vous ne voulez pas tout refaire.

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 172
    Billets dans le blog
    9
    Par défaut
    Au cas où, voici la démo WinGraph compilée.
    Fichiers attachés Fichiers attachés

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur aéronautique à la retraite
    Inscrit en
    Avril 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur aéronautique à la retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2020
    Messages : 2
    Par défaut Pistes interressantes
    Merci beaucoup à Alcatiz et Roland Chastain pour vos conseils éclairés que je vais mettre en application.
    Ne voulant pas réinventer l'eau chaude, je vais essayer de commencer par refaire tourner mes vieux programmes, dont certains sont encore sur disquettes 5 pouces 1/4, avec le couple "DOSBox + Turbo Pascal".
    En parallèle je vais récupérer Geany, Notepad++ et wingraph et me pencher sur leur emploi !
    Voici de quoi m'occuper bine sérieusement pendant le confinement !!
    Au plaisir de vous lire !
    Pascalement !
    Patrick

  6. #6
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 644
    Par défaut Old is but good is ?
    Bonjour,

    Ce code rappelle des temps anciens. L'usage important des majuscules pour avoir quelque chose de lisible alors. La découverte embryonnaire des variables locales. Un code qui doit gérer par le menu toute l'interface utilisateur. Etc.

    Cependant il y a aussi des choses surprenantes qui mériteraient d'être regardées de près. Par exemple, dans la procédure DOMRAF on trouve ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       VF  := (6*V2*COEF) + (2*VS/SQRT(5))*SQRT(45*V2*COEF2 + 1);  // ?  VF  := 6*(V2*COEF + VS*SQRT(V2*COEF2 + 0.0222222));
    ...
       for NN := 2 to 10 do begin
          A1[NN, 1]:= VS;
          A1[NN, 2]:= 1.25*(VS/VS)*(VS/VS)*(0.1*NN);  // A1[NN, 2]:= 0.125*NN;  Question : Est-ce voulu que A1[2, 2] := A1[1, 2] + 0.250; mais A1[i, 2] := A1[i-1, 2] + 0.125 pour i > 2 ?
       end;
    ...
          FOR NN:= 2 TO 10 DO BEGIN
             B1[NN, 1] := VSD;
             B1[NN, 2] := -0.125*(VSD/VSD)*(VSD/VSD)*NN);  // B1[NN, 2]:= -0.125*NN;
          END;
    Je ne sais pas si ce sont des choses sans conséquence.

    Par ailleurs de nombreuses expressions pourraient gagner en efficacité (mais cela n'a peut être pas d'intérêt ici). Exemple, on trouve souvent ce genre de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       FOR V:= VMax1 TO VDMax DO BEGIN // VMax = Trunc(VA) + 1, VDmax = Trunc(VD) + 1
          A[V, 1]:= V;
          A[V, 2]:= ((N1-NR[2])/(VA-VD))*V+N1-((N1-NR[2])/(VA-VD))*VA;
       END;
    Qui peut déjà se simplifier en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       FOR V:= VMax1 TO VDMax DO BEGIN
          A[V, 1]:= V;
          A[V, 2]:= N1 + (NR[2]-N1)/(VD-VA)*(V-VA); // On voit mieux une droite qui va de (N1 à NR[2]
       END;
    Qui donne l'opportunité de faire apparaître un coefficient fixe a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       a := (NR[2-N1])/(VD-VA);      
       FOR V:= VMax1 TO VDMax DO BEGIN
          A[V, 1]:= V;
          A[V, 2]:= N1 + a*(V-VA);
       END;
    Après avoir fait tourner le code initial, une reprise pourrait s'avérer impressionnante. Avec les outils actuels, débarrassé en grande partie de la gestion de l'interface utilisateur, je pense que le code devrait se réduire à 300 ou 400 lignes (hors les objets générés automatiquement).

    Salutations

  7. #7
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 132
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 132
    Par défaut
    Salut, Jérôme,

    et pendant que tu y es, pense à corriger tes Kg et Km en kg et km (même si on voit cette erreur partout, ce n'est pas la peine de la répandre encore plus).

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/11/2006, 12h00
  2. [Visual FoxPro] Vieux programme à déchiffrer...
    Par pingos dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 25/04/2006, 11h44
  3. Comment programmer un BHO en Delphi ?
    Par pdtor dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 20/01/2006, 21h59
  4. comment lancer mes vieux programmes sur BDS2006
    Par emmental dans le forum C++Builder
    Réponses: 5
    Dernier message: 18/01/2006, 13h07
  5. Passer du Pascal à Delphi
    Par poppels dans le forum Langage
    Réponses: 7
    Dernier message: 30/08/2002, 21h07

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