งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Week 10 การเขียนโปรแกรม เบื้องต้น #2. Outline การคำนวณค่า Standard Deviation (SD) เกมทายตัวเลขแบบซับซ้อน.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Week 10 การเขียนโปรแกรม เบื้องต้น #2. Outline การคำนวณค่า Standard Deviation (SD) เกมทายตัวเลขแบบซับซ้อน."— ใบสำเนางานนำเสนอ:

1 Week 10 การเขียนโปรแกรม เบื้องต้น #2

2 Outline การคำนวณค่า Standard Deviation (SD) เกมทายตัวเลขแบบซับซ้อน

3 การคำนวณค่า Standard Deviation (SD) ถ้าเราต้องการคำนวณค่า SD ของกลุ่มประชากร (Population) จำนวน 10 ข้อมูล ตามสมการต่อไปนี้ จะเห็นได้ว่า เราต้องนำข้อมูลแต่ละข้อมูลมาลบโดยค่าเฉลี่ย หรือ เราจะหาค่าเฉลี่ยได้อย่างไร ? การคำนวณค่าเฉลี่ยนั้น เราจำเป็นต้องบวกข้อมูลทั้งหมดเข้า ด้วยกัน จากนั้นทำการหารด้วยจำนวนข้อมูลทั้งหมด

4 ดังนั้น เราจะทำการเขียนโปรแกรมเพื่อรับข้อมูลจำนวน 10 ข้อมูลเป็นขั้นตอนแรก กิจกรรม 1 ให้นักศึกษาเขียนโปรแกรมรับค่าข้อมูลจำนวน 10 ข้อมูล กำหนดให้ตัวแปรที่ใช้ในการรับข้อมูลชื่อ a โดย ข้อมูลแรกเก็บอยู่ใน a[0], ข้อมูลที่สองเก็บใน a[1], …, ข้อมูลที่สิบเก็บใน a[9] การคำนวณค่า Standard Deviation (SD) #include void main() { int a[10],n; for ( n=0 ; n<10 ; n++ ) { printf("Enter your data:"); scanf("%d", &a[n]); }

5 กิจกรรมที่ 2 ให้นักศึกษาทำการแก้ไขโปรแกรมจากกิจกรรม ที่ 1 ให้คำนวณค่าเฉลี่ย หลังจากที่รับข้อมูลทั้ง 10 เสร็จแล้ว โดยกำหนดให้ตัวแปรสำหรับเก็บค่าเฉลี่ยชื่อ avg คำถาม 1. ถ้าไม่มีการกำหนดค่าเริ่มต้นตัวแปร csum ให้เป็น 0 จะเกิดอะไรขึ้น ? การคำนวณค่า Standard Deviation (SD) #include void main() { int a[10], n; float csum = 0, avg; for ( n=0 ; n<10 ; n++ ) { printf("Enter your data:"); scanf("%d", &a[n]); csum = csum + a[n]; } avg=csum/10; }

6 จากนั้น เราสามารถนำค่าเฉลี่ยมาคำนวณหาค่า SD ได้ จากสูตร เราจะต้องนำข้อมูลทีละหนึ่งข้อมูลมาลบโดย ค่าเฉลี่ยจากนั้นยกกำลังสอง ถ้าต้องการนำข้อมูลแรกมาลบโดยค่าเฉลี่ยและยกกำลังสอง จะเขียนเป็นโปรแกรมอย่างไร ? pow((a[0]-avg),2) การคำนวณค่า Standard Deviation (SD)

7 ถ้าต้องการหาค่าผลบวกรวมของค่าดังกล่าว จำนวน 10 ค่า วิธีการหนึ่งคือการใช้ for loop จำนวน 10 ครั้ง กิจกรรมที่ 3 ให้นักศึกษาทำการแก้ไขโปรแกรมจากกิจกรรม ที่ 2 เพื่อหาค่าผลบวกรวมโดยกำหนดให้ตัวแปรสำหรับเก็บ ค่าผลบวกรวมชื่อ sq_sum การคำนวณค่า Standard Deviation (SD)... #include... float sq_sum=0;... for ( n=0 ; n<10 ; n++ ) { sq_sum = sq_sum + pow((a[n]-avg),2); }

8 จากนั้นนำค่า sq_sum มาหารด้วย 10 และถอดรากที่ 2 โดย ใช้ตัวแปรชื่อ sd การคำนวณค่า Standard Deviation (SD)... #include... float sq_sum = 0, sd;... for ( n=0 ; n<10 ; n++ ) { sq_sum = sq_sum + pow((a[n]-avg),2); } sd=sqrt(sq_sum/10);

9 โปรแกรมหาค่า SD การคำนวณค่า Standard Deviation (SD) #include void main() { float csum=0, avg, sq_sum=0, sd; int a[10], n; //get data and compute avg for ( n=0 ; n<10 ; n++ ) { printf("Enter your data:"); scanf("%d", &a[n]); csum = csum + a[n]; } avg=csum/10; //compute SD for ( n=0 ; n<10 ; n++ ) { sq_sum = sq_sum + pow((a[n]-avg),2); } sd=sqrt(sq_sum/10); printf(“SD = %.2f\n”, sd); }

10 ตัดเกรดนักเรียนโดยใช้ SD ค่า SD สามารถนำมาใช้ในการตัดเกรดนักเรียนแบบ อิงกลุ่มได้ เช่น ให้ค่าคะแนนในช่วงมากกว่า avg+sd ได้เกรด A, ช่วง avg-sd ได้เกรด F นอกนั้นให้เกรด C ซึ่งการตัดเกรดแบบนี้ การคิดค่าเกรดจะต้องเกิดขึ้น หลังจากมีการคำนวณ SD แล้ว

11 เกมทายตัวเลข ( อีกครั้ง ) อ้างอิงจาก โปรแกรม เกมทายเลขเดิม ดังนี้ #include void main() { int n, g, i = 1; srand(time(NULL)); n = rand() % 11; // generate a random number 0-10 do { printf("Guess a number[0,10]:"); scanf("%d", &g); i++; } while ((g!=n)&&(i<=5)); if (g == n) printf(“You got it.\n”); else printf("You failed. Please try again.\n"); }

12 เราจะทำการปรับปรุงให้โปรแกรมนี้ทำการบอกใบ้ ให้กับผู้ใช้ เช่น ถ้าเลขที่สุ่มได้เป็น 8 แต่ผู้ใช้กรอก เลข 3 โปรแกรมก็จะบอกว่าให้ทายตัวเลขที่ มากกว่านี้ แต่ถ้าผู้ใช้กรอกเลข 9 โปรแกรมก็จะบอก ว่าให้ทายตัวเลขที่น้อยกว่านี้ ดังรูปด้านล่าง แสดง ตัวอย่าง ถ้าเลขสุ่มคือ 5 และตัวเลขที่ผู้ใช้ทาย แสดงด้วยสีแดง Guess a number[0,10]:2 Greater than this. Guess a number[0,10]:6 Less than this. Guess a number[0,10]:5 You got it. เกมทายตัวเลข ( อีกครั้ง )

13 จากโปรแกรม เราต้องเปรียบเทียบตัวแปรสุ่มและตัวแปรที่ เก็บค่าที่ถูกกรอกโดยผู้ใช้ ถ้าตัวแปรสุ่มมากกว่าตัวแปรตัวแปรที่เก็บค่าที่ถูกกรอกโดย ผู้ใช้ จะต้องแสดงคำบอกใบ้ว่า ? Greater than this. ถ้าตัวแปรสุ่มน้อยกว่าตัวแปรตัวแปรที่เก็บค่าที่ถูกกรอกโดย ผู้ใช้ จะต้องแสดงคำบอกใบ้ว่า ? Less than this. ถ้าตัวแปรสุ่มเท่ากับตัวแปรตัวแปรที่เก็บค่าที่ถูกกรอกโดยผู้ใช้ จะต้องแสดงคำบอกใบ้ว่า ? ไม่ต้องบอกใบ้ เพราะเดาถูกแล้ว ตัวแปรสุ่มในโค๊ดคือ ? n ตัวแปรที่เก็บค่าที่ถูกกรอกโดยผู้ใช้คือ ? g เกมทายตัวเลข ( อีกครั้ง )

14 จากโปรแกรม เราต้องเปรียบเทียบตัวแปรสุ่มและตัว แปรที่เก็บค่าที่ถูกกรอกโดยผู้ใช้ กิจกรรม 4 ให้นักศึกษาทดลองเขียน Flowchart ส่วนของการเปรียบเทียบตัวแปรสุ่มและตัวแปรตัว แปรที่เก็บค่าที่ถูกกรอกโดยผู้ใช้ g==ng>ng

15 อย่างไรก็ตาม ถ้า g ไม่ได้เท่ากับ n และ g ไม่ได้ มากกว่า n หมายความว่า g จะต้องน้อยกว่า n แน่นอน เราจึงสามารถเปลี่ยน Flowchart ได้ดังนี้ g==ng>n display ‘Less than this.’display ‘Greater than this.’ display ‘You got it.’ เกมทายตัวเลข ( อีกครั้ง ) NN YY

16 จาก Flowchart เราสามารถเขียนโปรแกรมส่วน ดังกล่าวได้ดังนี้ เกมทายตัวเลข ( อีกครั้ง ) if (g==n) { printf("You got it.\n"); } else if (g>n) { printf("Less than this.\n"); } else { printf("Greater than this.\n"); }

17 เกมทายตัวเลข #include void main() { int n, g, i = 1; srand(time(NULL)); n = rand() % 11; // generate a random number 0-10 do { printf("Guess a number[0,10]:"); scanf("%d", &g); if (g==n) { printf("You got it.\n"); } else if (g>n) { printf("Less than this.\n"); } else { printf("Greater than this.\n"); } i++; } while ((g!=n)&&(i<=5)); if (g != n) printf("You failed. Please try again.\n"); }

18 สรุป นอกจากเราจะใช้ Flowchart ในการสื่อสารระหว่าง ผู้พัฒนาโปรแกรมแล้ว Flowchart ยังช่วยให้ ผู้พัฒนาโปรแกรมเข้าใจ Flow หรือลำดับของการ ทำงานได้ดีขึ้น เมื่อนักศึกษาเขียนโปรแกรมที่ค่อนข้างซับซ้อน ควร เริ่มต้นด้วยการคิดวิเคราะห์จากจุดเล็ก ๆ ที่ทำความ เข้าใจได้ง่ายก่อน จากนั้นค่อยขยายการคิดไปสู่จุด ที่ใหญ่มากขึ้น จนกระทั่งเขียนโปรแกรมได้ทั้ง โปรแกรม


ดาวน์โหลด ppt Week 10 การเขียนโปรแกรม เบื้องต้น #2. Outline การคำนวณค่า Standard Deviation (SD) เกมทายตัวเลขแบบซับซ้อน.

งานนำเสนอที่คล้ายกัน


Ads by Google