Bonjour, j'aurais besoin de votre aide pour un exercice d'algorithmique, donc voilà l'exercice que je devrait traduire en langage javascript:
Entrée: U
Traitement Afficher U.
et sortie: Tant que U=/=1:
Si U est pair
Affecter la valeur U/2 à U.
Sinon
Affecter la valeur
(3U+1)/2 à U.
Afficher U.
a. Que représente U?
b. Quelle condition est suffisante sur U pour que l'algorithme construise bien une suite d'entiers?
c. Trouver un entier U tel que l'algorithme affiche exactement 5 nombres.
Merci pour votre aide!
Bonjour, et tu comprends ce qu'il fait ce programme ? ça s'appelle l'algorithme de Syracuse.
U est la variable qui stocke les termes de la suite. Si U est différent de 1, ça définit une suite d'entiers qui ne s'arrêtera que quand un des terme deviendra 1. Programme le et fait des essais (ou fait le fonctionner à la main), notamment si U commence par 5 regarde la suite que ça donne.
En Algobox ça s'écrit :
VARIABLES
U EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE U
AFFICHER* U
TANT_QUE (U!=1) FAIRE
DEBUT_TANT_QUE
SI (floor(U/2)==U/2) ALORS
DEBUT_SI
U PREND_LA_VALEUR U/2
FIN_SI
SINON
DEBUT_SINON
U PREND_LA_VALEUR (3*U+1)/2
FIN_SINON
AFFICHER* U
FIN_TANT_QUE
FIN_ALGORITHME
En Javascript :
var U;
U = parseFloat(prompt("Entrez U"));
document.writeln(U);
while(U != 1) {
if (Math.floor(U / 2) == U / 2) {
U = U / 2;
}
else {
U = (3 * U + 1) / 2;
}
document.writeln(U);
}
(je te recommande le site http://proglab.fr/ qui permet de transcrire le code algobox en javascript et réciproquement et qui permet de faire tourner l'algorithme)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :