a swirl

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