Bonjour,
j'en suis encore dans ma première année et j'ai un petit soucis pour cet algorithme:
"Ecrire un algorithme qui devine le nombre choisi par l'utilisateur entre 1 et 1000 et qui aura à répondre à chacun des essais de l'algorithme l'un des trois caractères suivants: P (si l'essai est petit), T (si le programme a trouvé le résultat) ou G (si l'essai est grand). Méthode à suivre, le nombre se trouve dans l'intervalle [a,b] que l'on initialise à [1,1000]. On prend un nombre m = (a+b)/2 et on l'affiche. Si la réponse de l'utilisateur est G alors le nombre se trouve dans la moitié basse de l'intervalle et on change alors la valeur de b en lui affectant la valeur de m. Par contre si la réponse est P, alors on change a en lui affectant la valeur de m. On reprend à partir du calcul de m jusqu'à ce que la réponse de l"utilisateur devienne T."
ce que j'ai fait (je sais pas ce qui est juste/faux et j'aimerai avoir une aide):
Variables: a,b, N,m ;
{
Ecrire ("Donner un nombre entre 1 et 1000");
Lire (N);
a:=1;
b:=1000;
m:= (a+b)/2
{
répeter
Si (m>N) alors
b:=m;
m:= (a+b)/2;
Ecrire ("l'essai est grand");
Sinon
Si (m<N) alors
a:=m
m:= (a+b)/2
Ecrire ("l'essai est petit");
jusqu'à (m=N)
}
Ecrire ("Le programme a trouvé le résultat");
}
Bonjour,
ton algorithme de dichotomie me semble bien même si je n'ai pas reconnu le langage.
Un petit détail, qui peut avoir son importance, pour m je ferais en sorte de ne prendre que des nombres entiers, sinon tu risques de tourner autour de ta valeur sans jamais l'atteindre...
salut
je plussoie au propos de Tintin ... même si c'est un détail ...
ensuite on peut légèrement simplifier :
Merci Tintin pour ta remarque, j'ai essayer de prendre un réel pour m et je tourne toujours
sinon carpediem j'y ai pensé pour le while et je me suis dit que je devrais mettre ensuite 2 conditions (supérieur et inférieur) donc bon ça revient presque au même je trouve..
Merci sinon et bonne journée/soirée
Bonjour
Il faut quand même bien mettre """m:= (a+b)/2 "" au bon endroit dans la boucle , sinon m ne change pas de valeur et cela tourne indéfiniment !
bonjour,
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :