From ef15d2d871f976a3a5b27bd63c01bde8a4d63034 Mon Sep 17 00:00:00 2001 From: Hozan94 <74840726+Hozan94@users.noreply.github.com> Date: Fri, 22 Jan 2021 00:15:42 +0000 Subject: [PATCH 1/3] solving exercises and mandatory questions Solving all question in the 'exercise' and 'mandatory' folders. --- exercises/B-hello-world/exercise.js | 13 ++++++++++++ exercises/C-variables/exercise.js | 3 +++ exercises/D-strings/exercise.js | 2 ++ exercises/E-strings-concatenation/exercise.js | 3 +++ exercises/F-strings-methods/exercise.js | 3 +++ exercises/F-strings-methods/exercise2.js | 1 + exercises/G-numbers/exercise.js | 7 +++++++ exercises/I-floats/exercise.js | 7 +++++++ exercises/J-functions/exercise.js | 7 ++++++- exercises/J-functions/exercise2.js | 4 +++- exercises/K-functions-parameters/exercise.js | 5 ++--- exercises/K-functions-parameters/exercise2.js | 3 +++ exercises/K-functions-parameters/exercise3.js | 3 +++ exercises/K-functions-parameters/exercise4.js | 5 ++++- exercises/K-functions-parameters/exercise5.js | 3 +++ exercises/L-functions-nested/exercise.js | 17 +++++++++++----- exercises/L-functions-nested/exercise2.js | 20 +++++++++++++++++++ mandatory/1-syntax-errors.js | 11 +++++----- mandatory/2-logic-error.js | 7 +++---- mandatory/3-function-output.js | 5 ++++- mandatory/4-tax.js | 8 ++++++-- 21 files changed, 114 insertions(+), 23 deletions(-) create mode 100644 exercises/L-functions-nested/exercise2.js diff --git a/exercises/B-hello-world/exercise.js b/exercises/B-hello-world/exercise.js index b179ee953..2761d2545 100644 --- a/exercises/B-hello-world/exercise.js +++ b/exercises/B-hello-world/exercise.js @@ -1 +1,14 @@ console.log("Hello world"); + +console.log("Hello world. I just started learning JavaScript!"); + +console.log("JavaScript is challenging but it is fun"); + +console.log("You need to practices regularly"); + +// This will throw an error +// console.log(Hozan Ali) + +console.log(2021); + +console.log(2022); \ No newline at end of file diff --git a/exercises/C-variables/exercise.js b/exercises/C-variables/exercise.js index a6bbb9786..628a44964 100644 --- a/exercises/C-variables/exercise.js +++ b/exercises/C-variables/exercise.js @@ -1,3 +1,6 @@ // Start by creating a variable `greeting` +var greeting = "Hello world"; console.log(greeting); +console.log(greeting); +console.log(greeting); diff --git a/exercises/D-strings/exercise.js b/exercises/D-strings/exercise.js index 2cffa6a81..7d54e9903 100644 --- a/exercises/D-strings/exercise.js +++ b/exercises/D-strings/exercise.js @@ -1,3 +1,5 @@ // Start by creating a variable `message` +var message = "This is a string"; console.log(message); +console.log(typeof message); diff --git a/exercises/E-strings-concatenation/exercise.js b/exercises/E-strings-concatenation/exercise.js index 2cffa6a81..2ca66ced1 100644 --- a/exercises/E-strings-concatenation/exercise.js +++ b/exercises/E-strings-concatenation/exercise.js @@ -1,3 +1,6 @@ // Start by creating a variable `message` +var greetingMessage = "Hello, my name is "; +var myName = "Hozan"; +var message = greetingMessage + myName; console.log(message); diff --git a/exercises/F-strings-methods/exercise.js b/exercises/F-strings-methods/exercise.js index 2cffa6a81..4331e8571 100644 --- a/exercises/F-strings-methods/exercise.js +++ b/exercises/F-strings-methods/exercise.js @@ -1,3 +1,6 @@ // Start by creating a variable `message` +var myName = "Hozan"; +var nameLength = myName.length; +var message = "My name is " + myName + " and my name is " + nameLength + " characters long"; console.log(message); diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js index b4b46943d..39d6ac86c 100644 --- a/exercises/F-strings-methods/exercise2.js +++ b/exercises/F-strings-methods/exercise2.js @@ -1,3 +1,4 @@ const name = " Daniel "; +var message = "My name is " + name.trim() + " and my name is " + name.length + " characters long"; console.log(message); diff --git a/exercises/G-numbers/exercise.js b/exercises/G-numbers/exercise.js index 49e7bc00b..da9eb6935 100644 --- a/exercises/G-numbers/exercise.js +++ b/exercises/G-numbers/exercise.js @@ -1 +1,8 @@ // Start by creating a variables `numberOfStudents` and `numberOfMentors` +let numberOfStudents = 15; +let numberOfMentors = 8; +let sumOfParticipants = numberOfStudents + numberOfMentors; + +console.log("Number of students: " + numberOfStudents); +console.log("Number of mentors: " + numberOfMentors); +console.log("Total number of students and mentors: " + sumOfParticipants); diff --git a/exercises/I-floats/exercise.js b/exercises/I-floats/exercise.js index a5bbcd852..1cb5e05c7 100644 --- a/exercises/I-floats/exercise.js +++ b/exercises/I-floats/exercise.js @@ -1,2 +1,9 @@ var numberOfStudents = 15; var numberOfMentors = 8; +var total = numberOfStudents + numberOfMentors; + +var percentageOfStudents = Math.round((numberOfStudents / total) * 100) + "%"; +var percentageOfMentors = Math.round((numberOfMentors / total) * 100) + "%"; + +console.log("Percentage of students: " + percentageOfStudents); +console.log("Percentage of mentors: " + percentageOfMentors); diff --git a/exercises/J-functions/exercise.js b/exercises/J-functions/exercise.js index 0ae5850e5..45c6c0ddf 100644 --- a/exercises/J-functions/exercise.js +++ b/exercises/J-functions/exercise.js @@ -1,7 +1,12 @@ function halve(number) { - // complete the function here + return number / 2; } var result = halve(12); +console.log(result); + +result = halve(20); +console.log(result); +result = halve(22); console.log(result); diff --git a/exercises/J-functions/exercise2.js b/exercises/J-functions/exercise2.js index 82ef5e780..8206b5a97 100644 --- a/exercises/J-functions/exercise2.js +++ b/exercises/J-functions/exercise2.js @@ -1,7 +1,9 @@ function triple(number) { - // complete function here + return number * 3; } var result = triple(12); +console.log(result); +result = triple (15); console.log(result); diff --git a/exercises/K-functions-parameters/exercise.js b/exercises/K-functions-parameters/exercise.js index 8d5db5e69..689366887 100644 --- a/exercises/K-functions-parameters/exercise.js +++ b/exercises/K-functions-parameters/exercise.js @@ -1,9 +1,8 @@ // Complete the function so that it takes input parameters -function multiply() { - // Calculate the result of the function and return it +function multiply(num1, num2) { + return num1 * num2; } -// Assign the result of calling the function the variable `result` var result = multiply(3, 4); console.log(result); diff --git a/exercises/K-functions-parameters/exercise2.js b/exercises/K-functions-parameters/exercise2.js index db7a8904b..b305225c8 100644 --- a/exercises/K-functions-parameters/exercise2.js +++ b/exercises/K-functions-parameters/exercise2.js @@ -1,4 +1,7 @@ // Declare your function first +function divide(num1, num2){ + return num1 / num2; +} var result = divide(3, 4); diff --git a/exercises/K-functions-parameters/exercise3.js b/exercises/K-functions-parameters/exercise3.js index 537e9f4ec..835d7f2f2 100644 --- a/exercises/K-functions-parameters/exercise3.js +++ b/exercises/K-functions-parameters/exercise3.js @@ -1,4 +1,7 @@ // Write your function here +function createGreeting(myName){ + return "Hello, my name is " + myName; +} var greeting = createGreeting("Daniel"); diff --git a/exercises/K-functions-parameters/exercise4.js b/exercises/K-functions-parameters/exercise4.js index 7ab44589e..3c136a273 100644 --- a/exercises/K-functions-parameters/exercise4.js +++ b/exercises/K-functions-parameters/exercise4.js @@ -1,5 +1,8 @@ // Declare your function first - +function addNum(num1, num2){ + return num1 + num2; +} // Call the function and assign to a variable `sum` +var sum = addNum(13,124); console.log(sum); diff --git a/exercises/K-functions-parameters/exercise5.js b/exercises/K-functions-parameters/exercise5.js index 7c5bcd605..b88fa459b 100644 --- a/exercises/K-functions-parameters/exercise5.js +++ b/exercises/K-functions-parameters/exercise5.js @@ -1,4 +1,7 @@ // Declare your function here +function createLongGreeting(myName, age){ + return `Hello, my name is ${myName} and I'm ${age} years old` +} const greeting = createLongGreeting("Daniel", 30); diff --git a/exercises/L-functions-nested/exercise.js b/exercises/L-functions-nested/exercise.js index a5d377442..98ed01cf3 100644 --- a/exercises/L-functions-nested/exercise.js +++ b/exercises/L-functions-nested/exercise.js @@ -1,5 +1,12 @@ -var mentor1 = "Daniel"; -var mentor2 = "Irina"; -var mentor3 = "Mimi"; -var mentor4 = "Rob"; -var mentor5 = "Yohannes"; +function percentage(number, total){ + return Math.round((number / total) * 100); +}; + + +function getResults(type, number, total){ + var getPercentage = percentage(number, total); + return `Percentage ${type}: ${getPercentage}%`; +}; + +console.log(getResults("students",15,23)); +console.log(getResults("mentors",8,23)); diff --git a/exercises/L-functions-nested/exercise2.js b/exercises/L-functions-nested/exercise2.js new file mode 100644 index 000000000..7892721e0 --- /dev/null +++ b/exercises/L-functions-nested/exercise2.js @@ -0,0 +1,20 @@ +var mentor1 = "Daniel"; +var mentor2 = "Irina"; +var mentor3 = "Mimi"; +var mentor4 = "Rob"; +var mentor5 = "Yohannes"; + +function capitalName(name){ + return name.toUpperCase(); +}; + +function shoutyGreeting(greeting, name){ + var getCapitalName = capitalName(name); + return `${greeting.toUpperCase()} ${getCapitalName}`; +}; + +console.log(shoutyGreeting("hello",mentor1)); +console.log(shoutyGreeting("hello",mentor2)); +console.log(shoutyGreeting("hello",mentor3)); +console.log(shoutyGreeting("hello",mentor4)); +console.log(shoutyGreeting("hello",mentor5)); \ No newline at end of file diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index 0a21afd1b..ec6810399 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 " + name "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; + var 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 3c578ad87..1f1245b39 100644 --- a/mandatory/2-logic-error.js +++ b/mandatory/2-logic-error.js @@ -1,16 +1,15 @@ // The syntax for this function is valid but it has an error, find it and fix it. function trimWord(word) { - return wordtrim(); + return word.trim(); } function getWordLength(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 c9221a200..63eb8d251 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -1,16 +1,19 @@ // Add comments to explain what this function does. You're meant to use Google! function getNumber() { - return Math.random() * 10; + return Math.random() * 10; } +// The function above will return a random integer from 0 and 9, The random() method returns a random number from 0 (inclusive) up to but not including 1 (exclusive) // Add comments to explain what this function does. You're meant to use Google! function s(w1, w2) { return w1.concat(w2); } +// The concat() method above is used to join two or more strings, so the function will return a new string of w1 + w2. 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} ${secondWord} ${thirdWord}`; } /* diff --git a/mandatory/4-tax.js b/mandatory/4-tax.js index c9e41c691..50197d18f 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(priceBeforeTax) { + return priceBeforeTax + (priceBeforeTax * 0.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(priceBeforeTax) { + return `£${calculateSalesTax(priceBeforeTax).toFixed(2)}` +} /* =================================================== From 8f511d93ae3a1a531f90f2afb05048a182425f70 Mon Sep 17 00:00:00 2001 From: Hozan94 <74840726+Hozan94@users.noreply.github.com> Date: Tue, 26 Jan 2021 22:54:04 +0000 Subject: [PATCH 2/3] made slight changes --- exercises/F-strings-methods/exercise2.js | 2 +- exercises/K-functions-parameters/exercise5.js | 2 +- mandatory/1-syntax-errors.js | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js index 39d6ac86c..cda55d336 100644 --- a/exercises/F-strings-methods/exercise2.js +++ b/exercises/F-strings-methods/exercise2.js @@ -1,4 +1,4 @@ const name = " Daniel "; -var message = "My name is " + name.trim() + " and my name is " + name.length + " characters long"; +var message = "My name is " + name.trim() + " and my name is " + name.trim().length + " characters long"; console.log(message); diff --git a/exercises/K-functions-parameters/exercise5.js b/exercises/K-functions-parameters/exercise5.js index b88fa459b..33935d922 100644 --- a/exercises/K-functions-parameters/exercise5.js +++ b/exercises/K-functions-parameters/exercise5.js @@ -1,6 +1,6 @@ // Declare your function here function createLongGreeting(myName, age){ - return `Hello, my name is ${myName} and I'm ${age} years old` + return `Hello, my name is ${myName} and I'm ${age} years old`; } const greeting = createLongGreeting("Daniel", 30); diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index ec6810399..39c3c59f5 100644 --- a/mandatory/1-syntax-errors.js +++ b/mandatory/1-syntax-errors.js @@ -2,17 +2,17 @@ function addNumbers(a, b, c) { return a + b + c; -} +}; function introduceMe(name, age) { return "Hello, my name is " + name + " and I am " + age + " years old"; -} +}; function getTotal(a, b) { var total = a + b; return "The total is " + total; -} +}; /* =================================================== From 50d8bbf8a3c8f27e423c54b908d37133a503196f Mon Sep 17 00:00:00 2001 From: Hozan94 <74840726+Hozan94@users.noreply.github.com> Date: Tue, 26 Jan 2021 23:02:20 +0000 Subject: [PATCH 3/3] final changes --- mandatory/3-function-output.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mandatory/3-function-output.js b/mandatory/3-function-output.js index 63eb8d251..bc94dac8b 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -2,13 +2,13 @@ function getNumber() { return Math.random() * 10; } -// The function above will return a random integer from 0 and 9, The random() method returns a random number from 0 (inclusive) up to but not including 1 (exclusive) +// The function above will return a random floating point between 0 and 10 (not included), The random() method returns a random floating number from 0 (inclusive) up to but not including 1 (exclusive) // Add comments to explain what this function does. You're meant to use Google! function s(w1, w2) { return w1.concat(w2); } -// The concat() method above is used to join two or more strings, so the function will return a new string of w1 + w2. +// The concat() method above is used to join or concatenate the two parameters W1 and W2, so the function will return a new string of w1 + w2. function concatenate(firstWord, secondWord, thirdWord) { // Write the body of this function to concatenate three words together.