-
-
-
-
-
-
-
diff --git a/Sprint-2/1-key-exercises/1-count.js b/Sprint-2/1-key-exercises/1-count.js
index 117bcb2b6..baa67cfba 100644
--- a/Sprint-2/1-key-exercises/1-count.js
+++ b/Sprint-2/1-key-exercises/1-count.js
@@ -4,3 +4,5 @@ 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
+
+//Answer: The = means assignment. The value of count is 0 but it increments by 1
\ No newline at end of file
diff --git a/Sprint-2/1-key-exercises/2-initials.js b/Sprint-2/1-key-exercises/2-initials.js
index 964c9563c..8da507f7e 100644
--- a/Sprint-2/1-key-exercises/2-initials.js
+++ b/Sprint-2/1-key-exercises/2-initials.js
@@ -1,10 +1,14 @@
const firstName = "Creola";
const middleName = "Katherine";
const lastName = "Johnson";
+// const initial = "initials";
+// const index = 1;
+// console.log('The ${Initial} ${index} is ${firstName.charAt(index)}');
// 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.
-const initials = ``;
+const 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-2/1-key-exercises/3-paths.js b/Sprint-2/1-key-exercises/3-paths.js
index ab90ebb28..6becd448d 100644
--- a/Sprint-2/1-key-exercises/3-paths.js
+++ b/Sprint-2/1-key-exercises/3-paths.js
@@ -13,11 +13,16 @@ 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}`);
+// console.log('The dir path of ${dir} is ${filePath}.${lastSlashIndex}');
+
// 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("."));
+
+console.log(`The dir part of ${filePath} is ${dir}`);
+console.log(`The ext part of ${base} is ${ext}`);
// https://www.google.com/search?q=slice+mdn
\ No newline at end of file
diff --git a/Sprint-2/1-key-exercises/4-random.js b/Sprint-2/1-key-exercises/4-random.js
index 292f83aab..7ac6f11d6 100644
--- a/Sprint-2/1-key-exercises/4-random.js
+++ b/Sprint-2/1-key-exercises/4-random.js
@@ -2,8 +2,14 @@ const minimum = 1;
const maximum = 100;
const num = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum;
+// (0.68 * 100 ) + 1
+console.log(num)
// 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
+
+// Answer: For calculations i utilised BODMAS formula solving numbers in brackets first, multiplication, subtraction and addition
+// I used 0.68 for math.floor(random number) + 1
+// Sum = 69
diff --git a/Sprint-2/2-mandatory-errors/0.js b/Sprint-2/2-mandatory-errors/0.js
index cf6c5039f..58b5e69c3 100644
--- a/Sprint-2/2-mandatory-errors/0.js
+++ b/Sprint-2/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
+//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?
+
+// I have commented out the lines. The computer removes commented lines from code compilation
\ No newline at end of file
diff --git a/Sprint-2/2-mandatory-errors/1.js b/Sprint-2/2-mandatory-errors/1.js
index 7a43cbea7..58a6230d8 100644
--- a/Sprint-2/2-mandatory-errors/1.js
+++ b/Sprint-2/2-mandatory-errors/1.js
@@ -1,4 +1,9 @@
// 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)
+
+// The TypeError: Assignment to constant variable implies we are trying to reassign the variable twice.
+// This case, I have used let instead in order to allow the variable to be reused.
\ No newline at end of file
diff --git a/Sprint-2/2-mandatory-errors/2.js b/Sprint-2/2-mandatory-errors/2.js
index e09b89831..fa92713c9 100644
--- a/Sprint-2/2-mandatory-errors/2.js
+++ b/Sprint-2/2-mandatory-errors/2.js
@@ -1,5 +1,9 @@
// 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}`);
+
+
+// The error is ReferenceError: Cannot access 'cityOfBirth' before initialization
+// Answer: I switched the order by declaring the const first before calling /printing
diff --git a/Sprint-2/2-mandatory-errors/3.js b/Sprint-2/2-mandatory-errors/3.js
index ec101884d..13addc153 100644
--- a/Sprint-2/2-mandatory-errors/3.js
+++ b/Sprint-2/2-mandatory-errors/3.js
@@ -1,5 +1,7 @@
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 +9,8 @@ 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 was the code would run successfully without error although with the wrong results due to absence of syntax errors in the file
+// Error returned: TypeError: cardNumber.slice is not a function
+// Lesson learnt here; slice method is only available for strings or arrays not numbers
+// So converted the cardNumber into a string first
diff --git a/Sprint-2/2-mandatory-errors/4.js b/Sprint-2/2-mandatory-errors/4.js
index 5f86c730b..b9c0d88d3 100644
--- a/Sprint-2/2-mandatory-errors/4.js
+++ b/Sprint-2/2-mandatory-errors/4.js
@@ -1,2 +1,7 @@
-const 12HourClockTime = "8:53pm";
-const 24hourClockTime = "20:53";
+const twelveHourClockTime = "8:53pm";
+const twentyFourHourClockTime = "20:53";
+console.log(twelveHourClockTime);
+console.log(twentyFourHourClockTime);
+
+// Error - SyntaxError: Invalid or unexpected token
+// lesson learnt - variables cannot start with a number
\ No newline at end of file
diff --git a/Sprint-2/3-mandatory-interpret/1-percentage-change.js b/Sprint-2/3-mandatory-interpret/1-percentage-change.js
index e24ecb8e1..a173aa8b5 100644
--- a/Sprint-2/3-mandatory-interpret/1-percentage-change.js
+++ b/Sprint-2/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,19 @@ 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
-
+// 2
+//carPrice = Number(carPrice.replaceAll(",", ""));
+//priceAfterOneYear = Number(priceAfterOneYear.replaceAll("," ","));
// 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?
-
+//b) error = SyntaxError: missing ) after argument list
+// (",", ",")); - added , between quoted values
// c) Identify all the lines that are variable reassignment statements
-
+//carPrice = Number(carPrice.replaceAll(",", ""));
+//priceAfterOneYear = Number(priceAfterOneYear.replaceAll("," ","));
// d) Identify all the lines that are variable declarations
-
+//let carPrice = "10,000";
+//let priceAfterOneYear = "8,543";
+//const priceDifference = carPrice - priceAfterOneYear;
+//const percentageChange = (priceDifference / carPrice) * 100;
// e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression?
+// e) cleans the amount format by removing characters such as , and leaving only number
\ No newline at end of file
diff --git a/Sprint-2/3-mandatory-interpret/2-time-format.js b/Sprint-2/3-mandatory-interpret/2-time-format.js
index 47d239558..a85b69b25 100644
--- a/Sprint-2/3-mandatory-interpret/2-time-format.js
+++ b/Sprint-2/3-mandatory-interpret/2-time-format.js
@@ -1,4 +1,4 @@
-const movieLength = 8784; // length of movie in seconds
+const movieLength = -10; // length of movie in seconds
const remainingSeconds = movieLength % 60;
const totalMinutes = (movieLength - remainingSeconds) / 60;
@@ -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 variables
// b) How many function calls are there?
-
+// 2
// c) Using documentation, explain what the expression movieLength % 60 represents
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators
+// It means 60 % remainder of Movie length
// d) Interpret line 4, what does the expression assigned to totalMinutes mean?
+// totalMinutes is assigned a value of the result from (movieLength - remainingSeconds) / 60;
// e) What do you think the variable result represents? Can you think of a better name for this variable?
+// I think its the total movie length with a timer. Based on research it appears to be template literal variable as it mixes static text with dynamic data. Sorry I don't fully understand this bit yet
// f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer
+//any number greater than zero returns a valid positive hour, minute or seconds result. Changing the length to 0 returns 0:0:0. Any negative length returns negative values
+
diff --git a/Sprint-2/3-mandatory-interpret/3-to-pounds.js b/Sprint-2/3-mandatory-interpret/3-to-pounds.js
index 60c9ace69..d69518f17 100644
--- a/Sprint-2/3-mandatory-interpret/3-to-pounds.js
+++ b/Sprint-2/3-mandatory-interpret/3-to-pounds.js
@@ -1,19 +1,13 @@
const penceString = "399p";
const penceStringWithoutTrailingP = penceString.substring(
- 0,
- penceString.length - 1
-);
+ 0, penceString.length - 1);
const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0");
-const pounds = paddedPenceNumberString.substring(
- 0,
- paddedPenceNumberString.length - 2
-);
+const pounds = paddedPenceNumberString.substring(0, paddedPenceNumberString.length - 2);
-const pence = paddedPenceNumberString
- .substring(paddedPenceNumberString.length - 2)
- .padEnd(2, "0");
+
+const pence = paddedPenceNumberString.substring(paddedPenceNumberString.length - 2).padEnd(2, "0");
console.log(`£${pounds}.${pence}`);
@@ -25,3 +19,8 @@ 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): sets penceStringWithoutTRailingP = 399.0 - penceString -1 = 39
+// 3. const paddedPenceNumberString - ensures the figure is 3 characters to taking us back to 399
+// 4 const pounds - removes 2 characters from the amount = 3
+// 5. const pence - adds the amount by 2 characters taking us back to either 39 or 99
+// 6. console displays the figures in pounds and pence = 3.99
\ No newline at end of file