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

Problème de procédure


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut Problème de procédure
    Bonjour, je souhaiterais savoir comment déclarer une procédure avec des paramètres d'entrée/sortie ou de sortie, et comment l'utiliser svp, car j'ai des erreurs de procédure. Celles non paramétrés marchent super, mais les autres...aye aye aye
    Je ne trouve aucun tuto sur ce sujet...
    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 46
    Par défaut
    Peux tu donner le code d'une de ses procedures qui ne fonctionne pas s'il te plait?

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Hmmm, tu es sur que tu parles de C++ la?

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Prends un bouquin de base qui explique la syntaxe des fonctions.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    OK. Les fonctions j'avais compris la syntaxe.
    Mon problème était de mettre un tableau en paramètre sortie dans une procèdure. Cela est maintenant fait.
    Il n'y a pas besoin de mettre le &, comme pour un paramètre d'un autre type.
    Ceci est du je crois au fait qu'un tableau est proche d'un pointeur, enfin bon, je n'ai pas encore étudié les pointeurs et je n'en ai pas encore besoin.

    Si quelqu'un peut apporter une réponse précise à ça ?
    merci d'avance.
    j'ai joint le code si vous voulez me donner des conseils ça sera avec joie. Il s'agit du jeu addemup en mode console dos.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,

    Si au lieu de nous mettre un fichier de plus de 300 lignes, tu nous simplifiais tout ça, en réduisant au minimum pour montrer ce qui ne va pas ?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    Citation Envoyé par tonymontana
    Mon problème était de mettre un tableau en paramètre sortie dans une procèdure. Cela est maintenant fait.

    j'ai joint le code si vous voulez me donner des conseils ça sera avec joie. Il s'agit du jeu addemup en mode console dos.
    Comme je l'ai deja écrit, je n'ai pas de problème particulier.
    Je voudrais que l'on explique pourquoi on ne met pas le & pour un tableau dans une procèdure.
    Et si ça vous embète pas trop, me dire si mon code est à peu prés correct et digne d'un débutant...
    En gros si quelque chose ne vas pas du tout et qui est répétitif, me le signaler !
    merci !

  8. #8
    Membre confirmé Avatar de b Oo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 179
    Par défaut
    Salut,
    on ne met pas de & pour un tableau dans une procédure car ce n'et pas le tableau qui est passé mais le pointeur sur le tableau. Le pointeur du tableau est copié est donc la procédure peut modifier le tableau.

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Les procédures en C ou en C++ ça n'existe pas, tout comme les paramètres en sortie d'ailleurs, on parle de fonction et de passage d'argument par pointeur ou par réfèrence (dans un cas comme dans l'autre on peut considérer qu'ils sont en entrée/sortie, mais en sortie simple ça n'existe pas).

    Sinon, ce n'est pas un drame de poster des questions de newbie mais avant tout il faut:
    - chercher ailleur avant de poser la question (surtout la faq)
    - spécifier que tu es un débutant (ça replace dans le contexte)
    - expliquer les réfèrences que tu utilises (en l'occurence un truc comme le pascal je pense, et tu es en train d'apprendre le C++ sans connaitre le C)
    Ca nous permet de mieux comprendre ta question et donc de pouvoir te répondre plus vite.

    Si j'ai misé juste sur le pascal, je suppose que tu es un peu perdu parceque dans ce langage on peut passer des tableaux entiers en paramètre d'une fonction, tout le tableau sera copié (si je me souviens bien). En C on ne peut pas procéder ainsi. C'est d'ailleurs assez traitre parcequ'il n'existe pas vraiment de type tableau en soit, tout n'est que pointeur vers une zone mémoire qui contient x variables (tu dois d'ailleurs te débrouiller pour savoir la valeur de x). Par contre c'est plus souple parcequ'un tableau peut à n'importe quel moment être de n'importe quelle taille.
    Mon conseil: les bouquins sur le C++ sont mal foutus pour ce qui est de t'expliquer la bonne utilisation des tableaux. Attends un peu d'arriver à un chapitre qui parle des vectors et puis n'utilise plus que ça.

  10. #10
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Mettre un & devant un tableau en paramètre de fonction est possible (je pense cela permet entre autres d'être certain de la taille du tableau), mais:
    1. Il faut que la fonction soit aussi concue pour prendre un pointeur vers un tableau en paramètre,
    2. Et cela rajoute un niveau d'indirection.

    Le second point est sans doute la raison pour laquelle rares sont les fonctions qui respectent le premier (le passage par référence du C++ annule ce second point, et il existe ainsi des fonctions template qui prennent en paramètre une référence vers un tableau d'une taille donnée, plutôt qu'un pointeur).

    Quoi qu'il en soit, le passage en paramètre d'un tableau sans & ne copie pas le tableau non plus: Tout tableau est implicitement convertible en un pointeur vers son premier élément. Et en vérité, c'est ce pointeur qui est passé en paramètre.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. [SQLSERVER]Problème de procédure stockée
    Par mikedavem dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/12/2006, 00h17
  2. Réponses: 1
    Dernier message: 17/07/2006, 17h08
  3. Problème Création Procédure
    Par Yndigos dans le forum Oracle
    Réponses: 6
    Dernier message: 08/07/2006, 09h02
  4. Problème de procédure objet : Migration de TForm vers TFrame
    Par rvzip64 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 13/06/2005, 13h44
  5. Problème de procédure stockée
    Par Sorcier157 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 17/03/2005, 17h57

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