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

Langages de programmation Discussion :

Comment programmer svp?


Sujet :

Langages de programmation

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Points : 9
    Points
    9
    Par défaut Comment programmer svp?
    Bonjour à tous,
    cela fait maintenant presque un an que je suis dans une formation où je dois apprendre à programmer (je n'en avait jamais fait avant de la programmation) et malgré mes efforts je n'arrive pas du tout à coder quoi que ce soit. Je ne sais pas du tout comment il faut faire pour programmer ne serait-ce que des petites choses (table de multiplication...) je suis toujours obliger de regarder les solutions des exos que je dois faire, je ne parviens pas à les faires seul (et ce malgrè les livres que j'ai acheté et les tutos sur internet que j'ai lu). Est ce que quelqu'un pourrait me donner des conseils svp? Et est ce qu'il y a d'autres personnes dans la même situation que moi?
    Je vous remercie.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    La première chose à savoir, c'est précisément ça ne passe pas.
    Compréhension du système? Visualisation de la tâche à réaliser? Imagination d'un moyen de construire cette tâche?
    Ou quelque chose de plus terre-à-terre, comme le passage d'un pseudo-langage à un code? Ou les notions simples? (boucles, variables)

    Prenons un exemple concret: Si je te demandes d'écrire le code d'un programme qui affiche la table de multiplication par cinq (5), d'abord en pseudocode, puis dans n'importe quel langage que tu connaisses; où bloques-tu?
    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.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Points : 9
    Points
    9
    Par défaut
    Je pense que je bloque dans la façon que je réfléchi pour visualiser la tâche et comment construire quelque choses pour répondre à un problème posé. Je bloque aussi au niveau pseudo code je n'en ai pas fait énormément, durant la formation j'ai été confronté à plusieurs langages rapidement (sans avoir vraiment le temps de maîtriser aucun) python , java , perl, C++
    Je bloque effectivement avec des notions simples aussi : boucles imbriquées par exemple, la récursivité ...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pour le coup de la table de multiplication, est-ce qu'au moins l'idée d'utiliser une boucle te vient?
    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.

  5. #5
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    Par défaut
    Ce qu'il manque dans beaucoup de formations en informatique à la con modernes c'est l'ordinogramme. (alors là par contre, pour faire bouffer quarante langages d'un coup à des débutants complets, là, y'a du monde !)

    Il faut montrer aux étudiants des représentations des boucles pour, tant que et répéter jusqu'à sous forme d'ordinogramme, puis faire représenter des petits algos sous forme d'ordinogramme. C'est un peu la méthode rouleau-compresseur, mais c'est un peu la dernière chance pour ceux qui ne comprennent pas les choses les plus simples.

  6. #6
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Hello,

    Citation Envoyé par j201403 Voir le message
    Je pense que je bloque dans la façon que je réfléchi pour visualiser la tâche et comment construire quelque choses pour répondre à un problème posé.
    Dans un premier temps "oublie" les différents langages que tu as pu voir.
    Ce qui est important au début c'est l'algorithmie (ou algorithmique ? Pas sur du mot correct) : trouver une méthode pour répondre au problème posé.

    Pose toi la question : "Comment je fais pour réciter une table de multiplication ?"
    (La réponse : "je la récite par coeur parce que je l'ai appris à l'école primaire" n'est pas valide ).

    Regarde quels nombres sont liés et comment ils sont liés.
    Récite la, à l'oral ou à l'écrit si tu as besoin, tu devrais voir apparaitre une solution.

    Pour l'exemple de la table de multiplication :
    5 x 1 = 5
    5 x 2 = 10
    5 x 3 = 15
    ...
    5 x 10 = 50

    Tu as des lignes de la forme "a x b = c"
    Tu t’aperçois que a est constant et vaut tout le temps 5
    Que b augmente de 1 en 1
    Que b commence à 1, et fini à 10
    Que c est le résultat de la multiplication de a par b (oui, ça peut sembler évident, mais c'est important)

    A partir de ça (et en connaissant les "structures de bases" : conditions / boucles / ...), tu en déduis que tu as besoin d'une boucle.
    Et qu'a chaque itération tu effectue (et affiche) une multiplication.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    a = 5
    Pour b = 1, jusqu’à 10 par pas de 1
        c = a*b
        afficher(a + " x " + b + " = " + c)
    Fin pour
    Avec l'habitude, ça te viendra beaucoup plus facilement jusqu’à devenir un automatisme.

    Une fois que tu as trouvé une méthode (que ce soit du pseudo code, des dessins, du français, ou autre) il ne reste plus qu'a "convertir" ça dans un langage de programmation.

  7. #7
    Membre actif Avatar de zaza576
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2013
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2013
    Messages : 175
    Points : 275
    Points
    275
    Par défaut
    Bonjour,

    si tu veux de l'aide pour t'améliorer et comprendre la programmation, il faut en revenir à des choses très simples.

    Comme le disais Iradrille, ignores pour le moment les langages de programmation (C, Java, C++, ...).

    Quand tu as un énoncé face à tes yeux, lis le plusieurs fois, souligne les points-clés et essaie de comprendre dans ta tête ce qu'on veut que tu fasses (sans toucher au clavier ni au stylo).

    Puis, tu vas résoudre ton énoncé étape par étape. Dis toi que si tu bloques sur une étape, il ne faut pas passer à la suivante tant que tu n'as pas résolu celle-là. C'est comme quand tu fais une recette de cuisine, si tu ne respectes pas l'ordre des choses, ta recette peut être foutue.

    Donc, lis une première phrase, comprend là, réalises là.
    Puis, passes à la suivante.

    Si tu bloques, dessine ou fait un schéma de ce que tu penses avoir compris. Le fait de poser cela sur le papier va te permettre de prendre du recul.

    Ensuite, étudie bien ce qu'on te demande.

    - Quelles sont les entrées de ton programme (la saisie, le passage de paramètres à une fonction, ...) et les sorties (le résultat à retourner ou à afficher à la console, ...) ?
    - Que dois faire le programme ? Que dois faire CHAQUE composant du programme (fonction, structure, ...) ?
    - Quels "outils" vais je utiliser (variables, structures, fonctions, ...) ?

    Ensuite, fais bout par bout. Initialise tes variables, complète tes fonctions, retourne tes résultats, affichent les éventuellement.

    J'espère que ca t'aidera et n'hésite pas à nous questionner si tu as encore des questions méthodologiques !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function googleIsYourF*ck*ngFriend(String url, String maQuestion){
        goTo(url);
        reponse = find(maQuestion);
        if(isAcceptable(reponse)){
            clickOn(By.xpath("//button[@id='resolvedButton']"));
        }
        sendMessage("Merci");
    }
    
    googleIsYourF*ck*ingFriend("http://www.google.fr", "ma question");

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Points : 9
    Points
    9
    Par défaut
    Merci bcp pour tous vos conseils.

  9. #9
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Pour compléter, j'insisterais beaucoup sur la décomposition d'une action (évidente) en de multiples sous actions, qui ne viennent pas facilement, parce que c'est évident, justement.

    Exemple : Ecrire le programme permettant à une main de remplir une boîte avec les billes qui se trouvent sur la table.

    Cela semble tout bete : je prends les billes avec la main, et les mets dans la boite.

    C'est beaucoup plus complexe.
    Si on décompose, cela donne quelque chose comme :

    - je déplace ma main au dessus du paquet de billes;
    - j'ouvre les doigts de ma main;
    - je descends ma main sur la table;
    - je replie les doigts pour pincer une bille;
    - je soulève ma main;
    - je déplace ma main au dessus de la boite;
    - je descends ma main dans la boite;
    - j'ouvre les doigts pour faire s'échaper la bille
    - je referme les doigts
    - je remonte ma main

    - s'il reste encore des billes;
    je déplace ma main au dessus du paquet de billes;
    - j'ouvre les doigts de ma main;
    - je descends ma main sur la table;
    - je replie les doigts pour pincer une bille;
    - je soulève ma main;
    - je déplace ma main au dessus de la boite;
    - je descends ma main dans la boite;
    - j'ouvre les doigts pour faire s'échaper la bille
    - je referme les doigts
    - je remonte ma main

    - s'il ne reste plus de bille
    - j'arrête


    Dans ce petit exemple, on constate :
    - que des suites d'opérations sont répétées
    - qu'il y a un début et une fin à ces répétitions.

    En informatique, cela est représenté par des boucles.
    Si la fin est définie, on utilise une boucle du style "For .... Next" (ainsi de l'exemple des tables de multiplications quand on décide de s'arrêter à la table 10 )


    Dans mon exemple on constate aussi que une même action est réutilisée plusieurs fois à l'intérieur d'une même phase. Par exemple, déplacer la main, on l'utilise pour aller de la boîte au paquet de bille et du paquet de bille à la boite. De même les actions "Descendre la main", "Monter la main", "Ouvrir les doigts", "Fermer les doigts".
    Le résultat de ces actions est différents selon le moment où elles sont faites, c'est à dire selon les actions qui ont été faites auparavant.

    Ces actions, en programmation, on les appelle des procédures .


    L'étape d'après, c'est de réaliser le fameux ordinogramme (enfin je crois que c'est ce dont veut parler CodeurPlusPlus) : un schéma avec des rectangles, des losanges... Il s'agit en fait de schématiser la succession d'action qu'on veut programmer.

    Après viendra le codage, c'est à dire la traduction de ce schéma en un langage structuré, avec sa gammaire et sa conjugaison, pour qu'il puisse être compris par une "machine". Mais cette étape, sans être accessoire, n'est pas la plus fastidieuse, quand les premières sont bien intégrées.


    Bon courage
    Bonne continuation.

    Pierre

    Bonne continuation.

  10. #10
    Invité
    Invité(e)
    Par défaut Décomposition d'une idée principal
    Pour avoir le dernier mot, je dirais que pour apprendre a programmer, il faudra d'abord que tu apprenne à décomposé un Gros problème en une multitude de sous problème beaucoup plus facile a résoudre.

    Exemple:
    ======
    "Marcher" et le problème principal, tu vas le décomposée en sous problème du genre:
    - Comment le ver un pieds
    - Comment le mettre devant
    - Comment garder son équilibre sur un pied
    - ...
    puis si ses sous problèmes sont trop compliquées décomposent lés, etc...
    Je vous conseille de commencer à programmer sur un Basic, Microsoft Small Basic fera l'affaire, puis pour affiner votre instinct de programmeur faite de l'assembleur: je vous conseille de faire du 8086 avec NASM, car l'assembleur est un langage qui nécessite une excellente Décomposition de problème.

    Bonne chance vieux!

    Tu peux aussi me contacter!

  11. #11
    Invité
    Invité(e)
    Par défaut J'ai oublié
    Ce qui concerne la décomposition de problème. Entraîne toi sur des problèmes de la vie courante!
    Actuellement lorsque je programme quelque soit sa difficulté je me lance directe dans le code, plus besoin de plan ou organigramme.

    Remarque:
    J'avais pris comme spécialité (Terminal S), ISN (Informatique et Science du Numérique), pour le projet de fin d'année j'ai créer un jeu "Bataille Navale" (Homme-Contre machine) 3000 lignes de code en seulement 23 heures et 36 minutes "sous Javas'cool" meilleur programme de la classe.

    Pour plus d'information contactez moi!

Discussions similaires

  1. [Palm] Comment programmer pour Palm Os ?
    Par Pascal Lob dans le forum Mobiles
    Réponses: 7
    Dernier message: 24/08/2007, 09h59
  2. Comment programmer un robot ?
    Par reggae dans le forum Robotique
    Réponses: 4
    Dernier message: 18/12/2005, 11h41
  3. Comment programmer sous dos ?
    Par AsmCode dans le forum C++
    Réponses: 8
    Dernier message: 17/11/2005, 02h07
  4. Réponses: 7
    Dernier message: 13/12/2004, 19h23
  5. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    Réponses: 3
    Dernier message: 13/11/2002, 11h07

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