Skip to content

Commit

Permalink
Week2 - Monday - homework
Browse files Browse the repository at this point in the history
  • Loading branch information
Dhayananth Santhamoorthy committed Mar 15, 2022
1 parent 4168651 commit 2e6d632
Showing 1 changed file with 142 additions and 137 deletions.
279 changes: 142 additions & 137 deletions Dhaya Santhamoorthy/wk01 - starts 7th Mar/4-thu/objects-hw/js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,8 @@ const triangleC = {
sideC: 9,
};


const isEquilateral = function (triangle) {
return (triangle.sideA === triangle.sideB) && (triangle.sideA === triangle.sideC);
return triangle.sideA === triangle.sideB && triangle.sideA === triangle.sideC;
};

console.log(`Equilateral triangle check`);
Expand All @@ -64,8 +63,12 @@ console.log(isEquilateral(triangleB));
console.log(isEquilateral(triangleC));

const isIsosceles = function (triangle) {
return (triangle.sideA === triangle.sideB) || (triangle.sideA === triangle.sideC) || (triangle.sideB === triangle.sideC);
};
return (
triangle.sideA === triangle.sideB ||
triangle.sideA === triangle.sideC ||
triangle.sideB === triangle.sideC
);
};

console.log(`Isosceles triangle check`);
console.log(isIsosceles(triangleA)); //True as equilateral triangles are also isosceles
Expand All @@ -77,48 +80,48 @@ console.log(isIsosceles(triangleC));
// sum of the squares of the short sides = 9 + 49 = 58
// 58 < 81 Obtuse Triangle

const isObtuse = function (triangle) {
const sqauredNum = function (side) {
return Math.pow(side, 2);
}
let sideA = triangle.sideA;
let sideB = triangle.sideB;
let sideC = triangle.sideC;

let squaredSideA = sqauredNum(sideA);
let squaredSideB = sqauredNum(sideB);
let squaredSideC = sqauredNum(sideC);

if ( sideA > sideB && sideA > sideC ) {
return squaredSideA > (squaredSideB + squaredSideC);
} else if ( sideB > sideA && sideB > sideC ){
return squaredSideB > (squaredSideA + squaredSideC);
} else {
return squaredSideC > (squaredSideA + squaredSideB);
}
const isObtuse = function (triangle) {
const sqauredNum = function (side) {
return Math.pow(side, 2);
};
let sideA = triangle.sideA;
let sideB = triangle.sideB;
let sideC = triangle.sideC;

let squaredSideA = sqauredNum(sideA);
let squaredSideB = sqauredNum(sideB);
let squaredSideC = sqauredNum(sideC);

if (sideA > sideB && sideA > sideC) {
return squaredSideA > squaredSideB + squaredSideC;
} else if (sideB > sideA && sideB > sideC) {
return squaredSideB > squaredSideA + squaredSideC;
} else {
return squaredSideC > squaredSideA + squaredSideB;
}
};
console.log(`Obtuse triangle check`);
console.log(isObtuse(triangleA));
console.log(isObtuse(triangleB));
console.log(isObtuse(triangleC));


// Area of triangle = A = √[s(s-a)(s-b)(s-c)]
// where s is perimeter,
// s = (a + b + c)/2

const perimeterOfTriangle = function (triangle) {
return (triangle.sideA + triangle.sideB + triangle.sideC)/2
return (triangle.sideA + triangle.sideB + triangle.sideC) / 2;
};

const areaOfTriangle = function (triangle) {
let sideA = triangle.sideA;
let sideB = triangle.sideB;
let sideC = triangle.sideC;
let perimeter = perimeterOfTriangle(triangle);
let squaredArea = ( perimeter * ( perimeter - sideA ) * ( perimeter - sideB ) * ( perimeter - sideC ));
let area = Math.sqrt(squaredArea).toFixed(2);
return area;
const areaOfTriangle = function (triangle) {
let sideA = triangle.sideA;
let sideB = triangle.sideB;
let sideC = triangle.sideC;
let perimeter = perimeterOfTriangle(triangle);
let squaredArea =
perimeter * (perimeter - sideA) * (perimeter - sideB) * (perimeter - sideC);
let area = Math.sqrt(squaredArea).toFixed(2);
return area;
};
console.log(`Area of triangle`);
console.log(areaOfTriangle(triangleA));
Expand All @@ -128,142 +131,144 @@ console.log(areaOfTriangle(triangleC));
// Part 3, The Cash Register

console.log(`The Cash Register -`);
const cartForParty = {
banana: "1.25",
handkerchief: ".99",
Tshirt: "25.01",
apple: "0.60",
nalgene: "10.34",
proteinShake: "22.36"
};
const cartForParty = {
banana: "1.25",
handkerchief: ".99",
Tshirt: "25.01",
apple: "0.60",
nalgene: "10.34",
proteinShake: "22.36",
};

const cashRegister = function (shoppingCart) {
const pricesArr = Object.values(shoppingCart);
let totalPrice = 0;
for (let i = 0; i < pricesArr.length; i++) {
totalPrice += Number(pricesArr[i]);
}
return totalPrice;
const pricesArr = Object.values(shoppingCart);
let totalPrice = 0;
for (let i = 0; i < pricesArr.length; i++) {
totalPrice += Number(pricesArr[i]);
}
return totalPrice;
};
console.log(cashRegister(cartForParty));


// Part 4, Credit Card Validation

console.log(`Credit Card Validation -`);

const isValidCard = function (fullCardNumber){
const creditCardNumber = fullCardNumber.split("-").join(""); // Removing -(dashes) from card number
const cardNumberAsANumber = Number(creditCardNumber);
const cardNumberAsArray = creditCardNumber.split("");

const totalSum = function (arr1) {
let sum = 0;
for (const el of arr1){
sum += Number(el);
}
return sum;
};

const isNumber = function (num) {
return num >= 0 && num <= 9;
};

const result = {
valid: false,
number: fullCardNumber,
error: ""
};

if ( creditCardNumber.length === 16 ) {
for (let i = 0; i < creditCardNumber.length; i++){
let currentChar = creditCardNumber[i];
let currentcharAsNumber = Number(currentChar);
if( !(isNumber(currentcharAsNumber)) ){ // test for numeric characters
result.error = `invalid characters`;
return result;
} else {
if ( creditCardNumber[0] !== currentChar ){ // test if atleast two different characters are used
if ( cardNumberAsANumber % 2 === 0 ){ // test if last umber is even
let sumOfDigits = totalSum(cardNumberAsArray);
if ( sumOfDigits > 16 ) { // test if sum of digits greater than 16
result.valid = true;
delete result.error;
return result;
} else {
result.error = "sum less than 16";
return result;
}
} else {
result.error = "odd final number";
return result;
}
}
const isValidCard = function (fullCardNumber) {
const creditCardNumber = fullCardNumber.split("-").join(""); // Removing -(dashes) from card number
const cardNumberAsANumber = Number(creditCardNumber);
const cardNumberAsArray = creditCardNumber.split("");

const totalSum = function (arr1) {
let sum = 0;
for (const el of arr1) {
sum += Number(el);
}
return sum;
};

const isNumber = function (num) {
return num >= 0 && num <= 9;
};

const result = {
valid: false,
number: fullCardNumber,
error: "",
};

if (creditCardNumber.length === 16) {
for (let i = 0; i < creditCardNumber.length; i++) {
let currentChar = creditCardNumber[i];
let currentcharAsNumber = Number(currentChar);
if (!isNumber(currentcharAsNumber)) {
// test for numeric characters
result.error = `invalid characters`;
return result;
} else {
if (creditCardNumber[0] !== currentChar) {
// test if atleast two different characters are used
if (cardNumberAsANumber % 2 === 0) {
// test if last umber is even
let sumOfDigits = totalSum(cardNumberAsArray);
if (sumOfDigits > 16) {
// test if sum of digits greater than 16
result.valid = true;
delete result.error;
return result;
} else {
result.error = "sum less than 16";
return result;
}
} else {
result.error = "odd final number";
return result;
}
}
result.error = "all characters are same";
return result;
} else {
result.error = "Length not equal to 16";
return result;
}
}
result.error = "all characters are same";
return result;
} else {
result.error = "Length not equal to 16";
return result;
}
};

console.log(isValidCard("a923-3211-9c01-1112")); // returns invalid characters
console.log(isValidCard("6666-6666-6666-1666")); // returns valid
console.log(isValidCard("6666-6666-6666-6666")); // returns invalid - all characters are same
console.log(isValidCard("6666-6666-6666-1667")); // returns invalid - odd final number
console.log(isValidCard("4444-4444-4444-4444")); // returns invalid - all characters are same
console.log(isValidCard("1111-1111-1111-1110")); // reuturns invalid - sum less than 16
console.log(isValidCard("6666-6666-6666-6661")); // returns invalid - odd final number
console.log(isValidCard("6666-6666-6666-1666")); // returns valid
console.log(isValidCard("a923-3211-9c01-1112")); // returns invalid characters
console.log(isValidCard("6666-6666-6666-1666")); // returns valid
console.log(isValidCard("6666-6666-6666-6666")); // returns invalid - all characters are same
console.log(isValidCard("6666-6666-6666-1667")); // returns invalid - odd final number
console.log(isValidCard("4444-4444-4444-4444")); // returns invalid - all characters are same
console.log(isValidCard("1111-1111-1111-1110")); // reuturns invalid - sum less than 16
console.log(isValidCard("6666-6666-6666-6661")); // returns invalid - odd final number
console.log(isValidCard("6666-6666-6666-1666")); // returns valid

// Part - 5 JavaScript Bank

console.log("JavaScript Bank");

let account1 = {
owner: "Tim",
balance: 2000
};
owner: "Tim",
balance: 2000,
};

let account2 = {
owner: "Peter",
balance: 5000
};
owner: "Peter",
balance: 5000,
};

let account3 = {
owner: "Mary",
balance: 7000
};
owner: "Mary",
balance: 7000,
};

const bank = {
accounts: []
accounts: [],
};

const addAccount = function(account){
bank.accounts.push(account);
return bank;
}

const depositMoney = function(obj1, amount){
obj1.balance += amount;
return obj1;
const addAccount = function (account) {
bank.accounts.push(account);
return bank;
};

const withdrawMoney = function(obj1, amount){
obj1.balance -= amount;
return obj1;
const depositMoney = function (obj1, amount) {
obj1.balance += amount;
return obj1;
};

const allAccountsSum = function (bank){
let sum = 0;
for (const account of bank.accounts) {
sum += account.balance;
}
return sum;
const withdrawMoney = function (obj1, amount) {
obj1.balance -= amount;
return obj1;
};

const allAccountsSum = function (bank) {
let sum = 0;
for (const account of bank.accounts) {
sum += account.balance;
}
return sum;
};

addAccount(account1);
console.log(bank.accounts);
Expand All @@ -274,4 +279,4 @@ console.log(withdrawMoney(account2, 200));
addAccount(account3);
console.log(allAccountsSum(bank));
console.log(bank);
console.log(bank.accounts);
console.log(bank.accounts);

0 comments on commit 2e6d632

Please sign in to comment.