Monday, September 28, 2015

Lab5 - my_count() e.g. my_count("Thailand", "a") -> return 2

def setup():
    input_string = "Thailand"
    reference = "a"
    count_string = my_count(input_string,reference)
    print(count_string)
   
def my_count(string,reference):
    index = 0
    count = 0
    while(index < len(string)):
        if(string[index] == reference):
            count+=1
        index+=1
    return count

setup()

Lab5 - convert a number from base 10 to base 2

def setup():
    baseTwo=""
    baseTen=int(input())
    while(baseTen>0):
        module=baseTen%2
        baseTen=baseTen//2
        baseTwo = str(module)+baseTwo
   
    print("Base 10 to Base 2 =",baseTwo)
   
setup()

Sunday, September 27, 2015

Lab5 - Increase/decrease values in array (by fixed value or percentage)

def setup():

    n=[5,8,9,7,5,3,2,9]

    i=0

    percent=int(input())

    while(i<=len(n)):

        n[i]=n[i]+((percent*n[i])/100)
       
        print("Value of n[",i,"] is ",n[i])

        i+=1


setup()

Saturday, September 26, 2015

Lab5 - Find average of values in array

def find_avg(n):
    i=0
    sum=0
    count=0
    while(i<len(n)):
        sum=sum+n[i]
        i+=1
        count+=1
    sum=sum/count
   
    return sum
   
def setup():
     n=[5,8,9,7,5,3,2,9]
     print("Average of values in array",find_avg(n))
    
setup()

Lab5 - Find/count number of positive values in array

def count_pos(n):
    i=0
    count=0
    while(i<len(n)):
        if(n[i]>0):
            count+=1
            print("n[",i,"]","is",n[i])
        i+=1
    return count
   
def setup():
     n=[5,8,-9,7,5,3,-2,9]
     print("Number of positive values in array",count_pos(n))
    
setup()

Lab5 - Find sum of positive values in array

def find_sum(n):
    i=0
    sum=0
    while(i<len(n)):
        if(n[i]>0):
            sum=sum+n[i]
        i+=1
    return sum
   
def setup():
     n=[5,8,-9,7,5,3,-2,9]
     print("Sum of values in array",find_sum(n))
    
setup()

Lab5 - Find sum of values in array

def find_sum(n):
    i=0
    sum=0
    while(i<len(n)):
        sum=sum+n[i]
        i+=1
    return sum
   
def setup():
     n=[5,8,9,7,5,3,2,9]
     print("Sum of values in array",find_sum(n))
    
setup()

Lab5 - Find the maximum value in array

def find_max(n):
    i=0
    maximum=n[i]
    while(i<len(n)):
        if(maximum<n[i]):
            maximum=n[i]
        i+=1
     
    return maximum

def setup():
    n=[5,8,9,7,5,3,2,9]
    print("Maximum is ",find_max(n))
 
setup()

Lab5 - Find index of (the last) maximum value in array

def find_max(n):
    i=0
    maximum=n[i]
    while(i<len(n)):
        if(maximum<n[i]):
            maximum=n[i]
        i+=1
     
    return maximum

def find_indexLast(n):

    i=len(n)-1
    maximum=find_max(n)
    while(i>=0):
        if(maximum==n[i]):
            index=i
            break
        i-=1
    return index
 
def setup():
    n=[5,8,9,7,5,3,2,9]
    print("Maximum is ",find_max(n))
    print("index of (the last) maximum value in array is ",find_indexLast(n))
 
setup()

Lab5 - Find index of (the first) maximum value in array

def find_max(n):
    i=0
    maximum=n[i]
    while(i<len(n)):
        if(maximum<n[i]):
            maximum=n[i]
        i+=1
     
    return maximum

def find_indexf(n):
    i=0
    maximum=find_max(n)
    while(i<len(n)):
        if(maximum==n[i]):
            index=i
            i=len(n)
        i+=1
    return index
 
def setup():
    n=[5,8,9,7,5,3,2,9]
    print("Maximum is ",find_max(n))
    print("index of (the first) maximum value in array is ",find_indexf(n))
 
setup()

Lab5 - Display elements (value) of array and its index

def setup():
    n=[5,8,9,7,5,3,2,9]
    i=0
    print("Index is ",n[0])
    while(i<=len(n)):
        print("Value of n[",i,"] is ",n[i])
        i+=1

setup()

Saturday, September 19, 2015

Lab 4x Hello Python - Loan payment, see question 30 on page 370 show payment No. , interest, principal, unpaid balance, total interest to date (do not worry about the output format too much, e.g. how to change 1.234 to 1.23)

def setup():
    loan_amount=5000
    interestRate=12
    months=12
    cal_loan(5000,12,12)
   
def cal_loan(loan_amount, interestRate, months):
    n=1
    term=1
    total_interest=0
   
    effectiveInterest=interestRate/(100*12)
   
    monthlyPayment=loan_amount*(effectiveInterest/(1-pow(1+effectiveInterest,-months)))
   
    balance=loan_amount
    print("Loan Amount $ = ",loan_amount)
    print("Loan Term = ",months," month(s)")
    print("Interest Rate = ",interestRate,"%")
    print("Payment per months = ",monthlyPayment)
    print("Payment No. |  Interset  |  Principal  |  Unpaid Balance  |  Total Interest to Date")
   
    while(term<=months):
        interest = effectiveInterest*balance
        principal=monthlyPayment-interest
        balance=balance-principal
        total_interest=total_interest+interest
        print("     ",term,"        $",interest,"        $",principal,"    $",balance,"           $",total_interest)
        term=term+1
  
setup()

Lab 4x Hello Python - Calculate sum of prime numbers from 1 to N, (create boolean function?)

def setup():
    sum_prime_number(10)
   
def sum_prime_number(numbers_end):
    numbers=2
    sum=0
    n=1
    print("Prime number is ",end="")
    while(numbers<=numbers_end):
        reference=2
        prime_numbers=True
        while(reference<numbers and prime_numbers):
            if(numbers%reference==0):
                prime_numbers=False
            reference=reference+1
        if(prime_numbers):
            sum=sum+numbers
            print(numbers,"",end="")
            n=n+1
        numbers=numbers+1
    print("")
    print("Sum of prime number is ",sum)
   
setup()

Lab 4x Hello Python - Calculate and display multiplication table

def setup():
    multiplication_table(12)
 
def multiplication_table(numbers):
    n=1
    print("** Multiplication table of " ,numbers, "**")
    while(n<=12):
        result=numbers*n
        print(numbers, "X" ,n, "=" ,result)
        n=n+1

setup()

Lab 4x Hello Python - Calculate sum of integers from 1 to N (1+2+3+...+N) using loop (not recursive function)

def setup():
    numbers=10
    print("N = " ,numbers)
    cal_sum_1_to_N(numbers)
 
def cal_sum_1_to_N(n):
    sum=0
    while(n>0):
        if(n>1):
            print(n, "+",end="")
         
        else:
            print("1 = ",end="")
         
        sum=sum+n
        n=n-1
 
    print(sum)
    print("Sum of 1 to N = " ,sum)

setup()

Lab 4x Hello Python - Delivery charge, see question 20 on page 299

def setup():
  cal_charge(0, 1, 8);


def cal_charge(packaging, services, weight):

    print("Type of package (Letter=0/Box=1) is " ,packaging)
    print("Type of service (Next Day Priority=0/Next Day Standard=1/Two-Day=2) is " ,services)
    print("Weight is " ,weight ," oz")
    print();
 
    if(packaging == 0 and services == 0 and weight <= 8):
    
       print("The total is $12.00")
    
    elif(packaging == 0 and services == 1 and weight <= 8):
    
       print("The total is $10.50")
    
    elif(packaging == 0 and services == 2):
    
       print("Not avaliable")
   
    elif(packaging == 1 and services == 0):
        if (weight <= 16):
      
            print("The total is $15.75")
      
        else:
          
         weight = weight/16;
         add = 15.75,((ceil(weight)-1)*1.25);
         print("The total is $" ,add)
      
    
    elif(packaging == 1 and services == 1):
      
        if (weight <= 16):
      
         print("The total is $13.75")
      
        else:
      
         weight = weight/16
         add = 13.75,((ceil(weight)-1)*1.00)
         print("The total is $" ,add)
      
  
    elif(packaging == 1 and services == 2):
      
        if (weight <= 16):
      
         print("The total is $7.00")
      
        else:
      
         weight = weight/16
         add = 7.00,((ceil(weight)-1)*0.50)
         print("The total is $" ,add)

setup()

Lab 4x Hello Python - Leap Year, see question 12 on page 297

def setup():
    cal_leapyear(1796)
 
def cal_leapyear(years):
    print("That year is" ,years)
 
    if(((years%4)==0) and ((years%100)!=0) or ((years%400)==0)):
        print("This is leap year.")
     
    else:
        print("This isn't leap year!")
     
    return years
 
setup()

Lab 4x Hello Python - Power of 10, see question 9 on page 296

def setup():
    cal_power(100)
 
def cal_power(number):
    print("Power of ten is" ,number)
 
    if(number==6):
        print("Number is Million")
     
    elif(number==9):
        print("Number is Billion")
     
    elif(number==12):
        print("Number is Trillion")
     
    elif(number==15):
        print("Number is Quadrillion")
     
    elif(number==18):
        print("Number is Quintillion")
     
    elif(number==21):
        print("Number is Sextillion")
     
    elif(number==30):
        print("Number is Nonillion")
     
    elif(number==100):
        print("Number is Googol")
     
    else:
        print("None number of power ten!")
     
    return number
 
setup()

Lab 4x Hello Python - Calculate grade from score (A for score 80-100, B for 70-79, C for ...)

def setup():
    cal_grade(49)
 
def cal_grade(grade):
    print("Your Score is" ,grade)
 
    if(grade>=80):
        print("You got grade A")
     
    elif(grade>=70):
        print("You got grade B")
     
    elif(grade>=60):
        print("You got grade C")
     
    elif(grade>=50):
        print("You got grade D")
     
    elif(grade<50):
        print("You got grade F!")
     
    return grade
 
setup()

Lab 4x Hello Python - Calculate circumference and area of a circle from its diameter (function)

PI=3.14

def setup():
    cal_area(7)
    cal_circumference(7)

def cal_area(diameter):
    area_of_a_circle=PI*(diameter/2)*(diameter/2)
    print("Diameter is" ,diameter)
    print("Area of a circle is" ,area_of_a_circle)
    return area_of_a_circle
 
def cal_circumference(diameter):
    circumference=PI*diameter
    print("Circumference is" ,circumference)
    return circumference
 
setup()

Sunday, September 13, 2015

Lab4 - Loan payment, see question 30 on page 370 show payment No. , interest, principal, unpaid balance, total interest to date (do not worry about the output format too much, e.g. how to change 1.234 to 1.23)

void setup(){
  float loan_amount=5000;
  float interestRate=12;
  int months=12;
  cal_loan(5000,12,12);
}

void cal_loan(float loan_amount,float interestRate,int months){
  float balance;
  int n=1;
  int term=1;
  float monthlyPayment;
  float effectiveInterest;
  float interest;
  float principal;
  float total_interest=0;
  //Calculate your effective interest J.
  effectiveInterest=interestRate/(100*12);
  //Calculate (1+J)-N
  monthlyPayment=loan_amount*(effectiveInterest/(1-pow(1+effectiveInterest,-months)));
  //Display
  balance=loan_amount;
  println("Loan Amount $ = "+loan_amount);
  println("Loan Term = "+months+" month(s)");
  println("Interest Rate = "+interestRate+"%");
  println("Payment per months = "+monthlyPayment);
  println("Payment No. |  Interset  |  Principal  |  Unpaid Balance  |  Total Interest to Date");
  while(term<=months){
   interest = effectiveInterest*balance;
   principal=monthlyPayment-interest;
   balance=balance-principal;
   total_interest=total_interest+interest;
   println("     "+term+"        $"+interest+"        $"+principal+"    $"+balance+"           $"+total_interest);
   term=term+1;
  }
}





Lab4 - Calculate sum of prime numbers from 1 to N, (create boolean function?)

void setup(){
  sum_prime_number(10);
}

void sum_prime_number(int numbers_end){
 int numbers=2;
 int sum=0;
 int n=1;
 print("Prime number is ");
 while(numbers<=numbers_end){
  int reference=2;
  boolean prime_numbers=true;
   while(reference<numbers && prime_numbers){
    if(numbers%reference==0) prime_numbers=false;
    reference=reference+1;
   }
   if(prime_numbers){
    sum=sum+numbers;
    print(numbers+",");
    n=n+1;
   }
   numbers=numbers+1;
 }
 println("");
 println("Sum of prime number is "+sum);
}


Lab4 - Calculate and display multiplication table

void setup(){
  multiplication_table(12);
}

void multiplication_table(int numbers){
  int n=1;
  int result;
  println("**Multiplication Table of "+numbers+"**");
  while(n<=12){
    result = numbers*n;
    println(numbers+"x"+n+" = "+result);
    n=n+1;
  }
}


Lab4 - Calculate sum of integers from 1 to N (1+2+3+...+N) using loop (not recursive function)

void setup(){
  int numbers=10;
  println("N = "+numbers);
  sum_1_to_N(numbers);
}

void sum_1_to_N(int n){
  int sum=0;
  while(n>0){
   if(n>1){
    println(n+"+");
   }else{
     println("1 = ");
  }
  sum=sum+n;
  n--;
  }
  println(sum);
  println("Sum of 1 to N = "+sum);
}



Lab4 - Flocks of birds

int wingMove = 0;
int wingDelay;

void setup() {
  size(500, 500);
  frameRate(10);
}

void draw() {
  int posX = mouseX;
  int posY = mouseY;
  int count=0;
  int numbers=3;
  background(#87CEFA);
  if (posY < 80){
    wingDelay = 10;
  }
  else if (posY >= 80 && posY < 190){
    wingDelay = 6;
  }
  else{
    wingDelay = 3;
  }
  if (frameCount%wingDelay == 2){
    wingMove = 30;
  }
  else{
    wingMove = 0;
  }
  while(count < numbers){
   posX = (count*150)+100;
   draw_angrybird(posX, posY, 80);
   count = count+1;
  }
}

void draw_angrybird(int posX, int posY, int size) {
  //Body
  strokeWeight(4);
  stroke(#000000);
  fill(#C60000);
  ellipse(posX, posY, size, size);
  //Eyes
  strokeWeight(4);
  stroke(#000000);
  fill(#FFFFFF);
  ellipse(posX-(size/10), posY-(size/10), size/5, size/5);
  ellipse(posX+(size/10), posY-(size/10), size/5, size/5);
  stroke(#000000);
  fill(#000000);
  ellipse(posX-(size/15), posY-(size/10), size/15, size/15);
  ellipse(posX+(size/15), posY-(size/10), size/15, size/15);
  //Eyebrow
  strokeWeight(4);
  stroke(#000000);
  rect(posX-(size/3.8), posY-(size/4.2), size/4, size/10);
  rect(posX+(size/60), posY-(size/4.2), size/4, size/10);
  //Mouth
  strokeWeight(3);
  stroke(#000000);
  fill(#FFB90F);
  triangle(posX-(size/7.5), posY+(size/10), posX+(size/6), posY+(size/6), posX, posY);
  triangle(posX-(size/7.5), posY+(size/10), posX+(size/6), posY+(size/6), posX, posY+(size/5));
  //Wings
  strokeWeight(3);
  stroke(#000000);
  fill(#C60000);
  triangle(posX+(size/2), posY+(size/15), posX+(size/1.15), posY+wingMove, posX+(size/2), posY-(size/15));
  triangle(posX-(size/2), posY+(size/15), posX-(size/1.15), posY+wingMove, posX-(size/2), posY-(size/15));
}

Lab4 - Balloon

void setup(){
 size(300, 300);
}

void draw(){
  background(#000000);
  int count=0;
  int posX = mouseX;
  int posY = mouseY;
   if(posY<100){
   fill(#DD0000); //change color red
  }
  else if(posY>200){
   fill(#00DD00); //change color green
  }
  else fill(#000000); //change color clear
  while(posX+(count*55)< width){
   draw_ballon(posX+(count*55) ,posY);
   count = count+1;
  }
}

void draw_ballon(int posX, int posY){
 ellipse(posX ,posY, 50, 50);
 stroke(#FFFFFF);
 line(posX ,posY+25, posX, posY+75);
}

Lab4 - Song

// MY FAV SONG
int zoom = 8; //default 8

void setup(){
  size(400, 400);
  frameRate(35);
}

void draw(){
  int posX = mouseX; //default 200
  int posY = mouseY; //default 200
  int count = 0;
  int n = 2;
  background(#000000);
  zoom=5;
  while(posX+(count*55) < width){
    draw_favorite_song(posX+(count*150),posY);
    count++;
  }
}

void draw_favorite_song(int posX,int posY){
  //face
  strokeWeight(4);
  stroke(248, 231, 37);
  fill(#000000);
  ellipse(posX, posY, zoom*25, zoom*25);
  //eye left
  strokeWeight(4);
  stroke(248, 231, 37);
  line(posX-(zoom*6), posY-(zoom*6), posX-(zoom*4), posY-(zoom*4));
  line(posX-(zoom*4), posY-(zoom*6), posX-(zoom*6), posY-(zoom*4));
  //eye right
  strokeWeight(4);
  stroke(248, 231, 37);
  line(posX+(zoom*4), posY-(zoom*6), posX+(zoom*6), posY-(zoom*4));
  line(posX+(zoom*6), posY-(zoom*6), posX+(zoom*4), posY-(zoom*4));
  //mouth
  strokeWeight(4);
  stroke(248, 231, 37);
  arc(posX-(zoom*5), posY+(zoom*6), zoom*4, zoom*4, 0, PI+QUARTER_PI, OPEN);
  arc(posX, posY, zoom*16, zoom*16, 0, PI, OPEN);
}

Lab4 - Book

// MY FAV BOOK
int zoom = 8; //default 8
 
void setup(){
  size(500, 500);
  frameRate(35);
}

void draw(){
  int posX = 250;
  int posY = 250;
  int count = 0;
  int n = 2;
  background(235 ,139 ,36);
  zoom=5;
  while(count < n){
  posX = (count*220)+150;
  draw_favorite_book(posX,posY);
  count++;
  }
  if (keyPressed) {
    if (key == 'A' || key == 'a' && posX > 120) {
      posX=(posX-5);
    }
    else if (key == 'D' || key == 'd' && posX < 400) {
      posX=(posX+5);
    }
    if (key == 'W' || key == 'w' && posY > 170) {
      posY=(posY-5);
    }
    if (key == 'S' || key == 's' && posY < 350) {
      posY=(posY+5);
    }
  }
}

void draw_favorite_book(int posX,int posY){
  //back page
  fill(0);
  quad(posX-(zoom*20), posY-(zoom*21), posX+(zoom*3), posY-(zoom*28), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  //page
  fill(#FFFFFF);
  quad(posX-(zoom*19), posY-(zoom*21), posX+(zoom*4), posY-(zoom*27), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*18.5), posY-(zoom*20.7), posX+(zoom*5), posY-(zoom*26.4), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*18.2), posY-(zoom*20.4), posX+(zoom*6), posY-(zoom*25.8), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*18), posY-(zoom*20.1), posX+(zoom*7), posY-(zoom*25.2), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*17.5), posY-(zoom*20), posX+(zoom*8), posY-(zoom*24.6), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*17), posY-(zoom*19.5), posX+(zoom*9), posY-(zoom*24), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*16.5), posY-(zoom*19), posX+(zoom*10), posY-(zoom*23.4), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*16), posY-(zoom*18.5), posX+(zoom*11), posY-(zoom*22.8), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*15.5), posY-(zoom*18), posX+(zoom*12), posY-(zoom*22.2), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*15), posY-(zoom*17.5), posX+(zoom*13), posY-(zoom*21.6), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  //front page
  fill(200, 11, 33);
  quad(posX-(zoom*15.5), posY-(zoom*17), posX-(zoom*14.25), posY+(zoom*23), posX+(zoom*16), posY+(zoom*23), posX+(zoom*16), posY-(zoom*20));
  //cover
  quad(posX-(zoom*15), posY-(zoom*17), posX-(zoom*19.8), posY-(zoom*21), posX-(zoom*19.8), posY+(zoom*18), posX-(zoom*14), posY+(zoom*23));
  //ball
  fill(251, 174, 60);
  ellipse(posX, posY+(zoom*3.5), (zoom*10), (zoom*10));
  //star
  fill(203, 9 ,33);
  beginShape();
  vertex(posX+(zoom*0.5), posY+(zoom*3));
  vertex(posX+(zoom*0.25), posY+(zoom*3.8));
  vertex(posX-(zoom*0.75), posY+(zoom*3.8));
  vertex(posX+(zoom*0.125), posY+(zoom*4.2));
  vertex(posX-(zoom*0.375), posY+(zoom*5.5));
  vertex(posX+(zoom*0.5), posY+(zoom*4.8));
  vertex(posX+(zoom*1.25), posY+(zoom*5.6));
  vertex(posX+(zoom*0.875), posY+(zoom*4.2));
  vertex(posX+(zoom*1.625), posY+(zoom*3.8));
  vertex(posX+(zoom*0.75), posY+(zoom*3.8));
  endShape(CLOSE);
}

Sunday, September 6, 2015

Lab3 - Flying bird

int wingMove = 0;
int wingDelay;

void setup() {
  size(400, 400);
  frameRate(10);
}

void draw() {
  int posX = mouseX;
  int posY = mouseY;
  background(#87CEFA);
  draw_angrybird(posX, posY, 150);
  if (posY < 80){
    wingDelay = 10;
  }
  else if (posY >= 80 && posY < 190){
    wingDelay = 6;
  }
  else{
    wingDelay = 3;
  }
  if (frameCount%wingDelay == 2){
    wingMove = 30;
  }
  else{
    wingMove = 0;
  }
}

void draw_angrybird(int posX, int posY, int size) {
  //Body
  strokeWeight(4);
  stroke(#000000);
  fill(#C60000);
  ellipse(posX, posY, size, size);
  //Eyes
  strokeWeight(4);
  stroke(#000000);
  fill(#FFFFFF);
  ellipse(posX-(size/10), posY-(size/10), size/5, size/5);
  ellipse(posX+(size/10), posY-(size/10), size/5, size/5);
  stroke(#000000);
  fill(#000000);
  ellipse(posX-(size/15), posY-(size/10), size/15, size/15);
  ellipse(posX+(size/15), posY-(size/10), size/15, size/15);
  //Eyebrow
  strokeWeight(4);
  stroke(#000000);
  rect(posX-(size/3.8), posY-(size/4.2), size/4, size/10);
  rect(posX+(size/60), posY-(size/4.2), size/4, size/10);
  //Mouth
  strokeWeight(3);
  stroke(#000000);
  fill(#FFB90F);
  triangle(posX-(size/7.5), posY+(size/10), posX+(size/6), posY+(size/6), posX, posY);
  triangle(posX-(size/7.5), posY+(size/10), posX+(size/6), posY+(size/6), posX, posY+(size/5));
  //Wings
  strokeWeight(3);
  stroke(#000000);
  fill(#C60000);
  triangle(posX+(size/2), posY+(size/15), posX+(size/1.15), posY+wingMove, posX+(size/2), posY-(size/15));
  triangle(posX-(size/2), posY+(size/15), posX-(size/1.15), posY+wingMove, posX-(size/2), posY-(size/15));
}

Lab3 - Battery

//Battery 100%
int posX=80;
int posY=100;
int stretch=100;
int count=0;
boolean countUp = false;
boolean countDown =true;


void setup(){
    size(370, 350);
    frameRate(8);
}

void draw(){
    background(#000000);
    draw_battery(count);
   
    if(mousePressed &&(mouseButton == LEFT)||countUp){
      count++;
      countUp = true;
      countDown = false;
      if(count >= 5){
        count = 5;
        countUp = false;
      }
    }
    if(mousePressed &&(mouseButton == RIGHT)||countDown){
      count--;
      countDown = true;
      if(count <= 0){
        count = 0;
      }
    }
}

void draw_battery(int charge){

    //Battery
    stroke(#FFFFFF);
    strokeWeight(4);
    fill(86, 93, 119);
    rect(posX, posY, stretch*2.2, stretch, 7);
    rect(posX-(stretch*0.1), posY+(stretch*0.3), stretch*0.1, stretch*0.4);//minus
    noStroke();
    fill(#FFFFFF);
    rect(posX+(stretch*2.4), posY+(stretch*0.5), stretch*0.3, stretch*0.1);//positive
    noStroke();
    fill(#FFFFFF);
    rect(posX-(stretch*0.6), posY+(stretch*0.5), stretch*0.3, stretch*0.1);
    rect(posX-(stretch*0.5), posY+(stretch*0.4), stretch*0.1, stretch*0.3);//Status
    noStroke();
    fill(76, 218 ,100);
    if(charge>=1){//Status NUM1
    rect(posX+(stretch*1.72), posY+(stretch*0.05), stretch*0.35, stretch*0.9, 7);
    }
    if(charge>=2){//Status NUM2
    rect(posX+(stretch*1.32), posY+(stretch*0.05), stretch*0.35, stretch*0.9, 7);
    }
    if(charge>=3){//Status NUM3
    rect(posX+(stretch*0.92), posY+(stretch*0.05), stretch*0.35, stretch*0.9, 7);
    }
    if(charge>=4){//Status NUM4
    rect(posX+(stretch*0.52), posY+(stretch*0.05), stretch*0.35, stretch*0.9, 7);
    }
    if(charge>=5){//Status NUM5
    rect(posX+(stretch*0.12), posY+(stretch*0.05), stretch*0.35, stretch*0.9, 7);
    }
    //TEXT
    fill(#FFFFFF);
    textSize((stretch*0.2));
    text(charge*20+"% Charged",posX+(stretch*0.42),posY+(stretch*1.5));
    //
    if (count==0 && (frameCount%11)>2 && (frameCount%11)<18){
     fill(#CD0000);
     textSize((stretch*0.3));
     text("Warning!", posX+(stretch*0.5), posY+(stretch*0.6));
    }
}

Lab3 - Delivery charge, see question 20 on page 299

void setup(){
  float cost = cal_charge(1, 0, 15);
}

float cal_charge(int packaging, int services ,float weight){
  float add;
    println("Type of package (Letter=0/Box=1) is " +packaging);
    println("Type of service (Next Day Priority=0/Next Day Standard=1/Two-Day=2) is " +services);
    println("Weight is " +weight +" oz");
    println();
  
     if(packaging == 0 && services == 0 && weight <= 8) //Letter ,Next Day Priority
     {
       println("The total is $12.00");
     }
     else if(packaging == 0 && services == 1 && weight <= 8) //Letter ,Next Day Standard
     {
       println("The total is $10.50");
     }
     else if(packaging == 0 && services == 2) //Letter ,Two-Day
     {
       println("Not avaliable");
     }
     else if(packaging == 1 && services == 0) //Box ,Next Day Priority
     {
       if (weight <= 16)
       {
         println("The total is $15.75"); //Weight at 1 pound
       }
       else
       {
         weight = weight/16;
         add = 15.75+((ceil(weight)-1)*1.25);
         println("The total is $" +add); //Weight over 1 pound
       }
     }
     else if(packaging == 1 && services == 1) //Box ,Next Day Standard
       {
       if (weight <= 16)
       {
         println("The total is $13.75"); //Weight at 1 pound
       }
       else
       {
         weight = weight/16;
         add = 13.75+((ceil(weight)-1)*1.00);
         println("The total is $" +add); //Weight over 1 pound
       }
   }
   else if(packaging == 1 && services == 2) //Box ,Two-day
       {
       if (weight <= 16)
       {
         println("The total is $7.00"); //Weight at 1 pound
       }
       else
       {
         weight = weight/16;
         add = 7.00+((ceil(weight)-1)*0.50);
         println("The total is $" +add); //Weight over 1 pound
       }
   }
 return weight;
}

Lab3 - Leap Year, see question 12 on page 297

void setup(){
 
  int display = cal_leapyear(1796);
 
}

int cal_leapyear(int years){
 
  println("That year is " +years);
 
    if((((years %4) == 0) && ((years %100) != 0)) || ((years %400 == 0)))
    {
     
      println("That year is a leap year.");
     
    }
    else
    {
     
      println("That year is not a leap year.");
     
    }
   
    return years;
}


Lab3 - Power of 10, see question 9 on page 296

void setup(){
 
  int display = power(9);
}

int power(int number){

  println("Power of 10 is " +number);
 
    if(number == 6){
      println("Number is Million");
    }
    else if(number == 9){
      println("Number is Billion");
    }
    else if(number == 12){
      println("Number is Trillion");
    }
    else if(number == 15){
      println("Number is Quadrillion");
    }
    else if(number == 18){
      println("Number is Quintillion");
    }
    else if(number == 21){
      println("Number is Sextillion");
    }
    else if(number == 30){
      println("Number is Nonillion");
    }
    else if(number == 100){
      println("Number is Googol");
    }
    else
    {
      println("None number of power 10!");
    }
    return number;
}


Lab3 - Calculate grade from score (A for score 80-100, B for 70-79, C for ...)

void setup(){

  int calculategrade = cal_grade(80);

}


int cal_grade(int mygrade){

  println("Your Score " +mygrade);

  if(mygrade >= 80){

   println("Your grade is A");

  }

  else if(((mygrade >= 70) && (mygrade <=79))){

    println("Your grade is B");

  }

  else if(((mygrade >= 60) && (mygrade <=69))){

    println("Your grade is C");

  }

  else if(((mygrade >= 50) && (mygrade <=59))){

    println("Your grade is D");

  }

  else if(mygrade <= 49){

   println("Your grade is F");

  }

  return mygrade;

}

Lab3 - Movie

//MY FAV MOVIE
int posX = 311; //default 311
int posY = 328; //default 328
int posX_eye = 311; //default 311
int posY_eye = 328; //default 328
int zoom = 8; //default 8
int count = 1;
int state = 0;
int colour = #0000CD;
 
void setup(){
  size(623, 623);
  frameRate(10);
}

void draw(){
  background(255);
  zoom=6;
  draw_favorite_movie();
}

void draw_favorite_movie(){
  beginShape();
  noStroke();
  fill(colour);
  //fill(23, 110, 181);
  vertex(posX-(zoom*31), posY-(zoom*23));
  vertex(posX-(zoom*31), posY-(zoom*8));
  vertex(posX-(zoom*28), posY-(zoom*8));
  vertex(posX-(zoom*31), posY+(zoom*8));
  vertex(posX-(zoom*36), posY+(zoom*8));
  vertex(posX-(zoom*36), posY+(zoom*22));
  vertex(posX-(zoom*11), posY+(zoom*22));
  vertex(posX-(zoom*10), posY+(zoom*17));
  vertex(posX-(zoom*6), posY+(zoom*23));
  vertex(posX+(zoom*6), posY+(zoom*23));
  vertex(posX+(zoom*8.5), posY+(zoom*17));
  vertex(posX+(zoom*8.5), posY+(zoom*23));
  vertex(posX+(zoom*36), posY+(zoom*23));
  vertex(posX+(zoom*36), posY+(zoom*8));
  vertex(posX+(zoom*31), posY+(zoom*8));
  vertex(posX+(zoom*28), posY-(zoom*8));
  vertex(posX+(zoom*31), posY-(zoom*8));
  vertex(posX+(zoom*31), posY-(zoom*23));
  vertex(posX+(zoom*6), posY-(zoom*23));
  vertex(posX, posY-(zoom*16));
  vertex(posX-(zoom*5), posY-(zoom*23));
  endShape(CLOSE);
  //eye
  fill(255);
  ellipse(posX, posY, (zoom*35), (zoom*12));
  //eyeball
  if(state==0){
  fill(0);
  ellipse(posX_eye, posY_eye, (zoom*10), (zoom*10));
  posX_eye++;
  count++;
}
  if(state==1){
  fill(0);
  ellipse(posX_eye, posY_eye, (zoom*10), (zoom*10));
  posX_eye--;
  count--;
}
  if(state==0&&count==30){
  state=1;
  }
  if(state==1&&count==-30){
  state=0;
  }
}

//SWAP COLOR
  void mouseClicked() {
    if (colour == #0000CD) {
      colour= #00CD00;
    }
    else
    {
      colour = #0000CD;
    }
  }

Lab3 - Book

// MY FAV BOOK
int posX = 250; //default 250
int posY = 250; //default 250
int zoom = 8; //default 8
 
void setup(){
  size(500, 500);
  frameRate(35);
}

void draw(){
  background(235 ,139 ,36);
  zoom=6;
  draw_favorite_book();
  if (keyPressed) {
    if (key == 'A' || key == 'a' && posX > 120) {
      posX=(posX-5);
    }
    else if (key == 'D' || key == 'd' && posX < 400) {
      posX=(posX+5);
    }
    if (key == 'W' || key == 'w' && posY > 170) {
      posY=(posY-5);
    }
    if (key == 'S' || key == 's' && posY < 350) {
      posY=(posY+5);
    }
  }
}

void draw_favorite_book(){
  //back page
  fill(0);
  quad(posX-(zoom*20), posY-(zoom*21), posX+(zoom*3), posY-(zoom*28), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  //page
  fill(#FFFFFF);
  quad(posX-(zoom*19), posY-(zoom*21), posX+(zoom*4), posY-(zoom*27), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*18.5), posY-(zoom*20.7), posX+(zoom*5), posY-(zoom*26.4), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*18.2), posY-(zoom*20.4), posX+(zoom*6), posY-(zoom*25.8), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*18), posY-(zoom*20.1), posX+(zoom*7), posY-(zoom*25.2), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*17.5), posY-(zoom*20), posX+(zoom*8), posY-(zoom*24.6), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*17), posY-(zoom*19.5), posX+(zoom*9), posY-(zoom*24), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*16.5), posY-(zoom*19), posX+(zoom*10), posY-(zoom*23.4), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*16), posY-(zoom*18.5), posX+(zoom*11), posY-(zoom*22.8), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*15.5), posY-(zoom*18), posX+(zoom*12), posY-(zoom*22.2), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  quad(posX-(zoom*15), posY-(zoom*17.5), posX+(zoom*13), posY-(zoom*21.6), posX+(zoom*4), posY+(zoom*23), posX-(zoom*14), posY+(zoom*23));
  //front page
  fill(200, 11, 33);
  quad(posX-(zoom*15.5), posY-(zoom*17), posX-(zoom*14.25), posY+(zoom*23), posX+(zoom*16), posY+(zoom*23), posX+(zoom*16), posY-(zoom*20));
  //cover
  quad(posX-(zoom*15), posY-(zoom*17), posX-(zoom*19.8), posY-(zoom*21), posX-(zoom*19.8), posY+(zoom*18), posX-(zoom*14), posY+(zoom*23));
  //ball
  fill(251, 174, 60);
  ellipse(posX, posY+(zoom*3.5), (zoom*10), (zoom*10));
  //star
  fill(203, 9 ,33);
  beginShape();
  vertex(posX+(zoom*0.5), posY+(zoom*3));
  vertex(posX+(zoom*0.25), posY+(zoom*3.8));
  vertex(posX-(zoom*0.75), posY+(zoom*3.8));
  vertex(posX+(zoom*0.125), posY+(zoom*4.2));
  vertex(posX-(zoom*0.375), posY+(zoom*5.5));
  vertex(posX+(zoom*0.5), posY+(zoom*4.8));
  vertex(posX+(zoom*1.25), posY+(zoom*5.6));
  vertex(posX+(zoom*0.875), posY+(zoom*4.2));
  vertex(posX+(zoom*1.625), posY+(zoom*3.8));
  vertex(posX+(zoom*0.75), posY+(zoom*3.8));
  endShape(CLOSE);
}

Lab3 - Song

// MY FAV SONG
int posX = 200; //default 200
int posY = 200; //default 200
int zoom = 8; //default 8

void setup(){
  size(400, 400);
  frameRate(35);
}

void draw(){
  background(#000000);
  zoom=8;
  draw_favorite_song();
  if (keyPressed) {
    if (key == 'A' || key == 'a' && posX > 100) {
      posX=(posX-5);
    }
    else if (key == 'D' || key == 'd' && posX < 300) {
      posX=(posX+5);
    }
    if (key == 'W' || key == 'w' && posY > 100) {
      posY=(posY-5);
    }
    if (key == 'S' || key == 's' && posY < 300) {
      posY=(posY+5);
    }
  }
}

void draw_favorite_song(){
  //face
  strokeWeight(4);
  stroke(248, 231, 37);
  fill(#000000);
  ellipse(posX, posY, zoom*25, zoom*25);
  //eye left
  strokeWeight(4);
  stroke(248, 231, 37);
  line(posX-(zoom*6), posY-(zoom*6), posX-(zoom*4), posY-(zoom*4));
  line(posX-(zoom*4), posY-(zoom*6), posX-(zoom*6), posY-(zoom*4));
  //eye right
  strokeWeight(4);
  stroke(248, 231, 37);
  line(posX+(zoom*4), posY-(zoom*6), posX+(zoom*6), posY-(zoom*4));
  line(posX+(zoom*6), posY-(zoom*6), posX+(zoom*4), posY-(zoom*4));
  //mouth
  strokeWeight(4);
  stroke(248, 231, 37);
  arc(posX-(zoom*5), posY+(zoom*6), zoom*4, zoom*4, 0, PI+QUARTER_PI, OPEN);
  arc(posX, posY, zoom*16, zoom*16, 0, PI, OPEN);
}