Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

points entiers sur un cercle

Posté par
wabi
05-04-13 à 16:50

help svp!!
je suis en première S, j'ai besoin de votre aide, j'ai un algorithme à traduire en javascrit...
voici l'algo (qui est du chinois pour moi):

Initialisation:  Effacer la liste L1 et la liste L2.
                 Affecter à la variable n la valeur 0.          

Traitement:  Pour i allant de 0 à 40
                  Affecter à la variable a la valeur racine 1625-i²
                  Si a est entier alors
                      Affecter à la variable n la valeur n+1.
                      Affecter à la variable L1(n) la valeur i
                      Affecter à la variable L2(n) la valeur a.
                  Fin du Si
             Fin du Pour

Sortie:  Afficher n.
         Afficher L1 et L2

Merci de votre aide!

Posté par
mathafou Moderateur
re : points entiers sur un cercle 05-04-13 à 20:24

Bonjour,

tiens pour une fois que ce n'est pas du Algobox !
et on enseigne le JavaScript au lycée ??

Du chinois ??? c'est écrit en langage dit "naturel" !
les mots ont la signification qu'ils ont normalement
Une liste tu sais ce qu'est une liste en français non ? un tas de données les unes derrière les autres.
Effacer la liste L1 et la liste L2.
Tu as donc deux listes qu'on appelle L1 et L2
et au départ ces listes sont vides

en JavaScript une liste s'écrit Array
et donc cette partie se traduit en
L1 = new Array();
L2 = new Array();
On crée les deux listes, vides.

Affecter à la variable n la valeur 0.
donc tu as une variable qu'on nomme n, et dans laquelle on met la valeur 0
n = 0;

Pour i allant de 0 à 40
on fait une boucle que l'on va effectuer 41 fois, pour les valeurs de i = 0, 1, 2, .... 40 incluses.
en Javascript une telle boucle se traduit par

for (i = 0; i<=40; i++) {
...
}

certes c'est "ésotérique" mais c'est du JavaScript, pas du langage de bébé
(et c'est pareil en fait dans tous les langages "dérivés du C", dont JavaScript)
"for" c'est "pour" (en anglais)
i c'est le nom de la variable qui va "compter" 0, 1, ...
elle commence à 0 : i = 0
on boucle tant qu'elle est 40
et à chaque boucle on l'augmente de 1 : i++ veut dire "augmenter de 1"

dans cette boucle, entre les deux accolades, on met tout ce qui doit être répété :

Affecter à la variable a la valeur racine 1625-i²
Si a est entier alors
Affecter à la variable n la valeur n+1.
Affecter à la variable L1(n) la valeur i
Affecter à la variable L2(n) la valeur a.
Fin du Si

Affecter à la variable a la valeur racine 1625-i²

c'est comme pour le n tout à l'heure, on a une variable a, et dedans on met la valeur (1625 - i²)

ce qui en JavaScript s'écrit tout simplement (!)
a = Math.sqrt(1625 - i*i);
y a pas "puissance 2", on multiplie i par lui même pour l'élever au carré
la fonction racine carrée s'écrit sqrt() (square root), elle fait partie du paquet "Math", de fonctions mathématiques

Si a est entier alors
c'est à dire que l'on veut tester si 1625 - i² est un carré parfait, dont a serait donc la racine carrée, entière.
comment tester que a est un entier ?
c'est "tricky" c'est à dire que rien n'est prévu dans le langage pour le faire !
il faut utiliser des "astuces"
une astuce consiste à comparer a et sa partie entière
if (a == Math.floor(a)) {
...
}

floor() est la fonction partie entière, elle aussi du paquet "Math"
pour comparer on utilise le double signe =

et si a est effectivement à ce moment un nombre entier, alors on effectue tout ce qu'il y a entre les accolades du if

Affecter à la variable n la valeur n+1.
Affecter à la variable L1(n) la valeur i
Affecter à la variable L2(n) la valeur a.

n = n+1;
L1[n] = i;
L2[n] = a;


enfin à la sortie de la boucle "pour" quand on a termine les 41 boucles, donc après l'accolade fermante du "for" il reste à terminer par :

Afficher n.
Afficher L1 et L2


cela se fait par la fonction writeln(), qui écrit du texte formaté :
writeln("n = "+n+"\nL1="+L1+"\nL2="+L2);
on met bout à bout ("concatène")par l'opération +,
des chaines de caractère (entre " ") et des variables (leur contenu actuel)
\n représente un passage à la ligne

et c'est fini.

algorithme pas testé, pas le temps là tout de suite, mais à toi de jouer pour remettre tous ces bouts ensemble et le tester.

Pour plus de détails sur le langage Javascript j'espère que tu as la doc de ce langage !!
Sinon taper JavaScript sur internet pour récupérer la doc (en anglais) de ce langage.

Posté par
wabi
re : points entiers sur un cercle 05-04-13 à 22:19

bonsoir, merci beaucoup de votre aide. Quand je disais chinois, ca n'était pas l'algorithme en soi mais sa traduction en language javascrpit



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

Inscription gratuite

Fiches en rapport

parmi 1741 fiches de maths

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 !