Bonjour
J'aimerais afficher une phrase de manière séquentielle.
Exemple : soit le mot toiture.
J'aimerais afficher d'abord t puis o puis i... jusqu'à e chacun à son tour.
J'ai essayé avec delay mais ça a affiché tout d'une fois.
Merci de m'aider
Bonjour
J'aimerais afficher une phrase de manière séquentielle.
Exemple : soit le mot toiture.
J'aimerais afficher d'abord t puis o puis i... jusqu'à e chacun à son tour.
J'ai essayé avec delay mais ça a affiché tout d'une fois.
Merci de m'aider
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 // variables de sauvegarde var _WS : string; // le mot ou la phrase _WL : integer; // la longueur de la chaine // sauvegarde une chaine function registerWord(S: string): integer; begin _WS := S; _WL := Length(S); result := _WL; end; // renvois un caractère de _WS function stepWord(i : integer): char; begin if (i >= 1) and (i <= _WL) then result := _WS[i]; else result := #0; end; // vitesse d'affichage en milliseconde const Speed = 500; // etape et taille maximale var Step, maxLength : integer; // début begin // on commence à 1 Step := 1; // on prépare un mot et on récupère la taille maximale maxLength := registerWord('Toiture'); // une boucle, tant que Step est inférieur à taille max while Step <= MaxLength do begin // affiche la suite du mot write( stepWord(Step) ); // incremente Step inc(Step); // fait une pause delay(Speed); end; // attend qu'on appuis sur une touche pour quitter readln; end.
[ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
Ma messagerie n'est pas la succursale du forum... merci!
Un code un peu plus simple et peut-être plus compréhensible :
Ce code marche à coup sûr par contre celui proposé par Dr.Who contient des incohérences de types. En plus une fonction doit retourner un résultat, ce qui n'a pas été fait.
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 Uses crt; Var S:String; {Chaine à afficher} i:Integer; {Compteur pour la boucle FOR} Begin TextAttr:=blue Shl 4 +14; ClrScr; {TP pour DOS uniquement : Texte jaune sur Fond bleu. Ce formatage du texte n'est pas obligatoire} {On peut donc s'en passer} Write('Donner une chaine : ');Readln(S); Writeln; For i:=1 to length(s) do begin Write(S[i]); Delay(400); end; Readln; End.
Ne pas oublier le tag si satisfait.
Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
Balises CODE indispensables. Regardez ICI
Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
Vous pouvez consulter mes contributions
Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
Ne pas oublier L'Aide VBScript et MSDN VB6 Fr
salut.
le code fourni par l_autodidacte peut être exécuter sous Turbo Pascal 7 pour DOS ou bien sous FreePascal ou Lazarus
Bonjour
Moi je dirai la fonction renvoie bien un résultat parce qu'il y a un result qui récupère la résultat à retourner.
Maintenant il est vrai qu'on est dans la section Turbo Pascal et le code de Dr.Who ne compilerait pas dessus mais compilerait sous Free Pascal par exemple en apportant quelques changements (ajout de crt, mode de compilation) (bref c'est du code pour delphi).
Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !
Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells
Une chose et certaine, c'est qu'une fonction qui retourne un résultat(du moins c'est ce que j'ai appris à faire sous TP et BP) doit avoir une structure telle que la suivante(et là je sais que je n'apprends rien à personne) :Moi je dirai la fonction renvoie bien un résultat
Le fait d'écrire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Function MaFonction(Param1:<type>;Param2:<Type>...) :Type; VAR var1,var2,[....]:type; Begin ........................... ........................... MaFonction:=....(résultat ou Variable de retour); End;n'implique rien pour la fonction s'il ne lui a pas été affecté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part result:=......
Voici le code intégral de la fonction en question auquel manque l'affectation de result à la fonction StepWord
Tu es d'accord avec moi qu'avant le "End;" final de la fonction, on devait mettre : StepWord:=result;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 function stepWord(i : integer): char; begin if (i >= 1) and (i <= _WL) then result := _WS[i]; else result := #0; end;
Que le code compile ou non sous un autre EDI, pour moi(peut-être un peu borné dira-t-on), il a été invoqué sous la rubrique TP et par conséquent, la réponse(ou commentaire) devrait en principe s'y rattacher.
Ne pas oublier le tag si satisfait.
Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
Balises CODE indispensables. Regardez ICI
Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
Vous pouvez consulter mes contributions
Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
Ne pas oublier L'Aide VBScript et MSDN VB6 Fr
Si tu as bien remarque, result n'est pas une variable declarée dans la fonction. Comme la dit krachik, le code passe bien sous fpc par exemple mais pas sous tp.
Tu as tout a fait raison qu'on doit poster un code qui marche sous turbo pascal. Mais c'est un truc qui arrive souvent quand on travaille avec plusieurs langage/compilateur.
En fait, la variable result n'est déclarée nulle part. Même si elle est déclarée ailleurs, du moment qu'elle est affectée à la fonction, elle remplit bien sa fonction(rôle).Envoyé par darrylsite
Merci pour le commentaire.
Ne pas oublier le tag si satisfait.
Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
Balises CODE indispensables. Regardez ICI
Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
Vous pouvez consulter mes contributions
Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
Ne pas oublier L'Aide VBScript et MSDN VB6 Fr
le système avec result est un concept introduit en Delphi. result est crée automatiquement par le compilateur dans le but de contenir le retour qui sera attribué à la fonction.Envoyé par l_autodidacte
On est d'accord que le compilateur Turbo Pascal ne reconnaitra ceci; mais ça reste du Pascal:
C'est 2 lignes sont équivalentes mais ne sont pas acceptés par tous les compilateurs Pascal
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 result := valeur; nomFonction : = valeur;
pour TP oui .Envoyé par l_autodidacte
Maintenant c'est pas parce qu'on est dans la section Turbo Pascal qu'on ne peut apprendre rien d'autre concernant le langage parce qu'on est avant tout dans la rubrique Pascal.
Je résume, on est d'accord qu'on doit affecter une valeur à la fonction, le fait d'utiliser result est issu de Delphi (chose qui peut passer sur certains compilateur pascal comme free pascal moyennant des options de compilation).
Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !
Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells
Via,
Et il faudrait en profiter pour abandonner les dinosaures à leur sort.
Si les cons volaient, il ferait nuit à midi.
Qia,
Si tu vois une seule raison logique d'encore utiliser TP, en dehors de vouloir faire un programme destiné à être exécuté sur un dinosaure des ordinateurs (j'aime bien les dinos ).
On dispose de bien mieux, et pour les nostalgiques de l'interface TP, FreePascal propose la même.
Et j'irai plus loin : sauf nécessité absolue (qu'il faudra justifier), continuer à programmer en mode console, ça me fait sauter de rire jusqu'au plafond, et je ne vais pas plus haut à cause du plafond, justement.
Si les cons volaient, il ferait nuit à midi.
Salut krachik;
Je suis tout à fait d'accord pour l'apprentissage de quelque chose de nouveau, mais si la personne demandant l'aide ne connaît que TP ou BP , ne vaut-il pas mieux lui répondre selon ses besoins ?
Par ailleurs, je présume que la variable result du code concerné reste dans un buffer(ou mémoire tampon) tout au long du programme(à l'exécution) ce qui la rend accessible à tout moment si elle n'a pas été vidée de son contenu par un autre usage.
Merci pour la précision
Salut Droggo;
Je ne défends un EDI spécifique mais ce sont ces dinosaures qui nous ont permis de faire les premiers pas dans la programmation et sa logique.Et il faudrait en profiter pour abandonner les dinosaures à leur sort
De nos jours, on utilise encore ces dinosaures dans nos écoles et lycées pour l'apprentissage de l'algorithmique. Pourquoi donc les abandonner à leur sort ?
L'évolution n'est pas synonyme de rayer le passé mais d'en prendre les bonnes choses pour continuer.
Le plus souvent, on code en vue d'avoir une application console. Mais lorsqu'on on utilise les objets(POO), là on a une interface graphique avec gestion de la souris et tout......continuer à programmer en mode console....
Donc ce n'est pas tout à fait un dinosaure qu'on a devant soi.
Ne pas oublier le tag si satisfait.
Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
Balises CODE indispensables. Regardez ICI
Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
Vous pouvez consulter mes contributions
Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
Ne pas oublier L'Aide VBScript et MSDN VB6 Fr
Gia,
Rendez-vous quand on aura des processeurs 1024 cœurs avec des bus 1024 bits.
Vous utiliserez sans doute encore TP, et vous vous demanderez pourquoi le système d'exploitation ne veut pas de votre programme en natif, et exoge donc de charger un émulateur. Bonne chance.
J'ai déjà précisé que FreePascal donne tout ce que TP proposait, et bien plus. Donc pourquoi persister ?
Et pour vouloir "Le plus souvent, on code en vue d'avoir une application console.", ben c'est en raisonnant comme ça qu'on devient dinosaure soi-même.
Il y a une éternité (au moins ) que je ne fais plus d'applications console (pour mon travail de développeur) et je m'en porte très bien.
Comme enseignant, je pousse mes élèves vers les GUI, la plupart le demandent d'ailleurs rapidement après les 2 ou 3 premiers cours (ce qui est un peu tôt pour la plupart).
C'est donc uniquement pour les débutants parmi les débutants que la console devrait être utilisée, le temps d'apprendre les bases "basiques" du langage.
Au fait, pour result, ce n'est qu'une variable locale créée automatiquement par le compilateur, qui sait alors qu'il faut renvoyer ce qu'elle contient si on ne précise pas un retour avec la syntaxe standard du Pascal.
Elles n'est donc accessible qu'à l'intérieur de la fonction.
Si les cons volaient, il ferait nuit à midi.
Je ne suis pas contre l'innovation, si tu vois ce que je veux dire. Mais en tant que dinosaure que je suis(ben c'est en raisonnant comme ça qu'on devient dinosaure soi-même et là ce sont tes propos), je suis également enseignant mais de sciences physiques et de mathématiques.
Je ne suis qu'un simple autodidacte(voir mon pseudo) en informatique; car quand j'étais étudiant, à la Fac, nous entendions uniquement parler d'ordinateurs et d'informatique. On les a pas vus ni touchés....
Ne pas oublier le tag si satisfait.
Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
Balises CODE indispensables. Regardez ICI
Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
Vous pouvez consulter mes contributions
Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
Ne pas oublier L'Aide VBScript et MSDN VB6 Fr
Eie,
Alors, quand une personne ne connaît que TP et/ou BP, apprends-lui qu'il existe autre chose de bien meilleur.
Ce qui n'empêche pas de répondre aux questions posées, bien entendu, sinon le forum ne sert plus à grand chose.
Pour les ordis etc., quand j'ai commencé à apprendre la programmation, on travaillait sur un "gros" mainframe ("gros" pour l'époque, mais il ferait rire n'importe quel lycéen avec sa petite calculette ).
On n'avait fait qu'une visite pour voir le matériel et le personnel (dont les "perforatrices", qui tapaient notre code sur les cartes perforées).
En moyenne, une fois le code écrit, il fallait 2 à 4 semaines pour avoir le premier retour, qui était trop souvent "refus de compilation", pour une erreur quelconque ...
La micro a vraiment changé tout ça, et c'est heureux.
Si les cons volaient, il ferait nuit à midi.
Hou,
Ce genre de musée existe peut-être, mais je n'en ai pas connaissance, et je doute un peu qu'on puisse trouver ça en France (mais ce n'est qu'un a priori).
Pour te donner une idée, le "gros" mainframe dont je parle disposait de 32 Ko.
Tu as bien lu : 32 Kilo-octets !!!
Si les cons volaient, il ferait nuit à midi.
Le sujet a été amplement enrichi par les différents avis et ce en passant du gros dinosaure MainFrame jusqu'à l'infinitésimal quark, anti-quarks et squark(en microphysique) qu'est le micro d'aujourd'hui.
Ne pas oublier le tag si satisfait.
Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
Balises CODE indispensables. Regardez ICI
Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
Vous pouvez consulter mes contributions
Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
Ne pas oublier L'Aide VBScript et MSDN VB6 Fr
Wia,
Effectivement.
Si les cons volaient, il ferait nuit à midi.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager