Sagot :
Réponse :
Tu peux essaye le code ici c'est en javascript mais tu devrai pouvoir t'en aidé pour le faire en python
au finale j'ai pas fait que du pseudo code :)
https://jsfiddle.net/deiiku/m8tr3y95/
Explications :
https://jsfiddle.net/deiiku/m8tr3y95/
/* get order va récuperer le nom du client et donné la commande ou false si pas possible */
function getOrder(nameCustomer,orderList) {
let indexCliOrder = nameCustomer.replace("cli","");
// check if le tableau a une longeur suffisante pour récuperer la command
// je check aussi que la valeur de indexCliOrder est uniquement un nombre entre 0-9 est rien d'autre si
if (orderList.length < indexCliOrder || indexCliOrder.match(/^[0-9]+$/) == null)
return false;
return orderList[indexCliOrder];
}
function countTotalPriceOrder(order,listPrice) {
let totalPrice = 0;
// exemple order === [10,12,2,5,0,8,9,4,1,10]
for (let i = 0; i < order.length; i++) {
let quantityDemand = order[i];
let price = listPrice[i];
let priceTotalOneProduct = quantityDemand * price;
totalPrice = totalPrice + priceTotalOneProduct;
}
return totalPrice;
}
function removeOrderFromStock(stock,order) {
// le stock est un tableau a key pas d'index il va faloire récuperer les key banene orange ect..
// En python exemple : myDict.keys() # => ["john", "jeff"] nous donne un tableau de toute les key
for (let i= 0; i < order.length; i++) {
let quantityProductToWithdraw = order[i];
let listKeyStock = Object.keys(stock); //["banane", "orange", "poire", "pamplemousse" ect...]
let key = listKeyStock[i]; // key = "banana" par exemple
stock[key] = stock[key] - quantityProductToWithdraw;
}
return stock;
}
function buy(stock,order,price,nameCustomer) {
let totalPrice = countTotalPriceOrder(order,price);
console.log(nameCustomer + " doit payer " + totalPrice +"euros");
let newStock = removeOrderFromStock(stock,order);// retourne le stock a jour après l'achat du client;
console.log(newStock); //on affiche le stock total comme demandé dans le sujet
return newStock;
}
let enterStandardValue = "cli1";
let cli = [
[10,12,2,5,0,8,9,4,1,10],
[8,1,3,1,0,8,9,4,1,10],
[1,3,2,5,0,8,9,4,1,10]
];
// if enterStandardValue == cli1
// alors == cli[0]
// if enterStandardValue == cli2
// alors == cli[1] ect..
let stock = {"banane":130, "orange" : 1150, "poire" : 85, "pamplemousse" :53, "avocat" : 191, "Poireau":233, "Poivzon" : 145, "chou" : 1100, "celeri" : 164,"fenouil":142 };
let prix = [1.2,1.7,1.75,1.9,3.1,0.7,2.1,1.35,1.8,2.25];
// prix des stock prix[0] = banane , prix[8] = prix du celerie et prix[1] = orange ect..
let order = getOrder(enterStandardValue,cli);
if (order != false)
{
stock = buy(stock,order,prix, enterStandardValue);
// on change la variable stock avec la nouvelle valeur retourne de buy;
}