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 (
) =