swap
en C
void swap(int *xp, int *yp){
int temp = *xp;
*xp = *yp;
*yp = temp;
}
int main()
{
int x=1, y=2;
swap(&x, &y);
printf("x = %d, y = %d", x, y);
return 0;
}
➥ code dans Pythontutor
js
let swap = (x,y) => [y,x];
let x=1, y=2;
[x,y] = swap(x,y);
console.log(`x=${x} y=${y}`)
➥ code dans Pythontutor
Aide TD max col
let TAB_MAX_Value = TAB.reduce((max_val,lig_val)=> Math.max(max_val,Math.max(...(lig_val))),Number.MIN_VALUE);
// ecriture => let TAB_Min = TAB.reduce((m,l) => Math.min(m,Math.min(...(l))),TAB[0][0]);
code source
// ecriture => let TAB_Min = TAB.reduce((m,l) => Math.min(m,Math.min(...(l))),TAB[0][0]);
code source
Discussion autour des boucles
Amélioration du code
La structuration de valeurs dans un tableau, nécessite une boucle pour réaliser un parcours des valeurs.Exemple :
Affichons simplement les éléments d'un tableau :let array = [1, 2, 3];
for (let i = 0; i < array.length; i++) {
let current = array[i];
console.log(current); // affichage
}
Imaginons l'affichage des valeurs comme une action.
for (let i = 0; i < array.length; i++) {
let current = array[i];
actionAffichage(current); // affichage
}
Affichage positif
Pour afficher les valeurs positives, il est facile de créer une condition ; la fonction précédente devient.for (let i = 0; i < array.length; i++) {
let current = array[i];
if (current>0) actionAffichage(current);
}
ou
for (let i = 0; i < array.length; i++) {
let current = array[i];
actionAffichagePositif(current);
}
Affichage Négatif
Pour afficher les valeurs négatives, il est facile de créer une condition ; la fonction précédente devient.for (let i = 0; i < array.length; i++) {
let current = array[i];
actionAffichageNégatif(current);
}
Bilans
Pour chaque type d'affichage, il est nécessaire de redéfinir la boucle.Améliorations
Nous allons encapsuler le code de la boucle dans une fonction forEach.Il nous reste à réfléchir sur le passage des actions (positif, négatif ...) comme paramètres.
Ainsi, "afficher quelque chose" peut être vu comme une fonction.Les fonctions étant des variables et comme les variables peuvent être passées en paramètres, on peut passer "afficher quelque chose" à une fonction.
Ainsi, la fonction "afficher quelque chose" sera passée en paramètre à la fonction forEach.
Résumé des codes
Affichage |
function affVal(v){
console.log(`val
tab : ${v}`)
}
|
Affichage Positif |
function AffPositif(v){
if (v>0)
console.log(` val positif : ${v} `);
}
|
Boucle sur le tableau |
function forEach(array, fx) {
for (var i = 0; i < array.length; i++)//for of
fx(array[i]);
}
|
Appel |
forEach(T, AffPositif); |
Appel anonyme |
forEach(T, function (v){
console.log(`-> tab : ${v}`);
});
|
En Action
Fichier code
JS Bin on jsbin.com
Pour aller plus loin !
forEach(filtre(T, EstPositif),affVal)
Définir la fonction "filtre" qui prend en paramètre également une fonction permettant de ne concerner que certaines valeurs du tableau.
Ainsi la fonction affVal ne fait plus qu'afficher, elle ne filtre pas les valeurs.
Ainsi la fonction affVal ne fait plus qu'afficher, elle ne filtre pas les valeurs.
Série d'articles
Les pointeurs
Série d'articles sur :
- paramètres
- fonction en argument
- Découvrir les closures
New ES6
Cas du dom
python tutor
const names = [{name:'Farrin'}, {name:'Kagure'}, {name:'Asser'}];
const upperizedNames = names.map(function(pers) {
return pers.toUpperCase();
});
lien
Inscription à :
Articles (Atom)