From a5f11ece0adb1b2e6a8832589d8ec53df606c208 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Wed, 18 Feb 2026 14:58:00 +0000 Subject: [PATCH 01/22] complete 1-count exercise --- Sprint-1/1-key-exercises/1-count.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sprint-1/1-key-exercises/1-count.js b/Sprint-1/1-key-exercises/1-count.js index 117bcb2b6e..7857ef6e8f 100644 --- a/Sprint-1/1-key-exercises/1-count.js +++ b/Sprint-1/1-key-exercises/1-count.js @@ -4,3 +4,6 @@ count = count + 1; // Line 1 is a variable declaration, creating the count variable with an initial value of 0 // Describe what line 3 is doing, in particular focus on what = is doing +//Line 3 updates the variable count, It takes the value on the right (count + 1, which is 0 + 1 = 1), +// and stores it back into `count` using the = assignment operator. + From 321c1d224bf849a7e3a4ca936f99b632b12e36fb Mon Sep 17 00:00:00 2001 From: khalidbih Date: Wed, 18 Feb 2026 15:01:01 +0000 Subject: [PATCH 02/22] complete 2-initials exercise --- Sprint-1/1-key-exercises/2-initials.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Sprint-1/1-key-exercises/2-initials.js b/Sprint-1/1-key-exercises/2-initials.js index 47561f6175..8fea4882a7 100644 --- a/Sprint-1/1-key-exercises/2-initials.js +++ b/Sprint-1/1-key-exercises/2-initials.js @@ -5,7 +5,10 @@ let lastName = "Johnson"; // Declare a variable called initials that stores the first character of each string. // This should produce the string "CKJ", but you must not write the characters C, K, or J in the code of your solution. -let initials = ``; +let initials = (firstName[0] + middleName[0] + lastName[0]); +console.log (initials); + + // https://www.google.com/search?q=get+first+character+of+string+mdn From 64ab32eef80d30069b89c3d383c23d68043cf54c Mon Sep 17 00:00:00 2001 From: khalidbih Date: Wed, 18 Feb 2026 16:18:53 +0000 Subject: [PATCH 03/22] complete 3-path exercise --- Sprint-1/1-key-exercises/3-paths.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sprint-1/1-key-exercises/3-paths.js b/Sprint-1/1-key-exercises/3-paths.js index ab90ebb28e..2177bc07b6 100644 --- a/Sprint-1/1-key-exercises/3-paths.js +++ b/Sprint-1/1-key-exercises/3-paths.js @@ -17,7 +17,7 @@ console.log(`The base part of ${filePath} is ${base}`); // Create a variable to store the dir part of the filePath variable // Create a variable to store the ext part of the variable -const dir = ; -const ext = ; +const dir = filePath.slice(0,lastSlashIndex); +const ext = base.slice(base.lastIndexOf(".")); // https://www.google.com/search?q=slice+mdn \ No newline at end of file From 622028fd66a52236782fc3c416cf6a1a438bf509 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Fri, 20 Feb 2026 19:42:15 +0000 Subject: [PATCH 04/22] complete 4-random exercise --- Sprint-1/1-key-exercises/4-random.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Sprint-1/1-key-exercises/4-random.js b/Sprint-1/1-key-exercises/4-random.js index 292f83aabb..08c7d1373e 100644 --- a/Sprint-1/1-key-exercises/4-random.js +++ b/Sprint-1/1-key-exercises/4-random.js @@ -4,6 +4,10 @@ const maximum = 100; const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum; // In this exercise, you will need to work out what num represents? +// num is a randomly generated whole number in the interval [1, 100], meaning it can be any number from 1 to 100. It is created by generating a random decimal, +// rounding it down, and shifting it to start at 1. // Try breaking down the expression and using documentation to explain what it means // It will help to think about the order in which expressions are evaluated // Try logging the value of num and running the program several times to build an idea of what the program is doing +// When I ran the program several times, num always produced a different whole number between 1 and 100, +// This shows that the program generates a new random number each time it runs. \ No newline at end of file From f76840d42fba82a6fb5d859d484482765090d0dd Mon Sep 17 00:00:00 2001 From: khalidbih Date: Fri, 20 Feb 2026 19:47:42 +0000 Subject: [PATCH 05/22] complete 0.js exercise --- Sprint-1/2-mandatory-errors/0.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sprint-1/2-mandatory-errors/0.js b/Sprint-1/2-mandatory-errors/0.js index cf6c5039f7..65ad3030d6 100644 --- a/Sprint-1/2-mandatory-errors/0.js +++ b/Sprint-1/2-mandatory-errors/0.js @@ -1,2 +1,2 @@ -This is just an instruction for the first activity - but it is just for human consumption -We don't want the computer to run these 2 lines - how can we solve this problem? \ No newline at end of file +//This is just an instruction for the first activity - but it is just for human consumption +//We don't want the computer to run these 2 lines - how can we solve this problem? \ No newline at end of file From cbbe383de695a24f2c37b5c897aed03e65a1f038 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Fri, 20 Feb 2026 22:16:28 +0000 Subject: [PATCH 06/22] complete 1.js exercise --- Sprint-1/2-mandatory-errors/1.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sprint-1/2-mandatory-errors/1.js b/Sprint-1/2-mandatory-errors/1.js index 7a43cbea76..003117be0b 100644 --- a/Sprint-1/2-mandatory-errors/1.js +++ b/Sprint-1/2-mandatory-errors/1.js @@ -1,4 +1,5 @@ // trying to create an age variable and then reassign the value by 1 -const age = 33; +let age = 33; age = age + 1; +console.log(age) \ No newline at end of file From e3ae3a853acb7f281e4f9392570d62f36edb3113 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Fri, 20 Feb 2026 22:28:50 +0000 Subject: [PATCH 07/22] Fix error caused by using const before declaration --- Sprint-1/2-mandatory-errors/2.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Sprint-1/2-mandatory-errors/2.js b/Sprint-1/2-mandatory-errors/2.js index e09b89831d..96a19d537a 100644 --- a/Sprint-1/2-mandatory-errors/2.js +++ b/Sprint-1/2-mandatory-errors/2.js @@ -1,5 +1,6 @@ // Currently trying to print the string "I was born in Bolton" but it isn't working... // what's the error ? - -console.log(`I was born in ${cityOfBirth}`); +// The error happens because cityOfBirth is used before it is declared, +// Variables declared with const cannot be accessed before their declaration. const cityOfBirth = "Bolton"; +console.log(`I was born in ${cityOfBirth}`); From 974f8af54b191c4419b7c94698573e297abda98c Mon Sep 17 00:00:00 2001 From: khalidbih Date: Sat, 21 Feb 2026 00:25:56 +0000 Subject: [PATCH 08/22] Fix last4Digits, convert number to string before slicing --- Sprint-1/2-mandatory-errors/3.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Sprint-1/2-mandatory-errors/3.js b/Sprint-1/2-mandatory-errors/3.js index ec101884db..f678a010eb 100644 --- a/Sprint-1/2-mandatory-errors/3.js +++ b/Sprint-1/2-mandatory-errors/3.js @@ -1,9 +1,13 @@ const cardNumber = 4533787178994213; -const last4Digits = cardNumber.slice(-4); +const last4Digits = cardNumber.toString().slice(-4); +console.log(last4Digits); +console.log(cardNumber.toString().slice(-4)); // The last4Digits variable should store the last 4 digits of cardNumber // However, the code isn't working // Before running the code, make and explain a prediction about why the code won't work +// the code won’t work because cardNumber is a number, and .slice() only works on strings or arrays. // Then run the code and see what error it gives. // Consider: Why does it give this error? Is this what I predicted? If not, what's different? // Then try updating the expression last4Digits is assigned to, in order to get the correct value +// Convert cardNumber to a string first, then use .slice(-4) to get the last 4 digits From e33cbfdec4d3de1d9bd021f858c0860290479d8c Mon Sep 17 00:00:00 2001 From: khalidbih Date: Sat, 21 Feb 2026 00:40:57 +0000 Subject: [PATCH 09/22] Fix 12-hour and 24-hour clock values --- Sprint-1/2-mandatory-errors/4.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sprint-1/2-mandatory-errors/4.js b/Sprint-1/2-mandatory-errors/4.js index 21dad8c5d1..5b1e664382 100644 --- a/Sprint-1/2-mandatory-errors/4.js +++ b/Sprint-1/2-mandatory-errors/4.js @@ -1,2 +1,2 @@ -const 12HourClockTime = "20:53"; -const 24hourClockTime = "08:53"; \ No newline at end of file +const time24h = "20:53"; +const time12h = "08:53"; \ No newline at end of file From da1bcacefd988f96be276dfdf47c90b1c894237f Mon Sep 17 00:00:00 2001 From: khalidbih Date: Tue, 24 Feb 2026 00:22:03 +0000 Subject: [PATCH 10/22] Convert price strings to numbers for calculation --- Sprint-1/3-mandatory-interpret/1-percentage-change.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Sprint-1/3-mandatory-interpret/1-percentage-change.js b/Sprint-1/3-mandatory-interpret/1-percentage-change.js index e24ecb8e18..d8140912c6 100644 --- a/Sprint-1/3-mandatory-interpret/1-percentage-change.js +++ b/Sprint-1/3-mandatory-interpret/1-percentage-change.js @@ -2,7 +2,7 @@ let carPrice = "10,000"; let priceAfterOneYear = "8,543"; carPrice = Number(carPrice.replaceAll(",", "")); -priceAfterOneYear = Number(priceAfterOneYear.replaceAll("," "")); +priceAfterOneYear = Number(priceAfterOneYear.replaceAll(",", "")); const priceDifference = carPrice - priceAfterOneYear; const percentageChange = (priceDifference / carPrice) * 100; @@ -12,11 +12,16 @@ console.log(`The percentage change is ${percentageChange}`); // Read the code and then answer the questions below // a) How many function calls are there in this file? Write down all the lines where a function call is made +// 5 functions, lines are 4-5-10. // b) Run the code and identify the line where the error is coming from - why is this error occurring? How can you fix this problem? +// the error is coming from line 5, because there wasn't a comma between argument in replaceAll(",", "")). // c) Identify all the lines that are variable reassignment statements +// the lines that variable reassignment statements are 4 and 5. // d) Identify all the lines that are variable declarations +// The variable declaration lines are 1-2-7-8 // e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? +// Converts the string "10,000" into the number 10000 by removing commas so math can be done. From 885713aacb29eec60571498cc4d915d4d9c3d7e2 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Tue, 24 Feb 2026 00:41:44 +0000 Subject: [PATCH 11/22] complete exercise time format --- Sprint-1/3-mandatory-interpret/2-time-format.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Sprint-1/3-mandatory-interpret/2-time-format.js b/Sprint-1/3-mandatory-interpret/2-time-format.js index 47d2395587..6723192fdf 100644 --- a/Sprint-1/3-mandatory-interpret/2-time-format.js +++ b/Sprint-1/3-mandatory-interpret/2-time-format.js @@ -12,14 +12,20 @@ console.log(result); // For the piece of code above, read the code and then answer the following questions // a) How many variable declarations are there in this program? +// there are 6 declarations lines 1-3-4-6-7 and 9. // b) How many function calls are there? +// 1 function call. // c) Using documentation, explain what the expression movieLength % 60 represents // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators +// it gives the number of seconds left after counting all full minutes. // d) Interpret line 4, what does the expression assigned to totalMinutes mean? +// the total number of complete minutes in the movie. // e) What do you think the variable result represents? Can you think of a better name for this variable? +// represents the hours,minutes,seconds of the movie.better name for the variable can be (movieTime). // f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer +// The code won’t work for all values of movieLength. If it’s negative, the result doesn’t make sense because time cannot be negative. \ No newline at end of file From 7d36f59857e7e7675bfd24093c8d9de2fee473d8 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Tue, 24 Feb 2026 00:55:48 +0000 Subject: [PATCH 12/22] Format pence string into pounds and pence output --- Sprint-1/3-mandatory-interpret/3-to-pounds.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Sprint-1/3-mandatory-interpret/3-to-pounds.js b/Sprint-1/3-mandatory-interpret/3-to-pounds.js index 60c9ace69a..e2a689e8dd 100644 --- a/Sprint-1/3-mandatory-interpret/3-to-pounds.js +++ b/Sprint-1/3-mandatory-interpret/3-to-pounds.js @@ -25,3 +25,9 @@ console.log(`£${pounds}.${pence}`); // To begin, we can start with // 1. const penceString = "399p": initialises a string variable with the value "399p" +// 2. line (3) it returns a substring from the given string, it takes penceString and returns the substring that start with index 0 ends one character before the end we have 399p it returns 399. +// 3. line (8) We now have the string "399", which has 3 characters. This ensures we can split it into pounds and pence correctly. +// 4. line (9) We have a start and an end index. We start at 0 and end two characters before the string’s end, because the last two characters represent the pence. This gives us the pounds part. +// 5. line (14) This takes the last two characters of the string, which represent the pence portion of the price.it also Extracts the pence digits safely and makes sure it’s always two digits, even if the original number was small. +// 6. line (18) This prints the final price to the console in pounds and pence, using the pounds and pence variables to show it like £3.99. + From 56c1ae77f6737103e4a0668d6c6c7910bbedbd0e Mon Sep 17 00:00:00 2001 From: khalidbih Date: Thu, 26 Feb 2026 15:54:22 +0000 Subject: [PATCH 13/22] remove duplicate variable declaration in capitalise function --- Sprint-2/1-key-errors/0.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Sprint-2/1-key-errors/0.js b/Sprint-2/1-key-errors/0.js index 653d6f5a07..f68de5cdfa 100644 --- a/Sprint-2/1-key-errors/0.js +++ b/Sprint-2/1-key-errors/0.js @@ -1,13 +1,22 @@ // Predict and explain first... // =============> write your prediction here +// It will give an error because the variable `str`, is declared twice inside the same function, +// It is already a parameter, and then it is redeclared using `let`. // call the function capitalise with a string input // interpret the error message and figure out why an error is occurring -function capitalise(str) { - let str = `${str[0].toUpperCase()}${str.slice(1)}`; - return str; -} +//function capitalise(str) { +// let str = `${str[0].toUpperCase()}${str.slice(1)}`; +// return str; +// } // =============> write your explanation here +// The error happens because 'str' is written two times, first, it is the function parameter. +// Then, it is declared again using 'let', javaScript does not allow declaring the same variable twice, inside the same function. // =============> write your new code here + +function capitalise(str) { + return `${str[0].toUpperCase()}${str.slice(1)}`; +} +console.log(capitalise("Code")); \ No newline at end of file From 68d57cef6a56a070663b0e72971d22f312fcf5f2 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Thu, 26 Feb 2026 22:36:15 +0000 Subject: [PATCH 14/22] correct convertToPercentage function --- Sprint-2/1-key-errors/1.js | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/Sprint-2/1-key-errors/1.js b/Sprint-2/1-key-errors/1.js index f2d56151f4..06ef3a3551 100644 --- a/Sprint-2/1-key-errors/1.js +++ b/Sprint-2/1-key-errors/1.js @@ -1,20 +1,27 @@ // Predict and explain first... +// The code will give an error because `decimalNumber` is declared twice, +// once as the function parameter, and again with `const` inside the function. // Why will an error occur when this program runs? // =============> write your prediction here - +// The error occurs because `decimalNumber` has already been declared. // Try playing computer with the example to work out what is going on -function convertToPercentage(decimalNumber) { - const decimalNumber = 0.5; - const percentage = `${decimalNumber * 100}%`; - - return percentage; -} +// function convertToPercentage(decimalNumber) { +// const decimalNumber = 0.5; +// const percentage = `${decimalNumber * 100}%`; -console.log(decimalNumber); +// return percentage; +// } +// console.log(decimalNumber); // =============> write your explanation here - +// When I run the code, it gives a SyntaxError saying that, `decimalNumber` has already been declared. // Finally, correct the code to fix the problem // =============> write your new code here + +function convertToPercentage(decimalNumber){ + const percentage = `${decimalNumber * 100}%`; + return percentage +} +console.log(convertToPercentage(0.5)); \ No newline at end of file From 508504cea62f1af5a55ebce5ba5ac3703927d4d9 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Thu, 26 Feb 2026 22:39:38 +0000 Subject: [PATCH 15/22] correct square function parameter --- Sprint-2/1-key-errors/2.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Sprint-2/1-key-errors/2.js b/Sprint-2/1-key-errors/2.js index aad57f7cfe..b581d2405c 100644 --- a/Sprint-2/1-key-errors/2.js +++ b/Sprint-2/1-key-errors/2.js @@ -1,20 +1,29 @@ // Predict and explain first BEFORE you run any code... +// Function parameters must be variables, not numbers. // this function should square any number but instead we're going to get an error // =============> write your prediction of the error here +// The code will give a SyntaxError because `3` is not a valid parameter name. -function square(3) { - return num * num; -} +//function square(3) { + // return num * num; +// } // =============> write the error message here +// SyntaxError: Unexpected number // =============> explain this error message here - +// The error happens because `3` is used as a parameter name. +// Parameters must be variable names, not numbers. // Finally, correct the code to fix the problem // =============> write your new code here +function square(number) { + return number * number; +} +console.log(square(3)); + From 42ce6cbbb86714dd1ca2de4ab4c682d3ef758cbf Mon Sep 17 00:00:00 2001 From: khalidbih Date: Thu, 26 Feb 2026 23:09:20 +0000 Subject: [PATCH 16/22] fix multiply function to return result --- Sprint-2/2-mandatory-debug/0.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Sprint-2/2-mandatory-debug/0.js b/Sprint-2/2-mandatory-debug/0.js index b27511b417..fc55718aa4 100644 --- a/Sprint-2/2-mandatory-debug/0.js +++ b/Sprint-2/2-mandatory-debug/0.js @@ -1,14 +1,22 @@ // Predict and explain first... // =============> write your prediction here +// When multiply(10, 32) runs, it prints 320, But the function does not return anything. -function multiply(a, b) { - console.log(a * b); -} -console.log(`The result of multiplying 10 and 32 is ${multiply(10, 32)}`); +// function multiply(a, b) { +// console.log(a * b); +// } + +// console.log(`The result of multiplying 10 and 32 is ${multiply(10, 32)}`); // =============> write your explanation here +// multiply prints the result but does not return anything, so using it in a template string shows undefined. // Finally, correct the code to fix the problem // =============> write your new code here +function multiply(a, b) { + return (a * b) +} + +console.log(multiply(10, 32)); From 8486d54445084a8a46ab489f83731c2d6c019c52 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Thu, 26 Feb 2026 23:55:15 +0000 Subject: [PATCH 17/22] fix sum function to return correct value --- Sprint-2/2-mandatory-debug/1.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/Sprint-2/2-mandatory-debug/1.js b/Sprint-2/2-mandatory-debug/1.js index 37cedfbcfd..fa161f41ed 100644 --- a/Sprint-2/2-mandatory-debug/1.js +++ b/Sprint-2/2-mandatory-debug/1.js @@ -1,13 +1,21 @@ // Predict and explain first... // =============> write your prediction here +// The function sum does not return anything, +// so the console will show "The sum of 10 and 32 is undefined". -function sum(a, b) { - return; - a + b; -} +// function sum(a, b) { +// return +// a + b; +// } -console.log(`The sum of 10 and 32 is ${sum(10, 32)}`); +// console.log(`The sum of 10 and 32 is ${sum(10, 32)}`); // =============> write your explanation here // Finally, correct the code to fix the problem // =============> write your new code here + +function sum(a, b) { + return (a+b); +} + +console.log(`The sum of 10 and 32 is ${sum(10, 32)}`); From ddee2257346027ffb397316d15ab8776422b4973 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Fri, 27 Feb 2026 23:45:40 +0000 Subject: [PATCH 18/22] fix getLastDigit function to use parameter --- Sprint-2/2-mandatory-debug/2.js | 36 +++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/Sprint-2/2-mandatory-debug/2.js b/Sprint-2/2-mandatory-debug/2.js index 57d3f5dc35..db018beaa7 100644 --- a/Sprint-2/2-mandatory-debug/2.js +++ b/Sprint-2/2-mandatory-debug/2.js @@ -2,23 +2,43 @@ // Predict the output of the following code: // =============> Write your prediction here +// The output will always be 3.This is because the function uses the variable `num`, +// which is set to 103. +// const num = 103; -const num = 103; +// function getLastDigit() { +// return num.toString().slice(-1); +// } -function getLastDigit() { - return num.toString().slice(-1); -} - -console.log(`The last digit of 42 is ${getLastDigit(42)}`); -console.log(`The last digit of 105 is ${getLastDigit(105)}`); -console.log(`The last digit of 806 is ${getLastDigit(806)}`); +// console.log(`The last digit of 42 is ${getLastDigit(42)}`); +// console.log(`The last digit of 105 is ${getLastDigit(105)}`); +// console.log(`The last digit of 806 is ${getLastDigit(806)}`); // Now run the code and compare the output to your prediction // =============> write the output here + +// The last digit of 42 is 3 +// The last digit of 105 is 3 +// The last digit of 806 is 3 + // Explain why the output is the way it is // =============> write your explanation here + +// The output is always 3 because the function uses `num` (103),and ignores the number passed into it. // Finally, correct the code to fix the problem + // =============> write your new code here +function getLastDigit(num) { + return num.toString().slice(-1); +} + +console.log(`The last digit of 42 is ${getLastDigit(42)}`); +console.log(`The last digit of 105 is ${getLastDigit(105)}`); +console.log(`The last digit of 806 is ${getLastDigit(806)}`); + + + // This program should tell the user the last digit of each number. // Explain why getLastDigit is not working properly - correct the problem +// We must pass the number into the function as a parameter. \ No newline at end of file From 6050f8ef3e84eef794bf8ca7220890e5e0d58dd3 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Mon, 2 Mar 2026 14:14:33 +0000 Subject: [PATCH 19/22] Implement BMI formula and round result to 1 decimal place --- Sprint-2/3-mandatory-implement/1-bmi.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Sprint-2/3-mandatory-implement/1-bmi.js b/Sprint-2/3-mandatory-implement/1-bmi.js index 17b1cbde1b..57cc28f402 100644 --- a/Sprint-2/3-mandatory-implement/1-bmi.js +++ b/Sprint-2/3-mandatory-implement/1-bmi.js @@ -15,5 +15,10 @@ // It should return their Body Mass Index to 1 decimal place function calculateBMI(weight, height) { + const bmi = weight / (height * height); + const roundedBMI = Math.round(bmi * 10) / 10; + return roundedBMI; + +} +console.log(calculateBMI(70, 1.73)); // return the BMI of someone based off their weight and height -} \ No newline at end of file From 0ee89c83bbab05ea470ad49c4ab89cd9369efbc1 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Mon, 2 Mar 2026 14:19:42 +0000 Subject: [PATCH 20/22] Add toUpperSnakeCase function using replaceAll and toUpperCase --- Sprint-2/3-mandatory-implement/2-cases.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Sprint-2/3-mandatory-implement/2-cases.js b/Sprint-2/3-mandatory-implement/2-cases.js index 5b0ef77ad9..180682c6c2 100644 --- a/Sprint-2/3-mandatory-implement/2-cases.js +++ b/Sprint-2/3-mandatory-implement/2-cases.js @@ -14,3 +14,12 @@ // You will need to come up with an appropriate name for the function // Use the MDN string documentation to help you find a solution // This might help https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase + + +function toUpperSnakeCase(inputString) { + return inputString.replaceAll(" ", "_").toUpperCase(); + + +} +console.log(toUpperSnakeCase("hello there")); +console.log (toUpperSnakeCase("lord of the rings")); \ No newline at end of file From f50de6d09fba62049b3de4f7a7322559686e3ad2 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Mon, 2 Mar 2026 14:54:20 +0000 Subject: [PATCH 21/22] Add toPounds function to convert pence string to formatted pounds --- Sprint-2/3-mandatory-implement/3-to-pounds.js | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/Sprint-2/3-mandatory-implement/3-to-pounds.js b/Sprint-2/3-mandatory-implement/3-to-pounds.js index 6265a1a703..7fd793aad1 100644 --- a/Sprint-2/3-mandatory-implement/3-to-pounds.js +++ b/Sprint-2/3-mandatory-implement/3-to-pounds.js @@ -4,3 +4,29 @@ // You will need to declare a function called toPounds with an appropriately named parameter. // You should call this function a number of times to check it works for different inputs + +function toPounds(penceString) { + const penceStringWithoutTrailingP = penceString.substring( + 0, + penceString.length - 1 + ); + + const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"); + + const pounds = paddedPenceNumberString.substring( + 0, + paddedPenceNumberString.length - 2 + ); + + const pence = paddedPenceNumberString + .substring(paddedPenceNumberString.length - 2) + .padEnd(2, "0"); + + return `£${pounds}.${pence}`; +} + +console.log(toPounds("399p")); +console.log(toPounds("400p")); +console.log(toPounds("243p")); +console.log(toPounds("9876p")); +console.log(toPounds("18p")); \ No newline at end of file From 42fe3fcc9f7565ddcd80daaecac09c36c6c50ae9 Mon Sep 17 00:00:00 2001 From: khalidbih Date: Mon, 2 Mar 2026 15:57:04 +0000 Subject: [PATCH 22/22] Answer questions on formatTimeDisplay and pad function --- Sprint-2/4-mandatory-interpret/time-format.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Sprint-2/4-mandatory-interpret/time-format.js b/Sprint-2/4-mandatory-interpret/time-format.js index 7c98eb0e8c..b38353dcbe 100644 --- a/Sprint-2/4-mandatory-interpret/time-format.js +++ b/Sprint-2/4-mandatory-interpret/time-format.js @@ -18,17 +18,22 @@ function formatTimeDisplay(seconds) { // a) When formatTimeDisplay is called how many times will pad be called? // =============> write your answer here +// It is called 3 times, once for hours, once for minutes, and once for seconds. // Call formatTimeDisplay with an input of 61, now answer the following: // b) What is the value assigned to num when pad is called for the first time? // =============> write your answer here +// The first argument passed to pad is totalHours, which is 0. // c) What is the return value of pad is called for the first time? // =============> write your answer here +// The first call to pad returns "00". // d) What is the value assigned to num when pad is called for the last time in this program? Explain your answer // =============> write your answer here +// The last call to pad receives num = 1, because remainingSeconds = 61 % 60 = 1. // e) What is the return value assigned to num when pad is called for the last time in this program? Explain your answer // =============> write your answer here +// The last call to pad returns "01". The number 1 is converted to a string and padded to two characters with a leading 0. \ No newline at end of file