From 84e3bca5bea626e2fd060badea2b71d027616f50 Mon Sep 17 00:00:00 2001 From: Kaligrey Date: Wed, 25 Jun 2025 15:04:50 +0100 Subject: [PATCH 01/29] First 3 exercises of sprint 1 are completed. --- Sprint-1/1-key-exercises/1-count.js | 3 +++ Sprint-1/1-key-exercises/2-initials.js | 4 +++- Sprint-1/1-key-exercises/3-paths.js | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Sprint-1/1-key-exercises/1-count.js b/Sprint-1/1-key-exercises/1-count.js index 117bcb2b6..dfb08d71c 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 + +// SOLUTION: +// Line 3 is updating the value of the count by adding 1 to its value. \ No newline at end of file diff --git a/Sprint-1/1-key-exercises/2-initials.js b/Sprint-1/1-key-exercises/2-initials.js index 47561f617..92aa6a726 100644 --- a/Sprint-1/1-key-exercises/2-initials.js +++ b/Sprint-1/1-key-exercises/2-initials.js @@ -5,7 +5,9 @@ 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 diff --git a/Sprint-1/1-key-exercises/3-paths.js b/Sprint-1/1-key-exercises/3-paths.js index ab90ebb28..3cec456e0 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 = filePath.slice(lastSlashIndex + 1); // https://www.google.com/search?q=slice+mdn \ No newline at end of file From 3c9fb3ab103ee6894291bec767631e20dc97b043 Mon Sep 17 00:00:00 2001 From: Kaligrey Date: Wed, 25 Jun 2025 15:14:06 +0100 Subject: [PATCH 02/29] Key exercise part is done with this commit --- Sprint-1/1-key-exercises/4-random.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Sprint-1/1-key-exercises/4-random.js b/Sprint-1/1-key-exercises/4-random.js index 292f83aab..ad3126a5b 100644 --- a/Sprint-1/1-key-exercises/4-random.js +++ b/Sprint-1/1-key-exercises/4-random.js @@ -1,5 +1,6 @@ const minimum = 1; const maximum = 100; +const num = 2; const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum; @@ -7,3 +8,13 @@ const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum; // 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 + + + +// SOLUTION: + +// num represents a random number between the minimum and maximum values. + +// program is designed for num to return random numbers between 1-100. + +//expressions of math.floor and math.random are there for //generating a random number between the minimum and maximum values and then rounding it down to the nearest whole number... \ No newline at end of file From c882576d71389a62b35b81c4f6a49a2f945aa97c Mon Sep 17 00:00:00 2001 From: Kaligrey Date: Wed, 25 Jun 2025 15:17:05 +0100 Subject: [PATCH 03/29] Mandatory errors 0 and 1.js is solved. --- Sprint-1/2-mandatory-errors/0.js | 4 +++- Sprint-1/2-mandatory-errors/1.js | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Sprint-1/2-mandatory-errors/0.js b/Sprint-1/2-mandatory-errors/0.js index cf6c5039f..098f0b365 100644 --- a/Sprint-1/2-mandatory-errors/0.js +++ b/Sprint-1/2-mandatory-errors/0.js @@ -1,2 +1,4 @@ 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 +We don't want the computer to run these 2 lines - how can we solve this problem? + +// We can use a comment to prevent the computer from running these lines. \ No newline at end of file diff --git a/Sprint-1/2-mandatory-errors/1.js b/Sprint-1/2-mandatory-errors/1.js index 7a43cbea7..aed29ff4e 100644 --- a/Sprint-1/2-mandatory-errors/1.js +++ b/Sprint-1/2-mandatory-errors/1.js @@ -1,4 +1,8 @@ // 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); + + From 8ccf3b2784953df70786d1cc3b0aa3be6d949891 Mon Sep 17 00:00:00 2001 From: Kaligrey Date: Wed, 25 Jun 2025 15:28:57 +0100 Subject: [PATCH 04/29] Mandatory-errors part is finished. --- Sprint-1/2-mandatory-errors/2.js | 5 +++-- Sprint-1/2-mandatory-errors/3.js | 14 +++++++++++++- Sprint-1/2-mandatory-errors/4.js | 14 ++++++++++++-- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/Sprint-1/2-mandatory-errors/2.js b/Sprint-1/2-mandatory-errors/2.js index e09b89831..08e662ab6 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}`); const cityOfBirth = "Bolton"; +console.log(`I was born in ${cityOfBirth}`); + +//Code was correct, I just shifted the const part to the top of the code block. \ No newline at end of file diff --git a/Sprint-1/2-mandatory-errors/3.js b/Sprint-1/2-mandatory-errors/3.js index ec101884d..507f13bb1 100644 --- a/Sprint-1/2-mandatory-errors/3.js +++ b/Sprint-1/2-mandatory-errors/3.js @@ -1,5 +1,8 @@ const cardNumber = 4533787178994213; -const last4Digits = cardNumber.slice(-4); +const last4Digits = cardNumber.toString().slice(-4); + + +console.log(last4Digits); // The last4Digits variable should store the last 4 digits of cardNumber // However, the code isn't working @@ -7,3 +10,12 @@ const last4Digits = cardNumber.slice(-4); // 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 + + +// Prediction; code wont work because slice is for strings, not numbers. + +// after running the code, I got an error saying "cardNumber.slice is not a function". + +// It's what I predicted. + +// to fix the code I need to convert number to string first, then slice it. diff --git a/Sprint-1/2-mandatory-errors/4.js b/Sprint-1/2-mandatory-errors/4.js index 21dad8c5d..e82e55f20 100644 --- a/Sprint-1/2-mandatory-errors/4.js +++ b/Sprint-1/2-mandatory-errors/4.js @@ -1,2 +1,12 @@ -const 12HourClockTime = "20:53"; -const 24hourClockTime = "08:53"; \ No newline at end of file +//const 12HourClockTime = "20:53"; +//const 24hourClockTime = "08:53"; + + +// problem is in javascript we cant start a variable name with a number. + +// correct way is: + +const.twelveHourClockTime = "20:53"; +const twentyFourHourClockTime = "08:53"; + +console.log(`The time in 12-hour format is ${twelveHourClockTime} and in 24-hour format is ${twentyFourHourClockTime}`); From d0c0bd7d4d9a71fed4690e3c1dd131ea7fd0d0ec Mon Sep 17 00:00:00 2001 From: Emin Date: Fri, 27 Jun 2025 21:24:38 +0100 Subject: [PATCH 05/29] until time format is finished. --- .../1-percentage-change.js | 16 ++++++++++- .../3-mandatory-interpret/2-time-format.js | 27 +++++++++++++++++++ 2 files changed, 42 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 e24ecb8e1..ef7165052 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; @@ -20,3 +20,17 @@ console.log(`The percentage change is ${percentageChange}`); // d) Identify all the lines that are variable declarations // e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? + + +// a) There are 3 function calls in this file: +// `carPrice.replaceAll(",", "")` on line 5 +// `priceAfterOneYear.replaceAll(",", "")` on line 6 +// `Number(...)` on lines 5 and 6 +// b) The error occurs on line 5 there's a missing comma. +//c) The variable reassignment statements are: +// `carPrice = Number(carPrice.replaceAll(",", ""));` on line 5 +// `priceAfterOneYear = Number(priceAfterOneYear.replaceAll(",", ""));` on line 6 +// d) The variable declarations are: +// `let carPrice = "10,000";` on line 1 +// `let priceAfterOneYear = "8,543";` on line 2 +// e) The expression `Number(carPrice.replaceAll(",", ""))` is converting carprice, which contains a comma, into a number. \ No newline at end of file diff --git a/Sprint-1/3-mandatory-interpret/2-time-format.js b/Sprint-1/3-mandatory-interpret/2-time-format.js index 47d239558..72db347ca 100644 --- a/Sprint-1/3-mandatory-interpret/2-time-format.js +++ b/Sprint-1/3-mandatory-interpret/2-time-format.js @@ -23,3 +23,30 @@ console.log(result); // e) What do you think the variable result represents? Can you think of a better name for this variable? // f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer + + +// a) There are 6 variable declarations in this program: +// which are: + +// movieLength + +// remainingSeconds + +// totalMinutes + +// remainingMinutes + +// totalHours + +// result + +// b) There are 2 function calls in this program. + +// c) Expression movieLength %60 represents remainder of division by 60. + +// d) expression assigned to totalminutes means minutes in the movie by removing the remaining seconds and dividing by 60. + +// e) Result variable represents the total time. A better name would be totalTime. + +// f) Yes code will work for all the values of movielength. It'll always return the total time with no problems. But It's not working if movielength less than 60 seconds, more than 24 hours or negative values. + From 721fe57eaf7fe31276744d3e4172174b1ff4d33b Mon Sep 17 00:00:00 2001 From: Emin Date: Fri, 27 Jun 2025 21:28:22 +0100 Subject: [PATCH 06/29] finishing touch --- Sprint-1/3-mandatory-interpret/3-to-pounds.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Sprint-1/3-mandatory-interpret/3-to-pounds.js b/Sprint-1/3-mandatory-interpret/3-to-pounds.js index 60c9ace69..428a57f40 100644 --- a/Sprint-1/3-mandatory-interpret/3-to-pounds.js +++ b/Sprint-1/3-mandatory-interpret/3-to-pounds.js @@ -25,3 +25,13 @@ console.log(`£${pounds}.${pence}`); // To begin, we can start with // 1. const penceString = "399p": initialises a string variable with the value "399p" + +// 2. const penceStringWithoutTrailingP = penceString.substring(0, penceString.length - 1): This line removes the trailing 'p' from the string. + +// 3. const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"): This line puts the string into a 3 character string padding with zeros. + +// 4. const pounds = paddedPenceNumberString.substring(0, paddedPenceNumberString.length - 2): This line takes out the pounds part of the string. + +// 5. const pence = paddedPenceNumberString.substring(paddedPenceNumberString.length - 2).padEnd(2, "0"): This line takes out pence part and pads it to 2 characters. + +// 6. console.log(`£${pounds}.${pence}`): This line prints the final results. \ No newline at end of file From f2f56befe54dfe48e50a00023cd799f0dcab5a4c Mon Sep 17 00:00:00 2001 From: Emin Date: Mon, 7 Jul 2025 12:06:46 +0100 Subject: [PATCH 07/29] first answer is increment added answer comment section. --- Sprint-1/1-key-exercises/1-count.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sprint-1/1-key-exercises/1-count.js b/Sprint-1/1-key-exercises/1-count.js index dfb08d71c..289729754 100644 --- a/Sprint-1/1-key-exercises/1-count.js +++ b/Sprint-1/1-key-exercises/1-count.js @@ -6,4 +6,5 @@ count = count + 1; // Describe what line 3 is doing, in particular focus on what = is doing // SOLUTION: -// Line 3 is updating the value of the count by adding 1 to its value. \ No newline at end of file +// Line 3 is updating the value of the count by adding 1 to its value. +// line 3 uses the assignment operator which is = and while count increases by one, increment stores additional 1 to the count variable. \ No newline at end of file From 421bdf2bff99ac158decf44eaa60549c446c5ff2 Mon Sep 17 00:00:00 2001 From: Emin Date: Mon, 7 Jul 2025 12:14:43 +0100 Subject: [PATCH 08/29] random.js solution part is fixed. --- Sprint-1/1-key-exercises/4-random.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sprint-1/1-key-exercises/4-random.js b/Sprint-1/1-key-exercises/4-random.js index ad3126a5b..9fac0fbc3 100644 --- a/Sprint-1/1-key-exercises/4-random.js +++ b/Sprint-1/1-key-exercises/4-random.js @@ -13,8 +13,8 @@ const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum; // SOLUTION: -// num represents a random number between the minimum and maximum values. +// In this program, variable num is assigned to a value between 1 and 100. -// program is designed for num to return random numbers between 1-100. +// In 5th line, expressions of math.floor and math.random are used to generate a random number between the minimum and maximum numbers that are defined by first const minimum= 1 and second const maximum = 100. -//expressions of math.floor and math.random are there for //generating a random number between the minimum and maximum values and then rounding it down to the nearest whole number... \ No newline at end of file +// Also math.floor is used to round down the random number generated by math random to get to the nearest whole number. \ No newline at end of file From f9786852f25768caf562469ab7f279b6b9487b10 Mon Sep 17 00:00:00 2001 From: Emin Date: Mon, 7 Jul 2025 12:15:45 +0100 Subject: [PATCH 09/29] 4.js syntax error is fixed. --- Sprint-1/2-mandatory-errors/4.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-1/2-mandatory-errors/4.js b/Sprint-1/2-mandatory-errors/4.js index e82e55f20..7c9aae422 100644 --- a/Sprint-1/2-mandatory-errors/4.js +++ b/Sprint-1/2-mandatory-errors/4.js @@ -6,7 +6,7 @@ // correct way is: -const.twelveHourClockTime = "20:53"; +const twelveHourClockTime = "20:53"; const twentyFourHourClockTime = "08:53"; console.log(`The time in 12-hour format is ${twelveHourClockTime} and in 24-hour format is ${twentyFourHourClockTime}`); From ed5a1b5d0610a3f591d2f043ec32359bbe34e7e8 Mon Sep 17 00:00:00 2001 From: Emin Date: Mon, 7 Jul 2025 12:22:45 +0100 Subject: [PATCH 10/29] identified 5th function calls and fixed the programming term with more professional one. --- Sprint-1/3-mandatory-interpret/1-percentage-change.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Sprint-1/3-mandatory-interpret/1-percentage-change.js b/Sprint-1/3-mandatory-interpret/1-percentage-change.js index ef7165052..f959d4acf 100644 --- a/Sprint-1/3-mandatory-interpret/1-percentage-change.js +++ b/Sprint-1/3-mandatory-interpret/1-percentage-change.js @@ -22,15 +22,16 @@ console.log(`The percentage change is ${percentageChange}`); // e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? -// a) There are 3 function calls in this file: +// a) There are 5 function calls in this file: // `carPrice.replaceAll(",", "")` on line 5 // `priceAfterOneYear.replaceAll(",", "")` on line 6 -// `Number(...)` on lines 5 and 6 -// b) The error occurs on line 5 there's a missing comma. +// `Number(...)` on lines 4 and 5 +// console.log on line 10. +// b) A comma is missing between the first and second string arguments which causes the error. //c) The variable reassignment statements are: // `carPrice = Number(carPrice.replaceAll(",", ""));` on line 5 // `priceAfterOneYear = Number(priceAfterOneYear.replaceAll(",", ""));` on line 6 // d) The variable declarations are: // `let carPrice = "10,000";` on line 1 // `let priceAfterOneYear = "8,543";` on line 2 -// e) The expression `Number(carPrice.replaceAll(",", ""))` is converting carprice, which contains a comma, into a number. \ No newline at end of file +// e) The expression `Number(carPrice.replaceAll(",", ""))` is converting car price, which contains a comma, into a number. \ No newline at end of file From e57d87882e565dda29b8e52d8051eff84602b9aa Mon Sep 17 00:00:00 2001 From: Emin Date: Mon, 7 Jul 2025 12:25:09 +0100 Subject: [PATCH 11/29] .padEnd is deleted as I've reviewed that It's not necessary to have it. --- Sprint-1/3-mandatory-interpret/3-to-pounds.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Sprint-1/3-mandatory-interpret/3-to-pounds.js b/Sprint-1/3-mandatory-interpret/3-to-pounds.js index 428a57f40..99c649ec9 100644 --- a/Sprint-1/3-mandatory-interpret/3-to-pounds.js +++ b/Sprint-1/3-mandatory-interpret/3-to-pounds.js @@ -12,8 +12,7 @@ const pounds = paddedPenceNumberString.substring( ); const pence = paddedPenceNumberString - .substring(paddedPenceNumberString.length - 2) - .padEnd(2, "0"); + .substring(paddedPenceNumberString.length - 2); console.log(`£${pounds}.${pence}`); From f6d89d10693fcbce9b419a2472544cdad9ab1cc7 Mon Sep 17 00:00:00 2001 From: Emin Date: Mon, 7 Jul 2025 16:14:13 +0100 Subject: [PATCH 12/29] 0.js error fixed --- Sprint-2/1-key-errors/0.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Sprint-2/1-key-errors/0.js b/Sprint-2/1-key-errors/0.js index 653d6f5a0..62a58bb18 100644 --- a/Sprint-2/1-key-errors/0.js +++ b/Sprint-2/1-key-errors/0.js @@ -1,13 +1,28 @@ // Predict and explain first... // =============> write your prediction here +// I predict the code is for capitalising the first letter of a string. + // call the function capitalise with a string input // interpret the error message and figure out why an error is occurring -function capitalise(str) { +// the error is "The symbol "str" has already been declared." + +/* function capitalise(str) { let str = `${str[0].toUpperCase()}${str.slice(1)}`; return str; } - +*/ // =============> write your explanation here +// Error occurs because the str was mentioned as a parameter in the definition which is already a variable name in the function body. + // =============> write your new code here + +function capitalise(str) { + let capitalisedStr = `${str[0].toUpperCase()}${str.slice(1)}`; + return capitalisedStr; +} + +// to call the function : + +console.log(capitalise("naber?")); // Output: "Naber?" \ No newline at end of file From 566656145e3eb693c2df5b3c212acb6df4be8869 Mon Sep 17 00:00:00 2001 From: Emin Date: Mon, 7 Jul 2025 16:23:19 +0100 Subject: [PATCH 13/29] key errors part is finished --- Sprint-2/1-key-errors/1.js | 15 ++++++++++++--- Sprint-2/1-key-errors/2.js | 14 ++++++++++---- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/Sprint-2/1-key-errors/1.js b/Sprint-2/1-key-errors/1.js index f2d56151f..b07978805 100644 --- a/Sprint-2/1-key-errors/1.js +++ b/Sprint-2/1-key-errors/1.js @@ -1,7 +1,8 @@ // Predict and explain first... +// program is made for converting a decimal number into a percentage. // Why will an error occur when this program runs? -// =============> write your prediction here +// =============> I think error would occur because decimalNumber is declared twice. // Try playing computer with the example to work out what is going on @@ -14,7 +15,15 @@ function convertToPercentage(decimalNumber) { console.log(decimalNumber); -// =============> write your explanation here +// =============> to fix the problem I will remove the second declaration of decimalNumber and use the parameter instead. // Finally, correct the code to fix the problem -// =============> write your new code here +// =============> +function convertToPercentage(decimalNumber) { + const percentage = `${decimalNumber * 100}%`; + + return percentage; +} + +// to call the function +console.log(convertToPercentage(1)); // Output: "100%" diff --git a/Sprint-2/1-key-errors/2.js b/Sprint-2/1-key-errors/2.js index aad57f7cf..5d81a4277 100644 --- a/Sprint-2/1-key-errors/2.js +++ b/Sprint-2/1-key-errors/2.js @@ -3,18 +3,24 @@ // this function should square any number but instead we're going to get an error -// =============> write your prediction of the error here +// =============> My prediction is that error occurs because function trying to use a number as a function. function square(3) { return num * num; } -// =============> write the error message here +// =============> Expected identifier but found "3" -// =============> explain this error message here +// =============> While program waiting for an identifier, it found a number instead. // Finally, correct the code to fix the problem -// =============> write your new code here +// =============> + function square(num) { + return num * num; + } + + // to call the function + console.log(square(9)); // Output: 81 From 494b2e5ce17ddc351e5c440b1792e734914de01a Mon Sep 17 00:00:00 2001 From: Emin Date: Mon, 7 Jul 2025 16:35:29 +0100 Subject: [PATCH 14/29] mandatory debug part is solved. --- Sprint-2/2-mandatory-debug/0.js | 19 +++++++++++++------ Sprint-2/2-mandatory-debug/1.js | 15 +++++++++++---- Sprint-2/2-mandatory-debug/2.js | 19 +++++++++++++------ 3 files changed, 37 insertions(+), 16 deletions(-) diff --git a/Sprint-2/2-mandatory-debug/0.js b/Sprint-2/2-mandatory-debug/0.js index b27511b41..8719d40ab 100644 --- a/Sprint-2/2-mandatory-debug/0.js +++ b/Sprint-2/2-mandatory-debug/0.js @@ -1,14 +1,21 @@ // Predict and explain first... -// =============> write your prediction here +// =============> My prediction is code wont return anything because the function does not have a return statement. -function multiply(a, b) { +/* 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 +console.log(`The result of multiplying 10 and 32 is `${multiply(10, 32)}`); +*/ +// =============> Once return statement is added, it will return the result of the multiplication. // Finally, correct the code to fix the problem -// =============> write your new code here +// =============> + + function multiply(a,b) +{ +return a*b; +} + +console.log(`result of multiplying 2 times 2 = ${multiply(2, 2)}`); diff --git a/Sprint-2/2-mandatory-debug/1.js b/Sprint-2/2-mandatory-debug/1.js index 37cedfbcf..6e0b0dbfc 100644 --- a/Sprint-2/2-mandatory-debug/1.js +++ b/Sprint-2/2-mandatory-debug/1.js @@ -1,13 +1,20 @@ // Predict and explain first... -// =============> write your prediction here +// =============> Problem here is that sum does not return no value because return statement and a + b is in different lines. -function sum(a, b) { +/*function sum(a, b) { return; a + b; } console.log(`The sum of 10 and 32 is ${sum(10, 32)}`); - -// =============> write your explanation here +*/ +// =============> Once we put a + b back in return statement it will work with no problem. // 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 45 and 12 is ${sum(45, 12)}`); // Output: "The sum of 10 and 32 is 42" \ No newline at end of file diff --git a/Sprint-2/2-mandatory-debug/2.js b/Sprint-2/2-mandatory-debug/2.js index 57d3f5dc3..5b87d94bc 100644 --- a/Sprint-2/2-mandatory-debug/2.js +++ b/Sprint-2/2-mandatory-debug/2.js @@ -1,9 +1,9 @@ // Predict and explain first... // Predict the output of the following code: -// =============> Write your prediction here +// =============> output would be undefined because getLastDigit uses global variable num. -const num = 103; +/* const num = 103; function getLastDigit() { return num.toString().slice(-1); @@ -12,13 +12,20 @@ function getLastDigit() { 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 +// =============> Program is returning 3 for all console.log's. // Explain why the output is the way it is -// =============> write your explanation here +// =============> Num is defined to 103 which is global so anytime program calls getLastDigit it returns 3. // 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 41 is ${getLastDigit(41)}`); // This program should tell the user the last digit of each number. // Explain why getLastDigit is not working properly - correct the problem From 8cc0f0956fe4aa503537321fab63fe7fb68c70c0 Mon Sep 17 00:00:00 2001 From: Emin Date: Mon, 7 Jul 2025 17:07:09 +0100 Subject: [PATCH 15/29] mandatory implement part is done. --- Sprint-2/3-mandatory-implement/1-bmi.js | 9 ++++++-- Sprint-2/3-mandatory-implement/2-cases.js | 8 +++++++ Sprint-2/3-mandatory-implement/3-to-pounds.js | 22 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/Sprint-2/3-mandatory-implement/1-bmi.js b/Sprint-2/3-mandatory-implement/1-bmi.js index 17b1cbde1..1e146a9ef 100644 --- a/Sprint-2/3-mandatory-implement/1-bmi.js +++ b/Sprint-2/3-mandatory-implement/1-bmi.js @@ -14,6 +14,11 @@ // Then when we call this function with the weight and height // It should return their Body Mass Index to 1 decimal place +const weight = 103; +const height = 1.87; + function calculateBMI(weight, height) { - // return the BMI of someone based off their weight and height -} \ No newline at end of file + return calculatedBMI = (weight / (height * height)).toFixed(1); +} + +console.log(`the BMI of the person is ${calculateBMI(weight, height)}`); \ No newline at end of file diff --git a/Sprint-2/3-mandatory-implement/2-cases.js b/Sprint-2/3-mandatory-implement/2-cases.js index 5b0ef77ad..eb0c3d5d2 100644 --- a/Sprint-2/3-mandatory-implement/2-cases.js +++ b/Sprint-2/3-mandatory-implement/2-cases.js @@ -14,3 +14,11 @@ // 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 magicToUpperCase(input) +{ + return input.toUpperCase().replaceAll(" ", "_"); + +} + +console.log(magicToUpperCase("lord of the rings")); \ No newline at end of file diff --git a/Sprint-2/3-mandatory-implement/3-to-pounds.js b/Sprint-2/3-mandatory-implement/3-to-pounds.js index 6265a1a70..cd48ab31e 100644 --- a/Sprint-2/3-mandatory-implement/3-to-pounds.js +++ b/Sprint-2/3-mandatory-implement/3-to-pounds.js @@ -4,3 +4,25 @@ // 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(penceCount) { + +const penceWithoutP = penceCount.substring( + 0, + penceCount.length - 1 +); + +const paddedPenceNumber = penceWithoutP.padStart(3, "0"); +const pounds = paddedPenceNumber.substring( + 0, + paddedPenceNumber.length - 2 +); + +const pence = paddedPenceNumber + .substring(paddedPenceNumber.length - 2); + +return `${pounds}.${pence}`; +} + +console.log(`The amount in pounds is ${toPounds("10000000")}`); \ No newline at end of file From 5feaf2e0f86c4f17cc6c35b11641e31c4e814068 Mon Sep 17 00:00:00 2001 From: Emin Date: Mon, 7 Jul 2025 17:16:08 +0100 Subject: [PATCH 16/29] mandatory interpret part is done. --- Sprint-2/4-mandatory-interpret/time-format.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Sprint-2/4-mandatory-interpret/time-format.js b/Sprint-2/4-mandatory-interpret/time-format.js index 7c98eb0e8..6aafcacbf 100644 --- a/Sprint-2/4-mandatory-interpret/time-format.js +++ b/Sprint-2/4-mandatory-interpret/time-format.js @@ -10,6 +10,7 @@ function formatTimeDisplay(seconds) { return `${pad(totalHours)}:${pad(remainingMinutes)}:${pad(remainingSeconds)}`; } +console.log(formatTimeDisplay(61)); // You will need to play computer with this example - use the Python Visualiser https://pythontutor.com/visualize.html#mode=edit // to help you answer these questions @@ -17,18 +18,18 @@ function formatTimeDisplay(seconds) { // Questions // a) When formatTimeDisplay is called how many times will pad be called? -// =============> write your answer here +// =============> pad will be called 3 times in total. // 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 +// =============> would be 0 because first call to pad is for totalHours which is 0 when seconds is 61. // c) What is the return value of pad is called for the first time? -// =============> write your answer here +// =============> would be 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 // 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 +// =============> It would be 01 because the last call to pad is for remainingSeconds which is 01 when seconds is 61. From 11f78730935233bd598f838b68c98c1dca9ced1a Mon Sep 17 00:00:00 2001 From: Emin Akturk <116726768+eminakturk@users.noreply.github.com> Date: Fri, 8 Aug 2025 15:59:23 +0100 Subject: [PATCH 17/29] Delete Sprint-1/1-key-exercises/1-count.js --- Sprint-1/1-key-exercises/1-count.js | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 Sprint-1/1-key-exercises/1-count.js diff --git a/Sprint-1/1-key-exercises/1-count.js b/Sprint-1/1-key-exercises/1-count.js deleted file mode 100644 index 289729754..000000000 --- a/Sprint-1/1-key-exercises/1-count.js +++ /dev/null @@ -1,10 +0,0 @@ -let count = 0; - -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 - -// SOLUTION: -// Line 3 is updating the value of the count by adding 1 to its value. -// line 3 uses the assignment operator which is = and while count increases by one, increment stores additional 1 to the count variable. \ No newline at end of file From 29a5ae79c6753d87d7034bbc37876da9cfe068ba Mon Sep 17 00:00:00 2001 From: Emin Akturk <116726768+eminakturk@users.noreply.github.com> Date: Fri, 8 Aug 2025 15:59:34 +0100 Subject: [PATCH 18/29] Delete Sprint-1/1-key-exercises/2-initials.js --- Sprint-1/1-key-exercises/2-initials.js | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 Sprint-1/1-key-exercises/2-initials.js diff --git a/Sprint-1/1-key-exercises/2-initials.js b/Sprint-1/1-key-exercises/2-initials.js deleted file mode 100644 index 92aa6a726..000000000 --- a/Sprint-1/1-key-exercises/2-initials.js +++ /dev/null @@ -1,13 +0,0 @@ -let firstName = "Creola"; -let middleName = "Katherine"; -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 = firstName[0] + middleName[0] + lastName[0]; - -console.log(initials); - -// https://www.google.com/search?q=get+first+character+of+string+mdn - From 273fafc8b222a47b36f35db81c1d7c7135ebeb20 Mon Sep 17 00:00:00 2001 From: Emin Akturk <116726768+eminakturk@users.noreply.github.com> Date: Fri, 8 Aug 2025 15:59:46 +0100 Subject: [PATCH 19/29] Delete Sprint-1/1-key-exercises/3-paths.js --- Sprint-1/1-key-exercises/3-paths.js | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 Sprint-1/1-key-exercises/3-paths.js diff --git a/Sprint-1/1-key-exercises/3-paths.js b/Sprint-1/1-key-exercises/3-paths.js deleted file mode 100644 index 3cec456e0..000000000 --- a/Sprint-1/1-key-exercises/3-paths.js +++ /dev/null @@ -1,23 +0,0 @@ -// The diagram below shows the different names for parts of a file path on a Unix operating system - -// ┌─────────────────────┬────────────┐ -// │ dir │ base │ -// ├──────┬ ├──────┬─────┤ -// │ root │ │ name │ ext │ -// " / home/user/dir / file .txt " -// └──────┴──────────────┴──────┴─────┘ - -// (All spaces in the "" line should be ignored. They are purely for formatting.) - -const filePath = "/Users/mitch/cyf/Module-JS1/week-1/interpret/file.txt"; -const lastSlashIndex = filePath.lastIndexOf("/"); -const base = filePath.slice(lastSlashIndex + 1); -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 = filePath.slice(0, lastSlashIndex); -const ext = filePath.slice(lastSlashIndex + 1); - -// https://www.google.com/search?q=slice+mdn \ No newline at end of file From cd0d66686b05dc51e8fcad183d9c08d042601337 Mon Sep 17 00:00:00 2001 From: Emin Akturk <116726768+eminakturk@users.noreply.github.com> Date: Fri, 8 Aug 2025 16:00:00 +0100 Subject: [PATCH 20/29] Delete Sprint-1/1-key-exercises/4-random.js --- Sprint-1/1-key-exercises/4-random.js | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 Sprint-1/1-key-exercises/4-random.js diff --git a/Sprint-1/1-key-exercises/4-random.js b/Sprint-1/1-key-exercises/4-random.js deleted file mode 100644 index 9fac0fbc3..000000000 --- a/Sprint-1/1-key-exercises/4-random.js +++ /dev/null @@ -1,20 +0,0 @@ -const minimum = 1; -const maximum = 100; -const num = 2; - -const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum; - -// In this exercise, you will need to work out what num represents? -// 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 - - - -// SOLUTION: - -// In this program, variable num is assigned to a value between 1 and 100. - -// In 5th line, expressions of math.floor and math.random are used to generate a random number between the minimum and maximum numbers that are defined by first const minimum= 1 and second const maximum = 100. - -// Also math.floor is used to round down the random number generated by math random to get to the nearest whole number. \ No newline at end of file From 7e7357b51b61f0d2876c7b0c9c4f1c2aa3d01aba Mon Sep 17 00:00:00 2001 From: Emin Akturk <116726768+eminakturk@users.noreply.github.com> Date: Fri, 8 Aug 2025 16:00:50 +0100 Subject: [PATCH 21/29] Delete Sprint-1/2-mandatory-errors/0.js --- Sprint-1/2-mandatory-errors/0.js | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 Sprint-1/2-mandatory-errors/0.js diff --git a/Sprint-1/2-mandatory-errors/0.js b/Sprint-1/2-mandatory-errors/0.js deleted file mode 100644 index 098f0b365..000000000 --- a/Sprint-1/2-mandatory-errors/0.js +++ /dev/null @@ -1,4 +0,0 @@ -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? - -// We can use a comment to prevent the computer from running these lines. \ No newline at end of file From 1c772e88a674a104581529ef2ae451c4fb12b2bf Mon Sep 17 00:00:00 2001 From: Emin Akturk <116726768+eminakturk@users.noreply.github.com> Date: Fri, 8 Aug 2025 16:01:18 +0100 Subject: [PATCH 22/29] Delete Sprint-1/2-mandatory-errors/1.js --- Sprint-1/2-mandatory-errors/1.js | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 Sprint-1/2-mandatory-errors/1.js diff --git a/Sprint-1/2-mandatory-errors/1.js b/Sprint-1/2-mandatory-errors/1.js deleted file mode 100644 index aed29ff4e..000000000 --- a/Sprint-1/2-mandatory-errors/1.js +++ /dev/null @@ -1,8 +0,0 @@ -// trying to create an age variable and then reassign the value by 1 - -let age = 33; -age = age + 1; - -console.log(age); - - From aca4c2b74daa7c7d6cfaeae5b8dcfe8d49956696 Mon Sep 17 00:00:00 2001 From: Emin Akturk <116726768+eminakturk@users.noreply.github.com> Date: Fri, 8 Aug 2025 16:01:28 +0100 Subject: [PATCH 23/29] Delete Sprint-1/2-mandatory-errors/2.js --- Sprint-1/2-mandatory-errors/2.js | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 Sprint-1/2-mandatory-errors/2.js diff --git a/Sprint-1/2-mandatory-errors/2.js b/Sprint-1/2-mandatory-errors/2.js deleted file mode 100644 index 08e662ab6..000000000 --- a/Sprint-1/2-mandatory-errors/2.js +++ /dev/null @@ -1,6 +0,0 @@ -// Currently trying to print the string "I was born in Bolton" but it isn't working... -// what's the error ? -const cityOfBirth = "Bolton"; -console.log(`I was born in ${cityOfBirth}`); - -//Code was correct, I just shifted the const part to the top of the code block. \ No newline at end of file From eb244fd93a7f69da5e273a5ca1d463c9e2a49c06 Mon Sep 17 00:00:00 2001 From: Emin Akturk <116726768+eminakturk@users.noreply.github.com> Date: Fri, 8 Aug 2025 16:01:41 +0100 Subject: [PATCH 24/29] Delete Sprint-1/2-mandatory-errors/3.js --- Sprint-1/2-mandatory-errors/3.js | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 Sprint-1/2-mandatory-errors/3.js diff --git a/Sprint-1/2-mandatory-errors/3.js b/Sprint-1/2-mandatory-errors/3.js deleted file mode 100644 index 507f13bb1..000000000 --- a/Sprint-1/2-mandatory-errors/3.js +++ /dev/null @@ -1,21 +0,0 @@ -const cardNumber = 4533787178994213; -const last4Digits = cardNumber.toString().slice(-4); - - -console.log(last4Digits); - -// 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 -// 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 - - -// Prediction; code wont work because slice is for strings, not numbers. - -// after running the code, I got an error saying "cardNumber.slice is not a function". - -// It's what I predicted. - -// to fix the code I need to convert number to string first, then slice it. From c66c5c6144b3cda414fd25ef2aa20fcd1ad52ac1 Mon Sep 17 00:00:00 2001 From: Emin Akturk <116726768+eminakturk@users.noreply.github.com> Date: Fri, 8 Aug 2025 16:01:50 +0100 Subject: [PATCH 25/29] Delete Sprint-1/2-mandatory-errors/4.js --- Sprint-1/2-mandatory-errors/4.js | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 Sprint-1/2-mandatory-errors/4.js diff --git a/Sprint-1/2-mandatory-errors/4.js b/Sprint-1/2-mandatory-errors/4.js deleted file mode 100644 index 7c9aae422..000000000 --- a/Sprint-1/2-mandatory-errors/4.js +++ /dev/null @@ -1,12 +0,0 @@ -//const 12HourClockTime = "20:53"; -//const 24hourClockTime = "08:53"; - - -// problem is in javascript we cant start a variable name with a number. - -// correct way is: - -const twelveHourClockTime = "20:53"; -const twentyFourHourClockTime = "08:53"; - -console.log(`The time in 12-hour format is ${twelveHourClockTime} and in 24-hour format is ${twentyFourHourClockTime}`); From fde1ec2c2f41240a447c2bbfa8792e4086dd9023 Mon Sep 17 00:00:00 2001 From: Emin Akturk <116726768+eminakturk@users.noreply.github.com> Date: Fri, 8 Aug 2025 16:02:00 +0100 Subject: [PATCH 26/29] Delete Sprint-1/3-mandatory-interpret/1-percentage-change.js --- .../1-percentage-change.js | 37 ------------------- 1 file changed, 37 deletions(-) delete mode 100644 Sprint-1/3-mandatory-interpret/1-percentage-change.js diff --git a/Sprint-1/3-mandatory-interpret/1-percentage-change.js b/Sprint-1/3-mandatory-interpret/1-percentage-change.js deleted file mode 100644 index f959d4acf..000000000 --- a/Sprint-1/3-mandatory-interpret/1-percentage-change.js +++ /dev/null @@ -1,37 +0,0 @@ -let carPrice = "10,000"; -let priceAfterOneYear = "8,543"; - -carPrice = Number(carPrice.replaceAll(",", "")); -priceAfterOneYear = Number(priceAfterOneYear.replaceAll(",", "")); - -const priceDifference = carPrice - priceAfterOneYear; -const percentageChange = (priceDifference / carPrice) * 100; - -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 - -// 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? - -// c) Identify all the lines that are variable reassignment statements - -// d) Identify all the lines that are variable declarations - -// e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? - - -// a) There are 5 function calls in this file: -// `carPrice.replaceAll(",", "")` on line 5 -// `priceAfterOneYear.replaceAll(",", "")` on line 6 -// `Number(...)` on lines 4 and 5 -// console.log on line 10. -// b) A comma is missing between the first and second string arguments which causes the error. -//c) The variable reassignment statements are: -// `carPrice = Number(carPrice.replaceAll(",", ""));` on line 5 -// `priceAfterOneYear = Number(priceAfterOneYear.replaceAll(",", ""));` on line 6 -// d) The variable declarations are: -// `let carPrice = "10,000";` on line 1 -// `let priceAfterOneYear = "8,543";` on line 2 -// e) The expression `Number(carPrice.replaceAll(",", ""))` is converting car price, which contains a comma, into a number. \ No newline at end of file From 9ba099d89dfceb17674579f5ad128a4af251791d Mon Sep 17 00:00:00 2001 From: Emin Akturk <116726768+eminakturk@users.noreply.github.com> Date: Fri, 8 Aug 2025 16:02:11 +0100 Subject: [PATCH 27/29] Delete Sprint-1/3-mandatory-interpret/2-time-format.js --- .../3-mandatory-interpret/2-time-format.js | 52 ------------------- 1 file changed, 52 deletions(-) delete mode 100644 Sprint-1/3-mandatory-interpret/2-time-format.js diff --git a/Sprint-1/3-mandatory-interpret/2-time-format.js b/Sprint-1/3-mandatory-interpret/2-time-format.js deleted file mode 100644 index 72db347ca..000000000 --- a/Sprint-1/3-mandatory-interpret/2-time-format.js +++ /dev/null @@ -1,52 +0,0 @@ -const movieLength = 8784; // length of movie in seconds - -const remainingSeconds = movieLength % 60; -const totalMinutes = (movieLength - remainingSeconds) / 60; - -const remainingMinutes = totalMinutes % 60; -const totalHours = (totalMinutes - remainingMinutes) / 60; - -const result = `${totalHours}:${remainingMinutes}:${remainingSeconds}`; -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? - -// b) How many function calls are there? - -// c) Using documentation, explain what the expression movieLength % 60 represents -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators - -// d) Interpret line 4, what does the expression assigned to totalMinutes mean? - -// e) What do you think the variable result represents? Can you think of a better name for this variable? - -// f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer - - -// a) There are 6 variable declarations in this program: -// which are: - -// movieLength - -// remainingSeconds - -// totalMinutes - -// remainingMinutes - -// totalHours - -// result - -// b) There are 2 function calls in this program. - -// c) Expression movieLength %60 represents remainder of division by 60. - -// d) expression assigned to totalminutes means minutes in the movie by removing the remaining seconds and dividing by 60. - -// e) Result variable represents the total time. A better name would be totalTime. - -// f) Yes code will work for all the values of movielength. It'll always return the total time with no problems. But It's not working if movielength less than 60 seconds, more than 24 hours or negative values. - From 70b7e45c630e8dba42469006076a91a99b58cdc1 Mon Sep 17 00:00:00 2001 From: Emin Akturk <116726768+eminakturk@users.noreply.github.com> Date: Fri, 8 Aug 2025 16:02:26 +0100 Subject: [PATCH 28/29] Delete Sprint-1/3-mandatory-interpret/3-to-pounds.js --- Sprint-1/3-mandatory-interpret/3-to-pounds.js | 36 ------------------- 1 file changed, 36 deletions(-) delete mode 100644 Sprint-1/3-mandatory-interpret/3-to-pounds.js diff --git a/Sprint-1/3-mandatory-interpret/3-to-pounds.js b/Sprint-1/3-mandatory-interpret/3-to-pounds.js deleted file mode 100644 index 99c649ec9..000000000 --- a/Sprint-1/3-mandatory-interpret/3-to-pounds.js +++ /dev/null @@ -1,36 +0,0 @@ -const penceString = "399p"; - -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); - -console.log(`£${pounds}.${pence}`); - -// This program takes a string representing a price in pence -// The program then builds up a string representing the price in pounds - -// You need to do a step-by-step breakdown of each line in this program -// Try and describe the purpose / rationale behind each step - -// To begin, we can start with -// 1. const penceString = "399p": initialises a string variable with the value "399p" - -// 2. const penceStringWithoutTrailingP = penceString.substring(0, penceString.length - 1): This line removes the trailing 'p' from the string. - -// 3. const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"): This line puts the string into a 3 character string padding with zeros. - -// 4. const pounds = paddedPenceNumberString.substring(0, paddedPenceNumberString.length - 2): This line takes out the pounds part of the string. - -// 5. const pence = paddedPenceNumberString.substring(paddedPenceNumberString.length - 2).padEnd(2, "0"): This line takes out pence part and pads it to 2 characters. - -// 6. console.log(`£${pounds}.${pence}`): This line prints the final results. \ No newline at end of file From d60ad83bc1eb1c5ae0d1c4e81c2d5f9adba2e388 Mon Sep 17 00:00:00 2001 From: Emin Date: Wed, 20 Aug 2025 17:34:30 +0100 Subject: [PATCH 29/29] fixes. --- Sprint-2/1-key-errors/0.js | 2 +- Sprint-2/2-mandatory-debug/1.js | 2 +- Sprint-2/3-mandatory-implement/3-to-pounds.js | 5 ++++- Sprint-2/4-mandatory-interpret/time-format.js | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Sprint-2/1-key-errors/0.js b/Sprint-2/1-key-errors/0.js index 62a58bb18..97dc2bc8d 100644 --- a/Sprint-2/1-key-errors/0.js +++ b/Sprint-2/1-key-errors/0.js @@ -19,7 +19,7 @@ // =============> write your new code here function capitalise(str) { - let capitalisedStr = `${str[0].toUpperCase()}${str.slice(1)}`; + const capitalisedStr = `${str[0].toUpperCase()}${str.slice(1)}`; return capitalisedStr; } diff --git a/Sprint-2/2-mandatory-debug/1.js b/Sprint-2/2-mandatory-debug/1.js index 6e0b0dbfc..9d971ebd4 100644 --- a/Sprint-2/2-mandatory-debug/1.js +++ b/Sprint-2/2-mandatory-debug/1.js @@ -17,4 +17,4 @@ function sum(a, b) return a + b; } -console.log(`The sum of 45 and 12 is ${sum(45, 12)}`); // Output: "The sum of 10 and 32 is 42" \ No newline at end of file +console.log(`The sum of 45 and 12 is ${sum(45, 12)}`); // Output: "The sum of 45 and 12 is 57" \ No newline at end of file diff --git a/Sprint-2/3-mandatory-implement/3-to-pounds.js b/Sprint-2/3-mandatory-implement/3-to-pounds.js index cd48ab31e..17eae1240 100644 --- a/Sprint-2/3-mandatory-implement/3-to-pounds.js +++ b/Sprint-2/3-mandatory-implement/3-to-pounds.js @@ -22,7 +22,10 @@ const pounds = paddedPenceNumber.substring( const pence = paddedPenceNumber .substring(paddedPenceNumber.length - 2); -return `${pounds}.${pence}`; + +const formattedPounds = pounds || "0"; + +return `£${formattedPounds}.${pence}`; } console.log(`The amount in pounds is ${toPounds("10000000")}`); \ No newline at end of file diff --git a/Sprint-2/4-mandatory-interpret/time-format.js b/Sprint-2/4-mandatory-interpret/time-format.js index 6aafcacbf..dfca9f482 100644 --- a/Sprint-2/4-mandatory-interpret/time-format.js +++ b/Sprint-2/4-mandatory-interpret/time-format.js @@ -29,7 +29,7 @@ console.log(formatTimeDisplay(61)); // =============> would be 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 value assigned to num when pad is called for the last time is 1. This is because the last call to pad is for remainingSeconds, and 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 // =============> It would be 01 because the last call to pad is for remainingSeconds which is 01 when seconds is 61.