Week 11 Basic Programs 2
Outline การคำนวณค่า Standard Deviation (SD) เกมส์ทายตัวเลขแบบซับซ้อน
Standard Deviation (SD) คือ ค่าเฉลี่ยของข้อมูลทั้งหมด จำนวน คำนวณหาค่าเฉลี่ยของข้อมูลทั้งหมด หาค่าผลต่างยกกำลังสองของข้อมูลแต่ละตัวกับค่าเฉลี่ย แล้วหาผลรวม นำผลรวมที่ได้หารด้วยจำนวนข้อมูลทั้งหมด คำนวณหาค่า square root ของผลลัพธ์ที่ได้จากขั้นตอนก่อนหน้า
Standard Deviation (SD) โปรแกรมเพื่อหาค่า SD ของข้อมูล N จำนวน ส่วนรับค่าข้อมูล N จำนวน (N <= 20) แล้วนำมาเก็บในตัวแปรชุด รับข้อมูล
Standard Deviation (SD) โปรแกรมเพื่อหาค่า SD ของข้อมูล N จำนวน เพิ่มความสามารถในการหาค่าเฉลี่ยของข้อมูล N จำนวน แล้วเก็บค่าที่ได้ไว้ในตัวแปร เพื่อนำไปใช้ในการหาค่า SD
Standard Deviation (SD) โปรแกรมเพื่อหาค่า SD ของข้อมูล N จำนวน หาค่าผลต่างยกกำลังสองของข้อมูลแต่ละตัวกับค่าเฉลี่ย แล้วนำมารวมกัน
Standard Deviation (SD) โปรแกรมเพื่อหาค่า SD ของข้อมูล N จำนวน นำผลรวมที่ได้หารด้วยจำนวนข้อมูลทั้งหมด แล้วคำนวณหาค่า square root การกระจายตัวของข้อมูลน้อย การกระจายตัวของข้อมูลมาก
Standard Deviation (SD) โปรแกรมเพื่อหาค่า SD ของข้อมูล N จำนวน - สรุป รับข้อมูลและหาผลรวมสะสม คำนวณค่าเฉลี่ย คำนวณผลต่างยกกำลังสอง ของข้อมูลแต่ละตัว และหาผล รวมสะสม คำนวณค่า SD
Guess a Number โปรแกรมเกมส์ทายตัวเลข มีการสุ่มตัวเลขที่เป็นคำตอบ rand()- ฟังก์ชันสำหรับการสุ่มตัวเลขจำนวนเต็ม การสุ่มแบบเทียม (pseudo random) เนื่องจากเป็นการสุ่มจากชุดตัวเลขที่เตรียมไว้แล้ว ตัวเลขที่ได้จากการสุ่มจะเป็นไปตามลำดับที่ได้กำหนดไว้แล้ว และได้ลำดับเหมือนกันทุกครั้ง srand()- ฟังก์ชันสำหรับการกำหนดค่าเริ่มต้นการสุ่ม (seed) ใช้ระบุว่าเราจะเริ่มใช้ตัวเลขตั้งแต่ลำดับที่เท่าได้ในชุดตัวเลขของ rand() เพื่อให้เริ่มต้นที่ลำดับที่แตกต่างกันในแต่ละครั้ง เรามักจะระบุตำแหน่งด้วยเวลาปัจจุบัน หรือเวลาที่เราสั่งให้โปรแกรมทำงาน ซึ่งได้จากผลลัพธ์ของฟังก์ชัน time() หากต้องการให้ค่าที่สุ่มได้ อยู่ระหว่าง 0 – Max สามารถทำได้โดยการ mod ด้วย (Max+1) srand( time(NULL) ); /*random numbers between 0-10*/ int ans = rand()%11;
Guess a Number โปรแกรมเกมส์ทายตัวเลข #include <cstdlib> สำหรับ เรียกใช้ rand() และ srand() #include <ctime> สำหรับ เรียกใช้ time()
Guess a Number ปรับปรุงเกมส์ทายตัวเลขให้สามารถบอกใบ้ผู้เล่นได้ แจ้งให้ทายเลขที่มากขึ้น เมื่อได้ทายเลขซึ่งน้อยกว่าคำตอบ แจ้งให้ทายเลขที่น้อยลง เมื่อได้ทายเลขซึ่งมากกว่าคำตอบ ต้องเปรียบเทียบค่าที่ผู้เล่นได้ป้อน (g) กับค่าคำตอบที่สุ่มได้ (ans) g==ans g>ans display ‘Less than this.’ display ‘Greater than this.’ display ‘You got it.’ Y N
Guess a Number ปรับปรุงเกมส์ทายตัวเลขให้สามารถบอกใบ้ผู้เล่นได้
Summary เมื่อต้องการคำนวณค่าทางคณิตศาตร์ที่ซับซ้อน เราสามารถเรียกใช้ฟังก์ชันทางคณิตศาสตร์ที่ C++ ได้มีการสร้างมาให้ใช้งานแล้ว pow(), sqrt(), exp(), log(), sin(), sinh(), asin(), asinh(), atan(), floor(), ceil(), … ต้อง #include <cmath> เมื่อต้องการสุ่มค่าตัวเลข สามารถเรียกใช้ฟังก์ชัน rand() โดย สามารถกำหนดค่าเริ่มต้นในการสุ่มด้วยฟังก์ชัน srand() ต้อง #include <cstdlib> โดยทั่วไปจะอาศัยเวลาปัจจุบันในการกำหนดค่าเริ่มต้นในการสุ่ม ซึ่งจะ อาศัยฟังก์ชัน time() ต้อง #include <ctime>
Lab 11: Grading Program using SD http://chemwiki.ucdavis.edu/Wikitexts/UC_Davis/UCD_Chem_2C/UCD_Chem_2C%3A_Larsen/Readings,_Reviews,_and_Grading/Grading_on_a_Curve
Lab 11: Grading Program using SD A : คะแนนช่วงที่มากกว่า average + 1.2SD B : คะแนนช่วงที่อยู่ระหว่าง average + 0.6SD ถึง average + 1.2SD C : คะแนนที่อยู่ระหว่าง average – SD ถึง average + 0.6SD F : คะแนนช่วงที่น้อยกว่า average – SD ปรับปรุงให้โปรแกรมสามารถแก้ไขค่าตัวคูณ (1.5, 1.0, …) แต่ละตัว เพื่อให้สามารถเปลี่ยนเงื่อนไขคะแนน สำหรับข้อมูลชุดเดียวกันได้ อาจใช้ตัวแปรชุดในการจัดเก็บค่าตัวคูณแต่ละตัว