Delphi > Executable > Affichage

42jordan42 - 29 nov. 2014 à 20:42
cs_yanb
Messages postés
271
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
7 juillet 2022
- 11 déc. 2014 à 16:11
Bonjour,
Mon programme fonctionne bien mais seul problème:
Lorsque je l'exécute et que je rentre des donnés nécessaire, le résultat apparaît une seconde et la fenêtre se ferme.

je voudrais donc savoir ce qu'il y aurait à ajouter en Pascal dans mon programme afin que je puisse voir le résultat s'afficher.


Merci

9 réponses

NHenry
Messages postés
14957
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
7 août 2022
162
29 nov. 2014 à 20:46
Je ne fais pas de Pascal/Delphi, mais il doit exister une fonction qu permet de recevoir et attendre un caractère du clavier (en .NET : Console.ReadKey() ) cela mettra en pause ton programme.
0
Où trouver cette fonction ?


Merci
0
NHenry
Messages postés
14957
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
7 août 2022
162
29 nov. 2014 à 21:12
Dans l'aide de ton environnement de développement ?
0
@NHenry Si je vais dans Aide:

L'aide de ce programme a été créée dans le format d'aide Windows, ce qui dépend d'une fonctionnalité non incluse dans Windows 8.1 ou Windows RT 8.1. Pour plus d'informations, rendez-vous sur le site Web de Microsoft Support.
0
NHenry
Messages postés
14957
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
7 août 2022
162
29 nov. 2014 à 21:33
J'ai juste recherché "Delphi console get key" et les liens sont très prometteurs.
0
dubois77
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
14
1 déc. 2014 à 10:41
Salut
si l'information ne s'affiche pas correctement sur l'écran plusieurs possibilités
- c'est pas très bien programmé (la machine ne fait que ce qu'on lui dit de faire)
- il y a un bug quelque part

il faudrait au moins avoir le bout de code de l'opération qui amène le défaut
a+
0
Lyon3emearron
Messages postés
1
Date d'inscription
samedi 13 décembre 2008
Statut
Membre
Dernière intervention
8 décembre 2014

8 déc. 2014 à 07:47
Bonjour,

Il est possible que ce soit mal programmé, que faudrait-il ajouté de spécial ?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
korgis
Messages postés
420
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
6 mai 2019
16
8 déc. 2014 à 10:59
Brrr....
Ce programme est ensorcelé !
Ce qu'il faut, c'est un exorcisme.
0
Ouais bon merci de votre aide je ne trouverais donc jamais de solution
0
(Programme que l'on fait en cours mais avec un prof où c'est débrouille toi)
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
  var S,ST,SP, I,NBF,NBH,STF,STH,XG,XF,P,T,X28 : integer     ;
  R ,MOYT,MoyP,MoyST,MoySp,MoyTF,MoyTH  : currency;


BEGIN
ST:=0;
SP:=0;
I:=0;
NBF:=0;
NBH:=0;
STH:=0;
STF:=0;
XG:=0;
XF:=0;

While ((S=1) OR (S=2)) DO
        BEGIN
        I:=I+1;
        writeln ('poids');
        readln (P);
        writeln ('taille');
        readln (T);
        ST:= ST+T;
        Sp:=Sp+P;
        END;

        IF (S=1) THEN
        BEGIN
        NBH:=NBH+1;
        STH:=STH+1;
        END
                ELSE
                BEGIN
                NBF:=NBF+1;
                STF:=STF+T;
        END;
        R:= T/P;
                IF (R<2.8) THEN
                BEGIN
                X28:= X28+1;
                END;
        MoyST:=ST/I;
        MoySP:=Sp/I;
                IF (I>0) Then
                BEGIN
                MoyT:= ST/I;
                MoyP:=SP/I  ;
                writeln (moyT,Moyp) ;
                END
                        else
                              begin
                        writeln ('incalculable');
                END;

                  Writeln (X28);
                  writeln (XG);
                  writeln (XF);

IF (NBF>0)  THEN
begin
MoyTF :=STF/NBF;
writeln (MoyTF);
end
        ELSE
        begin
        writeln ('Incalculable');
END;
        IF (NBH>0) THEN
        BEGIN
        MoyTH :=STH/NBH;
        end
                Else
           begin
           writeln('incalcau');
           END;
           writeln (X28);

                IF (S=1) and (T>180) and (P>80) Then
                BEGIN
                XG:=XG+1;
                END;

                        IF (S=2) AND (T>85) AND (T<175) and (P>50) and (P<80) THEN
                        BEGIN
                        XF:=XF+1 ;
                        END ;
                        BEGIN
                        writeln ('sexe');
                        readln(S);
                        END;


  { TODO -oUser -cConsole Main : placez le code ici }
end.
0
dubois77
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
14
11 déc. 2014 à 15:57
Pour pouvoir lire l'écran avant son extension, ajoute un readln à la fin, le programme attendra que tu répondes donc que tu aies le temps de lire
0
sp40
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Modifié par sp40 le 11/12/2014 à 11:17
Ce code ! Pas de commentaires, variables incompréhensibles... c'est vachement pédagogique comme exercice...

Utilises l'instruction
Sleep({milliseconds}); 
pour temporiser ton application, comme expliqué dans : http://www.commentcamarche.net/forum/affich-28652668-temporisation-sous-delphi

Ça te permettra de voir le résultat de ton application avant qu'elle se ferme.

Et sinon utilises le moteur de recherche du site avant de poser une question, et quand tu postes du code, utilises les balises de codes.

Simon
0
cs_yanb
Messages postés
271
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
7 juillet 2022
13
Modifié par cs_yanb le 11/12/2014 à 16:18
Salut,
bah je sais pas trop quoi dire à part c'est un grand n'importe quoi !
déja la boucle while sert à rien S n'a jamais de valeur !
Supposons qu'il manque un Readln(S) avant le while...on rentrerai dans une boucle infinie, donc faudrait un S:=0 en fin de boucle par exemple pour en sortir...
Ensuite si P ou I égal 0 on doit être sorti de la console vite fait à coup de pompe dans le... par exemple quand on arrive à R:=T/P (ouais div par 0 ca aime pas)...je suppose que déjà au début si tu initialisais P:=1 la console s'afficherait...bah peut-être :p
Après je m'arrête je regarde pas la suite...il faudrait déjà un minimum, il n'y a pas grand chose de correct pour t'aider et être constructif.
@+
0