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 :

Question de débutant.


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Par défaut Question de débutant.
    Hello,

    Je viens de télécharger le pdf " initiation langage c ".
    Je bloque a l'exercice 2. Je suis allez la solution, et je comprend pas un truc.
    Peut être pourriez vous m'expliquer :

    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
    #include <stdio.h>
    #define LONGUEUR 100
    #define HAUTEUR 60
    int perimetre(int L, int h);
    int main()
    {
    printf(
    "Le perimetre d'un rectangle de longueur %d et de hauteur %d est %d.\n",
    LONGUEUR, HAUTEUR, perimetre(LONGUEUR, HAUTEUR)
    );
    return 0;
    }
    int perimetre(int L, int h)
    {
    return 2 * (L + h);
    }
    Comment la fonction sait que L = 100 et que h = 60 ?
    J'ai défini LONGUEUR moi, pas L ? pareil pour HAUTEUR c'est différent de h

    Est-ce que ca vient de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    printf(
    "Le perimetre d'un rectangle de longueur %d et de hauteur %d est %d.\n",
    LONGUEUR, HAUTEUR, perimetre(LONGUEUR, HAUTEUR)
    );
    ?

    D'avance merci!

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    printf(
    "Le perimetre d'un rectangle de longueur %d et de hauteur %d est %d.\n",
    LONGUEUR, HAUTEUR, perimetre(LONGUEUR, HAUTEUR)
    );
    La fonction perimetre est d'abord appelée, recevant comme paramètres les valeurs LONGUEUR et HAUTEUR qui respectivement valent 100 et 60. Puis la fonction printf utilise le résultat renvoyé pour ensuite l'afficher sur la console.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int perimetre(int L, int h)
    {
    (...)
    }
    A l'entrée de cette fonction, les deux variables L et h sont créées sur la pile, puis initialisées avec les valeurs passées, respectivement 100 et 60. Une fois que la fonction se termine, elle renvoie le résultat, et les deux variables sont détruites.

    Ceci est en principe écrit dans ton cours, cela fait partie des bases du langage.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Par défaut
    Merci, c'est déjà bien plus clair!

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 3
    Par défaut
    bonjour


    dans votre programme il ya un appel a la fonction périmètre (l,h) avec l:longueur=100 et h:hauteur=60 sont déja défini dans le code suivant:
    #define longueur 100
    #define hauteur 60


    bonne chance

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 495
    Par défaut
    Citation Envoyé par Anthoz Voir le message
    Comment la fonction sait que L = 100 et que h = 60 ?
    J'ai défini LONGUEUR moi, pas L ? pareil pour HAUTEUR c'est différent de h
    En fait, les fonctions en C servent principalement à implémenter les sous-programmes mais elles n'en restent pas moins des fonctions à part entière, dans le sens mathématique du terme. Par exemple, sur papier, tu commences par définir une fonction comme ceci :


    et ensuite, tu l'utilises comme une expression mathématique qui peut être évaluée :

    Code math : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    i = f(5)
    y = cos(1)

    « x » est une variable, dont est fonction la valeur finale de l'expression (d'où le nom). Lorsque tu passes une valeur en paramètre, le nom du paramètre est substitué par cette valeur partout où il apparaît et, seulement ensuite, l'expression est évaluée. La valeur que tu peux passer à ta fonction peut être alors une constante (comme ci-dessus), une autre variable ou toute autre expression évaluable, notamment une autre fonction.

    En C, donc, les paramètres de fonction sont considérés comme des variables locales que tu peux utiliser à ta guise, dans ta fonction, mais qui sont automatiqment remplies à l'appel par les valeurs des paramètres passés par la fonction appelante, quels qu'ils soient.

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 23/06/2005, 10h56
  2. question de débutant sur les objets
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 06/08/2004, 10h51
  3. [MFC] Quelques questions de débutant...
    Par Sephi dans le forum MFC
    Réponses: 4
    Dernier message: 20/02/2004, 17h25
  4. Questions de débutant
    Par J-P-B dans le forum XMLRAD
    Réponses: 12
    Dernier message: 24/07/2003, 15h19
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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