p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre émérite
    Avatar de EpiTouille
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2009
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2009
    Messages : 367
    Points : 818
    Points
    818

    Par défaut Passage de paramètres par adresse ou par copie ?

    Salut,

    Je me demande un truc . L'implémentation de la fonction Inc(x,y), ça doit être du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure Inc(X,Y : Integer);
    begin
      X := X + Y;
    end;
    mais du coup, on a un passage par copie de X, donc X n'est pas modifier à la sortie. Mais cette procedure marche alors que dans mon tetris, j'ai un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure ChaiPlusTropQuoi(AScore : Integer; ... : ....);
    begin
      ...
      ...
      ...
      Inc(AScore);
      ...
    end;
    et là, comme attendu, score, n'est jamais modifier à la sortie.

    Donc je me demandait pourquoi ça marche avec Inc() et pas avec ChaiPlusTropQuoi();

    Merci

  2. #2
    Expert Confirmé Sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    6 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 6 115
    Points : 17 949
    Points
    17 949

    Par défaut

    en Pascal tu as un mot clé spécifique pour passer les paramètres par adresse : var
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    procedure Inc(var x: Integer; y : Integer = 1);
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal

  3. #3
    Membre émérite
    Avatar de EpiTouille
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2009
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2009
    Messages : 367
    Points : 818
    Points
    818

    Par défaut

    Wahou, c'est donc à ça que sert var

    Bon les correcteurs du défie verrons des pointers partout quand je veux passer une valeur par adresse

    Merci beaucoup

  4. #4
    Expert Confirmé Sénior

    Inscrit en
    août 2006
    Messages
    3 623
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 623
    Points : 4 768
    Points
    4 768

    Par défaut

    Woa,

    Étant données tes réponses en général, je pensais que tu connaissais ça, car c'est du Pascal basique.

    Au passage, au lieu de présupposer le prototype de Inc, tu aurais pu aller le contrôler dans l'aide de ton compilateur.
    Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.

  5. #5
    Membre émérite
    Avatar de EpiTouille
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2009
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2009
    Messages : 367
    Points : 818
    Points
    818

    Par défaut

    Oui, c'est vrai que j'ai pas pensé.

    C'est vrai que j'ai tout le temps envoyé les paramètres qu'il fallait modifier par pointer, parce que j'ai vu qu'il fallait faire ça dans un livre pour apprendre le c. J'ignorait que var signifiait ça.

    En tout cas, ça va être plus simple. Dans les 3 quarts de mes en-tête de programme, j'ai des trucs comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    type PInteger = ^Integer;
    type PReal     = ^Real;
    ...
    pas forcément facile à manipuler

  6. #6
    Expert Confirmé Sénior

    Inscrit en
    août 2006
    Messages
    3 623
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 623
    Points : 4 768
    Points
    4 768

    Par défaut

    Kie,

    Comme quoi, ouvrir un bouquin/cours/didacticiel se révèle utile ...

    ... pour le prochain langage ?

    Ou même encore maintenant pour Pascal (puisque tu vois que tu es passé à travers des notions importantes) ?
    Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    janvier 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : janvier 2010
    Messages : 235
    Points : 503
    Points
    503

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [vocabulaire] passage par adresse et par valeur.
    Par debutantenalgo dans le forum Général Algorithmique
    Réponses: 6
    Dernier message: 21/12/2009, 15h42
  2. Passage par valeur ou par adresse
    Par BlackMulet dans le forum Langage
    Réponses: 6
    Dernier message: 29/10/2009, 16h20
  3. Passage de paramètre à un fichier AS par un bouton
    Par Lilliputien dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 26/11/2008, 12h40
  4. Passage par adresse ou par valeur ?
    Par Maverick27 dans le forum Débuter
    Réponses: 7
    Dernier message: 08/10/2008, 18h53
  5. Transmission par valeur ou par adresse
    Par Emmanuel Delahaye dans le forum Langage
    Réponses: 8
    Dernier message: 13/08/2007, 13h44

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