From 9d7760aef41fba45e167f9b894ea88aea9999300 Mon Sep 17 00:00:00 2001 From: Ahmad Hmedan Date: Fri, 10 Oct 2025 17:21:49 +0100 Subject: [PATCH 1/8] Percentage-change has been copleted successfully --- Sprint-1/3-mandatory-interpret/1-percentage-change.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Sprint-1/3-mandatory-interpret/1-percentage-change.js b/Sprint-1/3-mandatory-interpret/1-percentage-change.js index e24ecb8e1..bcb655dc4 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 function calls, line 4,5 and 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? +// Line 5,SyntaxError: missing ) after argument list just add a comma priceAfterOneYear = Number(priceAfterOneYear.replaceAll(",", "")); // c) Identify all the lines that are variable reassignment statements +//Line 4 ,5. // d) Identify all the lines that are variable declarations - +//1,2,7, and 8. // e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? +//Replace all commas with an empty string , then convert the result to a number. +//the purpose is change from 10,000 formate to 10000. From 8fd03183dc9a250962d318ea4c1b27573907fd21 Mon Sep 17 00:00:00 2001 From: Ahmad Hmedan Date: Fri, 10 Oct 2025 17:50:55 +0100 Subject: [PATCH 2/8] The time-format issue has been solved successfully --- 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 47d239558..33f2eb690 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? +// 6 // b) How many function calls are there? +//1 // c) Using documentation, explain what the expression movieLength % 60 represents +// Is return the remainder after dividing movieLength by 60 // 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? +//calculate how long the move is in minutes. // e) What do you think the variable result represents? Can you think of a better name for this variable? +//MovieLengthH:M:S // f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer +//It works for positive integers From 89e21bedd8d5602b98b2f43b7a6ef555bb00956d Mon Sep 17 00:00:00 2001 From: Ahmad Hmedan Date: Sat, 11 Oct 2025 16:07:35 +0100 Subject: [PATCH 3/8] Solve the last task in madatory-interpret with my own words --- Sprint-1/3-mandatory-interpret/3-to-pounds.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Sprint-1/3-mandatory-interpret/3-to-pounds.js b/Sprint-1/3-mandatory-interpret/3-to-pounds.js index 60c9ace69..54451bf5a 100644 --- a/Sprint-1/3-mandatory-interpret/3-to-pounds.js +++ b/Sprint-1/3-mandatory-interpret/3-to-pounds.js @@ -1,20 +1,26 @@ const penceString = "399p"; + //initialises a string variable with the value "399p" const penceStringWithoutTrailingP = penceString.substring( 0, penceString.length - 1 ); +// declare a new var and assign penceString value without last character (p)/ const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"); +//declare a new variable and Make sure it is at least 3 digits long eg: 1 become 001. + const pounds = paddedPenceNumberString.substring( 0, paddedPenceNumberString.length - 2 ); +//declare a new variable and assign the paddedPenceNumberString value without last two digit. const pence = paddedPenceNumberString .substring(paddedPenceNumberString.length - 2) .padEnd(2, "0"); - +// pence= take the pound length and remove it and keep all rest digit and if the shorter than 2 digit add 0 until paddedPenceNumberString +// .substring(paddedPenceNumberString.length - 2) becomes 2 digits console.log(`£${pounds}.${pence}`); // This program takes a string representing a price in pence From 68017366a3b0581df88c9484a3752adb25f8aeb1 Mon Sep 17 00:00:00 2001 From: Ahmad Hmedan Date: Sat, 11 Oct 2025 16:17:17 +0100 Subject: [PATCH 4/8] rephrase my writing in clearer English --- Sprint-1/3-mandatory-interpret/3-to-pounds.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Sprint-1/3-mandatory-interpret/3-to-pounds.js b/Sprint-1/3-mandatory-interpret/3-to-pounds.js index 54451bf5a..f6055c135 100644 --- a/Sprint-1/3-mandatory-interpret/3-to-pounds.js +++ b/Sprint-1/3-mandatory-interpret/3-to-pounds.js @@ -5,23 +5,23 @@ const penceStringWithoutTrailingP = penceString.substring( 0, penceString.length - 1 ); -// declare a new var and assign penceString value without last character (p)/ +// Creates a new string that removes the last character (p) from penceString. const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"); -//declare a new variable and Make sure it is at least 3 digits long eg: 1 become 001. +//Ensure the string has at least three digits by adding "0" to the start if needed. const pounds = paddedPenceNumberString.substring( 0, paddedPenceNumberString.length - 2 ); -//declare a new variable and assign the paddedPenceNumberString value without last two digit. +//Extracts the pounds part by taking all characters except the last two digits. const pence = paddedPenceNumberString .substring(paddedPenceNumberString.length - 2) .padEnd(2, "0"); -// pence= take the pound length and remove it and keep all rest digit and if the shorter than 2 digit add 0 until paddedPenceNumberString -// .substring(paddedPenceNumberString.length - 2) becomes 2 digits +//extract the last two digits to get the pence part. console.log(`£${pounds}.${pence}`); +// Combines the pound and pence values into a formatted string. // This program takes a string representing a price in pence // The program then builds up a string representing the price in pounds From 9820a1347827d60dffe2a1fd007863c9fcceea45 Mon Sep 17 00:00:00 2001 From: Ahmad Hmedan Date: Sat, 11 Oct 2025 17:32:59 +0100 Subject: [PATCH 5/8] mandatory-erroes isuue has been solved successflly --- Sprint-1/2-mandatory-errors/0.js | 5 +++-- Sprint-1/2-mandatory-errors/1.js | 3 ++- Sprint-1/2-mandatory-errors/2.js | 3 +++ Sprint-1/2-mandatory-errors/3.js | 7 +++++-- Sprint-1/2-mandatory-errors/4.js | 5 +++-- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Sprint-1/2-mandatory-errors/0.js b/Sprint-1/2-mandatory-errors/0.js index cf6c5039f..cccfcc3ea 100644 --- a/Sprint-1/2-mandatory-errors/0.js +++ b/Sprint-1/2-mandatory-errors/0.js @@ -1,2 +1,3 @@ -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? +// by adding // at the first of line. \ 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..f1c355157 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; +//TypeError: Assignment to constant variable. we must use let instead const if the value is not constant. \ No newline at end of file diff --git a/Sprint-1/2-mandatory-errors/2.js b/Sprint-1/2-mandatory-errors/2.js index e09b89831..d7e5888c2 100644 --- a/Sprint-1/2-mandatory-errors/2.js +++ b/Sprint-1/2-mandatory-errors/2.js @@ -3,3 +3,6 @@ console.log(`I was born in ${cityOfBirth}`); const cityOfBirth = "Bolton"; + +//ReferenceError: Cannot access 'cityOfBirth' before initialization +// We must declare the variable before we use it \ 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..6b265b567 100644 --- a/Sprint-1/2-mandatory-errors/3.js +++ b/Sprint-1/2-mandatory-errors/3.js @@ -1,9 +1,12 @@ 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 // 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 + +// I predict the code will throw an Error massage because slice method works only on string not a Number. +//TypeError: cardNumber.slice is not a function diff --git a/Sprint-1/2-mandatory-errors/4.js b/Sprint-1/2-mandatory-errors/4.js index 21dad8c5d..1b2eeaeb5 100644 --- a/Sprint-1/2-mandatory-errors/4.js +++ b/Sprint-1/2-mandatory-errors/4.js @@ -1,2 +1,3 @@ -const 12HourClockTime = "20:53"; -const 24hourClockTime = "08:53"; \ No newline at end of file +const HourClockTime = "20:53"; +const hourClockTime = "08:53"; +//variable name must mot stat with an digit. \ No newline at end of file From dd98ea881783d8712460ad32ab38ce13178b0785 Mon Sep 17 00:00:00 2001 From: Ahmad Hmedan Date: Sat, 11 Oct 2025 19:21:30 +0100 Subject: [PATCH 6/8] Courework sprint 1 has been completed --- Sprint-1/1-key-exercises/1-count.js | 1 + Sprint-1/1-key-exercises/2-initials.js | 3 ++- Sprint-1/1-key-exercises/3-paths.js | 6 ++++-- Sprint-1/1-key-exercises/4-random.js | 5 +++++ 4 files changed, 12 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..4bcf4188d 100644 --- a/Sprint-1/1-key-exercises/1-count.js +++ b/Sprint-1/1-key-exercises/1-count.js @@ -4,3 +4,4 @@ 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 reassigns the variable count value by adding 1 to its current value. diff --git a/Sprint-1/1-key-exercises/2-initials.js b/Sprint-1/1-key-exercises/2-initials.js index 47561f617..5b2d92088 100644 --- a/Sprint-1/1-key-exercises/2-initials.js +++ b/Sprint-1/1-key-exercises/2-initials.js @@ -5,7 +5,8 @@ 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..b8bcd870b 100644 --- a/Sprint-1/1-key-exercises/3-paths.js +++ b/Sprint-1/1-key-exercises/3-paths.js @@ -17,7 +17,9 @@ 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.substring(1,lastSlashIndex) ; +const ext =filePath.substring(filePath.lastIndexOf(".")) ; +console.log(dir); +console.log(ext); // https://www.google.com/search?q=slice+mdn \ No newline at end of file diff --git a/Sprint-1/1-key-exercises/4-random.js b/Sprint-1/1-key-exercises/4-random.js index 292f83aab..92816e61a 100644 --- a/Sprint-1/1-key-exercises/4-random.js +++ b/Sprint-1/1-key-exercises/4-random.js @@ -7,3 +7,8 @@ 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 + +//Math.random creates a random number between }0,1{ like :0.1 , 0.001 .... +//Math.floor( Math.floor(Math.random() * (maximum - minimum + 1)) ) that give us a random number between 0--99 +//by add minimum it will give us a num between 1--100; +// We can say the function create a random number between Minimum and maximum. \ No newline at end of file From 0faad43bd3feab398c98c13dd92eef2ccb1f5ef7 Mon Sep 17 00:00:00 2001 From: Ahmad Hmedan Date: Fri, 17 Oct 2025 08:25:59 +0100 Subject: [PATCH 7/8] Fix dir variable calculation in paths.js --- 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 b8bcd870b..fa32356bb 100644 --- a/Sprint-1/1-key-exercises/3-paths.js +++ b/Sprint-1/1-key-exercises/3-paths.js @@ -17,9 +17,9 @@ 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.substring(1,lastSlashIndex) ; +const dir =filePath.substring(0,lastSlashIndex) ; const ext =filePath.substring(filePath.lastIndexOf(".")) ; console.log(dir); console.log(ext); -// https://www.google.com/search?q=slice+mdn \ No newline at end of file +// https://www.google.com/search?q=slice+mdn From 596f6f1e25f7b599a04a177d2aba87cd4cf6f392 Mon Sep 17 00:00:00 2001 From: Ahmad Hmedan Date: Fri, 17 Oct 2025 08:34:25 +0100 Subject: [PATCH 8/8] Clarify movie length format in comments Updated comment to clarify the format of movie length. --- Sprint-1/3-mandatory-interpret/2-time-format.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-1/3-mandatory-interpret/2-time-format.js b/Sprint-1/3-mandatory-interpret/2-time-format.js index 33f2eb690..3d948dd63 100644 --- a/Sprint-1/3-mandatory-interpret/2-time-format.js +++ b/Sprint-1/3-mandatory-interpret/2-time-format.js @@ -25,7 +25,7 @@ console.log(result); //calculate how long the move is in minutes. // e) What do you think the variable result represents? Can you think of a better name for this variable? -//MovieLengthH:M:S +//MovieLengthH_M_S // f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer //It works for positive integers