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 :

Dans quel ordre procéder ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Deficient visuel
    Inscrit en
    Mai 2019
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Deficient visuel

    Informations forums :
    Inscription : Mai 2019
    Messages : 216
    Par défaut Dans quel ordre procéder ?
    Bonjour a toutes et a tous ,
    Lors de la conception d'un programme , il faut dabord reflechir et concevoir les fonctions et ensuite le main ou le contraire . Avec ce que peux retourner une fonction et les arguments qu'elle peut prendre , j'avoue ne pas savoir par quel bout commencer ...
    Merci de votre aide

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    J'ai envie de répondre "ni l'un ni l'autre" mais en fait ce que je vais dire va s'approcher de la réponse 2 "penser au main". Mais j'aime pas trop cette formulation, elle est ultra-réductrice.

    Quand tu conçois un programme, tu dois définir ses fonctionnalités : quelles données prend t-il en paramètres ? va t-il interagir avec l'utilisateur en cours d'exécution ? quels résultats va t-il produire ? quelles contraintes de performances, de compacité, de portabilité a t-il ? Tu vas alors commencer à réfléchir aux traitements, définir des blocs qui fournissent certaines fonctionnalités, imaginer comment ses blocs interagissent, etc.

    Ce n'est qu'après, quand tu vas commencer l'implémentation, que tu vas commencer à penser fonctions, et main() est une fonction.

  3. #3
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Je rejoins ce que dit Bktero , ça dépend du programme , mais techniquement tu as créer des fonctions suivant des besoins , pareil pour les arguments , tout dépend de la volonté de manipulation de ta fonction
    Mais en général toutes les fonctions doivent être très ciblé , éviter une fonction qui doit faire 10 000 truc !

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par chris7522 Voir le message
    j'avoue ne pas savoir par quel bout commencer ...
    Essaye alors de le commencer manuellement. Comment tu t'y prendrais avec un crayon. Quelles actions semblent revenir assez souvent => ces actions pourront alors devenir des fonctions. etc...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 152
    Billets dans le blog
    4
    Par défaut
    > je veux faire un jeu en 2d vue de dessus
    >> je dois pouvoir afficher un sprite
    >>> je veux pouvoir déplacer le sprite
    >>> je veux pouvoir animer ce sprite
    >> je veux pouvoir afficher un background
    >>> je veux pouvoir afficher plusieurs éléments par-dessus le background
    >>>> je vais avoir plusieurs couches d'affichage
    >> je veux déplacer un personnage en cliquant à la souris
    >>> et avec les flèches directionnelles
    >>>> et pouvoir réassigner les touches de déplacement
    >> je veux ouvrir un menu en appuyant sur échap
    >>> je veux afficher des éléments intéractifs pour faire le menu
    >>>> je dois pouvoir cliquer sur les boutons du menu
    >>>> je veux me déplacer dans le menu avec les touches directionnelles
    ...

    généralement un verbe = une action = une fonction
    un nom = un objet = une structure
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Membre confirmé
    Homme Profil pro
    Deficient visuel
    Inscrit en
    Mai 2019
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Deficient visuel

    Informations forums :
    Inscription : Mai 2019
    Messages : 216
    Par défaut
    Merci . J'y vois + claire a présent .
    Si je prends l'exemple d'un certain nombre de note que je veux moyenner , je peux peut etre dabord faire une fonction pour demander le nombre de note . Tout de suite apres , je vais ecrire dans la fonction main pour stocker le resultat de la fonction dans une variable . Ensuite j'ecris une nouvelke fonction pour demander de rentrer les notes en question suivi d'un petit tour dans le main pour l'appel de la nouvelle fonction avec les arguments qui vont bien
    Et ainsi de suite ... j'avance comme ca .
    Ca se fait ca ?

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par chris7522 Voir le message
    Si je prends l'exemple d'un certain nombre de note que je veux moyenner , je peux peut etre dabord faire une fonction pour demander le nombre de note .
    scanf()...

    Citation Envoyé par chris7522 Voir le message
    Tout de suite apres , je vais ecrire dans la fonction main pour stocker le resultat de la fonction dans une variable . Ensuite j'ecris une nouvelke fonction pour demander de rentrer les notes en question suivi d'un petit tour dans le main pour l'appel de la nouvelle fonction avec les arguments qui vont bien
    Et ainsi de suite ... j'avance comme ca .
    Ca se fait ca ?
    On ne se ballade pas entre fonctions et main. C'est plutôt "fonction initiale (le "main) appelle fonction2 et attend son résultat". Mais si "fonction2" est assez complexe, alors dans son traitement il y aura probablement "appel fonction3 et attente du résultat". Le "main" c'est un peu le Battlestar Galactica. Il a besoin d'un truc, il envoie un Viper et attend son retour. Mais s'il a besoin d'un truc plus complexe, alors il enverra un Rapace et attend son retour mais le Rapace pourra lui envoyer des drones et attendre leur retour pour faire son travail. Bref un genre de poupées russes...

    Prenons donc ton exemple d'un certain nombre de notes qu'on veut moyenner. Moi j'écrirais une fonction permettant de faire saisir une note unique. Mais je l'écrirais vraiment robuste, avec contrôle de ce qui est saisi et redemande tant que la note n'est pas correcte. Puis une fois que la note est correcte, alors la fonction la retourne à l'appelant (et à ce niveau elle s'en bat le steak de savoir qui est cet appelant).
    Ensuite, je définis une fonction qui calculera la moyenne d'un tableau de notes. Elle n'a pas besoin de savoir comment sont obtenues les notes, elle se contente juste de les additionner et retourner le résultat.
    Et enfin dans le main je définis un tableau de notes. J'appelle la fonction de saisie autant de fois qu'il faut pour remplir tout le tableau puis j'appelle la fonction de calcul de moyenne en lui donnant le tableau à bouffer.

    En faisant ainsi, je reste simple et je colle à la réalité (parce que dans la réalité, quand on calcule une moyenne, on se contente de prendre les notes et les additionner à la calculatrice). Mais aussi je me prépare pour l'avenir. Peut-être que demain, les notes ne seront plus saisies au clavier mais lues depuis un fichier. Il faudra juste alors écrire une fonction qui lit le fichier et charge le tableau mais la fonction qui calcule la moyenne ne change pas. Peut-être aussi que après-demain il y aura des coefficients aux notes. Il suffira alors de créer une structure contenant la note et son coeff et modifier la fonction de saisie pour qu'elle saisisse la note+le coeff. Il faudra aussi modifier la fonction de calcul de moyenne mais l'articulation du code, elle, ne changera pas (boucle de saisie et calcul).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Membre confirmé
    Homme Profil pro
    Deficient visuel
    Inscrit en
    Mai 2019
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Deficient visuel

    Informations forums :
    Inscription : Mai 2019
    Messages : 216
    Par défaut
    Merci a tous de votre aide ☺

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/04/2009, 19h36
  2. Par où commencer et dans quel ordre ?
    Par Kromagg dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 30/01/2009, 20h52
  3. Dans quel ordre se fait l'évaluation
    Par dj.motte dans le forum C
    Réponses: 12
    Dernier message: 22/08/2008, 23h40
  4. Dans quel ordre ranger les vertices ?
    Par legend666 dans le forum OpenGL
    Réponses: 5
    Dernier message: 10/10/2005, 10h01

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