TP Structures de programme


Retour au menu

Exercice 1 : Résultats du Bac

Un(e) candidat(e) au Bac entre sa moyenne définitive, et ... reçoit sa mention.
On utilisera au choix des boites de dialogue (ou si on connait 2 composants d'un formulaire).


Exercice 2 : Equations 1er et 2ème degré

Résolution de l'équation ax+b=0 :
  si a<>0  alors  
    S={-b/a}
    sinon  
      si b<>0  
      alors   S= {}
      sinon   S=R.
Ecrire un programme JS fournissant l'ensemble des solutions, à partir des valeurs de a et de b.

Equation du second degré
Ecrire l'algorithme de résolution complète de l'équation du second degré ax² + bx +c =0 à coefficients réels, dans R puis dans C
On pourra étendre plus tard (en connaissant la construction d'objets) au cas général où a, b et c sont des complexes.
Ecrire un programme JS fournissant l'ensemble des solutions, connaissant les valeurs des coefficients.


Exercice 3 : Construction de boucle for


Exercice 4 : Lancer d'un dé

Lancer d'un dé, version 1
JS ne fournit que la fonction Math.random() qui donne un nombre au hasard dans l'intervalle [ 0 , 1 [
D'autre part les fonctions Math.floor(x) et Math.round(x) fournissent respectivement la partie entière de x c'est-à-dire l'entier immédiatement inférieur à x, et l'arrondi à l'entier le plus proche.
Utiliser ces 3 fonctions (définies avec l'objet Math) pour construire les fonctions :
  1. pile-face() qui simule un lancer d'une pièce au hasard et donne 0 ou 1 respectivement pour pile ou face.
  2. dé( ) qui simule le lancer d'un dé normal (donc donne un entier au hasard de 1 à 6).
Simuler grâce à une structure répétitive FOR, l'affichage des résultats d'une série de 600 lancers d'un dé normal.


Lancer d'un dé, version 2

Lancer d'un dé, version 3
  1. On reprend la situation de l'exercice 3
  2. On effectue l'épreuve des 600 lancers du dé un grand nombre de fois, et on note pour chacune le tableau Résultat
  3. Effectuer la moyenne des nombres de 1,.de 2... de 6 obtenus pour 1000 séries.

Exercice 5 : suite de Syracuse

Une conjecture proposée par J. Conway vers 1950, affirme que la suite S définie par récurrence par :
1er terme So > 0
Si Sn est pair alors Sn+1 = Sn / 2 sinon Sn+1 = 3* Sn +1
est périodique de période 3 (avec les valeurs 1, 4, 2 ) à partir d'un certain rang.

Construisez un programme JS, à enregistrer sous js3-ex6.htm permettant :

  1. la saisie de la valeur initiale So
  2. le calcul et l'affichage des termes successifs
  3. tant que la périodicité (c-à-d la valeur 1) n'est pas atteinte
  4. conclure en donnant le nombre de termes (y compris So)

Exercice 6 : Suite de Fibonacci

On rappelle que la suite de Fibonacci est définie dans N* par :
U 1 = 1 ; U 2 = 1
U n+2 = U n+1 + U n
  1. Montrer que l'exercice 3 fournit la séquence d'affectation qui permet de calculer les termes consécutifs.
  2. Ecrire une séquence (ou une fonction Fibo(N)), qui calcule le nième terme N de la suite.
  3. La tester ensuite en faisant calculer et afficher les N premiers termes de cette suite.


Exercice 7 : Suite convergeant vers la racine de N

  1. Soit la suite définie par Uo = N/2 et Un+1 = (Un + N / Un) / 2 , où N est un naturel; en admettant sa convergence, vérifier que sa limite est racine de N.
  2. Dans une instruction WHILE, calculer ses termes successifs, tant que la valeur absolue de la différence de 2 termes consécutifs dépasse 10-6, c'est-à-dire | Un+1 - Un | > 1E-6
  3. Ensuite, conclure et afficher le nombre d'itérations calculées.


Exercice 8 : Maitriser la boucle for

<script>
var s=0	
for(k=0,j=10;k<10;k++,j--) {
	s +=k*j			   	
	document.write(s+"<BR>")
 }
document.write("Valeur finale de s = " +s+"<P>")	
var s1=0;
   for (var n=0 ; n< 1000 ; n++ )
   if (n%3==0) s1 += n;
   document.write("Valeur de s1 = " + s1+"<P>"); 
      
var s2, n ;
   for (n=0, s2=0 ; n< 1000 ; n=n+3 )
       s2 += n;
   document.write ("Valeur de s2 = " + s2+"<P>"); 
      
var s3;
   for ( n=0, s3=0 ; n< 1000;  s3 += n , n=n+3 )
       ;
   document.write("Valeur de s3 = " + s3+"<P>"); 
      
var s4;
   for ( n=0, s4=0 ; n< 1000;  n=n+3 , s4 += n )
       ;
   document.write("Valeur de s4 = " + s4+"<P>"); 
      
var s5;
   for ( n=0, s5=0 ; n< 1000 && s5 < 500 ;  s5 += n , n=n+3 )
       ;
   document.write("Valeur de s5 = " + s5 +" et arret à n = "+n);
</script>