diff --git a/Sprint-2/1-key-exercises/1-count.js b/Sprint-2/1-key-exercises/1-count.js index 117bcb2b6..a1c6cd78d 100644 --- a/Sprint-2/1-key-exercises/1-count.js +++ b/Sprint-2/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 = it is reassigning a value to the variable count diff --git a/Sprint-2/1-key-exercises/2-initials.js b/Sprint-2/1-key-exercises/2-initials.js index 964c9563c..51512e506 100644 --- a/Sprint-2/1-key-exercises/2-initials.js +++ b/Sprint-2/1-key-exercises/2-initials.js @@ -2,9 +2,5 @@ const firstName = "Creola"; const middleName = "Katherine"; const 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. - -const initials = ``; - -// https://www.google.com/search?q=get+first+character+of+string+mdn +const initials = `${firstName[0]}${middleName[0]}${lastName[0]}`; +console.log(initials); diff --git a/Sprint-2/1-key-exercises/3-paths.js b/Sprint-2/1-key-exercises/3-paths.js index ab90ebb28..cba44712b 100644 --- a/Sprint-2/1-key-exercises/3-paths.js +++ b/Sprint-2/1-key-exercises/3-paths.js @@ -1,23 +1,11 @@ -// 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 = ; -const ext = ; - -// https://www.google.com/search?q=slice+mdn \ No newline at end of file +const startDirIndex = filePath.lastIndexOf("/Users"); +const dir = filePath.slice(startDirIndex, lastSlashIndex); +console.log(`The dir part of ${filePath} is ${dir}`); +const dotIndex = filePath.lastIndexOf("."); +const ext = filePath.slice(dotIndex); +console.log(`The ext part of the ${filePath} is ${ext}`); diff --git a/Sprint-2/1-key-exercises/4-random.js b/Sprint-2/1-key-exercises/4-random.js index 292f83aab..f85905cec 100644 --- a/Sprint-2/1-key-exercises/4-random.js +++ b/Sprint-2/1-key-exercises/4-random.js @@ -3,7 +3,14 @@ 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? -// 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 +//1.num represents a number which is an Integer that is greater or equal to 1. +// That is because of the value of the minimum is 1. +//2.lets start by (maximum-minimum +1) which the output is 100. +//3.math.random()*100 returns random number between 0 and 100, what actually +// happens is that math.random gives out random number from 0 to 1 which 1 is +// not included and in this case, multiply the output by 100. +//4.math.floor() gives out the largest integer which is less than or equal to +// the given number,which is decimal, which means it drops all the decimal. for example if +// the output is 69.5, it compares 69 with 69.5.The output will be 69 which is the largest Integer. +//5.at the end we add 1 which is the minimum. +console.log(num); diff --git a/Sprint-2/2-mandatory-errors/0.js b/Sprint-2/2-mandatory-errors/0.js index cf6c5039f..e6b744a05 100644 --- a/Sprint-2/2-mandatory-errors/0.js +++ b/Sprint-2/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? diff --git a/Sprint-2/2-mandatory-errors/1.js b/Sprint-2/2-mandatory-errors/1.js index 7a43cbea7..09606ed16 100644 --- a/Sprint-2/2-mandatory-errors/1.js +++ b/Sprint-2/2-mandatory-errors/1.js @@ -1,4 +1,6 @@ // trying to create an age variable and then reassign the value by 1 -const age = 33; +let age = 33; age = age + 1; +// you can not reassign a value to variable that is declared const. +console.log(age); diff --git a/Sprint-2/2-mandatory-errors/2.js b/Sprint-2/2-mandatory-errors/2.js index e09b89831..dacc5b7fc 100644 --- a/Sprint-2/2-mandatory-errors/2.js +++ b/Sprint-2/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"; +// The error is that the const declation and initialization came after console.log so no access for cityOfBirth. +console.log(`I was born in ${cityOfBirth}`); diff --git a/Sprint-2/2-mandatory-errors/3.js b/Sprint-2/2-mandatory-errors/3.js index ec101884d..2ec5a050a 100644 --- a/Sprint-2/2-mandatory-errors/3.js +++ b/Sprint-2/2-mandatory-errors/3.js @@ -1,9 +1,6 @@ -const cardNumber = 4533787178994213; +const cardNumber = "4533787178994213"; const last4Digits = cardNumber.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 -// 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 +// the code is not working because the number initialized should be in "" . +// so it can know it/or treat it as a string. +console.log(last4Digits); diff --git a/Sprint-2/2-mandatory-errors/4.js b/Sprint-2/2-mandatory-errors/4.js index 5f86c730b..9fe2294da 100644 --- a/Sprint-2/2-mandatory-errors/4.js +++ b/Sprint-2/2-mandatory-errors/4.js @@ -1,2 +1,6 @@ -const 12HourClockTime = "8:53pm"; -const 24hourClockTime = "20:53"; +const am_pm = "8:53pm"; +const militaryTime = "20:53"; + +// The error here is that the variable started with number. +console.log(am_pm); +console.log(militaryTime); diff --git a/Sprint-2/3-mandatory-interpret/1-percentage-change.js b/Sprint-2/3-mandatory-interpret/1-percentage-change.js index e24ecb8e1..e5ea1ae21 100644 --- a/Sprint-2/3-mandatory-interpret/1-percentage-change.js +++ b/Sprint-2/3-mandatory-interpret/1-percentage-change.js @@ -2,21 +2,21 @@ 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; 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? +//1. There are 5 function calls in line 4 , 5 and 10 +// * number()and the second one is .replaceAll() in line 4 +// * number() and the second one is .replaceAll()in line 4 +// * console.log() +// 2. The error is coming from the line 5, because there was no comma in the replaceAll() method . +// 3. line 4 and 5 are the variable reassignment statements. +// 4. line 1 ,2 ,7 and 8 are lines where variable declarations happened +// 5. *The method .replaceAll() in line 4 is replacing the coma (,) with nothing("") in the "10,000" and the output is "10000", +// the number() function converts the string "10000" into a number. +// *The method .replaceAll() in line 4 is replacing the coma(,) with nothing("") in the "8,543" and the output is "8543" +// the number() function coverts the string "8543" into a number which is 8543. diff --git a/Sprint-2/3-mandatory-interpret/2-time-format.js b/Sprint-2/3-mandatory-interpret/2-time-format.js index 47d239558..ce3cba2ed 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 = 90.5; // length of movie in seconds const remainingSeconds = movieLength % 60; const totalMinutes = (movieLength - remainingSeconds) / 60; @@ -6,20 +6,24 @@ const totalMinutes = (movieLength - remainingSeconds) / 60; const remainingMinutes = totalMinutes % 60; const totalHours = (totalMinutes - remainingMinutes) / 60; -const result = `${totalHours}:${remainingMinutes}:${remainingSeconds}`; -console.log(result); +const movieDuration = `${totalHours}:${remainingMinutes}:${remainingSeconds}`; +console.log(movieDuration); -// For the piece of code above, read the code and then answer the following questions +//A.There are six variable declarations -// a) How many variable declarations are there in this program? +//B. one function call (console.log()) -// b) How many function calls are there? +//C.The % represents a remainder. The operator returns the remainder leftover when one operand which in +// this cas is movieLength is divided by a second operand in this case 60%. -// c) Using documentation, explain what the expression movieLength % 60 represents -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators +// D.it means it is changing the value that was in second into minute by dividing it 60 after the top +// calculation makes it whole number. -// d) Interpret line 4, what does the expression assigned to totalMinutes mean? +//E. It represents the duration of the movie.movieLength/ better name would be movieDuration. -// 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 +//F. No it doesnt work for all different values , I experimented it with -ve numbers and decimals.It doesnt +// give the desired output. For example if +// const movieLength = -60; +// movieDuration = 0:-1:0, there is no -ve value in time +// if const movieLength = 90.5; +// movieDuration = 0:1:30.5 the out put is decimal second. diff --git a/Sprint-2/3-mandatory-interpret/3-to-pounds.js b/Sprint-2/3-mandatory-interpret/3-to-pounds.js index 60c9ace69..22eeed386 100644 --- a/Sprint-2/3-mandatory-interpret/3-to-pounds.js +++ b/Sprint-2/3-mandatory-interpret/3-to-pounds.js @@ -2,13 +2,13 @@ const penceString = "399p"; const penceStringWithoutTrailingP = penceString.substring( 0, - penceString.length - 1 + penceString.length - 1, ); const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0"); const pounds = paddedPenceNumberString.substring( 0, - paddedPenceNumberString.length - 2 + paddedPenceNumberString.length - 2, ); const pence = paddedPenceNumberString @@ -25,3 +25,15 @@ console.log(`£${pounds}.${pence}`); // To begin, we can start with // 1. const penceString = "399p": initialises a string variable with the value "399p" + +// 2. penceStringWithoutTrailingP : it's value is the return of the method substring()which is 399. +// the substring(0,3-1),when the substring extracts string from index 0 to 2 =>399 and p will be dropped. + +// 3. paddedPenceNumberString : its value is what the padstart() method returns which is the same.399 +//padstart(3,0),it is supossed to add 0's till the needed length is reached which is 3=>399. + +// 4. const Pound is initialized by the out come of the substring()method which is only 3. Because the +// substring start index is zero and end endex is 1. +// 5. const pence will be initialized there are two methods. the first one will extract the string form index 1 +// the second one will add 0 which there is no need=> 99 +//6.consol.log => 3.99