Skip to content
This repository was archived by the owner on Jan 14, 2024. It is now read-only.
Open
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
17 changes: 16 additions & 1 deletion extra/1-factorial.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,25 @@
Using a loop, complete the function below so it returns the factorial of the number being passed in.
*/

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like there's a lot going on here 😄
For problems like this, I would suggest we take a step back from the code - and think about some of the Problem Solving techniques we covered in the workshop in class. Maybe start by thinking about how you would normally do something like this (without a computer) and try drawing it out on a whiteboard or paper. This may give you some ideas about how to do this in code.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well done for attempting this though! It's a tough one!

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wrote pseudo code and watched your videos on function and looping and managed to do this on my own in less 30 minutes. Thank you, Barath!

/*
Pseudocode:
- We take a number and pass it as an argument into the function
- Inside the fuction the number is then multiplied to one less than the number until it reaches 1.

*/

function factorial(input) {
// TODO
let multiple = 1;
for (let i = input; i > 0; i--) {
multiple = multiple * input;
input = input - 1;
}
return multiple;
}




/* ======= TESTS - DO NOT MODIFY ===== */

describe("factorial", () => {
Expand Down
9 changes: 3 additions & 6 deletions mandatory/1-fix-functions.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,16 @@

*/

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both of these look good to me 👍

function getMood() {
let isHappy = true;

function getMood(isHappy) {
if (isHappy) {
return "I am happy";
} else {
} else {
return "I am not happy";
}
}

function greaterThan10(num) {
let isBigEnough;

let isBigEnough = num > 10;
if (isBigEnough) {
return "num is greater than 10";
} else {
Expand Down
55 changes: 49 additions & 6 deletions mandatory/2-function-creation.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@
1. the user should be 18 or older
2. the user must be logged in
*/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice 👍
Can you think about how you can make this code even shorter? Do you need the if statement? Can you do it with only a return statement?

function isAcceptableUser(userAge, isLoggedIn) {}
function isAcceptableUser(userAge, isLoggedIn) {
if (userAge >= 18 && isLoggedIn) {
return true;
} else {
return false;
}
}

/*
Complete the function to apply discount percent based on how much is totalPrice in user cart.
Expand All @@ -15,26 +21,58 @@ function isAcceptableUser(userAge, isLoggedIn) {}
is applieds and 142.5 should be returned)
*/

function applyDiscount(totalPrice) {}
function applyDiscount(totalPrice) {
if (totalPrice > 200) {
return 0.9 * totalPrice;
} else if (totalPrice > 0 && totalPrice < 200) {
return 0.95 * totalPrice;
} else {
return 0
}
}

/*
Complete the function to print to the console the odd numbers between 1 and limit (use a while loop):
*/
function printOddNumbers(limit) {}


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perfect 👍

function printOddNumbers(limit) {
let i = 0;
while ( i <= limit) {
if (i % 2 === 1) {
console.log(i);
}
i = i + 1;
}
}

/*
Complete the buyTwoGetTheCheapestFree function: if user buys two items, the cheapest item will be free!
The function should return the price to be paid once the discount is applied.
*/
function buyTwoGetTheCheapestFree(price1, price2) {}
function buyTwoGetTheCheapestFree(price1, price2) {
if (price1 > price2) {
return price1;
} else if (price2 > price1) {
return price2;
} else price1;
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well done Afsha .

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you Navid!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, good job 👍
It's good that you're thinking about the case where price1 is equal to price2.

/*
Complete the function to determine if it is suitable for a person to register based on their age!
- if the person is 12 or younger it should return "You Are Too Young To Register"
- if the person is older than 12 and younger than 90 it should return "You Can Register"
- if the person is 90 or older it should return "You Don't Need To Register"
*/
function canRegister(age) {}
function canRegister(age) {
if (age <= 12) {
return "You Are Too Young To Register";
} else if (age > 12 && age < 90) {
return "You Can Register";
} else {
Copy link

@SeyoungJoo SeyoungJoo Mar 1, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The last statement that returns false is not required. recommend to delete the last else statement as the first 3 conditions already covers all the cases you can have.

function canRegister(age) {
  if (age <= 12) {
    return "You Are Too Young To Register";
  } else if (age > 12 && age < 90) {
    return "You Can Register";
  } else {
    return "You Don't Need To Register";

return "You Don't Need To Register";
}
}

/*
Complete the function so that it prints out to the console numbers in reverse order starting at
Expand All @@ -45,7 +83,12 @@ function canRegister(age) {}
)
*/

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good 👍

function countReverse(number) {}
function countReverse(number) {
while (number > 0) {
console.log(number);
number = number - 1;
}
}

/* ======= TESTS - DO NOT MODIFY ===== */

Expand Down