👤

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;

}

© 2024 IDNLearn. All rights reserved.