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

Turbo Pascal Discussion :

[TPW] Petit problème pour réaliser un pendule double [Non suivi]


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Par défaut [TPW] Petit problème pour réaliser un pendule double
    Bonjour voila je dois réaliser un pendule double sous pascal, j ai donc rencontré plusieurs problemes que je commence a resoudre au fur et a mesure que j avance mais je ne les comprends pas tous...

    Pour commencer les equations de mouvement du pendule double comportent des derivés secondes premieres,...

    vous pouvez trouver les equations de mouvement sur des sites tels que

    http://fr.wikipedia.org/wiki/Pendule_double
    http://www.u-cergy.fr/etud/ufr/compo.../th%E9orie.htm

    donc j ai commencé pour la moment a etudier le probleme..
    mais a chaque fois j arrive a une erreur 202 d execution du tout petit programme que je viens de faire...
    je ne comprend pas trop a quoi c est du donc si vous pouviez m aider ca serait COOL mais vraiment....

    je code sur turbo pascal que j ai commencé est le suivant :


    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    ##########################################
     
    program mouvement_pendule_double;
    uses wincrt,wingraph;
     
    const g=9.8;
          N=1000;
          deltaT=1e-2;
     
    type  tableau = array [0..N] of real;
     
    type pendule2 = record
                  l1:real;
                  l2:real;
                  m1:real;
                  m2:real;
                  alpha:real;
                  beta:real;
                  end;
     
    var penduledble : pendule2;
        fichierpenduledble : file of pendule2;
        PD1,PD2: tableau;
        i,j:integer;
     
     
    procedure creertab( var tab3,tab4:tableau;pas,long1,long2,masse1,masse2,a1,a2:real);
     
    var i:integer;
        tab1,tab2:tableau;
        U1,U2,U3,U4:real;
        V1,V2,V3,V4:real;
     
     
    begin
     
    tab1[0]:=0; {angle1 derivee premiere}
    tab2[0]:=0; {angle2 derivee premiere}
    tab3[0]:=0; {angle1}
    tab4[0]:=0; {angle2}
     
    U1:=0;
    U2:=0;
    U3:=0;
    U4:=0;
     
    V1:=0;
    V2:=0;
    V3:=0;
    V4:=0;
     
     
    for i:=1 to N do
    begin
     
     
    U1:=(masse2*sin(a1-a2)*tab1[i-1]*tab1[i-1])/(masse1+masse2*sin(a1-a2)*sin(a1-a2));
    U2:=(masse2*g*sin(a2)*cos(a1-a2))/(long1*(masse1+masse2*sin(a1-a2)));
    U3:=-(masse2*long2*sin(a1-a2)*tab2[i-1]*tab2[i-1])/(long1*(masse1+masse2*sin(a1-a2)*sin(a1-a2)));
    U4:=-((masse1+masse2)*g*sin(a1))/(long1*(masse1+masse2*sin(a1-a2)*sin(a1-a2)));
    writeln('chuis la');
     
     
    tab1[i]:=pas*(U1+U2+U3+U4)-tab1[i-1];
    writeln(tab1[i]);
     
     
    V1:=(masse2*cos(a1-a2)*sin(a1-a2)*tab2[i-1]*tab2[i-1])/(masse1+masse2*sin(a1-a2)*sin(a1-a2));
    V2:=((masse1+masse2)*g*sin(a1))/(long2*(masse1+masse2*sin(a1-a2)*sin(a1-2)));
    V3:=(-(masse1+masse2)*long1*sin(a1-a2)*tab1[i-1]*tab1[i-1])/(long2*(masse1+masse2*sin(a1-a2)*sin(a1-a2)));
    V4:=(-(masse1+masse2)*g*sin(a2))/(long1*(masse1+masse2*sin(a1-a2)*sin(a1-a2)));
    writeln('ch uis la');
     
     
    tab2[i]:=pas*(V1+V2+V3+V4)-tab2[i-1];
     
     
    end;
    end;
     
    begin
     
    creertab(PD1,PD2,deltaT,1,1,1,1,1,0.2);
    end.
     
     
    #############################################
    Il n est pas tres long et je vous remercie d avance!!

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 466
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    Turbo Pascal ou Borland Pascal for Windows ? C'est pas la même chose... Sous TP, wincrt et wingraph n'existe pas déjà. Ensuite, si tu es vraiment sous TP, remplaces wincrt et wingraph par crt et graph.

    L'erreur 202 est une erreur de Stack Overflow (merci de regarde l'aide de ton compilateur). Il est possible que la taille des variables que tu utilises lors de ta procédure creertab soient trop grosses. Essaye en diminuant leur taille.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Par défaut
    euh concernant la presence des unites wincrt et wingraph ba j utilise TP pour windows version 7 si je ne me trompe pas...et sinon non je dois pas remplacé wincrt et wingraph par crt ou graph sinon l unité n existe pas purisque elle est sous la denomination win...
    pour ce qui est du reste que veux tu dire par reduire la taille des variables je ne voies pas trop comment le faire... l aide du compilateur se resume a dire la meme chose que toi... donc je n avance pas plus

  4. #4
    Membre émérite Avatar de Tuxico
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    662
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Par défaut
    type tableau = array [0..N] of real;

    commence p-e par N=100 pour tester

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Par défaut
    en utilisant N = 100 ca marche bien, donc ca c est cool.
    mais le probleme si je me limite a 100 je n aurait jamais assez de point pour tracé mon graph, apres 1000 c est deja pas beaucoup pour realisé le mouvement du pendule... i l n y aurait pas un moyen autre que de diminuer le nombre N ??

  6. #6
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 466
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    TP pour windows 7 n'existe pas, on va admettre que c'est BP7 que tu utilises, et là c'est bon... xD

Discussions similaires

  1. [Syntaxe] PETIT probl avec un Jlabel
    Par blackcrow1981 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 14/09/2006, 19h53
  2. Petit problème avec GCC pour l'Unicode...
    Par Nico*3-3 dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 29/01/2006, 17h12
  3. petit scripte a faire pour un l'ecole
    Par sircam61 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/12/2005, 14h44
  4. Réponses: 4
    Dernier message: 20/05/2004, 01h08
  5. [TPW][cours]Demande d'aide pour finir un programme
    Par jf dans le forum Turbo Pascal
    Réponses: 21
    Dernier message: 16/06/2003, 18h10

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