From 06b1bff7b6ad61a68560193572552843a6844354 Mon Sep 17 00:00:00 2001 From: Murat Demirtas <73036794+muratdemirtas2001@users.noreply.github.com> Date: Tue, 19 Jan 2021 22:09:46 +0000 Subject: [PATCH 1/4] finishing mandatory part --- exercises/B-hello-world/exercise.js | 5 ++- exercises/C-variables/exercise.js | 3 ++ exercises/D-strings/exercise.js | 4 ++ exercises/E-strings-concatenation/exercise.js | 8 +++- exercises/F-strings-methods/exercise.js | 11 +++++ exercises/F-strings-methods/exercise2.js | 7 +++- exercises/G-numbers/exercise.js | 12 ++++++ exercises/I-floats/exercise.js | 7 ++++ exercises/J-functions/exercise.js | 4 +- exercises/J-functions/exercise2.js | 2 +- exercises/K-functions-parameters/exercise.js | 4 +- exercises/K-functions-parameters/exercise2.js | 3 ++ exercises/K-functions-parameters/exercise3.js | 5 ++- exercises/K-functions-parameters/exercise4.js | 4 ++ exercises/K-functions-parameters/exercise5.js | 5 ++- mandatory/1-syntax-errors.js | 40 +++++++++++-------- mandatory/2-logic-error.js | 7 ++-- mandatory/3-function-output.js | 3 ++ mandatory/4-tax.js | 11 ++++- 19 files changed, 112 insertions(+), 33 deletions(-) diff --git a/exercises/B-hello-world/exercise.js b/exercises/B-hello-world/exercise.js index b179ee953..f075cc598 100644 --- a/exercises/B-hello-world/exercise.js +++ b/exercises/B-hello-world/exercise.js @@ -1 +1,4 @@ -console.log("Hello world"); +console.log(" Hello World. I just started learning JavaScript"); +console.log(" Hello World. I just started learning JavaScript"); +console.log(" Hello World. I just started learning JavaScript"); +console.log(5); 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..0a2ace7db 100644 --- a/exercises/D-strings/exercise.js +++ b/exercises/D-strings/exercise.js @@ -1,3 +1,7 @@ // Start by creating a variable `message` +var message = "This is a string"; +var messageType = typeof message; + +console.log(messageType); console.log(message); diff --git a/exercises/E-strings-concatenation/exercise.js b/exercises/E-strings-concatenation/exercise.js index 2cffa6a81..65ce3839e 100644 --- a/exercises/E-strings-concatenation/exercise.js +++ b/exercises/E-strings-concatenation/exercise.js @@ -1,3 +1,9 @@ // Start by creating a variable `message` -console.log(message); +let message="Hi everyone,nice to meet you, I am " + +let name="Murat" + +let myMessage= message+name; + +console.log(myMessage); diff --git a/exercises/F-strings-methods/exercise.js b/exercises/F-strings-methods/exercise.js index 2cffa6a81..e992c0224 100644 --- a/exercises/F-strings-methods/exercise.js +++ b/exercises/F-strings-methods/exercise.js @@ -1,3 +1,14 @@ // Start by creating a variable `message` +let message1 = "My name is "; +let message2 = " and my name is "; + +let message3 = " characters long"; + +let name = "Murat"; + +let message = message1 + name + message2 + name.length + message3; + +// below method seems easier +// let message = `My name is ${name} and my name is ${name.length} characters long`; console.log(message); diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js index b4b46943d..b2e8ffa43 100644 --- a/exercises/F-strings-methods/exercise2.js +++ b/exercises/F-strings-methods/exercise2.js @@ -1,3 +1,8 @@ -const name = " Daniel "; +const name = " Murat "; + +//assigning trimmed name to a new variable +let trimmedName = name.trim(); + +let message = `My name is ${trimmedName} and my name is ${trimmedName.length} characters long`; console.log(message); diff --git a/exercises/G-numbers/exercise.js b/exercises/G-numbers/exercise.js index 49e7bc00b..6077069da 100644 --- a/exercises/G-numbers/exercise.js +++ b/exercises/G-numbers/exercise.js @@ -1 +1,13 @@ // Start by creating a variables `numberOfStudents` and `numberOfMentors` + +let numberOfStudents = 15; + +let numberOfMentors = 8; + +let totalNumbers = numberOfStudents + numberOfMentors; + +console.log("Number of students: " + numberOfStudents); + +console.log("Number of mentors: " + numberOfMentors); + +console.log("Total number of students and mentors: " + totalNumbers); diff --git a/exercises/I-floats/exercise.js b/exercises/I-floats/exercise.js index a5bbcd852..9502e7bdd 100644 --- a/exercises/I-floats/exercise.js +++ b/exercises/I-floats/exercise.js @@ -1,2 +1,9 @@ var numberOfStudents = 15; var numberOfMentors = 8; + +let perOfStudents = numberOfStudents / (numberOfStudents + numberOfMentors); +let perOfMentors = numberOfMentors / (numberOfMentors + numberOfStudents); + +console.log(`Percentage students : ${Math.round(perOfStudents * 100)} %`); + +console.log(`Percentage mentors : ${Math.round(perOfMentors * 100)} %`); diff --git a/exercises/J-functions/exercise.js b/exercises/J-functions/exercise.js index 0ae5850e5..472cf2749 100644 --- a/exercises/J-functions/exercise.js +++ b/exercises/J-functions/exercise.js @@ -1,7 +1,7 @@ function halve(number) { - // complete the function here + return number / 2; } -var result = halve(12); +var result = halve(20); console.log(result); diff --git a/exercises/J-functions/exercise2.js b/exercises/J-functions/exercise2.js index 82ef5e780..95ef62512 100644 --- a/exercises/J-functions/exercise2.js +++ b/exercises/J-functions/exercise2.js @@ -1,5 +1,5 @@ function triple(number) { - // complete function here + return number * 3; } var result = triple(12); diff --git a/exercises/K-functions-parameters/exercise.js b/exercises/K-functions-parameters/exercise.js index 8d5db5e69..4614501b1 100644 --- a/exercises/K-functions-parameters/exercise.js +++ b/exercises/K-functions-parameters/exercise.js @@ -1,6 +1,6 @@ // 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` diff --git a/exercises/K-functions-parameters/exercise2.js b/exercises/K-functions-parameters/exercise2.js index db7a8904b..0d0c4b3c0 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..d45ed455f 100644 --- a/exercises/K-functions-parameters/exercise3.js +++ b/exercises/K-functions-parameters/exercise3.js @@ -1,5 +1,8 @@ // Write your function here +function createGreeting(name) { + return `Hello, my name is ${name}`; +} -var greeting = createGreeting("Daniel"); +var greeting = createGreeting("Murat"); console.log(greeting); diff --git a/exercises/K-functions-parameters/exercise4.js b/exercises/K-functions-parameters/exercise4.js index 7ab44589e..046c3bebb 100644 --- a/exercises/K-functions-parameters/exercise4.js +++ b/exercises/K-functions-parameters/exercise4.js @@ -1,5 +1,9 @@ // Declare your function first +function adder(num1, num2) { + return num1 + num2; +} // Call the function and assign to a variable `sum` +let sum = adder(13, 124); console.log(sum); diff --git a/exercises/K-functions-parameters/exercise5.js b/exercises/K-functions-parameters/exercise5.js index 7c5bcd605..54c7ede59 100644 --- a/exercises/K-functions-parameters/exercise5.js +++ b/exercises/K-functions-parameters/exercise5.js @@ -1,5 +1,8 @@ // Declare your function here +function createLongGreeting(name, age) { + return `Hello, my name is ${name} and I'm ${age} years old`; +} -const greeting = createLongGreeting("Daniel", 30); +const greeting = createLongGreeting("Murat", 30); console.log(greeting); diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index 0a21afd1b..4e8909973 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) { - return 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; + total = a + b; - return "The total is total" + return "The total is " + total; } /* @@ -24,19 +24,25 @@ To run these tests type `node 1-syntax-errors.js` into your terminal =================================================== */ -const util = require('util'); +const util = require("util"); function test(test_name, actual, expected) { - let status; - if (actual === expected) { - status = "PASSED"; - } else { - status = `FAILED: expected: ${util.inspect(expected)} but your function returned: ${util.inspect(actual)}`; - } - - console.log(`${test_name}: ${status}`); + let status; + if (actual === expected) { + status = "PASSED"; + } else { + status = `FAILED: expected: ${util.inspect( + expected + )} but your function returned: ${util.inspect(actual)}`; + } + + console.log(`${test_name}: ${status}`); } test("fixed addNumbers function - case 1", addNumbers(3, 4, 6), 13); -test("fixed introduceMe function", introduceMe("Sonjide", 27), "Hello, my name is Sonjide and I am 27 years old"); +test( + "fixed introduceMe function", + introduceMe("Sonjide", 27), + "Hello, my name is Sonjide and I am 27 years old" +); test("fixed getTotal function", getTotal(23, 5), "The total is 28"); 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..0d543c3d7 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -1,14 +1,17 @@ // Add comments to explain what this function does. You're meant to use Google! +// This function uses Math.random() to pick up a random number between 0 (inclusive), and 1 (exclusive) then multiply this with 10 and returns a number between 0-9 function getNumber() { return Math.random() * 10; } // Add comments to explain what this function does. You're meant to use Google! +// This function takes 2 array as parameter and use concat method to merge these two arrays. This method does not change the existing arrays, so function returns a new array. function s(w1, w2) { return w1.concat(w2); } 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 c9e41c691..d6ab669ac 100644 --- a/mandatory/4-tax.js +++ b/mandatory/4-tax.js @@ -5,7 +5,11 @@ Sales tax is 20% of the price of the product */ -function calculateSalesTax() {} +function calculateSalesTax(price) { + let tax = price / 5; + let calculatedPrice = tax + price; + return calculatedPrice; +} /* CURRENCY FORMATTING @@ -17,7 +21,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 calculatedPrice = calculateSalesTax(price); + return `£${calculatedPrice.toFixed(2)}`; +} /* =================================================== From a62e3d4b28dd338a305ce659a600ade503464830 Mon Sep 17 00:00:00 2001 From: Murat Demirtas <73036794+muratdemirtas2001@users.noreply.github.com> Date: Wed, 20 Jan 2021 00:05:48 +0000 Subject: [PATCH 2/4] finalizing extras section --- extra/1-currency-conversion.js | 9 ++++-- extra/2-piping.js | 55 ++++++++++++++++++---------------- extra/3-magic-8-ball.js | 50 +++++++++++++++++++++++++++++-- 3 files changed, 84 insertions(+), 30 deletions(-) diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index 70a2fe863..8c6467d3e 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(price) { + return price * 1.4; +} /* CURRENCY FORMATTING @@ -15,7 +17,10 @@ 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(price) { + let newPrice = (price * 99) / 100; + return newPrice * 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 067dd0f5b..c5ae0a995 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(num1, num2) { + return num1 + num2; } -function multiply() { - +function multiply(num1, num2) { + return num1 * num2; } -function format() { - +function format(num) { + return `£${num}`; } -const startingValue = 2 +const startingValue = 2; // Why can this code be seen as bad practice? Comment your answer. -let badCode = +// it is really hard to track functions +let badCode = format(multiply(add(startingValue, 10), 2)); /* BETTER PRACTICE */ - -let goodCode = +let addedNumbers = add(startingValue, 10); +let multipliedNumber = multiply(addedNumbers, 2); +let formattedNumber = format(multipliedNumber); +let goodCode = formattedNumber; /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. @@ -43,22 +46,24 @@ There are some Tests in this file that will help you work out if your code is wo To run these tests type `node 2-piping.js` into your terminal */ -const util = require('util'); +const util = require("util"); function test(test_name, actual, expected) { - let status; - if (actual === expected) { - status = "PASSED"; - } else { - status = `FAILED: expected: ${util.inspect(expected)} but your code returned: ${util.inspect(actual)}`; - } - - console.log(`${test_name}: ${status}`); + let status; + if (actual === expected) { + status = "PASSED"; + } else { + status = `FAILED: expected: ${util.inspect( + expected + )} but your code returned: ${util.inspect(actual)}`; + } + + console.log(`${test_name}: ${status}`); } -test('add function - case 1 works', add(1,3), 4) -test('add function - case 2 works', add(2.4,5), 7.4) -test('multiply function works', multiply(2,3), 6) -test('format function works', format(16), "£16") -test('badCode variable correctly assigned', badCode, "£24") -test('goodCode variable correctly assigned', goodCode, "£24") +test("add function - case 1 works", add(1, 3), 4); +test("add function - case 2 works", add(2.4, 5), 7.4); +test("multiply function works", multiply(2, 3), 6); +test("format function works", format(16), "£16"); +test("badCode variable correctly assigned", badCode, "£24"); +test("goodCode variable correctly assigned", goodCode, "£24"); diff --git a/extra/3-magic-8-ball.js b/extra/3-magic-8-ball.js index e32182cfe..e34132b61 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -45,8 +45,43 @@ // This should log "The ball has shaken!" // and return the answer. +let answers = [ + [ + "It is certain.", + "It is decidedly so.", + "Without a doubt.", + "Yes - definitely", + "You may rely on it.", + ], + [ + "As I see it, yes.", + "Most likely.", + "Outlook good.", + "Yes.", + "Signs point to yes.", + ], + [ + "Reply hazy, try again.", + "Ask again later.", + "Better not tell you now.", + "Cannot predict now.", + "Concentrate and ask again.", + ], + [ + "Don't count on it.", + "My reply is no.", + "My sources say no.", + "Outlook not so good.", + "Very doubtful", + ], +]; function shakeBall() { - //Write your code in here + console.log("The ball has shaken!"); + let randomNumber1 = Math.floor(Math.random() * 4); + let randomNumber2 = Math.floor(Math.random() * 5); + let message = answers[randomNumber1][randomNumber2]; + // console.log(message); + return message; } /* @@ -59,9 +94,18 @@ function shakeBall() { This function should expect to be called with any value which was returned by the shakeBall function. */ function checkAnswer(answer) { - //Write your code in here + if (answers[0].includes(answer)) { + return "very positive"; + } else if (answers[1].includes(answer)) { + return "positive"; + } else if (answers[2].includes(answer)) { + return "negative"; + } else if (answers[3].includes(answer)) { + return "very negative"; + } } - +// let message = checkAnswer(shakeBall()); +// console.log(message); /* ================================== ======= TESTS - DO NOT MODIFY ===== From 7ce5e921bff6cc6cbe402ead18440afffd013805 Mon Sep 17 00:00:00 2001 From: Murat Demirtas <73036794+muratdemirtas2001@users.noreply.github.com> Date: Sat, 23 Jan 2021 19:07:39 +0000 Subject: [PATCH 3/4] adding exercise L --- exercises/L-functions-nested/exercise.js | 26 ++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/exercises/L-functions-nested/exercise.js b/exercises/L-functions-nested/exercise.js index a5d377442..ac8ebbd67 100644 --- a/exercises/L-functions-nested/exercise.js +++ b/exercises/L-functions-nested/exercise.js @@ -3,3 +3,29 @@ var mentor2 = "Irina"; var mentor3 = "Mimi"; var mentor4 = "Rob"; var mentor5 = "Yohannes"; + +// In `exercise2.js` you have been provided with the names of some mentors. Write a program that logs a shouty greeting to each one. +// - Your program should include a function that spells their name in uppercase, and a function that creates a shouty greeting. +// - Log each greeting to the console. + +// ## Expected result + +// ``` +// HELLO DANIEL +// HELLO IRINA +// HELLO MIMI +// HELLO ROB +// HELLO YOHANNES + +function changeNameToUpperCase(name) { + return name.toUpperCase(); +} + +function greeting(name) { + console.log(`HELLO ${changeNameToUpperCase(name)}`); +} +greeting(mentor1); +greeting(mentor2); +greeting(mentor3); +greeting(mentor4); +greeting(mentor5); From af88eaf29450df581a6d55bb9b73976fd9e0b45e Mon Sep 17 00:00:00 2001 From: Murat Demirtas <73036794+muratdemirtas2001@users.noreply.github.com> Date: Sat, 23 Jan 2021 19:11:45 +0000 Subject: [PATCH 4/4] adding some missing semicolon --- exercises/E-strings-concatenation/exercise.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exercises/E-strings-concatenation/exercise.js b/exercises/E-strings-concatenation/exercise.js index 65ce3839e..a4651e02b 100644 --- a/exercises/E-strings-concatenation/exercise.js +++ b/exercises/E-strings-concatenation/exercise.js @@ -1,9 +1,9 @@ // Start by creating a variable `message` -let message="Hi everyone,nice to meet you, I am " +let message = "Hi everyone,nice to meet you, I am "; -let name="Murat" +let name = "Murat"; -let myMessage= message+name; +let myMessage = message + name; console.log(myMessage);