¶
Feuille 2
2022
On veut calculer le poids idéal d'une personne.
Pour cela, on doit avoir trois informations :
T
en cm,A
en années,S
(qui sera donné par une chaîne
"homme"
ou "femme"
).Les formules (très datées et sans aucun fondement scientifique ;-) sont :
(3*T-250)*(A+270)/1200
(T/2 -30 )*(180+A)/200
On va écrire une fonction javascript qui renvoie le poids ideal.
Dans le cas ou les paramètre passés ne sont pas ceux attendus
on renvoi un undefined
ou Nan
ou n'importe
quoi... c'est a l'utilisateur de respecter les paramètres (c'est
dangereux !!!)
On vérifie la conformité des paramètres et on affichera un message d'erreur expliquant l'éventuel problème.
> poidsIdeal(30,180,"homme")
72.5
> poidsIdeal("trente",180,"homme")
'age et la taille doivent être des nombres
lundefined
>
Écrire une fonction qui génère une chaîne contenant la suite ordonnée
des lettre minuscules. On demande une solution sans utiliser dans votre
code les lettre b
et z
mais vous pouvez
utiliser charCodeAt()
ou String.fromCharCode
> genMinuscule()
'abcdefghijklmnopqrstuvwxyz'
Le codage de César est un manière de crypter un message de manière simple : On choisit un nombre (appelé clé de codage) et on décale toutes les lettres de notre message du nombre choisi.
Par exemple : Si on choisit comme clé le nombre 7. Alors la lettre
A
deviendra H
, le B
deviendra
I
... et le Z
deviendra G
.
> encode("BON",2)
'DQP'
on peut commencer par le cas des chaines en minuscule avec une clef positive
puis on ajoutera les majuscules, les autre caractère ne seront pas modifié
On remarquera facilement que pour décoder, il suffit de faire la même chose mais avec l'opposé de la clé.
=encode("Bonjour ca va !",3)
a'Erqmrxu fd yd !'
> a=encode(a,-3)
'Bonjour ca va !'
>
Écrire une fonction verifierMotDePass
qui prend en
argument une chaîne de caractère et renvoie true
si elle
contient au moins un chiffre et une majuscule et false
sinon.
On pourra utiliser indexOf
Écrire une fonction qui crée un tableau de n zéro.
Même question mais avec n'importe quel valeur passée en argument au lieu de 0
Écrire une fonction estCroissante(t)
renvoyant un
booléen indiquant si les éléments de t
sont dans l’ordre
croissant.
Écrire une fonction estPresent(t,x)
parcourant le
tableau et renvoyant un booléen indiquant si x
est présent
dans `t``
On peut aussi tester l'appartenance à un tableau directement avec
t.indexOf(x)!=-1
ou t.includes(x)
, mais on ne
veux pas les utiliser dans cet exercice.
Écrire une fonction qui rend un nouveau tableau où tous les éléments
du tableau en argument sont dupliqués. Par exemple à partir de la
[1,2,3]
on obtient [1,1,2,2,3,3]
.
Reprendre l’exercice precedent en ajoutant à duplique
un
argument supplémentaire qui donne le nombre de répétition de
l'élément
> dupliqueN(["bonjour","ca va"],4);
['bonjour', 'bonjour',
'bonjour', 'bonjour',
'ca va', 'ca va',
'ca va', 'ca va'
]
Écrire une fonction compose
prenant deux tableaux de
même longueur en entrée et renvoyant un tableau dont les éléments sont
des paires (des tableaux à 2 éléments) des éléments des tableaux en
entrée.
> compose([1,2,3],[4,5,6])
1, 4 ], [ 2, 5 ], [ 3, 6 ] ] [ [
Décalage à droite et à gauche. Écrire decalageG
et
decalageD
: deux fonctions effectuant un décalage d’une
position vers la gauche (resp. vers la droite) dans un tableau
(l’élément sortant faisant sa rentrée du coté opposé, votre fonction
modifie le tableau en place).
> t
1, 2, 3, 4, 5 ]
[ > decalageD(t)
undefined
> t
5, 1, 2, 3, 4 ]
[ > decalageD(t)
undefined
> t
4, 5, 1, 2, 3 ]
[ > decalageG(t)
undefined
> decalageG(t)
undefined
> t
1, 2, 3, 4, 5 ]
[ > decalageG(t)
undefined
> t
2, 3, 4, 5, 1 ]
[ >
Écrire deux fonctions pair
et impair
mutuellement recursives (ie. pair
fait référence à impair
et inversement ) permettant de
tester si un entier donné en argument est paire ou impaire
> pair(8)
true
> pair(9)
false
> impair(8)
false
> impair(9)
true
Soit un tableau t
de n
entiers, écrire une
fonction récursive simple permettant de déterminer le maximum du tableau
On pourra regarder la Recherche_dichotomique.