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

Algorithmes et structures de données Discussion :

Qu'est-ce qui se passe en vrai dans ce code ?


Sujet :

Algorithmes et structures de données

  1. #21
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    @! wiwaxia: Ceux qui savent lire savent à quoi s'en tenir sur ce dont on parle.
    Savoir pour comprendre et vice versa.

  2. #22
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Qu'est-ce qui se passe en vrai dans ce code ?
    Autre point problématique, sources d'échecs répétés: tu abordes des sujets très difficiles (chacun l'a fait de temps à autre) que faute de moyens tu es incapable de cerner clairement (ce que l'on ne saurait te reprocher - et tu n'es pas le seul dans ce cas); mais le recours au pseudo-code est pour toi une échappatoire systématique, parce que tu le perçois comme une révélation qui dissiperait par sa seule vertu d'illumination tous les sombres mystères présents dans les programmes.

    Citation Envoyé par valentin03 Voir le message
    ... Si je demande du pseudo-code, c'est pour COMPRENDRE!!!
    L'abstraction et les poupées russes du python, c'est bien joli, mais si c'est pour au final ne pas pouvoir revenir de l'abstraction au concret et ne pas pouvoir expliquer 5 lignes de code; y a carrément un problème.
    L'obscurité d'un langage peut effectivement produire des difficultés supplémentaires; cependant un algorithme complexe conduira forcément à un pseudo-code difficile à comprendre, même si l'on y trouve des instructions plus claires: c'est la structure logique même de la tâche envisagée qu'il faut percevoir.

    D'autre part le pseudo-code est une version très appauvrie du langage courant, et quiconque ayant quelque goût littéraire peut à bon droit le percevoir comme une abomination.
    Il est lourd, répétitif, et à partir d'un certain stade la concision mathématique d'un langage devient préférable - avec l'avantage décisif de pouvoir exécuter le programme, et de vérifier la conformité des résultats.

    C'est au pied du mur, dit-on, qu'on voit le maçon: que dirait-on d'un apprenti du bâtiment qui n'aurait jamais préparé du béton ? ou d'un apprenti électricien qui n'aurait jamais réalisé de montage ?
    Lorsque des jeunes sont confrontés à un exercice d'algorithmique, je leur en montre immédiatement la traduction sur calculatrice programmable: il faut voir leur contentement lorsqu'ils observent la réalisation des instructions, aussi simples soient-elles, et de toutes les variantes que l'on peut y mettre.

    Le pseudo-code est fait pour expliquer les instructions élémentaires, et les programmes simples; mais si l'on veut poursuivre, il faut s'investir dans le langage de son choix en commençant par acquérir les notions de base.
    C'est seulement après que tu te seras longuement confronté aux difficultés de la programmation que commencera l'assimilation du langage, et que tu pourras envisager une tâche de plus haut niveau.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  3. #23
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 124
    Points
    15 124
    Par défaut
    Citation Envoyé par wiwaxia Voir le message
    --snip--


    Et moi, j'ai deux questions :
    Citation Envoyé par valentin03 Voir le message
    Je le mets là, ça peut toujours servir (c'est un Basic)
    Code basic : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    sub orderperm r$
        scan
        if len(r$) = 0 then
            'mod comment out for timed test,
            'mod comment in to see results
            index = index + 1
            print index;": ";
            ' abrégé pour aller à l'essentiel
        end if
    end sub
    1- Ce scan, en haut, ligne 2, c'est du Basic
    Si "oui", ça produit quoi comme résultat ?

    2- c'est quoi ces deux commentaires commençant par 'mod dont le 1er nous dit de décommenter quelque chose sans nous dire quoi, quand le second nous dit de commenter quelque chose sans nous dire quoi, pour voir les résultats dont on voit bien qu'ils sont visibles sans toucher à rien.

    Vieux commentaires oubliés ici lors du copier/coller d'un code trouvé quelque part ?
    Merci,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #24
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    @: wiwaxia: Le pseudo-code c'est juste l'explication (la description) de ce qui se passe en langage courant et compréhensible sans aucune notion d'informatique . Je veux bien admettre qu'à l'instar de la mécanique quantique certaines subtilités ne sont pas explicables en langage courant; et il serait pertinent d'en dresser une liste.

    @: Jipété: Le "scan" ne renvoie rien ça scanne les entrées (clavier -souris); ce n'est pas "du" Basic, c'est "un" Basic.
    Pour les deux commentaires on peut les interpréter comme:
    Pas de sortie pour le time start; sortie pour résultats. (après c'est de l'anglais, hein...).
    Savoir pour comprendre et vice versa.

  5. #25
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 124
    Points
    15 124
    Par défaut
    Citation Envoyé par valentin03 Voir le message
    @: Jipété: Le "scan" ne renvoie rien ça scanne les entrées (clavier -souris); ce n'est pas "du" Basic, c'est "un" Basic.
    À partir du moment où tu écris c'est un Basic comme dans la première fois où tu l'as utilisé, je traduis ça par c'est un Basic parmi tant d'autres, donc c'est du langage Basic (un langage connu, comme Pascal ou Fortran).
    Maintenant, si ce n'est pas ça que tu as voulu dire, je ne suis pas dans ta tête pour décoder.

    À la lecture de ta réponse, j'imagine cependant (peut-être à tort) que tu as voulu dire "c'est un langage basique (sans majuscule)", mais rien n'est moins sûr, rien n'est compréhensible, et j'ai horreur de supposer ce que les autres ont bien pu vouloir dire, d'autant plus que le reste du code ressemble fort à du... Basic !


    Citation Envoyé par valentin03 Voir le message
    Pas de sortie pour le time start; sortie pour résultats. (après c'est de l'anglais, hein...).
    Il n'empêche que "comment out" et "comment in" sont des indications données à l'utilisateur, et qu'on ne sait toujours pas ce qu'il faudrait mettre en commentaires ou pas...
    C'est un grand classique en programmation, une indication donnée au(x) lecteur(s) :
    Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // commentez la ligne ci-dessous pour ne pas avoir de logs (par exemple).
    SendDatasToLogSystem(computed_datas);

    Oui, c'est de l'anglais, et donc ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #26
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut
    Citation Envoyé par valentin03 Voir le message
    C'est bon, j'ai trouvé un code compréhensible (à la portée de mes pauvres neurones)
    Je le mets là, ça peut toujours servir (c'est un Basic)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      ' Pour info c'est pas rapide mais sans l'affichage (print) le temps est divisé par 10
      'n     Occur  Time
      '3     6
      '4     24
      '5     120
      '6     720
      '7     5 040  38 s
    Merci quand même; sauf à flodelarab qui envoie les gens aux tutoriels (ce qui n'aide pas vraiment)
    Tu réinventes la fonction factoriel ???
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  7. #27
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Qu'est-ce qui se passe en vrai dans ce code ?
    Citation Envoyé par valentin03 Voir le message
    ... Le pseudo-code c'est juste l'explication (la description) de ce qui se passe en langage courant et compréhensible sans aucune notion d'informatique ...
    Là, c'est une contradiction dans les termes: on ne peut pas prétendre avoir accès (ou donner accès) à une compréhension - même superficielle - d'un domaine sans un minimum de notions élémentaires spécifiques: variables, tableaux, affectation, mémoire - ce que découvre en somme tout lycéen curieux de sa calculatrice.
    Et je ne parle pas du bagage arithmétique indispensable.

    Citation Envoyé par valentin03 Voir le message
    ... Je veux bien admettre qu'à l'instar de la mécanique quantique certaines subtilités ne sont pas explicables en langage courant ...
    Il ne s'agit pas de phénomènes contraires à l'intuition courante, mais de volume de données: à partir d'un certain seuil, il faut bien recourir aux indices, donc renoncer au langage courant - à l'instar de la description codée d'une partie d'échecs.
    Et quitte à se lancer, autant passer directement au langage adopté; une fois qu'on l'a suffisamment travaillé, une correspondance automatique s'établit entre l'idée que l'on veut mettre en oeuvre, et le bloc d'instructions approprié - on "pense" alors dans ce langage, le pseudo-code est alors devenu inutile.

    C'est après avoir renoncé à ces béquilles que l'on peut avancer plus rapidement dans la maîtrise du langage.

    Je ne dis pas qu'il faille s'interdire l'usage d'une feuille de papier: la fatigue, l'agitation ambiante peuvent limiter la concentration. On peut toujours griffonner quelques lignes, pour détailler un passage difficile et soulager l'effort de mémoire.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  8. #28
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    Le jour où je serai président, j'imposerai le pseudo-code en préalable à toute production algorithmique.
    Y en a qui vont avoir du soucis...
    Savoir pour comprendre et vice versa.

  9. #29
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Pour moi, le code en Basic posté par Valentin03 n'est ni plus ni moins lisible que le code Python du début...
    Mais pour Valentin03, ce code est limpide, alors que le code en Python est incompréhensible.
    Normal, c'est un peu comme si on postait un message en allemand pour demander la traduction ... sur un forum où il peut par le plus grand des hasards trainer un type qui parle allemand.
    Puis finalement conclure : c'est bon, j'ai trouvé un texte en italien sur le sujet qui m'intéresse, et je comprend l'italien.

    Tout le quiproquo vient du fait qu'au début, la question aurait dû être postée sur le forum python.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  10. #30
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    Que nenni, le pseudo-code est pour l'informatique le langage universel, dans le cadre de la langue parlée, qui sur ce forum est le français.
    Et le Basic c'est ce qui se rapproche le plus du pseudo-code.
    Savoir pour comprendre et vice versa.

  11. #31
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    As-tu lu mon message, avant de répondre "que nenni" ?
    Je ne crois pas. Vraiment pas.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  12. #32
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    Bien sûr que je l'ai lu ton message;Je suis d'accord que le code Python j'aurais dû le poster chez Python. Mais tu compare les langages informatiques aux langues vernaculaires; le pseudo-code n'est pas l'espéranto, il est le père de tous les langages, il est la première pensée de tout algorithme; même si certains affirment penser directement dans leur langage en oubliant ses origines. Quand on ne peut plus revenir au pseudo-code c'est qu'on a été "enfermé" par son langage, que le langage a corrompu l'esprit.
    ça peut te paraître excessif, mais ça mérite réflexion.
    Savoir pour comprendre et vice versa.

  13. #33
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Qu'est-ce qui se passe en vrai dans ce code ?
    Citation Envoyé par valentin03 Voir le message
    ... le pseudo-code ... est la première pensée de tout algorithme; même si certains affirment penser directement dans leur langage en oubliant ses origines. Quand on ne peut plus revenir au pseudo-code c'est qu'on a été "enfermé" par son langage, que le langage a corrompu l'esprit ...
    Je rédige des programmes qui fonctionnent, et il en va de même pour les autres intervenants de ce forum ... tandis que toi, qui te préserves soigneusement de toute corruption par quelque langage que ce soit, tu n'a jamais présenté une seul bloc d'instructions compréhensibles et correctement exécutables ...
    D'où ton acrimonie, et ta propension à la caricature.

    Je ne reviendrai pas sur les précédents messages , suffisamment explicites.

    Simplement, puisque tu as tendance à zapper les idées exprimées sur ce forum:
    1°) L'apprentissage du pseudo-code doit aller de pair avec celle d'un langage, sinon il perd tout intérêt.
    L'expérience sans théorie est aveugle, mais la théorie sans expérience, n'est qu’un simple jeu intellectuel. (Emmanuel Kant).
    2°) Une pratique prolongée d'un langage permet l'assimilation de la technique, et libère l'esprit de tous les détails; celui-ci peut alors aller à l'essentiel du projet, et se concentrer sur les points les plus difficiles. La rédaction du pseudo-code est inutile.

    Et pour aggraver mon cas, j'avouerai que je n'ai jamais appris le pseudo-code: il faut croire que le collègue dont j'ai suivi la formation d'initiation au Pascal était particulièrement doué, puisque je m'en suis très bien porté, et que cinq séances m'ont donné l'autonomie.
    Il m'est arrivé d'écrire du pseudo-code sur les forums de ce site, pour expliquer quelques blocs d'instructions.
    Je m'y résous comme à un moindre mal, et le ressens toujours comme du baragouin.
    À chacun ses excès.

    # Au fait, t'arrive-t-il de rouler en vélo ?
    Et dans l'affirmative, ton engin est-il équipé des deux roues latérales fixées à l'arrière, et qui l'empêchent de verser ?

    Nom : Vélo 4R.png
Affichages : 240
Taille : 107,4 Ko

    Non ? Eh bien, c'est pareil pour le pseudo-code


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  14. #34
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    Citation Envoyé par wiwaxia Voir le message
    Je rédige des programmes qui fonctionnent, et il en va de même pour les autres intervenants de ce forum ... tandis que toi, qui te préserves soigneusement de toute corruption par quelque langage que ce soit, tu n'a jamais présenté une seul bloc d'instructions compréhensibles et correctement exécutables ...
    D'où ton aigreur, et ta propension à la caricature.

    Je ne reviendrai pas sur les précédents messages , suffisamment explicites.

    Simplement, puisque tu as tendance à zapper les idées exprimées sur ce forum:
    1°) L'apprentissage du pseudo-code doit aller de pair avec celle d'un langage, sinon il perd tout intérêt.
    L'expérience sans théorie est aveugle, mais la théorie sans expérience, n'est qu’un simple jeu intellectuel. (Emmanuel Kant).
    2°) Une pratique prolongée d'un langage permet l'assimilation de la technique, et libère l'esprit de tous les détails; celui-ci peut alors aller à l'essentiel du projet, et se concentrer sur les points les plus difficiles. La rédaction du pseudo-code est inutile.

    Et pour aggraver mon cas, j'avouerai que je n'ai jamais appris le pseudo-code: il faut croire que le collègue dont j'ai suivi la formation d'initiation au Pascal était particulièrement doué, puisque je m'en suis très bien porté, et que cinq séances m'ont donné l'autonomie.
    Il m'est arrivé d'écrire du pseudo-code sur les forums de ce site, pour expliquer quelques blocs d'instruction.
    Je m'y résous comme à un moindre mal, et le ressens irrésistiblement comme du baragouin. À chacun ses excès.

    # Au fait, t'arrive-t-il de rouler en vélo ?
    Et dans l'affirmative, ton engin est-il équipé des deux roues latérales fixées à l'arrière, et qui l'empêchent de verser ?

    Nom : Vélo 4R.png
Affichages : 240
Taille : 107,4 Ko

    Non ? Eh bien, c'est pareil pour le pseudo-code
    J'entends tes arguments; mais pourquoi à la suite de ton code, tu a eu recours à l'analogie de la boite et des post-it, plutôt qu'au pseudo-code qui n'aurait pas prit plus de place; si ce n'est que tu n'a pu décrire en termes courants ce que fait ton code ?
    (Des softs certes modestes mais fonctionnels j'en ai une quarantaine à mon actif; certes construits avec des bouts d'algos pompés à droite et à gauche; mais que je m'efforce de comprendre; d'où mes questions)
    Savoir pour comprendre et vice versa.

  15. #35
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Qu'est-ce qui se passe en vrai dans ce code ?
    Citation Envoyé par valentin03 Voir le message
    ... mais pourquoi à la suite de ton code, tu a eu recours à l'analogie de la boite et des post-it, plutôt qu'au pseudo-code qui n'aurait pas prit plus de place ...
    C'est pas moi, c'est tbc92, qui a très bien expliqué la différence entre langage de programmation et langage ordinaire.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  16. #36
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    Citation Envoyé par wiwaxia Voir le message
    C'est pas moi, c'est tbc92, qui a très bien expliqué la différence entre langage de programmation et langage ordinaire.
    Ok, pardon pour l'erreur de personne; mais ce qui s'adresse à l'un s'adresse à tous; et jusqu'à preuve du contraire (loin de moi l'idée de te provoquer); tu n'a pas décris en langage courant et en détails ce que fait ton code. Pardonne moi de vouloir connaître la composition des ingrédients qui entrent en cuisine.
    Savoir pour comprendre et vice versa.

  17. #37
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Qu'est-ce qui se passe en vrai dans ce code ?
    Citation Envoyé par valentin03 Voir le message
    Ok, pardon pour l'erreur de personne; mais ce qui s'adresse à l'un s'adresse à tous; et jusqu'à preuve du contraire (loin de moi l'idée de te provoquer) ...
    Je ne suis pas responsable des messages de X ou Y , et les intervenants concernés savent mieux que moi ce qu'ils ont voulu exprimer !

    Citation Envoyé par valentin03 Voir le message
    ... tu n'a pas décris en langage courant et en détails ce que fait ton code ...
    Je n'ai proposé aucun programme ou bloc d'instructions sur ce forum, alors je serais bien en peine d'en donner un aperçu, sous quelque forme que ce soit ... J'ai réagi à ton attitude et à quelques unes de tes déclarations (#22, #27, #33).

    # Pour prendre un exemple récent - hors sujet, bien que relevant de la combinatoire - je m'intéresse à l'histogramme des (9!) valeurs de la fraction composée:
    Q = a + b/(c + d/(e + f/(g + h/i)))
    utilisant les neuf chiffres autres que le zéro.
    Rien de bien difficile, d'autant qu'un sujet voisin a été débattu il y a peu.

    Les combinaisons ont été complètement inventoriées, et je n'ai eu nul besoin de recourir à un pseudo-code long, fastidieux et forcément bourré d'erreurs puisque non exécutable.
    Il suffisait de réfléchir un peu à ce qu'il fallait faire, et aux types et nombres de variables nécessaires:
    a) énumérer les 9 chiffres tous mutuellement différents, donc monter 9 boucles imbriquées, qui peuvent se répartir en 3 groupes de 3, faciles à gérer;
    b) prévoir des listes de 10 entiers (*, *, ..., 0) dont certains termes peuvent s'annuler par glissement des affectations, et des listes qui n'en comportent que 9 et correspondent aux séquences temporaires ou définitives;
    c) rassembler le tout dans une liste suffisamment longue d'enregistrements.

    Voilà ce que cela donne au départ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     CONST NmaxF = 362900; 
     
     TYPE Lst09E = ARRAY[1.. 9] OF Byte;
          Lst10E = ARRAY[1..10] OF Byte;
          Fr_9ch = RECORD  t: Lst09E; w: Reel  END;
          LstNmF = ARRAY[1..NmaxF] OF Fr_9ch;
     
     CONST Tzero: Lst09E = (0, 0, 0, 0, 0, 0, 0, 0, 0);
    Il n'y a qu'à se lancer ensuite, cela n'est pas sorcier ... on commence bêtement par l'initialisation des variables et des tableaux:
    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
     
     VAR Fmin, Fmax: Fr_9ch;
         ListeF: LstNmF;
         L9E: Lst10E;
     
     PROCEDURE InitF_Lf(VAR F_1, F_2:Fr_9ch; VAR L_f: LstNmF; VAR L_9: Lst10E);
       CONST F00: Fr_9ch = (t:(0, 0, 0, 0, 0, 0, 0, 0, 0); w:0);
       VAR k: Z_32;
       BEGIN
         F_1.t:= F00.t; F_1.w:= 20; F_2:= F00;
         FOR k:= 1 TO NmaxF DO L_f[k]:= F00;
         FOR k:= 1 TO 10 DO L_9[k]:= k MOD 10
       END;   
     
     BEGIN
       InitF_Lf(Fmin, Fmax, ListeF, L9E); 
     END.
    puis on passe à la première énumération qui concerne les trois derniers chiffres (g, h, i) puisque le calcul de la fraction composée commence par le bas (g + h/i).
    Le filtrage des erreurs s'obtient par le recours systématique au compilateur, en commençant par des procédures vides, qui ne font rien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     PROCEDURE EnumIghi;
       BEGIN
     
       END;
     
     BEGIN
       InitF_Lf(Fmin, Fmax, ListeF, L9E);   
       EnumIghi;
     END.
    puis on commence à les meubler en déclarant les variables dont on a besoin:
    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
     PROCEDURE EnumIghi(Max: Byte);
       VAR u, v, w: Byte;
       BEGIN
         E(0010);                                     // Max = 9
         FOR u:= 1 TO Max DO
           FOR v:= 1 TO Max DO
             IF (u<>v) THEN
               FOR w:= 1 TO Max DO
                 IF ((w<>u) AND (w<>v)) THEN
     
       END;  
     
     BEGIN
       InitF_Lf(Fmin, Fmax, ListeF, L9E);   
       EnumIghi(9);
     END.
    pour parvenir progressivement au bloc final, qui agrège évidemment le plus grand nombre de variables:
    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
     PROCEDURE EnumIghi(Max: Byte; L_9: Lst10E; T_0: Lst09E;
                        VAR T_3: Lst09E; VAR P1_, Q1_: Z_32);
       VAR u, v, w: Byte; Tghi: Lst09E;
       BEGIN
         E(0010);                                     // Max = 9
         FOR u:= 1 TO Max DO
           FOR v:= 1 TO Max DO
             IF (u<>v) THEN
               FOR w:= 1 TO Max DO
                 IF ((w<>u) AND (w<>v)) THEN
                   BEGIN
                     Tghi:= Tzero;            Tghi[Max]:= L_9[u];
                     Tghi[Max - 1]:= L_9[v];  Tghi[Max - 2]:= L_9[w];
                     T_3:= Tghi;              Supp3T(9, u, v, w, L9E, L6E);
                     P1_:= Tghi[Max - 2] * Tghi[Max];
                     Inc(P1_, Tghi[Max - 1]); Q1_:= Tghi[Max];
                     AffL(2, L6E, T3E);       EnumIdef(6, L6E, T3E, T6E, P2, Q2)
                   END
       END;
    Le contrôle des inévitables erreurs de toutes sortes est fait tout au long de la croissance du texte source.
    Il faut bien sûr avoir sous les yeux l'expression complète de la fraction pour effectuer le calcul progressif de sa valeur, où n'intervient qu'un seul quotient:
    Nom : Fraction_02.png
Affichages : 192
Taille : 4,6 Ko
    Il intervient en plus, insérées dans l'énumération, des instructions d'affichage des listes successives d'entiers, qui permet de s'assurer du déroulement correct du programme. On obtient ainsi en fin d'énumération:

    Nom : Valeurs Fractions 9 chiffres.png
Affichages : 133
Taille : 3,5 Ko

    Et rien n'exclut de brefs commentaires rappelant la nature ou le rôle des variables, procédures & fonctions.

    # Soit dit à ta décharge: la transparence du Pascal permet de lire le texte comme du pseudo-code; avec un autre langage tel que Python (que j'ai peu utilisé), c'est sans doute moins évident.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  18. #38
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    @ wiwaxia: Après m'être bien explosé le cerveau, j'ai un peu confusé entre tbc92 et toi.
    Belle démonstration. Pascal est en effet plutôt clair comme langage; mais comme ton code restait pour moi obscur dans son but. Je l'ai compilé avec "Free pascal.
    Il m'est sorti: "Illegal parameter: -Opentium3".
    J'avais fait une permutation qui marchait avec autant de boucles imbriquées que d'items d'entrée; mais quand j'ai voulu généraliser pour N items; j'ai coincé et je suis venu demander (maladroitement) de l'aide.
    Savoir pour comprendre et vice versa.

  19. #39
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 725
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 725
    Points : 15 124
    Points
    15 124
    Par défaut
    Citation Envoyé par valentin03 Voir le message
    Je l'ai compilé avec "Free pascal.
    Il m'est sorti: "Illegal parameter: -Opentium3".
    Problème de configuration et d'utilisation des options de ce compilo (que je ne connais pas), faut fouiller, ou alors poster une demande d'aide dans le bon forum.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  20. #40
    Membre actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Points : 233
    Points
    233
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Problème de configuration et d'utilisation des options de ce compilo (que je ne connais pas), faut fouiller, ou alors poster une demande d'aide dans le bon forum.
    Y a des chances, les compilateurs ça renvoie souvent des erreurs; au lieu de compiler.
    Sales bêtes!
    Savoir pour comprendre et vice versa.

Discussions similaires

  1. XNA et C++ qu'est ce qui se passe?
    Par therev123 dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 02/02/2014, 17h36
  2. Qu'est ce qui ce passe quand on installe?
    Par sarra2104 dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 14/06/2012, 11h49
  3. OBIEE ? Qu'est ce qui se passe ?!
    Par SamuelShi dans le forum Autres outils décisionnels
    Réponses: 1
    Dernier message: 19/07/2010, 13h32
  4. Qu'est ce qui prend de la place dans une db access
    Par lepirlouit dans le forum Access
    Réponses: 8
    Dernier message: 25/07/2006, 10h19
  5. Qu'est ce qui se passe avec ce code ??
    Par adlich dans le forum Langage
    Réponses: 2
    Dernier message: 30/04/2006, 12h04

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