English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Toutes les catégories

J'ai essayé ceci :

Writeln('Etrez un nombre de trois chiffres :');
Repeat Readln (nombre);
Until nombre in [100...999]

Mais j'ai un "Warning" lors de la compilation car j'avais déclaré nombre comme integer.
Et lors de l'éxecution ça ne marche pas car je peux saisir n'importe quoi !!!
Merci pour votre aide les amis...

2007-03-09 01:14:17 · 4 réponses · demandé par chrifus82 4 dans Informatique et internet Programmation

4 réponses

Essaye avec la fonction readKey :

function readNum : integer;
var res, i, chiffre, code : integer; ch : char; st : string [1];
begin
......res := 0; st := ' ';
......for i := 1 to 3 do begin
..........repeat ch := readKey; st[0] := ch; until ch >= '0' and ch <= '9';
......... write (st);
..........val (st, chiffre, code);
..........res := res * 10 + chiffre;
......end;
......readNum := res;
end;

La fonction readKey est bloquante c'est à dire que le programme ne réagit plus tant que tu n'as pas appuyé sur une touche le programme ne bouge pas. D'où le write pour qu'on se rende compte qu'il s'est passé quelque chose.

2007-03-09 21:52:39 · answer #1 · answered by t_cordonnier 7 · 0 0

Il y a la fonction getc(c)

L algo :

fonction estunchiffre(c)
si c > ='1' et c <='9' retourne vrai
retourne faux
fin


programme principal :
i=1, mon_nombre=0
tantque i<3
getc(c)
if (estunchiffre(c))
mon_nombre = mon_nombre*10+ c
i = i + 1
finsi
fintantque

2007-03-09 09:26:40 · answer #2 · answered by jdk 7 · 2 0

ton juste est juste mais t'as une probleme dans la declaration c'est tout , j'ai pas programmé en pascal depuis 5 ans mais bon voila
tu as declaré nombre comme integer cadire comme ca
var nombre:integer;
en fais ca sera pas un integer mais un nouveau type donc tu fera mieux de declarer un nouveau type apellé par exemple intervalle puis tu declare nombre de type intervalle ca sera un peut comme ca
type
intervalle = 100..999;
var
nombre : intervalle;


ou tu peut simplement corriger le probleme de type en modifiant ton code de la facon suivante dsans toucher au declaration


Writeln('Etrez un nombre de trois chiffres :');
Repeat Readln (nombre);
Until nombre>99 and nombre<1000;

2007-03-11 11:10:54 · answer #3 · answered by T Fox 2 · 0 0

prends la saisie tel quel et fait un test derrière avec un case par exemple et des messages d'erreurs adéquats

2007-03-09 09:21:56 · answer #4 · answered by PhilouD 4 · 0 0

fedest.com, questions and answers