Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

algorithme JAVASCRIPT

Posté par
arpine
12-04-13 à 19:32

Bonsoir ,

Je dois traduire un algorithme en Javascript mais je n'y arrive pas du tout heeeelp.  l'algo est :

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

Posté par
mathafou Moderateur
re : algorithme JAVASCRIPT 12-04-13 à 20:04

Bonjour,

cet algorithme est décrit comme un manche.
traitement : Afficher U
et sortie : ... un traitement !
pas étonnant que tu aies des difficultés à "traduire" il est illisible.

Il faut déja commencer par tout remettre au carré avant de chercher à le traduire !

ceci dit, il y a une réponse récente avec le programme Javascript "tout écrit"
d'ailleurs introuvable par le moteur de recherche (nul ce moteur de recherche)
en fait le seul moyen c'est de lire les topics récents (2 ou trois pages) un par un pour tomber là dessus : Algorithmique sur les suites

Posté par
Tom_Pascal Webmaster
re : algorithme JAVASCRIPT 12-04-13 à 20:44

Citation :
d'ailleurs introuvable par le moteur de recherche (nul ce moteur de recherche)

Il n'est pas parfait c'est vrai...

Mais sinon, il y a google aussi (on peut limiter les recherches à un site donné si on veut) : site:ilemaths.net javascript

Posté par
mathafou Moderateur
re : algorithme JAVASCRIPT 12-04-13 à 20:51

Bonjour Tom,

il est très bien quand on cherche un mot, mais une recherche avec "Syracuse Javascript" donne 0 résultats.
avec Javascript seul, un trop gros paquet de résultats
idem avec Syracuse seul.

Posté par
Tom_Pascal Webmaster
re : algorithme JAVASCRIPT 12-04-13 à 20:57

Oui, en effet... mais je pense que c'est vraiment parcequ'il n'y a pas de topics dans l'index de google qui contienne à la fois syracuse et javascript.

Si on combine deux autres mots, ça a l'air de fonctionner (exemple site:ilemaths.net algorithme javascript)

Posté par
Glapion Moderateur
re : algorithme JAVASCRIPT 12-04-13 à 23:36

Tient ça me dit quelque chose ça, je viens de le faire ce programme en javascript : Algorithmique sur les suites

Posté par
arpine
re : algorithme JAVASCRIPT 12-04-13 à 23:41

Oui merci beaucoup d'ailleurs la personne a qui tu a repondu est dans ma classe on te remercie !

Posté par
RIFIFI
Traduire algorithme en JS 30-01-14 à 18:48

Bonsoir,
J'ai également deux algorithmes a traduire en Java Script mais je n'y arrive pas du tout, pouvez vous m'aider?
Merci d'avance

Voici les deux algorithmes que j'ai à convertir:
1/
Etant donné une liste L, rechercher si un élément a est présent dans le tableau et le cas échéant, renvoie les positions de a dans la liste:
Entrer (L)
Entrer(a)
C=0
position=[]
n=longueur (L)
Pour k de 0 à n-1
Si L[k]==a
Alors C=C+1
position=position+k
fin
Afficher (C;position)


Note: C=longueur (position)


2/ Etant donné une liste L, rechercher le maximum de cette liste, renvoyer sa valeur, ainsi que le nombre de fois où il est atteint et en quelles positions:

Entrer(L)
n=longueur(L)
max=L[0]
position=[0]
Pour k de 1 à n-1
Si L[k]>max
Alors max=L[k]
position=k
Sinon si L[k]=max
alors position=position+[k]
fin
Afficher (position, max)

Posté par
mathafou Moderateur
re : algorithme JAVASCRIPT 31-01-14 à 13:49

Bonjour,
en dehors des "Entrer" et "Afficher" qui en tant que entrées sorties dépendent de l'implémentation (de quelle "variante" de JavaScrupt on parle sur quel machine etc)
traduire de l'algorithme en JavaScript est assez "immédiat" !!
il y a quelques trucs à savoir sur les listes par contre.

on définit un tableau par
T = new Array();

puis ensuite les éléments du tableau sont accédés par T[i] (i de 0 à n-1)
la longueur du tableau est "élastique" et automatique

définir directement T[24] = 0; fait que le tableau a désormais 25 éléments
T[0] à T[23] pas définis, mais qui "existent" (tableau "creux") et T[24] qui vaut 0
pour connaitre la longueur d'un tableau c'est avec la syntaxe "objet" :
T.length

les éléments du tableau peuvent être définis à sa création
soit par
T = new Array(a,b,c,d)
soit par T = [a,b,c,d];

"entrer L" n'est pas franchement terrible :
soit on fait une boucle et on entre un par un les éléments
soit on définit le tableau par un "littéral"
L = [a,b,c,... ];
saisir un littéral [a,b,c,.. ] dans une instruction d'entrée sortie est il autorisé ou pas ??
toute la question est là et ça dépend justement de l'implémentation
L = prompt("Liste :"); et en tapant en réponse [1,2,3]
renvoie L comme la chaine de caractères "[1,2,3]" et pas du tout comme une liste ...
L.length = 7 caractères
L[0] est '[', L[1] est '1', L[2] est ',' etc

tu peux toujours escamoter le problème en définissant directement la liste dans le code :
L = [a,b,c,... ];
ou L = new Array(a,b,c, ...);


ensuite c'est beaucoup plus facile :
entrer a est un simple nombre sans problème
au besoin le traduire de chaine de caractères en nombre par parseInt() ou "à la sauvage"
a = 1*prompt("Valeur de a : ");
"C=0" se traduit par ... C=0;

le tableau position, vide, est crée par
position = new Array();
comme déja dit la longueur de L est
n = L.length;

"pour k de 0 à n-1" se traduit par
for (k = 0; k < n; k++) { // k < n est la même chose que k <= n-1
...
}

"si L[k]==a Alors"
se traduit par
if (L[k]==a) {
...
}

position=position+k est absurde et prouve juste que l'algorithme de départ lui-même est faux

ici position est un nombre
alors qu'il a été défini comme étant un tableau !!

donc revoir l'algorithme dans son principe même

la solution au vu de l'énoncé est de maintenir la liste "position" (donc bien un tableau) avec une variable x qui indique sa taille actuelle
position = new Array();
x = 0; // le tableau est vide


puis qand on veut ajouter un élément dans le tableau position :
position[x++]=k;
on met la valeur de k dans l'élément de rang x du tableau position[]
puis on incrémente x


en pseudocode ce serait
position[x]=k
x = x+1


on peut se passer de la variable x en écrivant :
position[position.length]=k;


en pseudocode bof
"ajouter k à la fin du tableau"
mais ajouter un élément ce n'est pas effectuer une addition numérique comme tu l'avais écrit !!


"afficher" ne pose pas de problème particulier
on peut utiliser la syntaxe
"Valeur de C = "+C+"\nPositions = "+position
pour formatter "agréablement" la sortie plutôt que de sortir des valeurs en vrac
et ça dans un alert(), ou un write() ou writeln() ou ce qu'il y a comme instruction de sortie dans la variante (implémentation) de JavaScript utilisée.
le tableau position est automatiquement convertit en texte comme liste de ses éléments

l'autre du même tabac.
(avec la même remarque sur la variable position qui est aberrante)

Posté par
mathafou Moderateur
re : algorithme JAVASCRIPT 31-01-14 à 15:46

Pour info sur la saisie en entrée d'une liste

un truc comme
L = prompt("Liste :").replace(/\s|\[|\]/g,"").split(",");

(c'est très ésotérique mais bon, ça marche)



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !