====== Javascript, première partie ======
Nous allons travailler un peu sur un autre langage que Python, ce qui nous sera utile dans le cadre de pages web car Python n'est pas compris par les navigateurs internet.
{{page>nsi:langages:js:start#Présentation&nofooter}}
{{page>nsi:langages:js:start#Programmer en JS&nofooter}}
===== Exercices =====
Dans l'environnement en ligne de [[https://www.typescriptlang.org/play?filetype=js#code|TypeScript]], faites les programmes JS répondant aux questions des exercices suivants.
Dans tous les cas, la seule sortie d'affichage dont vous disposerez sera la console.
==== Exercice 1 : Algorithme d'Euclide ====
L'algorithme d'Euclide permet de trouver le PGCD de deux nombres. Par exemple, le PGCD de 49 et 35 est 7 puisque que 49 = 7x7 et 35 = 5x7.
Voici l'algorithme :
Calcul du PGCD
ENTRÉES: a et b deux entiers non nuls
SORTIE: PGCD de a et b
DÉBUT
TANT QUE b non nul RÉPÉTER
r = reste division entière a / b
a = b
b = r
RENVOYER a
FIN
Transformer cet algorithme en fonction JS et utilisez la fonction pour répondre à la question :
Quel est le PGCD de 615615 et 7826 ?
==== Exercice 2 : calcul de moyenne ====
Écrire une fonction ''moyenne'' en JS :
* la fonction reçoit un argument ''tableau'' contenant des nombres,
* si le tableau n'est pas vide, la fonction renvoie la moyenne des éléments contenus dans le tableau,
* sinon la fonction renvoie 0.
Prévoyez un test de la fonction.
==== Exercice 3 : parenthèses ====
Écrire une fonction ''parenthesesJustes(expression)'' vérifiant si les parenthèses d'une expression sont bien équilibrées.
**Exemples :**
* ''%%parenthesesJustes("()")%%'' doit renvoyer ''true''
* ''%%parenthesesJustes(")(")%%'' doit renvoyer ''false''
* ''%%parenthesesJustes("((3+x)*5)/(4x+1)")%%'' doit renvoyer ''true''
* ''%%parenthesesJustes("(3+x)*5)/(4x+1)")%%'' doit renvoyer ''false''
Vous pouvez remarquer que j'ai nommé la fonction ''parenthesesJustes'' et j'utilise alors la notation [[https://fr.wikipedia.org/wiki/Camel_case|camelCase]]. C'est plutôt celle-ci que l'on rencontre en JS. En Python, on préfère [[https://fr.wikipedia.org/wiki/Snake_case|snake_case]], ce qui donnerait ''parentheses_justes''. Cela ne change rien au déroulement du programme. Ce sont seulement des usages.