From 7521938e645591444d628160ef1dcc044ed70dae Mon Sep 17 00:00:00 2001 From: Olha Danylevska Date: Fri, 17 Feb 2023 13:31:05 +0000 Subject: [PATCH 1/6] made a tests --- mandatory/1-syntax-errors.js | 12 ++++++------ mandatory/2-logic-error.js | 9 +++++---- mandatory/3-function-output.js | 4 ++++ mandatory/4-tax.js | 9 +++++++-- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index d9e004465..6e5c7e0cf 100644 --- a/mandatory/1-syntax-errors.js +++ b/mandatory/1-syntax-errors.js @@ -1,16 +1,16 @@ // 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..694f9cf63 100644 --- a/mandatory/2-logic-error.js +++ b/mandatory/2-logic-error.js @@ -1,16 +1,17 @@ // 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..14bf1c5fb 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -2,13 +2,17 @@ function getRandomNumber() { return Math.random() * 10; } +//Create a random integer number with digit number which was given by the caller. +//Return a random number between 0 and 10: // 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 + ' ' + 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..07ad0e39e 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(price) { + return price * 1.2; +} /* CURRENCY FORMATTING @@ -17,7 +19,10 @@ function calculateSalesTax() {} Remember that the prices must include the sales tax (hint: you already wrote a function for this!) */ -function addTaxAndFormatCurrency() {} +function addTaxAndFormatCurrency(price) { + let priceWithTax = calculateSalesTax(price); + return '£' + priceWithTax.toFixed(2); +} /* =================================================== From c6b0b7258834a5dff54423eb5612d2b463c0baf4 Mon Sep 17 00:00:00 2001 From: Olha Danylevska Date: Fri, 17 Feb 2023 14:15:52 +0000 Subject: [PATCH 2/6] 1st Extra exersise --- extra/1-currency-conversion.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index 75b3c6aab..8bf4f692e 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -5,7 +5,11 @@ 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 +19,14 @@ 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) { + let priceWithFee = amount * 0.99; + let amountBRL = priceWithFee * 5.7; + return Math.round(amountBRL * 100) / 100; + +} + + /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. From 40896723729e9cd5ae853f8ecdc973172195f769 Mon Sep 17 00:00:00 2001 From: Olha Danylevska Date: Mon, 20 Feb 2023 23:31:00 +0000 Subject: [PATCH 3/6] magick 8 ball --- extra/1-currency-conversion.js | 12 +++-- extra/2-piping.js | 17 ++++--- extra/3-magic-8-ball.js | 93 ++++++++++++++++++++++++++++++---- 3 files changed, 101 insertions(+), 21 deletions(-) diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index 8bf4f692e..404f9a2c3 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -20,14 +20,18 @@ function convertToUSD(amount) { */ function convertToBRL(amount) { - let priceWithFee = amount * 0.99; - let amountBRL = priceWithFee * 5.7; - return Math.round(amountBRL * 100) / 100; - + let priceFee = amount * 0.99; + let convertedPrice = priceFee * 5.7; + return Math.round(convertedPrice * 100)/100; } + + + + + /* ======= 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..fd4b127c9 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -16,26 +16,31 @@ the final result to the variable goodCode */ -function add() { - +function add(num1, num2) { + return num1 + num2; } -function multiply() { +function multiply(num1, num2) { + return num1 * num2; } -function format() { +function format(num1) { + return `£${num1}` } 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 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/extra/3-magic-8-ball.js b/extra/3-magic-8-ball.js index 46f65f928..dba9c97d2 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -45,22 +45,93 @@ // This should log "The ball has shaken!" // and return the answer. + + + + + +let rundomOneOfVeryPositive = [ + "It is certain.", + "It is decidedly so.", + "Without a doubt.", + "Yes - definitely.", + "You may rely on it." +]; + +let rundomOneOfPositive = [ + "As I see it, yes.", + "Most likely.", + "Outlook good.", + "Yes.", + "Signs point to yes." +]; + +let rundomOneOfNegative = [ + "Reply hazy, try again.", + "Ask again later.", + "Better not tell you now.", + "Cannot predict now.", + "Concentrate and ask again." +]; + +let rundomOneOfVeryNegative = [ + "Don't count on it.", + "My reply is no.", + "My sources say no.", + "Outlook not so good.", + "Very doubtful." +]; + +let answersArray = [ + rundomOneOfVeryPositive, + rundomOneOfPositive, + rundomOneOfNegative, + rundomOneOfVeryNegative +]; + + + + + function shakeBall() { - //Write your code in here + console.log("The ball has shaken!"); + let randomOfAnswersArray = answersArray[Math.floor(Math.random() * answersArray.length)]; + let rundomAnswer = randomOfAnswersArray[Math.floor(Math.random() * randomOfAnswersArray.length)]; + return rundomAnswer; } -/* - This function should say whether the answer it is given is - - very positive - - positive - - negative - - very negative - This function should expect to be called with any value which was returned by the shakeBall function. -*/ +let answer = shakeBall(); + function checkAnswer(answer) { - //Write your code in here -} + + for (i = 0; i < rundomOneOfVeryPositive.length; i ++ ) { + if (rundomOneOfVeryPositive[i] === answer) { + return "very positive"; + } + } + for (i = 0; i < rundomOneOfPositive.length; i ++ ) { + if (rundomOneOfPositive[i] === answer) { + return "positive"; + } + } + for (i = 0; i < rundomOneOfNegative.length; i ++ ) { + if (rundomOneOfNegative[i] === answer) { + return "negative"; + } + } + for (i = 0; i < rundomOneOfVeryNegative.length; i ++ ) { + if (rundomOneOfVeryNegative[i] === answer) { + return "very negative"; + } + } +} + + +checkAnswer(answer) + +//console.log(checkAnswer(shakeBall())); + /* ================================== From c1fa5fd18586265e7d403bedaf0af6fb8567b52c Mon Sep 17 00:00:00 2001 From: Olha Danylevska Date: Tue, 21 Feb 2023 22:19:07 +0000 Subject: [PATCH 4/6] Update 3-magic-8-ball.js --- extra/3-magic-8-ball.js | 57 +++++++++++++---------------------------- 1 file changed, 18 insertions(+), 39 deletions(-) diff --git a/extra/3-magic-8-ball.js b/extra/3-magic-8-ball.js index dba9c97d2..00807f951 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -1,3 +1,5 @@ +const { toBeOneOf } = require('jest-extended'); + /** Let's peer into the future using a Magic 8 Ball! @@ -47,10 +49,7 @@ // and return the answer. - - - -let rundomOneOfVeryPositive = [ +let randomOneOfVeryPositive = [ "It is certain.", "It is decidedly so.", "Without a doubt.", @@ -58,7 +57,7 @@ let rundomOneOfVeryPositive = [ "You may rely on it." ]; -let rundomOneOfPositive = [ +let randomOneOfPositive = [ "As I see it, yes.", "Most likely.", "Outlook good.", @@ -66,7 +65,7 @@ let rundomOneOfPositive = [ "Signs point to yes." ]; -let rundomOneOfNegative = [ +let randomOneOfNegative = [ "Reply hazy, try again.", "Ask again later.", "Better not tell you now.", @@ -74,7 +73,7 @@ let rundomOneOfNegative = [ "Concentrate and ask again." ]; -let rundomOneOfVeryNegative = [ +let randomOneOfVeryNegative = [ "Don't count on it.", "My reply is no.", "My sources say no.", @@ -83,54 +82,34 @@ let rundomOneOfVeryNegative = [ ]; let answersArray = [ - rundomOneOfVeryPositive, - rundomOneOfPositive, - rundomOneOfNegative, - rundomOneOfVeryNegative + ...randomOneOfVeryPositive, + ...randomOneOfPositive, + ...randomOneOfNegative, + ...randomOneOfVeryNegative ]; - - - function shakeBall() { console.log("The ball has shaken!"); - let randomOfAnswersArray = answersArray[Math.floor(Math.random() * answersArray.length)]; - let rundomAnswer = randomOfAnswersArray[Math.floor(Math.random() * randomOfAnswersArray.length)]; - return rundomAnswer; + let randomAnswerIndex = Math.floor(Math.random() * answersArray.length); + return answersArray [randomAnswerIndex] + } -let answer = shakeBall(); - function checkAnswer(answer) { - - for (i = 0; i < rundomOneOfVeryPositive.length; i ++ ) { - if (rundomOneOfVeryPositive[i] === answer) { + if (randomOneOfVeryPositive.includes(answer)) { return "very positive"; } - } - for (i = 0; i < rundomOneOfPositive.length; i ++ ) { - if (rundomOneOfPositive[i] === answer) { + else if(randomOneOfPositive.includes(answer)) { return "positive"; } - } - for (i = 0; i < rundomOneOfNegative.length; i ++ ) { - if (rundomOneOfNegative[i] === answer) { + else if(randomOneOfNegative.includes(answer)) { return "negative"; - } - } - for (i = 0; i < rundomOneOfVeryNegative.length; i ++ ) { - if (rundomOneOfVeryNegative[i] === answer) { + } else if(randomOneOfVeryNegative.includes(answer)) { return "very negative"; - } - } } - - -checkAnswer(answer) - -//console.log(checkAnswer(shakeBall())); +} /* From 95750feeb3205b011d2fab0117a23e07a0915825 Mon Sep 17 00:00:00 2001 From: Olha Danylevska Date: Tue, 21 Feb 2023 22:47:51 +0000 Subject: [PATCH 5/6] Update 2-piping.js --- extra/2-piping.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/extra/2-piping.js b/extra/2-piping.js index fd4b127c9..98bb3e0a7 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -34,13 +34,14 @@ const startingValue = 2; // Why can this code be seen as bad practice? Comment your answer. -let badCode = format (multiply(add(startingValue + 10),2)) +let badCode = format (multiply(add(startingValue, 10),2)) /* BETTER PRACTICE */ -let goodCode = format(multiply(add(startingValue, 10),2)) +let goodCode = format(multiply(add(startingValue, 10),2)); +console.log(goodCode); /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. From d0870f9a1ac5010b795f75573fb664af7ac228e4 Mon Sep 17 00:00:00 2001 From: Olha Danylevska Date: Sun, 5 Mar 2023 21:15:02 +0000 Subject: [PATCH 6/6] made some changes in extra/2-piping.js added separate variables in "good" code --- extra/1-currency-conversion.js | 4 +--- extra/2-piping.js | 5 +++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index 404f9a2c3..47926a434 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -6,9 +6,7 @@ */ function convertToUSD(amount) { - return amount * 1.4; - - + return amount * 1.4; } /* diff --git a/extra/2-piping.js b/extra/2-piping.js index 98bb3e0a7..e525e5469 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -40,8 +40,9 @@ let badCode = format (multiply(add(startingValue, 10),2)) /* BETTER PRACTICE */ -let goodCode = format(multiply(add(startingValue, 10),2)); -console.log(goodCode); +let addNumbers = add(startingValue, 10); +let multiplyAddNumbers = multiply(addNumbers, 2) +let goodCode = format(multiplyAddNumbers); /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working.