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 :

Algorithme de simplex : plantage de mon programme et de TP7


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 143
    Par défaut Algorithme de simplex : plantage de mon programme et de TP7
    Salut à tous,
    je suis en train de faire l'application de l'algorithme de simplex en Pascal et, dans l'exécution, je fais entrer les valeurs de la matrice et tout marche bien puis ouuuuups il n'y a plus la fenêtre de l'exécution ni Turbo Pascal et il faut que je relance TP7 et que je recommence à 0 ??????
    Il n'affiche aucune erreur ni stack overflow ni rien du tout.
    Quel est le problème ?
    Merci

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Bie,

    J'ignore quel est le problème de ton côté, mais du mien, c'est que ma boule de cristal est en panne.

  3. #3
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 048
    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 048
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Difficile en effet sans voir ton code.
    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]

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 143
    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
    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
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    begin
      write('entrer le type du probleme_____MAX____ ou _____MIN_____ ==');
      read(tpe);
      write('entrer le nbr des contraintes  == ');
      read(nbc);
      write('etrer le nombre de variables == ');
      read(nbv);
      for i := 1 to nbc do
        begin
          for j := 1 to nbv do
            begin
              write('enter la valeur de la variable t[',i,',',j,']  de la contrainte numero ',i,'  ==  ');
              read(t[i,j]);
            end;
          write('contrainte numero',i,' si _____<_______ entrer: -1 _____ si ___> entrer: 1 _____si ______=______entrer: 0  == ');
          read(t[i,nbv + 1]);
          write(' entrer la valeur',i,'du vecteur b == ');
          read(t[i,nbv + 2]);
        end;
      {========================================= variable artificiel ==================================}
      v := nbv;
      for i := 1 to nbc do
        begin
          if (t[i,v + 1] = -1)
             then
               begin
                 varajou[i,1] := 1;
                 nbv := nbv + 1;
               end
             else
               if (t[i,v + 1] = 1)
                  then
                    begin
                      varajou[i,1] := -1;
                      nbv := nbv + 1;
                    end;
          if ((varajou[i,1] * t[i,v + 2]) < 0)
             then
               begin
                 varajou[i,2] := 1;
                 nbv := nbv + 1;    {ajout de la variable artificiel}
               end
             else
               begin
                 varajou[i,2] := 0;   {ne pas ajouter les variable arti}
               end;
        end;
      { +  +  +  +  +  + A EFFACER +  +  +  +  + }
      for i := 1 to nbc do
        begin
          writeln('||');
          for j := 1 to 2 do
            begin
              write('[_',varajou[i,j],'_]  ');
            end;
        end;
     
      {==============================pmlissage de la matrice initiale=================================================}
     
      { +  +  +  +  +  +  +  +  + replissage des couts des variable  initiales +  +  +  +  +  +  +  +  + }
      for j := 2 to v + 1 do
        begin
          writeln('entrer les couts de la fonction economique  initiales',  j,'== ');
          read(init[1,j]);
          writeln('init[1,',j,'] ==',init[1,j]);
        end;
     
      { +  +  +  +  +  +  +  +  + remplissage des couts des variables ajouter +  +  +  +  +  +  +  +  + }
      i := 1;
      r := 1;
      while (i <= nbc) do
        begin
          if (varajou[i,1] <> 0) and (varajou[i,2] <> 0)
             then
               begin
                 init[1,j] := 0;
                 xr[r] := -122;
                 r := r + 1;
               end
             else
               if (varajou[i,1] <> 0) and (varajou[i,2] = 0)
                  then
                    begin
                      xr[r] := 0;
                      r := r + 1;
                    end
                  else
                    if (varajou[i,1] = 0) and (varajou[i,2] <> 0)
                       then
                         begin
                           xr[r] := -122;
                           r := r + 1;
                         end;
        end;
      ir := 1;
      for j := nbv + 2 - r to nbv + 1 do
        begin
          init[1,j] := xr[ir];
          ir := ir + 1;
        end;
    c'est la partie ou il 'ya le probleme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      {============================pmlissage de la matrice initiale==============================}
     
      { +  +  +  +  +  +  +  +  + replissage des couts des variable  initiales +  +  +  +  +  +  +  +  + }
      for j := 2 to v + 1 do
        begin
          writeln('entrer les couts de la fonction economique  initiales',  j,'== ');
          read(init[1,j]);
          writeln('init[1,',j,'] ==',init[1,j]);
        end;
    et là surtout quand j = v + 1 et je tape la valeur et je tape entrer et puis ooooups pas de fenêtre d'exe, pas de TP7 et je recommence à 0.

    Merci

  5. #5
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Il se peut que l'erreur provienne d'un debordement d'indice comme tu demande à l'utilisateur d'entrer le nombre de variable, cette valeur peut etre superieur à la taille de ton tableau .
    Mais puisque tu n'a pas montrez la partie declarative de ton programme, on ne peux pas savoir taille de ton tableau.

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 143
    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
    program simplexe;
     
    var
      init : array [1..15,1..15] of integer;
      nbc, nbh, nbv, v, x, y, i, j, min, ie, h, je, ir, r, is, js, c, mint, compt, d, pivot : integer;
      tpe : string;
      th : array [1..15] of integer;
      tb : array [1..15] of integer;
      z : array [1..15]of integer;
      t : array [1..15,1..15] of integer;
      xr : array [1..15] of integer;
      varajou : array [1..15,1..2] of integer;
     
    label
      opt, notunik, fin;
    et c'est la partie declarative

Discussions similaires

  1. [WD20] Plantage de mon programme suite migration vers Windev20
    Par remi82 dans le forum WinDev
    Réponses: 5
    Dernier message: 20/01/2015, 15h57
  2. Réponses: 2
    Dernier message: 06/03/2007, 11h07
  3. envoyer un mail avec mon programme
    Par shrek dans le forum C++Builder
    Réponses: 8
    Dernier message: 06/12/2006, 12h27
  4. [] Utiliser AVI d'une DLL dans mon programme
    Par seb.49 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/05/2003, 14h52
  5. Réponses: 11
    Dernier message: 17/03/2003, 10h56

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