วันพุธที่ 10 มกราคม พ.ศ. 2561

w1 : spreadsheet calculate GPA

Enter your grades/transcript in a spreadsheet
then calculate your GPA


What I have done & learn

  • สร้าง Spreadsheet
  • ทำการสร้าง custom function ใน spreadsheet เพื่อนำข้อมูลเกรดไปคำนวณหา GPA
  •  1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function calGPA(weight_column,grade_column){
      var grade_to_int = { 'A':4, 'B+':3.5 , 'B':3 , 'C+':2.5, 'C':2, 'D+':1.5, 'D':1, 'F':0}
      var gpa = 0
      var totalweight = 0
      for (var i = 0 ; i < weight_column.length ; i++){
        if (check_valid_cell(grade_column[i][0]) && check_valid_cell(weight_column[i][0])) {
          var grade = grade_to_int[grade_column[i][0]]
          var weight = weight_column[i][0]
          gpa += weight*grade
          totalweight += weight
        }
      }
      gpa = gpa/totalweight
      return gpa
    }
    
    function check_valid_cell(input){
      if (input == ""  || input == "เกรด" || input == "หน่วยกิต"){
          return false;
      } else { 
          return true; 
      }
    }
    
  • เรียกใช้ฟังก์ชั่นโดยพิมพ์ =round(calGPA(B3:B37,C3:C37),2) ใน Cell ใดๆ โดยที่ B3:B37 เป็น column ของ หน่วยกิต และ C3:C37 เป็น column ของ เกรด
    • ฟังก์ชั่น round เป็นการปัดเศษทศนิยมลงให้เหลือ 2 ตำแหน่ง
  • หากส่งค่าที่เป็น column มาในฟังก์ชั่น (เช่น C3 ถึง C37 ) จะถูกมองเป็น Array 2 มิติ เช่น a[x][y] โดยที่ x คือเลขแถว และ y คือ column


Problem & Decision
  • จะเปลี่ยนเกรดที่เป็นตัวหนังสือ (A, B+, B,...) ให้เป็นตัวเลข (4, 3.5, 3,...)ยังไงดี
    • หาวิธีสร้าง custom function ใน spreadsheet ของ google (ref 1)
  • รับข้อมูลทั้ง column มาใช้ใน custom function ยังไง
    • หาวิธีนำข้อมูลมาใช้ (ref 5) พบว่าค่า colum (เช่น C3:C37 , B3:B37) ถูกส่งเข้ามาเป็น Array 2 มิติ
  • สร้าง Dictionary เพื่อแปลงเกรดที่เป็นตัวหนังสือ (A,B+,B,...) เป็นตัวเลขใน Javascript ยังไง
    • (ref 3)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

wk12 : form

First form จาก table employee จะเห็นว่า มี Jon และ Lester มี 2 เบอร์ จึงไม่เป็น 1st form จากกฏคือ  “each attribute of a table must ha...