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 Pascal Discussion :

Passer une matrice comme paramètre d'une fonction


Sujet :

Langage Pascal

  1. #1
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut Passer une matrice comme paramètre d'une fonction
    Bonjour tout le monde.

    Mon problème est le suivant :

    je souhaite réaliser une procédure (ou une fonction, je pense que le problème est le même) avec des matrices (donc des tableaux) comme arguments.
    Le problème est que je ne sais pas quel type je dois y mettre :
    je pensais à quelque chose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function f(M:array[1..9] of real):real;
    mais ça ne marche pas.
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function f(M:array of real):real;
    la compilation marche mais pas la fonction alors que testée directement (sans faire appel à la fonction f(M) dans le programme) elle marche (donc le problème ne vient que de là!!).

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Points : 770
    Points
    770
    Par défaut


    on pourrait avoir le but de ta procédure? (ou fonction)
    on es tpas devins...
    ★ Pascal/Java/C/xhtml,css/SQL/Mips
    ★ Linux/unix

  3. #3
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut
    en gros elle aurait 3 arguments : 2 matrices (lignes) et un réel.
    Le but serait d'enlever ce réel a la première matrice et que le seconde matrice soit la 1ére moins ce réel.

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    on peut définir des fonctions comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    const N = 100;
    procedure F( var a );
    var X : array[0..N-1] of real absolute a;
       begin
       for i:=0 to N-1 do X[i] := ......;
       end;
    // prog principal
    var T : array[1..N] of real;
    procedure XXX;
    begin
    for i:=1 to N do T[i]:=...;
    F(T);
    end;

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Sinon tu peux définir un type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    type
      TMatrice = array[1..9] of real;
    Et passer ce type en paramètre de tes fonctions.
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Oui mais dans ce cas on est limité au type donc taille, nombre d'indices, la structure, ... prédéfini.
    Avec l'utilisation de (var a) finalement on passe une adresse et on mappe la zône mémoire à discrétion.
    cela rend les routines bien plus souples et générique. En contre partie, Il faut bien faire attention aux limites car le compilateur n'est plus là pour ""aider"" et éviter d'aller écrire n'importe où!!

  7. #7
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut
    Donc on ne peut pas mettre un tableau directement en tant que variable d'une fonction? Alors je crois que créer un type est le plus simple.
    Merci pour vos réponse.

  8. #8
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Points : 318
    Points
    318
    Par défaut
    Tout d'abord bonjour. Je m'appelle Othmane, 20 ans et je suis étudiant.
    Bon j'avais rencontré le même problème et ce dernier vient de la déclaration des paramètres de la fonction.
    Au lieu de de la déclarer ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function  fonction(T:array[1..20]of real):real;
    il faut déclarer le type tableau que vous vouliez mettre comme paramètres.
    Donc la déclaration sera la suivante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    program  ......
    .
    .
    type  tableau=array[1..20] of real;
    var ..
    function  fonction(T:tableau):real;
    Et j'espère que sa marchera pour toi aussi.
    http://fr.obedev.com/: Un blog sur le développement web et mobile.

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Points : 770
    Points
    770
    Par défaut
    othmane: c'est bien mais c'est exactement ce qu'on à dit avant
    ★ Pascal/Java/C/xhtml,css/SQL/Mips
    ★ Linux/unix

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/11/2009, 10h28
  2. comment passer un ArrayList comme paramètre d'une méthode
    Par itmak dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 22/11/2008, 10h31
  3. Réponses: 11
    Dernier message: 08/07/2008, 13h16
  4. Passage d'une variable comme paramètre d'une fonction
    Par lowman dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/10/2007, 15h12
  5. Réponses: 2
    Dernier message: 03/12/2006, 12h37

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