Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Membre chevronné
    Avatar de EpiTouille
    Homme Profil pro Titouan Créac'h
    Étudiant
    Inscrit en
    mai 2009
    Messages
    333
    Détails du profil
    Informations personnelles :
    Nom : Homme Titouan Créac'h
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2009
    Messages : 333
    Points : 653
    Points
    653

    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 :
    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 :
    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 Paul TOTH
    Freelance
    Inscrit en
    novembre 2002
    Messages
    5 492
    Détails du profil
    Informations personnelles :
    Nom : Homme Paul TOTH
    Âge : 45
    Localisation : Réunion

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

    Informations forums :
    Inscription : novembre 2002
    Messages : 5 492
    Points : 14 442
    Points
    14 442

    Par défaut

    en Pascal tu as un mot clé spécifique pour passer les paramètres par adresse : var
    Code :
    1
    2
     
    procedure Inc(var x: Integer; y : Integer = 1);
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal
    Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%

  3. #3
    Membre chevronné
    Avatar de EpiTouille
    Homme Profil pro Titouan Créac'h
    Étudiant
    Inscrit en
    mai 2009
    Messages
    333
    Détails du profil
    Informations personnelles :
    Nom : Homme Titouan Créac'h
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2009
    Messages : 333
    Points : 653
    Points
    653

    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 554
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 554
    Points : 4 068
    Points
    4 068

    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 chevronné
    Avatar de EpiTouille
    Homme Profil pro Titouan Créac'h
    Étudiant
    Inscrit en
    mai 2009
    Messages
    333
    Détails du profil
    Informations personnelles :
    Nom : Homme Titouan Créac'h
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2009
    Messages : 333
    Points : 653
    Points
    653

    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 :
    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 554
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 554
    Points : 4 068
    Points
    4 068

    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 éprouvé
    Homme Profil pro
    Inscrit en
    janvier 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

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

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •