วันศุกร์ที่ 20 กันยายน พ.ศ. 2556

การหาห.ร.ม และค.ร.น (GCD/LCD)


GCD + LCD

ฟังก์ชั่นชุดนี้เป็นฟังก์ชั่นสำหรับการหาหารร่วมมาก (ห..ม) และการหาคูณร่วมน้อย (ค..น) ในทางคณิตศาสตร์ โดยส่วนใหญ่ฟังก์ชั่นที่สร้างขึ้นทั้งหมดถูกกำหนดให้แสดงออกโดยฟังก์ชั่นหลัก void setup ซึ่งเป็นทั้งการกำหนดค่า ประกาศ และเรียกใช้ทุกฟังก์ชั่น ในฟังก์ชั่นชุดนี้มีการกำหนดฟังก์ชั่นเพื่อให้แสดงผลลัพธ์ออกมาทางจอ ด้วยฟังก์ชั่นสำหรับการแสดงผล หรือ println และสามารถใส่ค่าของตัวเลขบนฟังก์ชั่นแต่ละตัวที่เราสร้างขึ้น เพื่อการหาการหารร่วมมาก และคูณร่วมน้อย แต่ต้องมีการสร้างฟังก์ชั่นทั้งสองอย่างเพื่อการทำหน้าที่นี้เอาไว้ก่อน ตัวแปรทั้งหมดที่ใช้เป็น Global Variable เพื่อให้ใช้งานได้ทุกฟังก์ชั่น และเก็บค่าตัวแปรต่างๆ ที่กำหนด นอกจากนี้ยังมีการกำหนดเงื่อนไขสำหรับการหาค่าแต่ละตัวจากการหารร่วมมาก และคูณร่วมน้อย แต่ละชุดในฟังก์ชั่นถูกกำหนดให้เป็นฟังก์ชั่นที่มี parameter และมี return value หลังจากนั้น เราจะใส่ค่าตัวเลขเป็นอะไรก็ได้ไว้ในฟังก์ชั่นใดฟังก์ชั่นหนึ่ง และสังเกตผลที่ได้ออกมาทางจอสีดำด้านล่าง 

Processing Code

void setup() {  //ฟังก์ชั่นหลักที่ใช้ในการกำหนดค่า และเรียกใช้สิ่งต่างๆ เป็นฟังก์ชั่นที่ไม่มีการวกกลับ

  println("gcd 2000 700 = "+gcd(2000, 700));  //แสดงผลลัพธ์ของการหาผลหารร่วมมากระหว่าง 2,000 กับ 700 ออกทางจอ
println("lcd 6000 820 = "+lcd(6000, 820));  //แสดงผลลัพธ์ของการหาผลคูณร่วมน้อยระหว่าง 6,000 กับ 820
}
int trawn;  //กำหนดตัวแปรสำหรับการเก็บค่าของผลลัพธ์ที่ได้จากเงื่อนไข
int gcd(int x, int y) {  //กำหนดฟังก์ชั่นสำหรับการหาผลหารร่วมมากที่มี parameter
  if(x==0) {  //กำหนดเงื่อนไข ในกรณีที่ x มีค่าเท่ากับ 0 ทำตามผลด้านล่าง
  trawn = y;
 }
 else if(y==0) {  //กำหนดเงื่อนไขอีกกรณี ในกรณีที่ y มีค่าเท่ากับ 0 ทำตามผลด้านล่าง
  trawn = x;
 }
 else if(x>y) {  //กำหนดเงื่อนไขอีกกรณีที่ x มากกว่า y
  gcd(y, x%y);  //กำหนดเพื่อหาผลหารร่วมมากโดยไม่มีเศษเหลือ
 }
 else if(x<=y) {  //กำหนดเงื่อนไขอีกกรณีที่ x น้อยกว่าหรือเท่ากับ y
 gcd(x, y%x);
 }
 return trawn;  //คืนค่ากลับออกมาโดยไม่มีเศษเหลือ แต่เป็นจำนวนเต็ม
}
int lcd(int x, int y) {  //กำหนดเพื่อการหาผลคูณร่วมน้อย ที่มี parameter
  return x*y/gcd(x, y);  //คืนค่าที่ได้มาเป็นจำนวนเต็มที่เกิดจากการกระทำของสมการ
}

Canvas


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

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