Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Nom du fichier : intersection.js
  2. //Valérie Panaite
  3.  
  4. //Exercice noté 5
  5. //13 novembre 2019
  6.  
  7. //Ce programme prend deux tableaux de nombres et
  8. //retourne les valeurs qui sont présentes dans les deux.
  9.  
  10.  
  11. //Première fonction
  12. //Cette fonction combine la deuxieme et la troisime fonction.
  13. //elle donne le resultat final en prenant les deux tableaux initials.
  14.  
  15. var intersection = function(PremierTableau,DeuxièmeTableau){
  16.  
  17.         return retirer (transformer (PremierTableau,DeuxièmeTableau));
  18.  
  19. };
  20.  
  21. //Deuxieme fonction
  22. //Cette fonction crée un tableau contenant les chiffres qui sont
  23. //présents dans les 2 tableaux fournis
  24.  
  25. var transformer = function (PremierTableau, DeuxièmeTableau) {
  26.  
  27.     var resultat= Array(0); //au départ, il y a rien dans le tableau
  28.  
  29.     for (var n = 0; n < PremierTableau.length; n++) {     //il faut comparer tous
  30.                                                           //les chiffres entre eux
  31.         for (var i = 0; i < DeuxièmeTableau.length; i++) {
  32.        
  33.             if (DeuxièmeTableau [i] == PremierTableau [n]) {
  34.  
  35.                 var chiffre = DeuxièmeTableau [i];
  36.                 resultat.push(chiffre);//on rajoute des elements au tabeau
  37.  
  38.             }
  39.             else {
  40.                            // si les chiffres ne sont pas pareils,
  41.                 continue; // on continue avec les prochains
  42.             }
  43.         }
  44.     }
  45.     return resultat;
  46. };
  47.  
  48.  
  49. //Troisieme fonction
  50. //Cette fonction retire les chiffres en double
  51. //du tableau de résultat et crée un tableau avec
  52. //le résultat final
  53.  
  54.  
  55. var retirer = function (resultat) {
  56.  
  57.     var n = 0;
  58.     var resultatFinal = [];
  59.     var boolean = false;
  60.     resultatFinal.push (resultat[0]); //on met le premier chiffre
  61.                                       //dans le tableau final
  62.     for (var x = 0; x < resultat.length; x++) { //on lit tous les chiffres
  63.                                                //du tableau resultat
  64.         var double = resultat [x];
  65.  
  66.         for (var i = n; i < resultatFinal.length ; i++) {
  67.  
  68.             if (double == resultatFinal [i]) { //si le chiffre apparait déja
  69.                                               //dans le tableau final
  70.                 boolean = true;
  71.                 n = i; //il ne faut pas que i reccommence du début a chque fois
  72.                 break;
  73.             }
  74.  
  75.     if (boolean == true) {
  76.  
  77.         resultatFinal.push (double); //quand il nest pas en double
  78.         boolean = false;            //on ajoute le chiffre
  79.     }
  80.         }
  81.     }
  82.  
  83.     return resultatFinal;
  84. };
  85.  
  86.  
  87.  
  88. //quatrieme fonction
  89.  
  90. var testIntersection = function () {
  91.  
  92.     assert( intersection([0, 1, 2, 3], [4, 3, 2, 1, 0]) == "0,1,2,3"); //il faut que ca soit
  93.                                                                       //dans l'ordre
  94.     assert( intersection([2,2,2,3], [2, 4]) == "2");//pas de doubles
  95. ;
  96.     assert( transformer([15, 2, 7, 7], [12, 15, 4]) == "15"); //meme les chiffres > 10
  97.     assert( transformer([2, 2, 3], [2,4]) == "2,2"); //il peut y avoir des doubles
  98.  
  99.     assert( retirer([2, 2, 3]) == "2,3"); //double simple
  100.     assert( retirer([2, 3, 2, 4]) == "2,3,4"); //double pas un a cote de lautre
  101.     assert( retirer([1, 2, 3]) == "1,2,3"); //aucun double
  102.     assert( retirer([1, 1, 2, 2, 3, 3, 3]) == "1,2,3"); //plusieurs fois le meme chiffre
  103.  
  104. };
  105.  
  106. testIntersection();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement