first commit with existing project files

This commit is contained in:
Vincent Guillet
2025-04-02 11:33:15 +02:00
parent f447ea8a0f
commit c8e200b42f
18 changed files with 515 additions and 0 deletions

33
algo Normal file
View File

@@ -0,0 +1,33 @@
a entier
b entier
c entier
debut
a = 5
b = 7
c = a //c = 5
a = b //a = 7
b = c //b = 5
fin
-----------------------------
a entier
b entier
debut
a = 5
b = 7
b = b - a //b = 2
a = a + b //a = 7
b = a - b //b = 5
fin

12
algo carré Normal file
View File

@@ -0,0 +1,12 @@
a entier
debut
ecrire "Entrer un nombre: "
lire a
a = a * a
afficher a
fin

12
algo_js/cafe.js Executable file
View File

@@ -0,0 +1,12 @@
const prompt = require('prompt-sync')();
// Café ?
let reponse;
while (reponse != 'o' && reponse != 'n') {
reponse = prompt("Café?");
}
if (reponse == 'o') console.log("Voila votre café");
else console.log("au revoir");

52
algo_js/chiffre_cesar.js Normal file
View File

@@ -0,0 +1,52 @@
const prompt = require('prompt-sync')();
// Chiffre de César
let alphabetArray = [];
alphabetToArray("abcdefghijklmnopqrstuvwxyz");
let message = prompt("Entrez un message à chiffrer : ");
let messageChiffre = cesarEncrypt(message, 13);
console.log("Message chiffré : " + messageChiffre);
console.log("Message déchiffré : " + cesarDecrypt(messageChiffre, 13));
function cesarEncrypt(message, decalage) {
let messageChiffre = "";
for (let i = 0; i < message.length; i++) {
let lettre = message[i];
let index = alphabetArray.indexOf(lettre);
if (index === -1) messageChiffre += lettre;
else {
let indexChiffre = (index + decalage) % alphabetArray.length;
messageChiffre += alphabetArray[indexChiffre];
}
}
return messageChiffre;
}
function cesarDecrypt(message, decalage) {
let messageDechiffre = "";
for (let i = 0; i < message.length; i++) {
let lettre = message[i];
let index = alphabetArray.indexOf(lettre);
if (index === -1) messageDechiffre += lettre;
else {
let indexChiffre = (index - decalage + alphabetArray.length) % alphabetArray.length;
messageDechiffre += alphabetArray[indexChiffre];
}
}
return messageDechiffre;
}
function alphabetToArray(alphabet) {
for (let i = 1; i < alphabet.length; i++) {
alphabetArray.push(alphabet[i]);
}
}

19
algo_js/escaliers.js Normal file
View File

@@ -0,0 +1,19 @@
const prompt = require('prompt-sync')();
// Escalier
const hash = "#"
const space = " "
let nombre = prompt("Entrez le nombre de marches : ")
for (let i = 1; i <= nombre; i++) {
let escalier = ""
for (let j = 1; j <= nombre; j++) {
if (j <= nombre - i) escalier += space
else escalier += hash
}
console.log(escalier)
}

12
algo_js/multiplication.js Normal file
View File

@@ -0,0 +1,12 @@
const prompt = require('prompt-sync')();
// Table de multiplication
let n = parseInt(prompt("Entrez un nombre entier : "));
let table = "";
for (let i = 1; i <= 9; i++) {
table += `${n} x ${i} = ${n * i}\n`;
}
console.log(table);

17
algo_js/nombre_cache.js Normal file
View File

@@ -0,0 +1,17 @@
const prompt = require('prompt-sync')();
// Deviner le nombre caché
let nombreCache = Math.floor(Math.random() * 100);
let propostion = parseInt(prompt("Devinez le nombre caché entre 1 et 100 :"));
while (propostion != nombreCache) {
if (propostion < nombreCache) console.log("C'est plus grand !");
else if (propostion > nombreCache) console.log("C'est plus petit !");
propostion = prompt("Réessayez :");
}
if (propostion == nombreCache) console.log("Bravo ! Vous avez deviné le nombre caché !");

45
algo_js/package-lock.json generated Normal file
View File

@@ -0,0 +1,45 @@
{
"name": "algo_js",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "algo_js",
"version": "1.0.0",
"dependencies": {
"prompt-sync": "^4.2.0"
}
},
"node_modules/ansi-regex": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
"integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/prompt-sync": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/prompt-sync/-/prompt-sync-4.2.0.tgz",
"integrity": "sha512-BuEzzc5zptP5LsgV5MZETjDaKSWfchl5U9Luiu8SKp7iZWD5tZalOxvNcZRwv+d2phNFr8xlbxmFNcRKfJOzJw==",
"license": "MIT",
"dependencies": {
"strip-ansi": "^5.0.0"
}
},
"node_modules/strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"license": "MIT",
"dependencies": {
"ansi-regex": "^4.1.0"
},
"engines": {
"node": ">=6"
}
}
}
}

13
algo_js/package.json Normal file
View File

@@ -0,0 +1,13 @@
{
"name": "algo_js",
"version": "1.0.0",
"description": "",
"main": "cafe.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"private": true,
"dependencies": {
"prompt-sync": "^4.2.0"
}
}

22
algo_js/palindrome.js Normal file
View File

@@ -0,0 +1,22 @@
const prompt = require('prompt-sync')();
// Palindromes
let word = prompt("Entrez une chaîne de caractères : ");
if (isPalindrome(word)) console.log(word + " est un palindrome.");
else console.log(word + " n'est pas un palindrome.");
function isPalindrome(word) {
let left = 0;
let right = word.length - 1;
for (let i = 1; i < word.length; i++) {
//console.log("Left: " + word[left] + "(" + left + ")" + " Right: " + word[right] + "(" + right + ")");
if (word[left] !== word[right]) return false;
left++;
right--;
}
return true;
}

10
algo_js/somme.js Normal file
View File

@@ -0,0 +1,10 @@
// Somme des n premiers entiers
let n = parseInt(prompt("Entrez un nombre entier positif : "));
let somme = 0;
for (let i = 1; i <= n; i++) {
somme += i;
}
alert("La somme des " + n + " premiers entiers est : " + somme);

28
algo_js/spirale.js Normal file
View File

@@ -0,0 +1,28 @@
const prompt = require('prompt-sync')();
let listePremiers = tablePremiers(parseInt(prompt("Quantité de nombres premiers : ")));
for (let i = 0; i < listePremiers.length; i++) {
console.log(listePremiers[i]);
}
function tablePremiers(n) {
let table = [];
let i = 2; // Le premier nombre premier
for (let j = 0; j < n; j++) {
while (!isPremier(i)) i++;
table.push(i);
i++;
}
return table;
}
function isPremier(n) {
if (n <= 1) return false;
for (let i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) return false;
}
return true;
}

View File

@@ -0,0 +1,28 @@
const prompt = require('prompt-sync')();
// Recherche dichotomique
let table = [1,5,23,26,35,39,46,53,68,79,90];
let nombre = parseInt(prompt("Entrez un nombre à rechercher: "));
let debut = 0;
let fin = table.length - 1;
45
while (debut <= fin) {
if (!table.includes(nombre)) {
console.log(nombre + " n'est pas dans le tableau !")
break;
}
let milieu = Math.floor((debut + fin) / 2);
console.log("Recherche entre " + table[debut] + " et " + table[fin]);
if (table[milieu] === nombre) {
console.log("Trouvé ! : " + nombre)
break;
} else if (table[milieu] < nombre) debut = milieu + 1;
else fin = milieu - 1;
}

View File

@@ -0,0 +1,12 @@
// Min et max tableau
let min = table[0];
let max = table[0];
for (let i = 0; i < table.length; i++) {
if(table[i] < min) min = table[i];
else if (table[i] > max) max = table[i];
}
console.log("Min: " + min);
console.log("Max: " + max);

17
algo_js/tableau_tri.js Normal file
View File

@@ -0,0 +1,17 @@
// Tri tableau
let table = [17, 22, 43, 61, 45, 49, 8, 27, 62];
for (let i = 0; i < table.length; i++) {
for (let j = i+1; j < table.length; j++) {
if (table[i] > table[j]) {
let temp = table[i];
table[i] = table[j];
table[j] = temp;
}
}
}
console.log(table)

43
exo algo Normal file
View File

@@ -0,0 +1,43 @@
j entier
m entier
a entier
b booléen
DEBUT
ECRIRE "Entrez un jour"
LIRE j
ECRIRE "Entrez un mois"
LIRE m
ECRIRE "Entrez une année"
LIRE a
SI (j <= 0 OU j > 31) OU (m <= 0 OU m > 12) OU (a <= 0) ALORS
ECRIRE "Erreur dans la date"
SINON
SI ((a%4 == 0 ET a%100 != 0) OU (a%400 == 0)) ALORS
b = VRAI // Année bissextile
SINON
b = FAUX // Année non bissextile
FINSI
SI (m == 2) ALORS
SI (b == VRAI ET j <= 29) OU (b == FAUX ET j <= 28) ALORS
ECRIRE "Date valide"
SINON
ECRIRE "Erreur dans la date"
FINSI
SINON SI (m == 4 OU m == 6 OU m == 9 OU m == 11) ALORS
SI (j <= 30) ALORS
ECRIRE "Date valide"
SINON
ECRIRE "Erreur dans la date"
FINSI
SINON
SI (j <= 31) ALORS
ECRIRE "Date valide"
SINON
ECRIRE "Erreur dans la date"
FINSI
FINSI
FINSI

50
exo date valide.txt Normal file
View File

@@ -0,0 +1,50 @@
j entier
m entier
a entier
b booléen
DEBUT
ECRIRE "Entrez un jour"
LIRE j
ECRIRE "Entrez un mois"
LIRE m
ECRIRE "Entrez une année"
LIRE a
SI (j <= 0 OU j > 31) OU (m <= 0 OU m > 12) OU (a <= 0) ALORS
ECRIRE "Erreur dans la date"
SINON
SI ((a%4 == 0 ET a%100 != 0) OU (a%400 == 0)) ALORS
b = VRAI // Année bissextile
SINON
b = FAUX // Année non bissextile
FINSI
SI (m == 2) ALORS
SI (b == VRAI ET j <= 29) OU (b == FAUX ET j <= 28) ALORS
ECRIRE "Date valide"
SINON
ECRIRE "Erreur dans la date"
FINSI
SINON SI (m == 4 OU m == 6 OU m == 9 OU m == 11) ALORS
SI (j <= 30) ALORS
ECRIRE "Date valide"
SINON
ECRIRE "Erreur dans la date"
FINSI
SINON
SI (j <= 31) ALORS
ECRIRE "Date valide"
SINON
ECRIRE "Erreur dans la date"
FINSI
FINSI
FINSI

90
exo pseudo code.txt Normal file
View File

@@ -0,0 +1,90 @@
a entier
DEBUT
ECRIRE "Entrez un nombre"
LIRE a
SI a < 0 ALORS
ECRIRE a . " est négatif"
SINON SI a > 0 ALORS
ECRIRE a . " est positif"
SINON
ECRIRE a . " est égal à 0"
FINSI
FIN
----------------------------------
a entier
b entier
DEBUT
ECRIRE "Entrez deux nombres"
LIRE a
LIRE b
SI ((a < 0) OU (b < 0)) OU !((a < 0) ET (b < 0))
ALORS ECRIRE "Le produit de " a . " par " . b " est négatif"
SINON ECRIRE "Le produit de " a . " par " . b " est positif"
FINSI
FIN
----------------------------------
v entier
route chaine de caractères
DEBUT
ECRIRE "Entrez la valeur de la vitesse"
LIRE v
ECRIRE "Entrez le type de route"
LIRE route
SI (v > 130) OU
(route = "Départementale" ET v > 90 ) OU
("Ville" ET v > 50)
ALORS
ECRIRE "Excès de vitesse !"
SINON
ALORS
ECRIRE "Pas d'excès de vitesse."
FINSI
FIN
----------------------------------
t entier
s entier
m entier
h entier
DEBUT
ECRIRE "Entrer le temps en millisecondes"
LIRE t
ms = t%1000 //50
t = (t - ms) / 1000
s = t%60 //6
t = (t - s)
m = t%60 //1
t = (t - m) / 60
h = t%60 //1
ECRIRE "Temps : h . "h " . m . "m " . s . "s " . ms . "ms"
FIN