Exercice un peu compliqué
3 participants
Page 1 sur 1
Exercice un peu compliqué
J'arrive pas à resoudre cet exercice ; je ne sais pas si c moi ki a oublié les notions ou c'est un peu complexe :
**Ecrire un jeu qui demande à l’utilisateur de deviner un
nombre aléatoire (0-100). Si le nombre est trouvé, il affiche
le temps écoulé, sinon il indique si le nombre à deviner
est plus grand ou plus petit
(à résoudre en utilisant les modules)
**Ecrire un jeu qui demande à l’utilisateur de deviner un
nombre aléatoire (0-100). Si le nombre est trouvé, il affiche
le temps écoulé, sinon il indique si le nombre à deviner
est plus grand ou plus petit
(à résoudre en utilisant les modules)
wolfpain- Messages : 3
Date d'inscription : 16/11/2008
Re: Exercice un peu compliqué
je pense que tu qui a oublier les notion car c'est trop facile voici la solution:
program jeux;
uses wincrt;
var
g,d,x:integer;
rep:1..3;
begin
g:=1;
d:=100;
repeat
x:=(d+g) div 2;
writeln(' si votre nombre est inferieur a ',x,' alors appuyer sur 1');
writeln(' si votre nombre est egale a ',x,' alors appuyer sur 2');
writeln(' si votre nombre est superieur a ',x,' alors appuyer sur 3');
repeat
readln(rep);
until rep in[1..3];
if rep=1 then
d:=x
else
if rep=3 then
g:=x;
clrscr;
until (rep=2)or(g>=d);
if rep=2 then
writeln('Votre nombre est : ',x)
else
writeln('Votre nombre n''est pas dans l''intervalle 1..100');
end.
program jeux;
uses wincrt;
var
g,d,x:integer;
rep:1..3;
begin
g:=1;
d:=100;
repeat
x:=(d+g) div 2;
writeln(' si votre nombre est inferieur a ',x,' alors appuyer sur 1');
writeln(' si votre nombre est egale a ',x,' alors appuyer sur 2');
writeln(' si votre nombre est superieur a ',x,' alors appuyer sur 3');
repeat
readln(rep);
until rep in[1..3];
if rep=1 then
d:=x
else
if rep=3 then
g:=x;
clrscr;
until (rep=2)or(g>=d);
if rep=2 then
writeln('Votre nombre est : ',x)
else
writeln('Votre nombre n''est pas dans l''intervalle 1..100');
end.
Ilyes KHAILI- Messages : 24
Date d'inscription : 13/11/2008
Age : 34
Re: Exercice un peu compliqué
.... un nombre aléatoire (0-100). ... il affiche le temps écoulé....
Il faut réfléchir !!!
Il faut réfléchir !!!
Hanafi- Messages : 106
Date d'inscription : 25/10/2008
Re: Exercice un peu compliqué
La question de temps est toujours incommode en Pascal. Il faut ouvrir une autre unité USES WINDOS; Ensuite, on peut utiliser une procédure de Pascal GetTime, qui revoie le temps courant de système. Cette procédure il faut appeler 2 fois (avant la boucle Répéter et après) avec les paramètres différents. Puis on calcule la différence entre le temps avant la boucle Répéter et après la boucle Répéter :
program jeu;
uses windos,wincrt;
var h,m,s,hund:word;
h1,m1,s1,hund1:word;
procedure devine;
var nb:integer;
sh,sm,ss:string;
begin
randomize;
nb:=random(101);
GetTime(h1,m1,s1,hund1);
repeat
writeln;
write('Donner votre nombre entre 0 et 100 : ');
readln(n);
writeln;
if n<nb then
writeln('Votre nombre est plus petit ')
else
if n>nb then
writeln('Votre nombre est plus grand ');
until n=nb;
GetTime(h,m,s,hund);
writeln;
writeln('Vous avez trouver !!! C''est ',nb);
writeln(' **************************');
if s<s1 then
begin
m:=m-1;
s:=s+60;
end;
if m<m1 then
begin
h:=h-1;
m:=m+60;
end;
str(h-h1,sh);
str(m-m1,sm);
str(s-s1,ss);
if length(sh)=1 then
sh:='0'+sh;
if length(sm)=1 then
sm:='0'+sm;
if length(ss)=1 then
ss:='0'+ss;
writeln('Le temps écoulé - ', sh,' : ',sm,' : ',ss);
end;
begin
devine;
end.
program jeu;
uses windos,wincrt;
var h,m,s,hund:word;
h1,m1,s1,hund1:word;
procedure devine;
var nb:integer;
sh,sm,ss:string;
begin
randomize;
nb:=random(101);
GetTime(h1,m1,s1,hund1);
repeat
writeln;
write('Donner votre nombre entre 0 et 100 : ');
readln(n);
writeln;
if n<nb then
writeln('Votre nombre est plus petit ')
else
if n>nb then
writeln('Votre nombre est plus grand ');
until n=nb;
GetTime(h,m,s,hund);
writeln;
writeln('Vous avez trouver !!! C''est ',nb);
writeln(' **************************');
if s<s1 then
begin
m:=m-1;
s:=s+60;
end;
if m<m1 then
begin
h:=h-1;
m:=m+60;
end;
str(h-h1,sh);
str(m-m1,sm);
str(s-s1,ss);
if length(sh)=1 then
sh:='0'+sh;
if length(sm)=1 then
sm:='0'+sm;
if length(ss)=1 then
ss:='0'+ss;
writeln('Le temps écoulé - ', sh,' : ',sm,' : ',ss);
end;
begin
devine;
end.
Hanafi- Messages : 106
Date d'inscription : 25/10/2008
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|