begin process at 2010 02 10 13:20:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

Probleme pascal repeat


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme pascal repeat

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ée 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

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,310 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales