Syntaxe Book Algo Book Algo Terre Algo Eau Algo Air
Problème Solution
- 1 -
Combinaise de 3 chiffres
Epreuve de l'eau'
- Javascript -
let chiffre = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
let grp = []; let tab = []; let sol = [];

//Fonction qui fait des groupes de trois chiffre différents
let groupe = (chiffre) => {
let n = 0
for (let x = 0; x < chiffre.length - 2; x++) {
for (let y = 0; y < chiffre .length; y++) {
for (let z = 0; z < chiffre.length; z++) {
if (chiffre[x] !== chiffre[y] && chiffre[y] !== chiffre[z] && chiffre[x] !== chiffre[z]) {
grp[n] = [chiffre[x], chiffre[y], chiffre[z]]
n++
}
}
}
}
}

//Fonction qui tri les groupes de manière croissante
let tri = (grp) => {
for (let t = 0; t < grp.length; t++) {
let sol = grp[t];
let res = [];
let i = 0;
let j = 0;

while(sol.length != res.length) {
if ((sol[i] <= res[j]) || (res[j] == undefined)) {
res.splice(j, 0, sol[i]);
i++;
j = 0;
} else {
j++;
}
}
tab.push(res)
tab.sort()
}
}

//Gestion des erreurs
if (process.argv.length > 2) {
console.log("Le script n'a pas besoin d'argument pour fonctionner.")
return
}

//Résolution du problème
groupe(chiffre)
tri(grp)
sol.push(tab[0])

//Boucle qui supprime les doublons
for (let a = 0; a < tab.length; a++) {
for (let b = 0; b < tab.length; b++) {
if (JSON.stringify(tab[a]) == JSON.stringify(tab[b])) {
tab.splice(a, 1)
}
}
}

//Boucle qui regroupe les 3 chiffres
for (a = 0; a < tab.length; a++) {
tab[a] = tab[a].join('')
}

//Affichage du résultat
console.log(tab.toString())
- 2 -
Chiffre entre 00 & 99
Epreuve de l'eau
- Javascript -
let chiffre = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
let nb = [];
let grp = [];

//Fonction qui fait un tableau de nombre entre 0 et 99
let nombre = (chiffre) => {
let i = 0;
for (let n = 0; n < chiffre.length; n++) {
for (let nn = 0; nn < chiffre.length; nn++) {
nb[i] = chiffre[n] + chiffre[nn]
i++
}
}
}

//Fonction qui fait fait toutes les combinaisons de deux nombres différents
let groupe = (nb) => {
let j = 0;
for (let a = 0; a < nb.length; a++) {
for (let b = a + 1; b < nb.length; b++) {
grp[j] = nb[a] + nb[b]
j++
}
}
grp = grp.toString()
}

//Gestion des erreurs
if (process.argv.length > 2) {
console.log("Le script n'a pas besoin d'argument pour fonctionner.")
return
}

//Résolution du problème
nombre(chiffre)
groupe(nb)

//Affichage du Résultat
console.log(grp)
- 3 -
Affichez à l'envers
Epreuve de l'eau
- Javascript -
//Script qui affiche les arguments à l'envers

// Function qui parcour un tableau à l'envers et qui affiche chaque index
let reverse = (tab) => {
for (let a = tab.length - 1; a >= 0; a--) {
console.log(tab[a])
}
}

//Gestion d'erreur
if (process.argv.length < 4) {
console.log("Veuillez indiquer au moins deux arguments au script")
}

//Parsing
let arg = process.argv

//Résolution du problème et Affichage
arg.splice(0, 2)
reverse(arg)
- 4 -
n-ème élément de la suite de Fibonacci
Epreuve de l'eau
- Javascript -
//Fonction qui calcul la suite de Fibonacci
let fibo = (tab) => {
for (let a = 0; a != stop; a++) {
let next = tab[a] + tab[a + 1];
tab.push(next)
}
}

//Gestion d'erreur
if (process.argv.length != 3) {
console.log("Veuillez indiquer qu'un seul argument au script")
return
} else if (Number(process.argv[2]) % 1 != 0) {
console.log("Veuillez indiquer un nombre en argument")
return
}

//Parsing
let start = [0, 1];
let stop = process.argv[2]

//Résolution du problème
fibo(start)

//Affichage du résultat
console.log(start[stop])
- 5 -
1er supérieur à l'arguments
- Javascript -
//Gestion d'erreur
if (process.argv.length != 3) {
console.log("Veuillez indiquer un nombre en argument")
return
}

//Parsing
let arg = process.argv[2]
const nb = process.argv[2]

let fs = require('fs')
let vm = require('vm')

//Récupération du script qui détermine si un nombre est premier
let entier = fs.readFileSync("../../Epreuve_Terre/Terre11/terre11.js", "utf8")

//Exécution du script
vm.runInThisContext(entier)

premier(arg)
//Execution de la fonction du script tant qu'un nombre premier n'est pas trouvé
while (win != true) {
arg = Number(arg) + 1
premier(arg)
res = 0
}

//Affichage
console.log("Le premier nombre premier supérieur à " + nb + " est " + arg)
- 6 -
affiche si le dernier argument
est présent dans les précédents
- Javascript -
//Function
let string = (tab) => {
for (let a = 0; a < tab.length - 1; a++) {
if (JSON.stringify(tab[tab.length - 1]) == JSON.stringify(tab[a])) {
win = true
i = a
return
} else {
win = false
}
}
}

//Gestion d'erreur
if (process.argv.length < 4) {
console.log("Veuillez indiquer au minimum, deux arguments")
return
}

//Parsing
let arg = process.argv
arg.splice(0, 2)
let win
let i

//Résolution du problème
string(arg)

//Affichage
if (win == false) {
console.log(arg[arg.length - 1] + " n'est pas présent")
} else {
console.log(arg[arg.length - 1] + " est présent à l'index " + i)
}
- 7 -
affiche la différence minimum
absolu d'une liste
- Javascript -
//Gestion d'erreur
if(process.argv.length < 4) {
console.log('Veuillez indiquer au minimum deux nombres en argument')
return
}
process.argv.splice(0, 2)
for (i in process.argv) {
if (process.argv[i] % 1 != 0) {
console.log("Veuillez indiquer seulement des nombres en argument")
return
}
}

//Parsing
let arg = process.argv
let sol

//Résolution du problème
for (let a = 0; a < arg.length; a++) {
for (let b = 0; b < arg.length; b++) {
//Différence entre toutes les valeurs du tableau
let dif = arg[a] - arg[b]
//Mise du résultat au positif
let positif
if (dif < 0) {
positif = 0 - dif
} else if (dif > 0) {
positif = dif
}
//Si diférence plus petite affecter dans solution
if (positif < sol || sol == undefined) {
sol = positif
}
}
}

//Affichage
console.log(sol)
- 8 -
tri à bulle
- Javascript -
//Function du tri à bulle
function my_bulle_sort(tab){
let changed;
do{
changed = false;
for(let a = 0; a < tab.length - 1; a++) {
if(tab[a] > tab[a+1]) {
let big = tab[a];
tab[a] = tab[a+1];
tab[a+1] = big;
changed = true;
}
}
} while(changed);
}
//Function qui transforme chasue index en nombre
function num(tab) {
for (let b = 0; b < tab.length; b++) {
tab[b] = Number(tab[b])
}
}

//Gestion d'erreur
if(process.argv.length < 4) {
console.log('Veuillez indiquer au minimum deux nombres en argument')
return
}

//Parsing
let arg = process.argv

//Résolution du problème
num(arg)
my_bulle_sort(arg);

//Affichage
console.log(arg);
- 9 -
tri par sélection
- Javascript -
//Function du tri par sélection
function my_select_sort(tab) {
let min
for (let a = 0; a < tab.length; a++) {
min = a;
for (let b = a + 1; b < tab.length; b++) {
if (tab[b] < tab[min]) {
min = b
}
}
let small = tab[a]
tab[a] = tab[min]
tab[min] = small
}
return tab
}
//Function qui transforme les string en nombres
function num(tab) {
for (let c = 0; c < tab.length; c++) {
tab[c] = Number(tab[c])
}
}

//Gestion d'erreurs
if(process.argv.length < 4) {
console.log('Veuillez indiquer au minimum deux nombres en argument')
return
}
process.argv.splice(0, 2)
for (i in process.argv) {
if (process.argv[i] % 1 != 0) {
console.log("Veuillez indiquer seulement des nombres en argument")
return
}
}

//Parsing
let arg = process.argv

//Résolution du problème
num(arg)
my_select_sort(arg)

//Affichage
console.log(arg);
- 10 -
tri les arguments
suivant l'ordre Ascii
- Javascript -
//Function qui tri les argument suivant l'ordre Ascii
let triAscii = (tab) => {
let num = []; let stg = []; let tabAscii = [];

// Function qui sépare les nombres et string
let part = () => {
for (let a = 0; a < tab.length; a++) {
if (tab[a] % 1 == 0) {
num.push(tab[a])
} else {
stg.push(tab[a])
}
}
}

//Function qui tri les tableaux
let tri = (tab) => {
let newtab = []; let i = 0; let j = 0;
for (let b = 0; b < tab.length; b++) {
while(tab.length != newtab.length) {
if ((tab[i] <= newtab[j]) || (newtab[j] == undefined)) {
newtab.splice(j, 0, tab[i]);
i++;
j = 0;
} else {
j++;
}
}
}
return newtab
part()
tri(num)
tri(stg)

//Assembler les tableaux
tabAscii = tri(num).concat(tri(stg))
return tabAscii
}

//Gestion d'erreur
if(process.argv.length < 4) {
console.log('Veuillez indiquer au minimum deux arguments')
return
}

//Parsing
let arg = process.argv
arg.splice(0, 2)

//Résolution du problème
triAscii(arg)

//Affichage
console.log(triAscii(arg))