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

Langage Delphi Discussion :

Problème avec un paramètre d'une procédure


Sujet :

Langage Delphi

  1. #1
    Lucas Panny
    Invité(e)
    Par défaut Problème avec un paramètre d'une procédure
    Bonjour,

    Voici le code en entier tiré de recursive.developpez.com:
    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
    type tab           = array[0..6] of longint ;
     
    const signe        : string[4]  = '+-*/' ;
          nombres      : tab        = (963,25,5,4,3,3,1) ;
     
    var trouve,echange : boolean ;
        aa             : longint ;
        ii,jj          : integer ;
     
    procedure operations(var t : tab ;max : integer) ;
    var i,j1,j2 : integer ;
        a       : longint ;
        t1      : tab ;
    begin
    for i:=1 to 4 do
        for j1:=1 to max-1 do
            for j2:=j1+1 to max do
                begin
                case i of
                   1 : a:=t[j1]+t[j2] ;
                   2 : a:=t[j1]-t[j2] ;
                   3 : a:=t[j1]*t[j2] ;
                   4 : begin
                       a:=t[j1] div t[j2] ;
                       if t[j2]*a<>t[j1] then a:=0 ;
                       end ;
                   end ;
                if a>0 then
                   begin
                   if a=t[0] then
                      begin
                      //gotoxy(1,8-max) ;write(t[j1],signe[i],t[j2],'=',a) ;
                      Form1.ListBox1.Items.Add(inttostr(t[j1])+signe[i]+inttostr(t[j2])+'='+inttostr(a));
                      trouve:=true ;exit ;
                      end ;
                   move(t,t1,28) ;
                   t1[j1]:=a ;t1[j2]:=0 ;
                   repeat
                     echange:=false ;
                     for ii:=1 to max-1 do
                         if t1[ii]<t1[ii+1] then
                            begin
                            aa:=t1[ii] ;t1[ii]:=t1[ii+1] ;t1[ii+1]:=aa ;
                            echange:=true ;
                            end ;
                   until not echange ;
                   operations(t1,max-1) ;
                   if trouve then
                      begin
                      //gotoxy(1,8-max) ;write(t[j1],signe[i],t[j2],'=',a) ;
                      Form1.ListBox1.Items.Add(inttostr(t[j1])+signe[i]+inttostr(t[j2])+'='+inttostr(a));
                      exit ;
                      end ;
                   end ;
                end ;
    end ;
     
     
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
         Screen.Cursor:=crHourGlass;
         trouve:=false ;
         ListBox1.Clear;
         Application.ProcessMessages;
         operations(nombres,6);
         Screen.Cursor:=crDefault;
    end;
    L'erreur:
    [Error] Unit1.pas(92): Constant object cannot be passed as var parameter

    Ne pensez pas que je cherche à ce que les autres résolvent mon exercice mais je plante vraiment sur cette erreur

  2. #2
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Salut

    Tu as un probleme parce que tu donnes a ta procedure Opérations une constante comme parametre var ...

    Tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    const nombres      : tab        = (963,25,5,4,3,3,1) ;
    ....
    operations(nombres,6);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure operations(var t : tab ;max : integer) ;
    La solution serait de déclarer une variable, a laquelle tu affectes les valeurs de ta constante ...

    Bonne chance

Discussions similaires

  1. [8i] Problème avec date en paramètre d'une procédure
    Par cmaignan dans le forum PL/SQL
    Réponses: 2
    Dernier message: 12/11/2013, 12h04
  2. [2000] Problème avec un déclencheur et une procédure sur un serveur lié
    Par conquist dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 19/06/2013, 17h06
  3. Réponses: 4
    Dernier message: 22/03/2008, 12h06
  4. [Débutant] Problème avec les paramètres d'une proc stockée
    Par babulior dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/06/2005, 15h38
  5. Problème avec un LIKE dans une procédure stockée
    Par Oluha dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/12/2004, 14h38

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