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 :

appel de fonction.


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par défaut appel de fonction.
    Hello a tous, aujourdhui debute mon 1er cours en C#, mon 1er vrai langage POO, la journée se passe bien, je comprends presque tout, on passe tres rapidement sur les fonctions, les instructions, on se fait un jolie helloWorld, le bonheur quoi.
    Fin de journée, un petit exercice simple... bosser sur une fonction et lui mettre dans la tete des conditions (while, if etc ), parser des variables, le basic koi.

    je vous donne le petit code du départ. (excuser si je fais 2/3erreurs de fautes de frappes avec ce clavier pourrie)

    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
    namespace Temperatures
    {
    class Programmes
    {
    static void Main ()
     
    {
    Systeme.console.Write(" Temperature en Fahreineit :");
    string s=Systeme.console.ReadLine();
    double f= double.Parse(s);
    double celsius =5*(f-32)/9;
    Systeme.Console.WriteLine(s + " ° Fahreineit ="+celsius.ToString()+ " Celsius");
    Systeme.Console.ReadLine();
    }
    }
    }
    J'ai tres bien compris a quoi servait le code, on invite l'utilisateur a donné une temperature et il l'a convertit en Celsius.

    Ma question : "Nous allons extraire le code de calcul de la fonction Main () pour la mettre dans une fonction dont le prototype est String EnCelsius (string fahrenheit)

    Donnez lui le code qui convertit la chaine recue en double, puis calcule en celsius et renvoie une chaine ( ce code est pour l'instant dans Main () )

    Appelez cette fonction depuisMain () au lieu d'y faire le calcul."

    Voila c'est tout con, mais je suis compltement dans le brouillard, la suite de l'exo est de passer des boucles, de faire de formatage de chaineetc, ca pas de soucis, mais j'arrive pas a integrer cette partie de fonction appelé ailleurs...

    Si quelqu'un pouvait m'aider ca serait bien chouette, si je bute juste sur ca, je risque de rester sur la touche pour la suite.


    Mercia ceux qui liront

    @ +

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    j'ai lu mais j ai rien compris...

    ca doit etre un peu ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Classe taclassechaudfroid (
     
     
    fonctionappeléeailleurs() (...)
     
    Main(
     
    ton truc ci dessus
    fontionappeléeailleurs();
     
    )

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par défaut
    merci pour la reponse, mais j'arrive pas trop a comprendre,

    la fonction fonctionappeléeailleurs() (...) que tu as ecris, elle sert a quoi cette fonction la ? j'y met quoi dedans ?
    D'apres ce que j'ai compris , le code de Calcul de converssion de Fahrenheit en Celsius doit rester dans la fonction Main (), mais j'arrive pas a comprendre avec ton exemple la tournure que ca prend
    Pis j'arrive pas vraiment a comprendre l'enoncé du probleme...

    grrr ca m'enerve

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    elle sert a quoi cette fonction la ? j'y met quoi dedans ?
    ben ca c'est toi qui voit...
    Maintenant faudrait que t envois l enoncé du pb, mais bon ton prof va pas aimer et j espere pour toi qu il passe pas sur ce forum...

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    ah ouais bon je t explique :

    Main c'est le boss de la boite, a la base il etait tout seul et il faisait tout, puis il a commencé a en faire beaucoup et a etre un peu connu, alors il a employé des mecs, qui s'appellent les MeTaux 2, depuis, Main ne gere plus que les Metaux2 et ne fait plus les bricole de base... il a une methode (un Metaux2) pour un truc, une autre pour ranger les verres, une autre pour passer la serpillere et une pour afficher l heure, encore une pour commander une pizza a la methode qui prend les commande et les envois aux boss de la pizzeria qui renvoi le tout au cuisinier de la pizzeria, qui lui meme a une methode "quelle heure est il?" et une methode "la date du prochain match"...

    Donc tu vois pour toi c'est simple, ton Main à la place de faire les calculs, il va appelé "trouduC de service" ou "fonction appelée ailleurs"... et en dehors du Main, tu vas créer un autre Main, qui s'appelera PAS MAIN mais FonctionAppeléeAilleurs

    Et dans cette fonction tu mets ce que le Main faisait avant de devenir boss nivo 2

    mais attention dans le main et en dehors faut avoir le meme nom de fonction, si ton Main appelle ton prof au lieu de son client, ca va pas aller, et tu vas te faire gronder...

    feignant

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par défaut
    ben ca c'est toi qui voit...
    Maintenant faudrait que t envois l enoncé du pb

    "Nous allons extraire le code de calcul de la fonction Main () pour la mettre dans une fonction dont le prototype est String EnCelsius (string fahrenheit)

    Donnez lui le code qui convertit la chaine recue en double, puis calcule en celsius et renvoie une chaine ( ce code est pour l'instant dans Main () )

    Appelez cette fonction depuisMain () au lieu d'y faire le calcul."

    Voila l'enoncé, je dois faire par une fonction de type string EnCelsius (string farenheit le calcul quil y a pour le moment dans Main()
    et je doisappelé la fonction depuisMain au lieu d'y faire le calcul comme on a pour le moment.

    Je suis désolé sayag mais me faire une explication sur les pizza et autre ca m'aide pas vraiment, je sais a quoi servent les fonctions, les methodes et autres, le soucis dans le cas présent est plutot que je n'arrive pas à voir comment implementer tout ca.

    Personne peut precisement m'aider la dessus ?

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    ben ouais mais moi je comprend pas, une fonction ca a une entrée et une sortie, comme un tube digestif, c est quoi que tu veux faire entrer ? pour en sortir un string si j ai bien compris...

  8. #8
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    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
    20
    21
    22
     
    namespace Temperatures
    {
        class Programmes
        {
            private string EnCelsius(string fahrenheit)
            {
                double f = double.Parse(fahrenheit);
                double celsius = 5 * (f - 32) / 9;
                return celsius.ToString();
            }
     
            static void Main()
            {
                System.Console.Write(" Temperature en Fahreineit :");
                string s = System.Console.ReadLine();
                string celsius = EnCelsius(s);
                System.Console.WriteLine(s + " ° Fahreineit =" + celsius.ToString() + " Celsius");
                System.Console.ReadLine();
            }
        }
    }
    Je débute également et ton prb semble sympas
    Voilà je sais pas si ça réponds à ta question

    Edit : j'avais pas vu que ton prototype etait imposé

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par défaut
    merci llaffont, je pense que c'est ca,je vais pouvoir bosser dessus

    merci encore

  10. #10
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    mais non c'est ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    
                System.Console.WriteLine(s + " ° Fahreineit =" + celsius + " Celsius");
               
    }
    car celsius est deja une String

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Par défaut
    heu nan sayag , si tu regardes bien on a ceci a la ligne 10

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double f= double.Parse(s);
    du String qu'on a recuperé de l'utilisateur on a changé le typage de la variable en double pour pouvoir faire des operations mathématique dessus.


    Mais merci de re avoir matter le code

  12. #12
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    non je confirme mec :

    dans la methode EnCelsius, tu retournes un celsius.ToString(), c'est pour ca que justement ta methode est declarée String.

    Du coup le celsisu = EnCelsius(f) est un String

    Donc dans le WriteLine : celsius.ToString() est mal amené, vu que celsius est deja une String... c'est donc celsius solo


    d'ailleurs fais gaffe, paske t as un celsius double dans ta methode et un celsius String dans ton main, ca peut preter a confusion...

    appelle les differemment, genre dans ton main :

    resultatCelsius = EnCelsius(s);

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut
    voui,

    je confirme, pas besoin de ToString()...

    Tant que j'y suis,
    Sayag, moi, j'ai adoré ton explication du Main() et des fonctions appelées ailleurs

    et bon courage à Porte_Plume...

  14. #14
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    Effectivement erreur de ma part.

  15. #15
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Est ce que c'est ton vrais premier langage de programmation orienté objet ou ton premier langage tout cours ?
    Parce que tu n'as pas l'air de comprendre ce qu'est un main, ce qu'est une fonction, et je te conseille de t'attarder la dessus avant de passer à la programmation, parce que sinon tu va tout mélanger et tu ne sauras rien faire.
    Pose des questions à ton prof s'il le faut.

    Une fonction te permet de mettre à disposition de tout ton programme un morceaux de celui qui a pour destiné d'être répéter un peu partout.
    Ainsi au lieu de répéter 5 fois dans ton programme 5 lignes de codes pour faire de l'affichage d'un texte, tu les mets dans une fonctions et tu fait appel à cette fonction dans ton code 5 fois.
    Lorsque tu appelles une fonction, son contenu est exécuté.
    Lorsque la fonction a fini son exécution, elle peut te retourner des valeurs. C'est à toi de choisir si elle en retoure et si oui quelle type de valeur au moment ou tu crée cette fonction.
    Tu peut aussi passer des paramètres à cette fonction, c'est à dire lui dire d'utiliser les valeurs contenus dans des variables précises. (Pareil tu le décides au moments ou tu crées ta fonction). Et dans le code de la fonction tu met ce que tu veux, et notemment tu peut expliciter à la fonction comment utiliser ses paramètres (si elle en a) et quelle valeur retourner.

  16. #16
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    bah c'est rien comme erreur, c'est comme ca qu on avance.
    Sinon t en es ou ?
    Si t as fini utilise le Bouton RESOLU,
    nous on sait que ca roule pour toi sur ce point, et puis c est mieux pour tout le mode

    bon courage... si t as compris cet exo t as compris beaucoup de chose deja

Discussions similaires

  1. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 15h54
  2. Réponses: 4
    Dernier message: 19/04/2004, 14h41
  3. [JSP] Appeler une fonction
    Par Patrick95 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 23/12/2003, 14h44
  4. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 14h33
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 19h48

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