CCCPaste

(Demo) Technology Fundamentals Mid Exam - 02 March 2019

1.Cooking masterclass

function cooking(input){
input=input.map(Number);

let budget=input.shift();
let students=input.shift();
let flourPrice=input.shift();
let singleEggPrice=input.shift();
let apronPrice=input.shift();
let moneyNeeded=0;
let aprons=0;


for (let i=1; i<=students; i++){
moneyNeeded+=singleEggPrice*10;
aprons++;
if (i%5!==0){
moneyNeeded+=flourPrice;
}
}
aprons=Math.ceil(aprons*1.2);

moneyNeeded+=apronPrice*aprons;
if (budget>=moneyNeeded){
console.log(`Items purchased for ${moneyNeeded.toFixed(2)}$.`);
} else {
console.log(`${(moneyNeeded-budget).toFixed(2)}$ more needed.`)
}

}


02. Bread Factory

function baker(input){
let energy=100;
let coins=100;

let arr=input[0].split("|");

let bonusEnergy=0;



for (let i=0; i<arr.length; i++){
element=arr[i];
let elAr=element.split("-");
let action = elAr[0];
let value=Number(elAr[1]);



if (action.includes("rest")){
if (energy+value>100){
bonusEnergy=100-energy;
}

else {
bonusEnergy=value;
}

energy+=bonusEnergy;
console.log(`You gained ${bonusEnergy} energy.`);
console.log(`Current energy: ${energy}.`);

} else if (action.includes("order")) {
if (energy-30>=0){
energy-=30;
coins+=value;
console.log(`You earned ${value} coins.`);
} else {
console.log("You had to rest!");
energy+=50;
}

} else {
if (coins-value>0){
coins-=value;
console.log(`You bought ${action}.`);
} else {
console.log(`Closed! Cannot afford ${action}.`);
breakFlag=true;
return;
}

}



}

console.log("Day completed!");
console.log(`Coins: ${coins}`);
console.log(`Energy: ${energy}`);

}


3.Cooking factory


function bakeFactory(input) {
input = input.slice(0, input.length - 1);
let batchesObjArr = []


for (let i = 0; i < input.length; i++) {
let batch = input[i];
let batchArr = batch.split("#");
batchArr = batchArr.map(Number);
let sum = 0;
batchArr.forEach(element => {
sum += element;
});


batchesObjArr.push({
batch: batchArr,
totalQ: sum,
average: sum / batchArr.length
});

}

batchesObjArr = batchesObjArr.sort(function (a, b) {
return b.totalQ - a.totalQ;
})
let bestBatch = batchesObjArr[0].totalQ;


batchesObjArr = batchesObjArr.filter((element => element.totalQ == bestBatch));
batchesObjArr = batchesObjArr.sort(function (a, b) {
return b.average - a.average;
})

batchesObjArr=batchesObjArr.sort(function(a,b){
return a.batch.length-b.batch.length;
})


console.log(`Best Batch quality: ${bestBatch}`);
console.log(batchesObjArr[0].batch.join(" "));
}