From 0afbc15250f75ac7d7650e856ddefab4b0c35994 Mon Sep 17 00:00:00 2001 From: AnnaFYZ <113105718+AnnaFYZ@users.noreply.github.com> Date: Sun, 19 Feb 2023 11:51:23 +0000 Subject: [PATCH 1/4] mandatory done --- extra/1-currency-conversion.js | 8 ++++++-- extra/2-piping.js | 17 ++++++++++------- mandatory/1-syntax-errors.js | 13 +++++++------ mandatory/2-logic-error.js | 8 ++++---- mandatory/3-function-output.js | 4 ++++ mandatory/4-tax.js | 8 ++++++-- 6 files changed, 37 insertions(+), 21 deletions(-) diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index 75b3c6aab..ed0514c68 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -5,7 +5,9 @@ Write a function that converts a price to USD (exchange rate is 1.4 $ to £) */ -function convertToUSD() {} +function convertToUSD(amount) { + return amount / 1.4; +} /* CURRENCY CONVERSION @@ -15,7 +17,9 @@ function convertToUSD() {} They have also decided that they should add a 1% fee to all foreign transactions, which means you only convert 99% of the £ to BRL. */ -function convertToBRL() {} +function convertToBRL(amount) { + return amount * 0.99 / 5.7; +} /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. diff --git a/extra/2-piping.js b/extra/2-piping.js index b4f8c4c1b..17261d4b4 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -16,26 +16,29 @@ the final result to the variable goodCode */ -function add() { - +function add(a, b) { + return a + b; } -function multiply() { - +function multiply(a, b) { + return a * b; } -function format() { +function format(digit) { + return `£${digit.toString()}`; } const startingValue = 2; // Why can this code be seen as bad practice? Comment your answer. -let badCode = +let badCode = format((startingValue + 10) * 2); + +// functions are not really used, so it would work just for one case /* BETTER PRACTICE */ -let goodCode = +let goodCode = format(multiply(add(startingValue, 10), 2)); /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index d9e004465..6fc5c93ba 100644 --- a/mandatory/1-syntax-errors.js +++ b/mandatory/1-syntax-errors.js @@ -1,16 +1,17 @@ // There are syntax errors in this code - can you fix it to pass the tests? -function addNumbers(a b c) { +function addNumbers(a, b, c) { return a + b + c; } -function introduceMe(name, age) - return `Hello, my {name}` is "and I am $age years old`; +function introduceMe(name, age) { + return `Hello, my name is ${name} and I am ${age} years old`; +} + function getTotal(a, b) { - total = a ++ b; - - return "The total is total"; + total = a + b; + return `The total is ${total}`; } /* diff --git a/mandatory/2-logic-error.js b/mandatory/2-logic-error.js index 9eb8c8cd7..5152c982c 100644 --- a/mandatory/2-logic-error.js +++ b/mandatory/2-logic-error.js @@ -1,16 +1,16 @@ // The syntax for these functions is valid but there are some errors, find them and fix them function trimWord(word) { - return wordtrim(); + return word.trim(); } function getStringLength(word) { - return "word".length(); + return word.length; } function multiply(a, b, c) { - a * b * c; - return; + + return a * b * c; } /* diff --git a/mandatory/3-function-output.js b/mandatory/3-function-output.js index 5a953ba60..535d1f8b3 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -2,13 +2,17 @@ function getRandomNumber() { return Math.random() * 10; } +// returns a random number between 0 (inclusive), and 1 (exclusive) // Add comments to explain what this function does. You're meant to use Google! function combine2Words(word1, word2) { return word1.concat(word2); } +// The concat() method is used to merge two or more arrays. This method does not change the existing arrays, but instead returns a new array. function concatenate(firstWord, secondWord, thirdWord) { + return firstWord.concat(" ", secondWord, " ", thirdWord); + // Write the body of this function to concatenate three words together. // Look at the test case below to understand what this function is expected to return. } diff --git a/mandatory/4-tax.js b/mandatory/4-tax.js index ba77c7ae2..6eadbdccb 100644 --- a/mandatory/4-tax.js +++ b/mandatory/4-tax.js @@ -5,7 +5,9 @@ Sales tax is 20% of the price of the product. */ -function calculateSalesTax() {} +function calculateSalesTax(netPrice) { + return netPrice * 1.2; +} /* CURRENCY FORMATTING @@ -17,7 +19,9 @@ function calculateSalesTax() {} Remember that the prices must include the sales tax (hint: you already wrote a function for this!) */ -function addTaxAndFormatCurrency() {} +function addTaxAndFormatCurrency(netPrice) { + return `£${calculateSalesTax(netPrice).toFixed(2)}`; +} /* =================================================== From f6618a340b5cd8e78ace1eebf26f395ca718cc5d Mon Sep 17 00:00:00 2001 From: AnnaFYZ <113105718+AnnaFYZ@users.noreply.github.com> Date: Sun, 19 Feb 2023 19:58:41 +0000 Subject: [PATCH 2/4] Update 3-magic-8-ball --- extra/3-magic-8-ball.js | 124 +++++++++++++++++++++++++--------------- 1 file changed, 78 insertions(+), 46 deletions(-) diff --git a/extra/3-magic-8-ball.js b/extra/3-magic-8-ball.js index 46f65f928..583744f7f 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -1,53 +1,70 @@ -/** - - Let's peer into the future using a Magic 8 Ball! - https://en.wikipedia.org/wiki/Magic_8-Ball - - There are a few steps to being able view the future though: - * Ask a question - * Shake the ball - * Get an answer - * Decide if it's positive or negative - - The question can be anything, but the answers are fixed, - and have different levels of positivity or negativity. - - Below are the possible answers: - - ## Very positive - It is certain. - It is decidedly so. - Without a doubt. - Yes - definitely. - You may rely on it. - - ## Positive - As I see it, yes. - Most likely. - Outlook good. - Yes. - Signs point to yes. - - ## Negative - Reply hazy, try again. - Ask again later. - Better not tell you now. - Cannot predict now. - Concentrate and ask again. - - ## Very negative - Don't count on it. - My reply is no. - My sources say no. - Outlook not so good. - Very doubtful. -*/ +// /** + +// Let's peer into the future using a Magic 8 Ball! +// https://en.wikipedia.org/wiki/Magic_8-Ball + +// There are a few steps to being able view the future though: +// * Ask a question +// * Shake the ball +// * Get an answer +// * Decide if it's positive or negative + +// The question can be anything, but the answers are fixed, +// and have different levels of positivity or negativity. + +// Below are the possible answers: + + + let veryPositive = [ + + "It is certain.", + "It is decidedly so.", + "Without a doubt.", + "Yes - definitely.", + "You may rely on it." + ] + + let positive = [ + + "Positive", + "As I see it, yes.", + "Most likely.", + "Outlook good.", + "Yes.", + "Signs point to yes." + ] + + let negative = [ + + "Reply hazy, try again.", + "Ask again later.", + "Better not tell you now.", + "Cannot predict now.", + "Concentrate and ask again." + ] + + let veryNegative = [ + + "Don't count on it.", + "My reply is no.", + "My sources say no.", + "Outlook not so good.", + "Very doubtful." + ] + // This should log "The ball has shaken!" // and return the answer. + function shakeBall() { - //Write your code in here -} + console.log("The ball has shaken!"); + // const allAnswers = veryPositive.concat(positive, negative, veryNegative); + const allAnswers = ["very positive", "positive", "negative", "very negative"]; + let answer = allAnswers [Math.floor(Math.random()*allAnswers.length)]; + // console.log(prediction); + return answer; + + } /* This function should say whether the answer it is given is @@ -59,9 +76,24 @@ function shakeBall() { This function should expect to be called with any value which was returned by the shakeBall function. */ function checkAnswer(answer) { + if (veryPositive.indexOf(answer) >= 0 ) { + console.log("very positive"); //Write your code in here + } else if (positive.indexOf(answer) >= 0) { + console.log("positive"); + } else if (negative.indexOf(answer) >= 0) { + console.log("negative"); + } else { + console.log("very negative"); + } + + } + +console.log(checkAnswer(shakeBall())); + + /* ================================== ======= TESTS - DO NOT MODIFY ===== From 4f994abf12b586b4498e40f3c092c17ec1cff5cc Mon Sep 17 00:00:00 2001 From: AnnaFYZ <113105718+AnnaFYZ@users.noreply.github.com> Date: Sun, 19 Feb 2023 21:11:28 +0000 Subject: [PATCH 3/4] parseFloat added --- extra/1-currency-conversion.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index ed0514c68..ed7bdaf6c 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -6,7 +6,7 @@ */ function convertToUSD(amount) { - return amount / 1.4; + return amount * 1.4; } /* @@ -18,7 +18,7 @@ function convertToUSD(amount) { */ function convertToBRL(amount) { - return amount * 0.99 / 5.7; + return parseFloat((amount * 0.99 * 5.7).toFixed(2)); } /* ======= TESTS - DO NOT MODIFY ===== From b7a2ab7db854398740b3dc41a59ff84fd3bab715 Mon Sep 17 00:00:00 2001 From: AnnaFYZ <113105718+AnnaFYZ@users.noreply.github.com> Date: Sun, 19 Feb 2023 21:20:24 +0000 Subject: [PATCH 4/4] all fixed --- extra/3-magic-8-ball.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/extra/3-magic-8-ball.js b/extra/3-magic-8-ball.js index 583744f7f..923e3d30b 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -59,7 +59,7 @@ function shakeBall() { console.log("The ball has shaken!"); // const allAnswers = veryPositive.concat(positive, negative, veryNegative); - const allAnswers = ["very positive", "positive", "negative", "very negative"]; + const allAnswers = [...veryPositive, ...positive, ...negative, ...veryNegative]; let answer = allAnswers [Math.floor(Math.random()*allAnswers.length)]; // console.log(prediction); return answer; @@ -77,14 +77,14 @@ function shakeBall() { */ function checkAnswer(answer) { if (veryPositive.indexOf(answer) >= 0 ) { - console.log("very positive"); + return "very positive"; //Write your code in here } else if (positive.indexOf(answer) >= 0) { - console.log("positive"); + return "positive"; } else if (negative.indexOf(answer) >= 0) { - console.log("negative"); + return "negative"; } else { - console.log("very negative"); + return "very negative"; }