Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Sprint-1/1-key-exercises/1-count.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@ 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
// Line 3; when we the right side first count in the right side is considered as 0 so 0+1 will be 1.
// But the = sign does not mean the mathematical equal, its function is to take the result on the right and store it on the left.
// Therefore if we write the same code in next line the result is not one but 2
2 changes: 1 addition & 1 deletion Sprint-1/1-key-exercises/2-initials.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ 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]}`;

// https://www.google.com/search?q=get+first+character+of+string+mdn

6 changes: 4 additions & 2 deletions Sprint-1/1-key-exercises/3-paths.js
Original file line number Diff line number Diff line change
Expand Up @@ -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.slice(0, lastSlashIndex);
const lastDotIndex = base.lastIndexOf(".");
const ext = base.slice(lastDotIndex + 1);


// https://www.google.com/search?q=slice+mdn
19 changes: 19 additions & 0 deletions Sprint-1/1-key-exercises/4-random.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,22 @@ 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

// Answer

// 1.
// The num in this scenario represent any integer between 1 and 100

// 2.
// Math.floor: rounds the number down to the nearest whole number which means it ignores the number to the right of the point. eg. 4.7=4
// Math.random is a js code that returns any random number that is greater than or equal to 0 and less than 1
//* is multiplication
// maximum is the maximum given number, in this case 100
//- is a subtraction
// minimum is the minimum given number, in this case 1
//(maximum - minimum +1) this is subtracting the minimum number from the maximum and add 1, in this case (100-1+1)=100
//+ minimum: this turns the value by adding 1 to the whole equation.

//3.

console.log(num)
4 changes: 2 additions & 2 deletions Sprint-1/2-mandatory-errors/0.js
Original file line number Diff line number Diff line change
@@ -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?
//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?
3 changes: 2 additions & 1 deletion Sprint-1/2-mandatory-errors/1.js
Original file line number Diff line number Diff line change
@@ -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)
3 changes: 2 additions & 1 deletion Sprint-1/2-mandatory-errors/2.js
Original file line number Diff line number Diff line change
@@ -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}`);
10 changes: 10 additions & 0 deletions Sprint-1/2-mandatory-errors/3.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,13 @@ 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

//Answer

// This code is not working because slice() is working with "string" or "arrays" but not with numbers. and cardNumber is a number.
// So the error is "TypeError:cardNumber.slice is not a function"\
// slice() didn't recognize the number as I expected before.

const cardNumber = 4533787178994213;
const last4Digits = String(cardNumber).slice(-4);
console.log(last4Digits)
5 changes: 4 additions & 1 deletion Sprint-1/2-mandatory-errors/4.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
const 12HourClockTime = "20:53";
const 24hourClockTime = "08:53";
const 24hourClockTime = "08:53";
// the 12 and 24 are changing position
const 24HourClockTime = "20:53";
const 12hourClockTime = "08:53";
27 changes: 27 additions & 0 deletions Sprint-1/3-mandatory-interpret/1-percentage-change.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,37 @@ console.log(`The percentage change is ${percentageChange}`);

// a) How many function calls are there in this file? Write down all the lines where a function call is made

// There are five functions calls.
//carPrice.replaceAll(",", "")
//Number(carPrice.replaceAll(",", ""))
//priceAfterOneYear.replaceAll("," "")
//Number(priceAfterOneYear.replaceAll("," ""))
//console.log(`The percentage change is ${percentageChange}`)

// 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?

// When I run the code the error is "syntaxError: missing ) after argument list.
// The error comes from line 5
// The error occurs due to the missing coma between the two strings in the replaceAll() call.
// Add coma between the two strings "priceAfterOneYear = Number(priceAfterOneYear.replaceAll(",", ""));"

// c) Identify all the lines that are variable reassignment statements

// there are to lines that state variable reassignment
// carPrice = Number(carPrice.replaceAll(",", ""));
// priceAfterOneYear = Number(priceAfterOneYear.replaceAll("," ""));

// d) Identify all the lines that are variable declarations

// There are fore variable declarations (line 1, line 2, line 7, line 8)
// 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?

// carprice at line 1 is a string in order to calculate for the next line of codes you have to change the string ti number.
// carPrice.replaceAll(",","")). delete the coma in between the number (e.g from "10,000" to "10000")
// number() change the string to number ("10000" to 10000)
7 changes: 7 additions & 0 deletions Sprint-1/3-mandatory-interpret/2-time-format.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,21 @@ 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 variable declaration. "line1, line3, line4, line6, line7, line9"

// b) How many function calls are there?
// There is only one function call in this program "console.log(result);"

// c) Using documentation, explain what the expression movieLength % 60 represents
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators
// % is called remainder. There fore movieLength % 60 represents the remainder of the movie length after dividing by 60.

// d) Interpret line 4, what does the expression assigned to totalMinutes mean?
// totalMinutes are calculated by subtracting the remaining seconds from movie length and divided by 60 to get full minutes. this helps to get a number which divided by 60 with out reminder.

// e) What do you think the variable result represents? Can you think of a better name for this variable?
// result represents the total length of the movie in the form of Hour: minute: second
// moveDurationFormatted can be a better name to replace result.

// f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer
// Yes it works for all value. the only thing that is concerning is the validation of movieLength as the negative integer also gives value which is unrealistic.
12 changes: 11 additions & 1 deletion Sprint-1/3-mandatory-interpret/3-to-pounds.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const penceString = "399p";
onst penceString = "399p";

const penceStringWithoutTrailingP = penceString.substring(
0,
Expand All @@ -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 remove the p and left the string with only 399
// 3. const paddedPenceNumberString = penceStringWithoutTrailingP.padStart(3, "0");
// this code make sure that the string has 3 character. since one pound is equal 100 pence.
// 4. const pounds = paddedPenceNumberString.substring( 0, paddedPenceNumberString.length - 2);
// This code takes the number leaving the last 2 digits "in this case it takes 3 and leave 99"
// 5. const pence = paddedPenceNumberString.substring(paddedPenceNumberString.length - 2) .padEnd(2, "0");
// This code takes the last digit from the string and also make sure that it has only two digits this gives a "99" value.
// 6. console.log(`£${pounds}.${pence}`);
// his gives a result with £ sign and separated by . " in this case it gives £3.99 "
22 changes: 18 additions & 4 deletions Sprint-2/1-key-errors/0.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,27 @@
// Predict and explain first...
// =============> write your prediction here

// The code will capitalize the first word of the str which gives "Str"

// 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;
}
// The error occurs in line 13 and it says "SyntaxError: Identifier 'str' has already been declared"
// The error is informing us that the string str has already been declared in line 12 so we can not declare it again.

//function capitalise(str) {
// let str = `${str[0].toUpperCase()}${str.slice(1)}`;
// return str;
//}

// =============> write your explanation here

// The code is written to capitalize the first letter of str which is expected to give the result Str.

// =============> write your new code here

function capitalise(str) {
str = `${str[0].toUpperCase()}${str.slice(1)}`;
return str;
}
console.log(capitalise("str"))
16 changes: 13 additions & 3 deletions Sprint-2/1-key-errors/1.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,29 @@

// Why will an error occur when this program runs?
// =============> write your prediction here
// This code is tend to be a code to convert decimal number in to %. I predict there will be an error because the call for the function has a bug.

// Try playing computer with the example to work out what is going on

function convertToPercentage(decimalNumber) {
/*function convertToPercentage(decimalNumber) {
const decimalNumber = 0.5;
const percentage = `${decimalNumber * 100}%`;

return percentage;
}
}/

console.log(decimalNumber);
console.log(decimalNumber);*/

// =============> write your explanation here
// A syntaxError has been observed because the decimalNumber is already declared.
// if we delete line 10 anther error happen this time about calling the function in which decimalNumber is not defined in the global scope.

// 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"));
11 changes: 10 additions & 1 deletion Sprint-2/1-key-errors/2.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,26 @@
// this function should square any number but instead we're going to get an error

// =============> write your prediction of the error here
/* There is a problem in the function parameter. we can not use number in parameter.
even though line 12 by it self has no coding problem but the num is not declared before.*/

/*
function square(3) {
return num * num;
}
*/

// =============> write the error message here

/* unexpected number
// =============> explain this error message here
we can not use number in a parameter so 3 is not used as identifier */

// Finally, correct the code to fix the problem

// =============> write your new code here
function square(num) {
return num * num;
}
console.log(square("3"))


11 changes: 9 additions & 2 deletions Sprint-2/2-mandatory-debug/0.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
// Predict and explain first...

// =============> write your prediction here
/*the function doesn't return any thing so there will be an error. */

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)}`);
console.log(`The result of multiplying 10 and 32 is ${multiply(10, 32)}`);*/

// =============> write your explanation here
/* As predicted the function does not return any thing. But the first call gives 320. and the second undefine. */

// Finally, correct the code to fix the problem
// =============> write your new code here
function multiply(a, b) {
return a * b;
}

console.log(`The result of multiplying 10 and 32 is ${multiply(10, 32)}`);
13 changes: 10 additions & 3 deletions Sprint-2/2-mandatory-debug/1.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
// Predict and explain first...
// =============> write your prediction here
/* The code will give us the sum of 10 and 32 which will be " The sum of 10 and 32 is 42" */

function sum(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
/* the call of the function gives undefine result. the reason for this is the semicolon after return which shouldn't be placed there.
// Finally, correct the code to fix the problem
// =============> write your new code here
// =============> write your new code here */
function sum(a, b) {
return a + b;
}

console.log(`The sum of 10 and 32 is ${sum(10, 32)}`);
20 changes: 18 additions & 2 deletions Sprint-2/2-mandatory-debug/2.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@

// Predict the output of the following code:
// =============> Write your prediction here
/* I predict that the three call are giving
The last digit of 42 is 2
The last digit of 105 is 5
The last digit of 806 is 6 */

const num = 103;
/*const num = 103;

function getLastDigit() {
return num.toString().slice(-1);
Expand All @@ -12,13 +16,25 @@ 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
/* 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
/* because the num is determined at fires and 103 is given to the num. as a result we see the same result.*/
// 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
7 changes: 5 additions & 2 deletions Sprint-2/3-mandatory-implement/1-bmi.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
// Then when we call this function with the weight and height
// It should return their Body Mass Index to 1 decimal place

function calculateBMI(weight, height) {
function calculateBMI(weight, height) {
const bmi= weight/ (height*height)
return bmi.toFixed(1);
// return the BMI of someone based off their weight and height
}
}
console.log(calculateBMI(86,1.70));
6 changes: 6 additions & 0 deletions Sprint-2/3-mandatory-implement/2-cases.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,9 @@
// 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 toUpperCase(text) {
return text.toUpperCase();
}

console.log(toUpperCase("hello there"));
console.log(toUpperCase("lord of the ring"));
Loading