mardi 31 décembre 2019

Entrainement à l'algo

Trouver la fonction qui ne garde que les valeurs de t non incluse dans e

let e = [2,3,4],
     t =  [0,2,2,6,1,3];

résultat :  [0, 6, 1]




Code

vendredi 27 décembre 2019

TD Filtre


"0 : 35 ans"
"1 : 36 ans"
"2 : 40 ans"

"3 : 43 ans"

let i = 1;
for (let pers of tabPers) {
  console.log(`${i++} : ?  ans`);
}

let i = 1;
for (let { ? } of tabPers) {
  console.log(`${i++} : ${a} ans`);
}

let tabPersF = [];
for (let { age, sex } of tabPers) {
    if ( ? ) {
        tabPersF.push( ?); // stocker l'âge
    }
}

TD filtre map and co

Ajouter un point à chaque élève en utilisant un tableau:

let etudiant_1 = 12,
    etudiant_2 = 15,
    etudiant_3 = 17,
    etudiant_4 = 8;

const TAB = [etudiant_1,etudiant_2,etudiant_3,etudiant_4];

function parcours(tab,fx){
  let passed = [];
  for(let val of tab){
    passed.push(fx(val));}
    return(passed);
}

function add(x){
  return(x+1);}

let t = parcours(TAB,add);

code

Ajouter un point à chaque élève en utilisant un tableau d'objets :

let etudiant_1 = {note :12},
    etudiant_2 = {note:15},
    etudiant_3 = {note: 17},
    etudiant_4 = {note:8};
 
let etudiant_5 = {note :10},
    etudiant_6 = {note:3},
    etudiant_7 = {note: 19},
    etudiant_8 = {note:14};
 
const TAB = [etudiant_1,etudiant_2,etudiant_3,etudiant_4];
const TAB2 = [etudiant_5,etudiant_6,etudiant_7,etudiant_8];

function parcours(tab,fx){
  let passed = [];
  for(let val of tab){
    passed.push(fx(val));}
    return(passed);
}

function add({note}){
  return (note + 1);}

let r = parcours(TAB,add);

let b = parcours(TAB2,add);

code


Etude du code :
let T = [2,3,-1]
function forEach(array, fx) {
for (let i = 0; i < array.length; i++)
fx(array[i],i,array);
}

function bonus(v,i,t){
  if (v>0) t[i]+=(t[i]*0.2);
}

function malus(v,i,t){
 if (v<0) t[i]+=(t[i]*0.2);
}

forEach(T, bonus);
forEach(T, malus);

Le tableau array passé en paramètre est modifié.
Les fonctions bonus et malus pointent sur les valeurs du tableau.
La fonction forEach(T,malus) s'exécute sur la tableau array préalablement modifié par forEach(T,bonus).

Une autre version du code:

let T = [2,3,-1]

function forEach(array, fx) {
  let passed = [];
  for (let val of array){
    passed.push(fx(val));}
    console.log(passed);
}

function bonus(v){
    if (v>0) v+=(v*0.2);
    return(v);
}

function malus(v){
    if (v<0) v+=(v*0.2);
    return(v);
}

forEach(T, bonus);
forEach(T, malus);

Dans cette version, il y a création d'un nouveau tableau rempli de valeurs calculées à l'aide de fonctions qui prennent en paramètre une recopie des valeurs du tableau initial.
Ces fonctions retournent une nouvelle valeur, indépendante de celle du tableau initial qui n'est pas modifié.



jeudi 26 décembre 2019

Objet.assign

Bien comprendre la différence entre :

var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };

var obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1);  // { a: 1, b: 2, c: 3 }, l'objet cible est aussi modifié

et

var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };

var obj = Object.assign({},o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1);  // { a: 1, b: 2, c: 3 }, l'objet cible n'est pas modifié 

Les propriétés communes sont assignées selon l'ordre des paramètres

TOP révisions - Convertisseur

Nous voudrions à partir d'un tableau de température en degré ℃ obtenir les valeurs en degré °F. Ou encore convertir un tableau de prix en € en $. 




Code


mardi 24 décembre 2019

TOP révisions - Transforme

Ce code permet:

  •  d'ajouter l'attribut âge à chaque objet 
  • d'afficher le nom des hommes avec leur civilité "MR"
  • d'afficher le tableau contenant l'âge de tous les individus
  • d'afficher le nom des personnes majeures

Fonction filter qui prend en paramètre le tableau à filtrer et le test
Fonction homme qui prend en paramètre le sexe

Refaire le code en utilisant des fonctions pour la civilité, l'âge, etc... 

T = transf(tabPers,setAge) : affiche le tableau d'objets qui contient l'âge
setAge() : permet d'ajouter l'attribut âge
transf() : renvoie le tableau d'objet qui contient les âges
homme(): renvoie 1 si homme, 0 sinon
filter(T, homme) : filtre les hommes
printCiviliteH : ajoute "MR" devant le nom des hommes
transf(tH, printCiviliteH): renvoie "MR" + nom
getAge() : renvoie l'âge 
transf(tHM, getAge) : affiche un tableau d'âges
tHM = filter(tH, majeur) : filtre les personnes majeures
transf(tHM, getAge) : affiche le nom des personnes majeures
transf(thM, getAge) : affiche l'âge des personnes majeures


Code avec modification mais ça ne marche pas encore très bien...
A retravailler à l'aide de ce code


lundi 23 décembre 2019

Le père Noël va bientôt passer


Oh Oh Oh

Tableau de cartes


Compléter le code pour créer un tableau contenant les cartes d’un jeu de (4*13 = )52.

let dictionnary = { 'H': '\u2665', 'C': '\u2663', 'D': '\u2666', 'S': '\u2660',  1: 'A', 11: 'J', 12: 'Q', 13: 'K'};

function cardToString({suit,value}) { //
    if (!dictionnary[value]==0) value=dictionnary[value];
    return value+dictionnary[suit];
}

const cards = [],suits = ['H', 'C', 'D', 'S'];

for (let val of suits){
  for (let j =1; j<14; j++){
  let suit = val;
  let value = j;
cards.push({ suit,value });
}

}

for (let c of cards){
   console.log(`${c.suit}${c.value}`);

}

for (let c of cards){
   console.log(`${cardToString(c)}`);
}


Code

Oh ça marche !

Suite TD structure de contrôle


Compléter le code pour donner la catégorie d’un couleur.

Aperçu du code 

Code

Compléter le corps de la fonction decrease pour avoir les cas test suivant.

Si a < b
Si a > b
Si autre
return 1;
return -1;
Return 0;



A l'aide

Compléter le code pour afficher le prompt tant que l’on ne saisit pas un code avec 2 chiffres consécutifs.
let code;
? {
    code = prompt(`Entrez un code avec 2 nombres consécutifs`);
} ?
On pourra utiliser le test 
!/(?:[0-9]{2}).*/.test(code);




dimanche 22 décembre 2019

TD Structures de contrôle

Ecrire avec des if else if, la recherche d’une année bissextile

Code
Aperçu




Ecrire une boucle avec for of pour afficher les valeurs en majuscule du tableau T.

var T = ["j","s","b","i","n"];
For...of

















Exercice for...of

Transformer la fonction suivante avec for … of
function findEvenNumber(arr) {
    loop: { // Étudier les Label de boucle
        for (let i=0, len = arr.length; i<len; i++) {
            let elem = arr[i];
            if ((elem % 2) === 0) {
                console.log(`trouvez : ${elem}`);
                break loop;
            }
        }
        console.log(`Pas de nb pair`);
    }
    console.log(`Fin`);
}
findEvenNumber([3,5,5,2]);




Contenu d'un noeud

Etude de la différence entre: Element. innerHTML:  renvoie le HTML Element. textContent: renvoie le contenu textuel du noeud et de ses desce...