Bonjour,
Un tuto de pascal sur l'Internet termine régulièrement des procédures ou des programmes par readln;
sans argument.
Je ne comprends pas bien quel en est la conséquence attendue, càd quel en est l'intérêt.
Merci pour toute explication.
-----
Bonjour,
Un tuto de pascal sur l'Internet termine régulièrement des procédures ou des programmes par readln;
sans argument.
Je ne comprends pas bien quel en est la conséquence attendue, càd quel en est l'intérêt.
Merci pour toute explication.
C'est sûrement de la console et donc pour faire "patienter" la fenêtre de la console, on impose d'attendre une saisie utilisateur (entrée clavier) en fin de programme...
Sinon, au lancement du programme, la console se lance, le programme se déroule en une fraction de seconde, et la console se ferme...
Tu n'as le temps de ne rien voir d'autre qu'une fenêtre noir qui s'ouvre puis se ferme...
Edit: essaies avec et sans, avec un programme qui ne fait que des "print" dans la console... tu comprendras vite l'interêt...
Dernière modification par Ikhar84 ; 19/06/2020 à 13h00.
J'ai glissé Chef !
Merci à tous,
y compris à Jack le modérateur.
En toute rigueur, essayer et comparer les résultats est une démarche efficace, mais je n'avais pas de Pascal: je me renseignais pour voir si ça pourrait plaire à un copain de programmer en Pascal et de l'apprendre sur l'Internet.
Cela dit, j'ai 72 ans, j'ai pratiqué, soigné et enseigné dans plusieurs champs du savoir, et je sais par expérience qu'une méthode essais-erreurs n'est pas une méthode rigoureuse dans le fond. Il y a beaucoup de domaines où un "truc qui marche" n'est pas une preuve de bonne formulation de la question, ni de bien-fondé de la réponse. Essayer un médicament pour voir si ça marche ou voir ce que ça fait... !
Merci toutefois de la suggestion "essaie pour voir". Mais la réponse "fait patienter l'ordi" d'Ikhar84 m'apparait la mieux fondée et la plus rigoureuse, en disant que si l'ordi attend une entrée il ne passe pas à la suite sans que cette entrée ait lieu. Cette réponse est épistémologiquement bien construite. Et du coup, ça se conçoit même sans avoir de Pascal sous la main.
Cela dit, où va ce que l'utilisateur aura entré, puisqu'il n'y aura pas eu d'affectation de variable? C'est par la méthode des essais et erreurs qu'on peut le savoir? ou bien pouvez-vous me le dire, ça m'apprendra vraiment quelque chose.
Cher Jack, un peu donneur de leçons dirait-on... Vous êtes probablement un bon et vrai programmeur si vous êtes modo sur ce site; et dans ce cas, c'est que vous ne vous êtes pas contenté, dans votre formation et dans la formation que vous vous êtes construite à partir de votre expérience, du "essayez pour voir". En mathématiques par ailleurs, ce qu'on voit et ce qu'on "intuite" peuvent être trompeurs. Il suffit par exemple pour s'en apercevoir de passer de la géométrie plane à la géométrie dans l'espace, où la forme apparente d'un triangle comme triangle rectangle ne garantit nullement que c'en est un. Et une démonstration peut tout à fait infirmer ce que l'on croit pouvoir conclure d'une remarque de visu.
J'ai même fait du Pascal autrefois, et développé un petit traitement de texte. Mais c'est bien loin (40 ans !), et j'avais juste envie récemment de voir si ça pourrait aider un ami de suivre un tuto sous Youtube. Réponse "oui sous réserve de compléments, et en prenant de vrais cours pour continuer, ou au moins avec les bouquins adéquats". Cela dit, j'ai eu en informatique des formateurs un peu donneurs de leçons aussi, càd qui ne donnaient pas seulement des cours d'informatique. mais y ajoutaient parfois des réflexions, du genre par exemple "il faut lire un peu, les gars!" (à quoi ça sert de balancer ça, à moins de donner de vraies infos bibliographiques?). Mais leurs "réflexions" supplémentaires étaient rarement épistémologiquement intéressantes.
Merci toutefois pour votre attention à vous aussi.
Salut bien à tous, et bon été,
Orph
Bonjour orpheu48,
comme ma réponse n'est apparemment pas bien passée mais que votre réaction a été plutôt courtoise, je vais prendre le temps de te répondre.
Je ne pense pas être un bon programmeur, en tout cas ce n'est pas mon métier. Je serais donc mal placé pour être donneur de leçon sur ce plan.
Cependant, l'expérience fait que sur ce forum et d'autres, on rencontre tellement de personnes trouvant moins fatigant de poser une question plutôt que d'essayer de passer un peu de temps pour essayer de résoudre leur problème que ça déclenche parfois quelques réaction épidermiques. Je constate que ça n'est pas le cas. En conséquence, je vous présente mes excuses pour mon intervention précédente.
Sur le fond, si la réponse d'Ikhar84 est en effet tout à fait fondée (et exacte en passant), je ne vois pas trop en quoi elle est rigoureuse comme vous le dites. Où est la démonstration?
Ca n'est pas comparable. L'avantage avec la programmation sur ordinateur, c'est qu'une erreur est sans conséquence irréversible.Essayer un médicament pour voir si ça marche ou voir ce que ça fait... !
L'expérimentation est incontournable si on veut écrire un peu de code. En l'occurrence, essayer un programme avec et sans le "readln" permet d'obtenir la réponse en quelques minutes.
En tout cas, puisque ce genre de question est classiquement posé par des étudiants, c'est ce que je leur aurais répondu, de manière à les inviter à apprendre de résoudre à leur problème de manière autonome. C'est très formateur.
ce qu'on entre au clavier est mémorisé dans le "buffer clavier", une mémoire qui est lue par la fonction readln. Comme on n'a pas besoin d'exploiter ce qui a été entré, point besoin de l'affecter à une variable.Cela dit, où va ce que l'utilisateur aura entré, puisqu'il n'y aura pas eu d'affectation de variable?
Alors là, je vais à nouveau vous décevoir: c'est par la lecture de la documentation. Comme vous semblez apprécier la rigueur, seule la documentation fait foi pour obtenir la bonne réponse à la question précédente.C'est par la méthode des essais et erreurs qu'on peut le savoir?
PS: après relecture de votre message original, je vais compléter la réponse d'Ikhar84 car sa réponse portait sur la présence de readln en fin de programme alors que vous avez relevé également sa présence en fin de procédure. Pour ce dernier cas, je suppose (hé oui, aucune démonstration n'est possible) que cela doit permettre de faire des pause à la fin de laisser le temps à l'utilisateur du programme de lire les affichages précédents à son rythme.
Si le programme est bien écrit, la fonction readln devrait être précédée d'un appel à write ou writeln permettant d'afficher un petit texte explicatif tel que "Appuyez sur une touche pour continuer", ou "Appuyez sur une touche pour terminer".
Bonne soirée
Merci Jack pour votre réponse longue parce qu'élaborée.
Je traduis ainsi la réponse d''Ikhar84: L'instruction Readln sans argument met l'ordi en attente d'une entrée par l'utilisateur, qui n'ira pas plus loin si une entrée n'est pas faite. Même si ce n'est pas des maths de doctorat, ça a le mérite d'expliquer la logique du truc. Merci donc à 'Ikhar84, pour la logique de sa réponse, qui rend cette dernière compréhensible.
Ladite réponse devient rigoureuse si on y ajoute votre suggestion de placer avant le readln un write ou writeln qui dit à l'utilisateur ce qui est attendu de lui pour que soit exécutée la suite du programma (y compris le retour à l'EDI s'il n'y a pas d'autres instructions) l'entrée de l'utilisateur affectant une case mémoire dans le buffer clavier. La réponse d''Ikhar84, que je remercie, complétée par la vôtre, voilà qui constitue une réponse "rigoureuse" en tant que logique et assez complète.
Bien d'accord pour dire que le must est de se référer au manuel, qui renseigne sur le lexique et la syntaxe, càd sur ce que le concepteur du langage entend par telle ou telle instruction ("ceci et pas autre chose, pas de spéculation possible").
Je me mets en quête du manuel, parce que j'ai de gros trous dans ma ram neurologique pour ce qui est du lexique et de la syntaxe du Pascal. Ça revient certes petit à petit, mais ayant perdu les bouquins (plusieurs déménagements en ayant fait tout autre chose, ça vous fait des trous dans la bibliothèque!), j'ai quand-même bien besoin du manuel de référence adéquat ! Cela dit, si je pense à ne pas oublier les parenthèses et les points-virgules, ça ira déjà mieux - le compilateur m'a déjà bien châtié sur ce point
Salut à tous et merci Jack pour votre attention.
Orph
Ravi que la somme de ces explications ait répondu à vos attente. Mes souvenirs du langage Pascal sont également lointains (et pleins de nostalgie).
Ce principe de placer une instruction de lecture clavier pour effectuer une pause est récurrent dans les langages permettant le fonctionnement dans un terminal.