From 9f27bf18d5a19d69472ce3ae40ea9c5dc0581173 Mon Sep 17 00:00:00 2001 From: PaulinaWywrot Date: Mon, 20 Feb 2023 19:20:16 +0000 Subject: [PATCH 1/2] solved all mandatory + 2 extra tasks --- extra/1-currency-conversion.js | 18 +++++++++++++++--- extra/2-piping.js | 24 ++++++++++++++---------- mandatory/1-syntax-errors.js | 11 ++++++----- mandatory/2-logic-error.js | 7 +++---- mandatory/3-function-output.js | 3 +++ mandatory/4-tax.js | 10 +++++++--- 6 files changed, 48 insertions(+), 25 deletions(-) diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index 75b3c6aab..c17ca387b 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -5,17 +5,29 @@ Write a function that converts a price to USD (exchange rate is 1.4 $ to £) */ -function convertToUSD() {} +function convertToUSD(price1) { +return price1 * 1.4; + +} /* CURRENCY CONVERSION =================== The business is now breaking into the Brazilian market Write a new function for converting to the Brazilian real (exchange rate is 5.7 BRL to £) - 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. + 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. */ +// let price=100; +function convertToBRL(price) { + price=((price/100)*99)*5.7; + price=price.toFixed(2); + +return parseFloat(price); + +} + -function convertToBRL() {} /* ======= 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..5fdaf4bf3 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -6,6 +6,7 @@ - one that multiplies 2 numbers together - one that formats a number so it's returned as a string with a £ sign before it (e.g. 20 -> £20) + 2. Using the variable startingValue as input, perform the following operations using your functions all on one line (assign the result to the variable badCode): - add 10 to startingValue @@ -16,26 +17,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(numer) { +return `£` + numer; } - +console.log(format(1)); const startingValue = 2; + + // Why can this code be seen as bad practice? Comment your answer. -let badCode = +let badCode = format(multiply(add(startingValue, 10),2)); /* BETTER PRACTICE */ - -let goodCode = +let result = add(startingValue,10); +result=multiply(result,2); +let goodCode = format(result); /* ======= 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..deb5a89c8 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; + total = a + b; - return "The total is total"; + return `The total is ${total}`; } /* diff --git a/mandatory/2-logic-error.js b/mandatory/2-logic-error.js index 9eb8c8cd7..ff5b064e1 100644 --- a/mandatory/2-logic-error.js +++ b/mandatory/2-logic-error.js @@ -1,16 +1,15 @@ // 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..350478348 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -1,9 +1,11 @@ // Add comments to explain what this function does. You're meant to use Google! +// Math.random() * 10 returns a random number between 0 (included) and 10 (excluded); function getRandomNumber() { return Math.random() * 10; } // Add comments to explain what this function does. You're meant to use Google! +// The concat() method joins two or more strings. function combine2Words(word1, word2) { return word1.concat(word2); } @@ -11,6 +13,7 @@ function combine2Words(word1, word2) { function concatenate(firstWord, 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. +return firstWord.concat(" ", secondWord, " ", thirdWord); } /* diff --git a/mandatory/4-tax.js b/mandatory/4-tax.js index ba77c7ae2..cc91fca55 100644 --- a/mandatory/4-tax.js +++ b/mandatory/4-tax.js @@ -5,8 +5,9 @@ Sales tax is 20% of the price of the product. */ -function calculateSalesTax() {} - +function calculateSalesTax(price) { + return price * 1.2; +} /* CURRENCY FORMATTING =================== @@ -16,8 +17,11 @@ function calculateSalesTax() {} Remember that the prices must include the sales tax (hint: you already wrote a function for this!) */ +function addTaxAndFormatCurrency(price) { + let fullPrice = calculateSalesTax(price); -function addTaxAndFormatCurrency() {} + return `£${fullPrice.toFixed(2)}`; + } /* =================================================== From 107ba7b918741374c38bd451605b6743face1232 Mon Sep 17 00:00:00 2001 From: PaulinaWywrot Date: Tue, 25 Jul 2023 19:11:24 +0100 Subject: [PATCH 2/2] changed solution --- mandatory/1-syntax-errors.js | 1 - mandatory/3-function-output.js | 4 +--- mandatory/4-tax.js | 12 +++++++----- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index deb5a89c8..43cedda07 100644 --- a/mandatory/1-syntax-errors.js +++ b/mandatory/1-syntax-errors.js @@ -7,7 +7,6 @@ function addNumbers(a, b, c) { function introduceMe(name, age) { return `Hello, my name is ${name} and I am ${age} years old`; } - function getTotal(a, b) { total = a + b; diff --git a/mandatory/3-function-output.js b/mandatory/3-function-output.js index 350478348..7c9471077 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -1,19 +1,17 @@ // Add comments to explain what this function does. You're meant to use Google! -// Math.random() * 10 returns a random number between 0 (included) and 10 (excluded); function getRandomNumber() { return Math.random() * 10; } // Add comments to explain what this function does. You're meant to use Google! -// The concat() method joins two or more strings. function combine2Words(word1, word2) { return word1.concat(word2); } 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. -return firstWord.concat(" ", secondWord, " ", thirdWord); } /* diff --git a/mandatory/4-tax.js b/mandatory/4-tax.js index cc91fca55..dfadb3870 100644 --- a/mandatory/4-tax.js +++ b/mandatory/4-tax.js @@ -6,8 +6,10 @@ */ function calculateSalesTax(price) { - return price * 1.2; + const fullPrice = price + price / 5; + return fullPrice; } + /* CURRENCY FORMATTING =================== @@ -17,12 +19,12 @@ function calculateSalesTax(price) { Remember that the prices must include the sales tax (hint: you already wrote a function for this!) */ -function addTaxAndFormatCurrency(price) { - let fullPrice = calculateSalesTax(price); - return `£${fullPrice.toFixed(2)}`; - } +function addTaxAndFormatCurrency(price) { + const prices = calculateSalesTax(price).toFixed(2); + return `£${prices}`; +} /* =================================================== ======= TESTS - DO NOT MODIFY BELOW THIS LINE =====