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

C++Builder Discussion :

Retourner un vecteur dans une fonction


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 89
    Par défaut Retourner un vecteur dans une fonction
    Je veux inverser un vecteur et le maitre dans un autre vecteur

    exemple x=[ 1 2 3 4] alors Y=[ 4 3 2 1] et j'ai un probleme avec le retour de vecteur dans la fonction je veux bien un aide SVP
    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
    
    void __fastcall TForm1::Fliplr(int * vecteur,int taille )
    {
    int * solution;
    for(j =0; j<taille ; j++)
    for(i =taille-1; i=0 ; i--)
    solution [j]=vecteur[i]
    return solution
    }
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    
    int x[4]={1,2,3,5};
    int y[4];
    y=Fliplr(x,4) ;
    ShowMessage(y[1]);
    }
    il me dit que y'a un probleme dans le y !!

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par défaut
    Voici un début de piste. Tu avais un pointeur sur un entier que tu utilises comme un tableau. or, tu ne connais pas la taille de ton tableau par avance, il faut donc utiliser new pour créer un tableau de taille dynamique.

    Il ne faut pas oublier de faire un delete[].

    Par contre, je n'ai pas testé le code et je ne suis pas certain de la syntaxe du new[].

    Quant à tes for, cela ne semblait pas convenir. Mais tout dépend de ce que dois faire ta fonction.

    La valeur de retour de ta fonction n'était pas bien définie. void c'est pour ne rien renvoyer.

    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
    int* __fastcall TForm1::Fliplr(int * vecteur,int taille )
    {
    int * solution = new int[taille];
    for(j =0; j<taille ; j++)
    solution[taille-1-i]=vecteur[i];
    return solution;
    }
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     
    int x[4]={1,2,3,5};
    int *y;
    y=Fliplr(x,4) ;
    ShowMessage(y[1]);
    }

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    En principe, tu n'as pas besoin d'utiliser de tableau supplémentaire puisqu'une lecture en ordre inverse peut se résoudre à l'aide d'un traitement logique.

    Ca permet de ne pas avoir à gérer ni la création, ni la recopie, ni la destruction du tableau.

    Qui plus est, ça se modélise très bien sous forme de "propriétés tableau" !

    Mais bon ... peut-être que tu as un intérêt particulier à générer des tableaux et à coder en C.

    Si ton tableau contient Count éléments :
    - dans l'ordre donné (croissant)
    valeur = Tableau[ index ]
    - dans l'ordre inverse (décroissant)
    valeur = Tableau[ Count - 1 - index ]

    A plus !

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    Exactement

    Citation Envoyé par henderson Voir le message
    Salut !

    En principe, tu n'as pas besoin d'utiliser de tableau supplémentaire puisqu'une lecture en ordre inverse peut se résoudre à l'aide d'un traitement logique.

    Ca permet de ne pas avoir à gérer ni la création, ni la recopie, ni la destruction du tableau.

    Qui plus est, ça se modélise très bien sous forme de "propriétés tableau" !

    Mais bon ... peut-être que tu as un intérêt particulier à générer des tableaux et à coder en C.

    Si ton tableau contient Count éléments :
    - dans l'ordre donné (croissant)
    valeur = Tableau[ index ]
    - dans l'ordre inverse (décroissant)
    valeur = Tableau[ Count - 1 - index ]

    A plus !

Discussions similaires

  1. Retourner un array dans une fonction
    Par Hatsrog dans le forum Langage
    Réponses: 4
    Dernier message: 06/03/2015, 22h33
  2. Pour retourner deux valeurs dans une fonction
    Par IMANE21 dans le forum Débuter
    Réponses: 1
    Dernier message: 03/03/2012, 23h36
  3. Comment retourner un vecteur dans une fonction ?
    Par petitclem dans le forum C++Builder
    Réponses: 9
    Dernier message: 03/02/2010, 10h24
  4. Retourner un tableau dans une fonction
    Par oranoutan dans le forum Débuter
    Réponses: 14
    Dernier message: 05/10/2007, 13h39
  5. Retourné resultat curseur dans une fonction
    Par L8O8L dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/06/2007, 22h09

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