Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Probleme pascal repeat [ Divers / Débutant(e) ] (godan13)

dimanche 1 juillet 2007 à 22:08:42 | Probleme pascal repeat

godan13

    Bonjour, c' est mon premier "programme" (si vu l'absence d'interface graphique, et le niveau de la source on peut apeler ca un programme ) et il vise a faire un convertisseur d'unitées de temperature (K en °C , °C en °F, etc).
J'aurais voulu faire ca comme suit:

1. Demander a l'utilisateur si il veut une conversiion du °C au °F; du °F au °C; du °C au K; du k au
    °F; etc...

2. Si il repond du °F au °C alors
           Demander la temperature a convertire ;
           Afficher rep '°C = '(rep*1.8)+32' °F'
   Demander a l'utilisateur si il veut refaire une conversion
   avec ces unitées (*)

et ca pour toutes les conversions, et ce que je voudrais c'est que quand il repond oui (*)  je lui remette l'étape 2., j'aurais pensé faire comme suit:

2.si il repond du °F au °C alors
     repeter
             demander la temperature
             affich rep ac calcul
        demander si il veut conserver ces unitées
     jusqu'a ce que la rep = non

Et ainsi, en encadrant tout le "programme" dans une boucle il aurais pu, quand l'util. ne voulais plus des unitées qu'il avais choisi revenire a l' "acueuil" et en choisire d'autre. Mais je me demandais :
1 quelle type de boucle utiliser pour encadrer le "programme" ??
2 pour repeter l'étape 2 je voulais faire une boucle repeat ... until rep = non mais est-ce que ça ne risque pas de repeter simplement la réponse du premier calcul??

Merci d'avance,
Morgan

P.S. Desolé pour le roman mais je n'ai jamais su poser et condenser mes idées.
P.S.S. Je programme avec TP7 et ne trouvant pas de  forum réservé j'ai pensé que celui ci serais le plus adapté.


dimanche 1 juillet 2007 à 23:12:57 | Re : Probleme pascal repeat

f0xi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !



comme au bon vieux temps :




const
  k_ESC = $00011b;     {Echape                                 }

PROCEDURE ColBKG(col_BG:word);
Begin Textbackground(col_BG); end;

PROCEDURE ColTXT(col_TX:word);
Begin Textcolor(col_TX); end;

PROCEDURE GXY(coordX,coordY:word);
Begin Gotoxy(coordX,CoordY); end;

PROCEDURE CLS;
Begin Clrscr; end;

PROCEDURE SND(freq,drt:word);
Begin sound(freq); delay(drt); nosound; end;

// ------
var Kmd        : char;
    ConvResult : single;
    OldUni     : byte;

const
  DegUni : array[0..2] of string = ('°C','°F','°K');

function CtF : single;
begin
  Cls;
  ColTxt(8);
  if ConvResult <> 0 then
  begin
    Writeln('Ancien resultat : '+FloatToStr(ConvResult)+DegUni[OldUni]);
    Writeln('');
  end;
  ColTxt(11);
  Write('Temperature (Celsius) a convertir (Fareneith) : ');
  ReadLn(CtF);
  CtF := { convertion }
  OldUni := 1;
end;

function CtK : single;
begin
  Cls;
  ColTxt(8);
  if ConvResult <> 0 then
  begin
    Writeln('Ancien resultat : '+FloatToStr(ConvResult)+DegUni[OldUni]);
    Writeln('');
  end;
  ColTxt(11);
  Write('Temperature (Celsius) a convertir (Kelvin) : ');
  ReadLn(CtK);
  CtK := { convertion }
  OldUni := 2;
end;

function FtC : single;
begin
  Cls;
  ColTxt(8);
  if ConvResult <> 0 then
  begin
    Writeln('Ancien resultat : '+FloatToStr(ConvResult)+DegUni[OldUni]);
    Writeln('');
  end;
  ColTxt(11);
  Write('Temperature (Fareneith) a convertir (Celsius) : ');
  ReadLn(FtC);
  FtC := { convertion }
  OldUni := 0;
end;

function FtK : single;
begin
  Cls;
  ColTxt(8);
  if ConvResult <> 0 then
  begin
    Writeln('Ancien resultat : '+FloatToStr(ConvResult)+DegUni[OldUni]);
    Writeln('');
  end;
  ColTxt(11);
  Write('Temperature (Fareneith) a convertir (Kelvin) : ');
  ReadLn(FtK);
  FtK := { convertion }
  OldUni := 2;
end;

function KtC : single;
begin
  Cls;
  ColTxt(8);
  if ConvResult <> 0 then
  begin
    Writeln('Ancien resultat : '+FloatToStr(ConvResult)+DegUni[OldUni]);
    Writeln('');
  end;
  ColTxt(11);
  Write('Temperature (Kelvin) a convertir (Celsius) : ');
  ReadLn(KtC);
  KtC := { convertion }
  OldUni := 0;
end;

function KtF : single;
begin
  Cls;
  ColTxt(8);
  if ConvResult <> 0 then
  begin
    Writeln('Ancien resultat : '+FloatToStr(ConvResult)+DegUni[OldUni]);
    Writeln('');
  end;
  ColTxt(11);
  Write('Temperature (Kelvin) a convertir (Fareneith) : ');
  ReadLn(KtF);
  KtF := { convertion }
  OldUni := 1;
end;

procedure ShowResult;
begin
  ColTxt(5);
  Writeln('Resultat = '+FloatToStr(ConvResult)+DegUni[OldUni]);
  Writeln('');
  ColTxt(11);
  Writeln('Appuyez sur une touche pour continuer...');
  repeat until KeyPressed;
end;


procedure Main;
begin
  Cls;
  ColTxt(11);
  writeln('[1] Celsius > Fareneith');
  writeln('[2] Celsius > Kelvin');
  writeln('[3] Fareneith > Celsius');
  writeln('[4] Fareneith > Kelvin');
  writeln('[5] Kelvin > Celsius');
  writeln('[6] Kelvin > Fareneith');
  writeln('');
  writeln('[r] Effacer l'ancien resultat.');
  writeln('');
  writeln('[q] Quitter');
end;

function KInterpret : byte;
const
  KTB : array[boolean] of byte = (0,42);
begin
  KInterpret := KTB[ Kmd = 'q'
];

  if KInterpret = 0 then
  begin
 
  case Kmd of
      'r' : ConvResult := 0;
      '1' : begin ConvResult := CtF; ShowResult; end;
      '2' :
begin ConvResult := CtK; ShowResult; end;
      '3' : begin ConvResult := FtC; ShowResult; end;
      '4' : begin ConvResult := FtK; ShowResult; end; 
      '5' :
begin ConvResult := KtC; ShowResult; end;
      '6' : begin ConvResult := KtF; ShowResult; end;
      else
      begin
        Cls;
        Snd(250,30);
        Snd(250,30);
        ColTxt(1);
        writeln('Commande inconnue ('+Kmd+')');
        Delay(5000);
      end;
    end;
  end;
end;

var Ret : byte;

begin
  ConvResult := 0;
  Ret := 0;
  Repeat
    if Ret = 0 then
       Main;
    Kmd := readkey;
    Ret := KInterpret;
  Until Ret = 42;
end;

lundi 2 juillet 2007 à 11:08:53 | Re : Probleme pascal repeat

godan13

Réponse acceptée !
Merci pour ta reponse mais pourais-tu, s'ilte plait, t'expliquer un peu plus car je n'ai a vrai dire rien compri^^

@+
Godan

lundi 2 juillet 2007 à 15:14:25 | Re : Probleme pascal repeat

godan13

Réponse acceptée !

   A y est, je mesui rensegné et j'ai compri (enfin en gros) car j'ai un problemme : pour textbackground, textcolor, gotoxy etclrscr ainsi que pourfloattostr TP7 m'a dis, au moment de compiler, qu'il y avais une "erreur 3 unknow idenifier" . J'ai cherché sur google et altavista et on me renvoyais que sur des forums delphi, mais a aucun moment je n'ai vu ce type de probleme de compilation sous TP7 (ni sous delphi d'ailleur), je me tourne donc encors une fois vers le forum de codes sourses.

Merci d'avance
Godan


P.S. HHEELLPP PLIIZZ


lundi 2 juillet 2007 à 17:59:16 | Re : Probleme pascal repeat

Oniria

Réponse acceptée !
Bonjour,

Pour ton probléme, regarde d'abord l'aide de TP7. Tu y découvrira une montagne d'information. Le programme de FOXI ne te donne pas la ligne des librairie utilisée ( la ligne uses crt par exemple). Je pense que ton probléme se trouve là. Il doit te manquer la librairie ou se trouve les gotoxy et compagnie dont tu as besoin.

Bon code
Oniria



lundi 2 juillet 2007 à 21:15:11 | Re : Probleme pascal repeat

f0xi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
effectivement il manque

uses crt, dos;

lundi 2 juillet 2007 à 22:31:59 | Re : Probleme pascal repeat

godan13

Réponse acceptée !

Merci pour vos reponces je ne suis pas sur mon PC en ce moment mais je vais essayer tout ça dés demain .

Godan

 




Cette discussion est classé dans : programme, rep, demander, unitées, repeat


Répondre à ce message

Sujets en rapport avec ce message

Notification de la création d'un fichier d'un rep+sous rep [ par miarynante ] bjr,je suis un peu débutant en delphi(6) et je suis bloqué sur un probleme.voici le but du petit programme:j'aimerai si c'est possible récupérer les c Créer une base-Installation [ par Guenky ] J'aimerais savoir comment créer une base de données access avec inno setup en sachant kque j'en aurai besoin dans mon programme en delphi...Et comment Relier des points dans une paintbox par une courbe [ par Benjikos ] Bonjour, Je suis un grand débutant en delphi (j'ai commencé y'a 5 semaines!) et je réalise un programme permettrant de comprendre comment on guide un Barre de progression réelle [ par mighty_warrior ] Bonjour,Ca fait pas mal de temps maintenant que je bidouille un p'tit programme disposant d'une interface en 3D. Le truc c'est que le programme met un Valeur de sortie d'une programme [ par Oniria ] Bonjour,J'aimerais savoir comment faire pour assigner une valeur de sortie à un programme et la récupérer dans un autre.Pour mieux comprendre, j'ai un Création/déclaration de variable pendant l'exécution d'un programme [ par TouTSpeed ] Bonjour Je recherche des informations si cela est possible , existe  sur la création de variables dans un programme en cours d'exécution .Par exemple Impossible de cliquer sur éxécuter [ par penvernyo ] Bonjour à tous,je viens de terminer mon premier programme permettant de faire parler les ms agents, je dois avouer que j'en suis fier, réussir ca sans readprocessmemory [ par devoluti0n ] Bonjour,j'aurai besoin de vous, pour comprendre comment faire pour récuperer la valeur d'un array of byte d'un programme en cours d'éxécution.Je sais envoyer variable [ par nethacker ] bonsoir,mon programme consiste à envoyer un texte variable, enfin pas tout le texte variable mais juste une partie qui change, et en fait c'est un pro MA TAILLE [ par craftsystem ] Salut a tous,je voulais sa voir comment faire pour afficher la taille de son programmeengros je voulais faire une protection dans le genre,prendre la


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.