Tasks for practical 1
Open console to see results or check out the accordion items below.
Code
function percentage(number, percentage){ return number * percentage / 100.0; }
Test code
console.log(percentage(20,5)); console.log(percentage(100,50)); console.log(percentage(60,20)); console.log(percentage(75,5));
Results
1 50: 12 3.75
Code
function drinkOrder(size,drink){ var mediumPrice = 2.80; var price; var strMessage = 'You have ordered a '; var strError = ''; switch (size) { case 'small': price = 1.2 * mediumPrice; break; case 'medium': price = mediumPrice; break; case'large': price = 0.8 * mediumPrice; break; default: strError += "The value for size is not valid. It should be one of small, medium, large"; break; } strMessage += size + ' '; switch (drink){ case 'cola': strMessage += ' Cola '; break; case 'lemon': strMessage += ' Lemonade '; break; case 'orange': strMessage += ' Orangeade '; break; default: strError += 'You have ordered a drink we don\'t sell'; break; } /*if (size != 'large' && size != 'medium' && size != 'small'){ strError = 'You have ordered a drink we don\'t sell'; }*/ if (strError) return strError; else return strMessage + 'which costs £' + price.toFixed(2); }
Test code
let order1 = drinkOrder('small','cola'); let order2 = drinkOrder('medium','lemon'); let order3 = drinkOrder('large','orange'); let order4 = drinkOrder('alex','lemon'); let order5 = drinkOrder('large','alex'); console.log(order1); console.log(order2); console.log(order3); console.log(order4); console.log(order5);
Results
You have ordered a small Cola which costs £3.36 You have ordered a medium Lemonade which costs £2.80 You have ordered a large Orangeade which costs £2.24 The value for size is not valid. It should be one of small, medium, large You have ordered a drink we don't sell
Code
function calculator(number1, number2, operator){ let blnValidation = true; let strMessage = ''; var sum; if (isNaN(number1)) { blnValidation = false; strMessage += 'First argument must be a number. '; } if (isNaN(number2)) { blnValidation = false; strMessage += 'Second argument must be a number. '; } if (blnValidation){ switch (operator) { case '%': sum = number1 % number2; break; case '/': sum = number1 / number2; break; case '*': sum = number1 * number2; break; case '+': sum = number1 + number2; break; case '-': sum = number1 - number2; break; default: blnValidation = false; strMessage += 'Third argument must be a valid operatior. '; } strMessage = number1 + ' ' + operator + ' ' + number2 + ' ' + '=' + ' ' + sum; } return strMessage + '\n\n'; }
Test code
console.log(calculator('alex','alex','alex')); console.log(calculator('alex',10,'alex')); console.log(calculator(3,6,'+')); console.log(calculator(100,10,'+')); console.log(calculator(100,10,'-')); console.log(calculator(100,10,'*')); console.log(calculator(100,10,'/')); console.log(calculator(100,10,'%'));
Results
First argument must be a number. Second argument must be a number. First argument must be a number. 3 + 6 = 9 100 + 10 = 110 100 - 10 = 90 100 * 10 = 1000 100 / 10 = 10 100 % 10 = 0
Some extra maths functions
function factorial(number) { // check the argument if (isNaN(number)) return 'the argumentt to factorial should be a number'; if (!Number.isInteger(number) || number < 1 ) return 'the argument to factorial must be a positive whole number greater or equal to one.'; // do calculation if (number == 1) return 1; else return number * factorial(number - 1) }
Demo for factorial: enter a positive whole number
factorial (
) =
/* The number of ball needed to make an equalateral triange of balls of side number */ function triangle(number) { // check the argument if (isNaN(number)) return 'the argumentt to triangle should be a number'; if (!Number.isInteger(number) || number < 1 ) return 'the argument to triangle must be a positive whole number greater or equal to one.'; // do calculation return number * (number + 1) / 2; }
Demo for triangle: enter a positive whole number
triangle (
) =
/* calculate the number of balls need to make a tetrahedron of side length number This works out as the sum of the triangle numbers because each time, you add a layer that is a triangle.*/ function pyramid(number) { // check the argument if (isNaN(number)) return 'the argument to pyramid should be a number'; if (!Number.isInteger(number) || number < 1 ) return 'the argument to pyramid must be a positive whole number greater or equal to one.'; // do calculation return number * (number + 1) * (number + 2) / 6 }
Demo for pyramid: enter a positive whole number
pyramid (
) =