โครงงาน
เรอ่ื ง การจดั เรยี งคะแนนและหาคา่ เฉลี่ยด้วยภาษาซี
จัดทาโดย
นางสาวกนกวรรณ เรอ่ื ศรีจนั ทร์ เลขที่ 12
นางสาวชณติ นันท์ พรามพลิ า เลขท่ี 14
นางสาวเพียงดาว ฉลาดธัญญกจิ เลขที่ 23
นางสาวภัคจิรา นิลประยูร เลขที่ 25
นางสาวศกลวรรณ ยมิ้ เจรญิ เลขที่ 29
ชัน้ มัธยมศกึ ษาปีที่ 4/7
เสนอ
ครูชชั วาลย์ ฝ่ายกระโทก
โครงงานน้เี ปน็ ส่วนหน่ึงของรายวชิ า วทิ ยาการคานวณ ว31191
ภาคเรยี นท่ี 1 ปีการศึกษา 2562
โรงเรียนอทุ ยั วิทยาคม จงั หวดั อทุ ัยธานี
ก
ชือ่ โครงงาน : การจดั เรยี งคะแนนและหาคา่ เฉลย่ี ด้วยภาษาซี
ผู้จดั ทา : นางสาวกนกวรรณ เร่อื ศรีจันทร์
นางสาวชณติ นนั ท์ พรามพลิ า
นางสาวเพียงดาว ฉลาดธัญญกิจ
นางสาวภคั จิรา นิลประยรู
นางสาวศกลวรรณ ย้มิ เจรญิ
ครูท่ีปรกึ ษา : ครูชัชวาลย์ ฝ่ายกระโทก
บทคดั ยอ่
เน่ืองจากในปัจจุบนั มคี วามแพร่หลายในการใช้เทคโนโลยีในชีวิตประจาวันเปน็ อย่างมาก เพ่อื ให้เกดิ
ความสะดวกสบายและประหยัดเวลา โดยการใช้เทคโนโลยีเข้ามาช่วยทาให้เกดิ ความสะดวกสบาย ซ่ึงกลุ่มของ
พวกเราจึงเหน็ ปัญหาเกยี่ วกับการเรยี งคะแนนของคุณครูที่ต้องใช้เวลามากในการเรียงคะแนนและหาคา่ เฉล่ยี
เนือ่ งจากมีจานวนของนกั เรยี นเปน็ จานวนมาก กลุ่มของพวกเราจงึ เขียนโค้ดจากโปรแกรม Dev-C++ เพ่อื เพ่ือ
ศกึ ษาการเขียนโค้ดโปรแกรม Dev-C++ เพ่อื ใช้โค้ดภาษาซชี ่วยในการเรียงคะแนนและหาคา่ เฉลี่ยของเด็ก
นกั เรยี นจานวน 20 คน และเพื่อใหเ้ กิดความสะดวกสบายในการเรียงคะแนนและหาค่าเฉลีย่ ของคุณครู
โดยมีวธิ ีการดาเนนิ งาน คอื การศกึ ษาวธิ ีการเขียนโค้ดโปรแกรม Dev-C++ ซ่งึ ประกอบไปดว้ ย ศกึ ษา
โครงสรา้ งภาษาซแี ละศกึ ษาการจัดเรยี งขอ้ มูลแบบ bubble sort จากนั้นวางแผน ออกแบบ และดาเนนิ การ
เขยี นโค้ดเรียงคะแนนและหาคา่ เฉลย่ี จากโปรแกรม Dev-C++
ผลการดาเนนิ งานพบวา่ ทาให้ทราบว่าเราสามารถเขียนโปรแกรม Dev-C++ ให้สามารถจดั เรยี ง
คะแนนและหาคา่ เฉล่ยี ของคะแนนได้ตามที่เราไดเ้ ขียนโปรแกรม
ข
กติ ติกรรมประกาศ
โครงงาน เร่ือง การจัดเรียงคะแนนและหาคา่ เฉลยี่ ด้วยภาษาซี โดยโปรแกรม Devc++ นัน้ สาเรจ็ ข้ึน
ไดโ้ ดยไดร้ บั ความช่วยเหลอื อยา่ งย่งิ จากครูชัชวาลย์ ฝ่ายกระโทก คณุ ครูทป่ี รึกษาโครงงานได้ใหค้ วามรใู้ นการ
จัดทาโครงงานและใหค้ าเสนอแนะแนวคิด ตลอดจนการแกไ้ ขข้อบกพรอ่ งต่างๆ มาโดยตลอดผู้จดั ทาจงึ ขอก
ราบขอบพระคุณเปน็ อย่างสูง
ขอบคุณครูชชั วาลย์ ฝ่ายกระโทก ทคี่ อยให้การชว่ ยเหลือในเร่อื งของการทาโครงงานและชว่ ยเหลือใน
ด้านของการรวบรวมข้อมูล และขอขอบคุณคณะเพอ่ื นรว่ มห้อง 4/7 ท่ีให้กาลังใจและใหค้ วามคิดเห็นในการทา
โครงงาน
ท้ายสดุ นค้ี ณะผู้จดั ทาหวังเปนอย่างย่งิ ว่า โครงงาน เรื่อง โปรแกรมเรียงคะแนนสอบและหาค่าเฉลี่ย
ด้วยภาษาซี โดยโปรแกรม Devc++จะเปน็ ประโยชน์ต่อการศกึ ษาค้นควา้ และเปน็ ประโยชน์ตอ่ ผ้ทู ี่สนใจในด้าน
ของเทคโนโลยีสารสนเทศ
สารบญั ค
บทคัดยอ่ ก
กิตตกิ รรมประกาศ ข
สารบญั ค
บทท่ี 1 บทนา 1
1
ทีม่ าและความสาคัญของโครงงาน 1
วตั ถุประสงค์ 1
ขอบเขตของการศกึ ษา 1
ประโยชนท์ ่คี าดว่าจะได้รับ 2
บทที่ 2 เอกสารท่เี กยี่ วข้อง 2
การศกึ ษาการโครงสรา้ งโปรแกรม Dev-C++ 3
การศึกษาการเขยี นโค้ดโปรแกรม Dev-C++ 3
6
การเขียนโคด้ การจัดเรียงคะแนน 7
การเขียนโคด้ การจัดเรยี งคะแนน 7
การจัดเรยี งข้อมูลแบบ Bubble sort 7
ประสิทธภิ าพ 9
การปรบั ปรุงประสิทธภิ าพ 10
บทท่ี 3 วิธีการดาเนินงาน 13
บทท่ี 4 ผลการดาเนนิ งาน 14
บทท่ี 5 อภปิ รายผล ประโยชนท์ ี่ไดร้ บั จากโครงงาน และขอ้ เสนอแนะ
บรรณานุกรม
1
บทท่ี 1
บทนา
ท่มี าและความสาคัญของโครงงาน
เนอื่ งจากในปัจจุบนั มคี วามแพรห่ ลายในการใชเ้ ทคโนโลยใี นชวี ิตประจาวนั เป็นอย่างมาก เพอื่ ให้เกดิ
ความสะดวกสบายในการดารงชวี ิตและประหยัดเวลาในการทากิจกรรมอน่ื ๆ โดยการใชเ้ ทคโนโลยีเข้ามาชว่ ย
ทาใหเ้ กดิ ความสะดวกสบาย ซงึ่ กลมุ่ ของพวกเราจึงเลง็ เห็นปัญหาเกีย่ วกบั การเรียงคะแนนของคณุ ครทู ่ตี อ้ งใช้
เวลามากในการเรียงคะแนนและหาคา่ เฉลีย่ เน่ืองจากมจี านวนของนกั เรียนเปน็ จานวนมากจงึ ทาให้เสยี เวลาใน
การเรียงคะแนนและการหาคา่ เฉล่ียในแต่ละคร้ัง กลุ่มของพวกเราจงึ เขียนโคด้ จากโปรแกรม Dev-C++ เพื่อใช้
ในการเรียงคะแนนและหาค่าเฉลยี่ ในแต่ละคร้งั เพื่อให้เกิดความสะดวกสบาย ประหยดั เวลา และรวดเรว็ ใน
การเรียงคะแนนและหาค่าเฉลย่ี ในแตล่ ะครงั้ ของคณุ ครู
วตั ถปุ ระสงค์
1.เพื่อศึกษาการเขยี นโคด้ โปรแกรม Dev-C++
2.เพือ่ ใช้โคด้ ภาษาซีช่วยในการเรยี งคะแนนและหาคา่ เฉล่ียของเด็กนกั เรยี นจานวน 20 คน
3.เพือ่ ให้เกดิ ความสะดวกสบายในการเรียงคะแนนและหาคา่ เฉลีย่ ของคณุ ครู
ขอบเขตของการศกึ ษา
1.ศกึ ษาโครงสร้างภาษาซี
2.ศกึ ษาการจดั เรียงขอ้ มูลแบบ bubble sort
ประโยชน์ท่คี าดว่าจะไดร้ บั
1.มีความเข้าใจในเขยี นโคด้ โปรแกรม Dev-C++
2.สามารถใชโ้ ค้ดท่เี ขียนเรียงคะแนนและหาค่าเฉลี่ยของเด็กนกั เรียนจานวนมากได้
3.เกดิ ความสะดวกสบายในการเรียงคะแนนและหาคา่ เฉล่ียของเดก็ นกั เรยี นจานวนมากได้
2
บทท่ี 2
เอกสารทีเ่ กย่ี วขอ้ ง
ในการจดั ทาโครงงานคอมพวิ เตอร์ การจัดเรียงคะแนนและหาค่าเฉล่ยี ด้วยภาษาซี คณะผู้จดั ทา
โครงงานไดศ้ กึ ษาข้อมลู เอกสารท่เี กยี่ วข้อง ดังน้ี
2.1การศกึ ษาการโครงสร้างโปรแกรม Dev-C++
2.2การศึกษาการเขียนโค้ดโปรแกรม Dev-C++
2.2.1การเขยี นโคด้ การจดั เรยี งคะแนน
2.2.2การเขยี นโคด้ หาค่าเฉลีย่ ของคะแนน
2.3การจัดเรียงข้อมูลแบบ bubble sort
2.3.1ประสทิ ธิภาพ
2.3.2การปรบั ปรงุ ประสิทธภิ าพ
2.1การศึกษาวิธีเขียนโค้ดโปรแกรม Dev-C++
โครงสรา้ งของโปรแกรมภาษาซแี บ่งออกเป็น 3 ส่วน
1.ส่วนหวั ของโปรแกรม
สว่ นหวั ของโปรแกรมน้เี รยี กว่า Preprocessing Directive ใช้ระบุเพือ่ บอกใหค้ อมไพเลอร์
กระทาการใดๆ กอ่ นการแปลผลโปรแกรม ในท่นี ่คี าสง่ั #include <stdio.h> ใชบ้ อกกับคอมไพเลอรใ์ หน้ า
เฮดเดอรไ์ ฟล์ทร่ี ะบุ คอื stdio.h เข้าร่วมในการแปลโปรแกรมดว้ ย โดยการ
กาหนด preprocessing directives นจ้ี ะตอ้ งขึน้ ต้นดว้ ยเครอื่ งหมาย # เสมอ
คาสงั่ ท่ใี ชร้ ะบใุ หค้ อมไพเลอรน์ าเฮดเดอร์ไฟลเ์ ข้าร่วมในการแปลโปรแกรม สามารถเขยี น
ได้ 2 รูปแบบ คอื
3
- #include <ช่อื เฮดเดอรไ์ ฟล์> คอมไพเลอรจ์ ะทาการคน้ หาเฮดเดอรไ์ ฟลท์ ี่ระบจุ ากไดเรกทอรีที่ใช้
สาหรับเกบ็ เฮดเดอรไ์ ฟลโ์ ดยเฉพาะ (ปกตคิ ือไดเรกทอรีช่อื include)
- #include “ช่อื เฮดเดอร์ไฟล์” คอมไพเลอร์จะทาการคน้ หาเฮดเดอรไ์ ฟทร่ี ะบุ จากไดเรค็ ทอรีเดียวกนั กบั
ไฟล์ source code น้ัน แต้ถา้ ไมพ่ บก็จะไปคน้ หาไดเรค็ ทอรที ่ใี ชเ้ กบ็ เฮดเดอร์ไฟล์โดยเฉพาะ
2.ส่วนของฟังกช์ ั่นหลัก
ฟงั กช์ ัน่ หลกั ของภาษาซี คือ ฟังก์ชน่ั main() ซง่ึ โปรแกรมภาษาซีทกุ โปรแกรมจะตอ้ งมฟี งั กช์ ั่นนี้อย่ใู น
โปรแกรมเสมอ จะเห็นไดจ้ ากชอื่ ฟังกช์ ัน่ คอื main แปลว่า “หลัก” ดังนน้ั การเขียนโปรแกรมภาษซจี งึ ขาด
ฟังกช์ นั่ นไี้ ปไมไ่ ด้ โดยขอบเขตของฟังก์ช่ันจะถกู กาหนดด้วยเครอ่ื งหมาย { และ } กลา่ วคือ การทางานของ
ฟงั กช์ ่ันจะเริม่ ต้นท่เี คร่อื งหมาย { และจะส้ินสุดท่เี ครื่องหมาย } ฟังก์ชัน่ main() สามารถเขยี นในรปู แบบ
ของ void main(void) ก็ได้ มีความหมายเหมอื นกนั คอื หมายความวา่ ฟงั กช์ ัน่ main() จะไมม่ ี
อารก์ ิวเมนต์ (argument) คอื ไมม่ ีการรบั คา่ ใดๆ เขา้ มาประมวลผลภายในฟังกช์ ่ัน และจะไมม่ ีการคืนคา่ ใด ๆ
กลบั ออกไปจากฟังก์ชน่ั ดว้ ย
3.ส่วนรายละเอยี ดของโปรแกรม
เป็นส่วนของการเขียนคาสงั่ เพื่อให้โปรแกรมทางานตามที่ไดอ้ อกแบบไว้
2.2การศึกษาการเขียนโคด้ โปรแกรม Dev-C++
2.2.1การเขยี นโค้ดการจดั เรยี งคะแนน
ทางคณะผู้จัดทาได้ศึกษาการเขยี นโค้ดการจดั เรียงคะแนนโดยเรียงคา่ มากไปนอ้ ย และ ค่านอ้ ยไปมาก
โดยการเลือกจากเมนู
#include "stdio.h"
#include "conio.h"
#include "string.h"
4
const n=5; scanf("%d",&nam[i]);
int main(){
int i,j,nam[n],tmp;
char key;
for(i=0; i<n; i++)
{
printf("Enter Namber [%d]:",i+1);
}
clrscr();
do{
printf("\n******Manu*******\n");
printf("\n1.Max to Min");
printf("\n2.Min to Max\n");
printf("Enter 1 or 2 :");
key=getche();
clrscr();
}while(!(key=='1' || key=='2'));
printf("\nData in Array Before Sort : ");
for(i=0;i<n;i++)
{
printf("%5d",nam[i]);
}
for(i=0; i<n-1; i++)
for(j=0;j<n-1;j++)
{
if(key=='1')
{
if(nam[j]<nam[j+1])
{
tmp=nam[j];
nam[j]=nam[j+1];
5
nam[j+1]=tmp;
}
}
else
{
if(nam[j]>nam[j+1])
{
tmp=nam[j];
nam[j]=nam[j+1];
nam[j+1]=tmp;
}
}
}
printf("\nData in Array After Sort : ");
for(j=0;j<n;j++)
{
printf("%5d",nam[j]);
}
return 0;
}
ผลการรนั โปรแกรม
ป้อนค่า
6
กดหมายเลข 1
คณะผูจ้ ดั ทาไดป้ ระยุกต์การเขยี นโคด้ การจดั เรยี งคะแนนโดยเรยี งค่ามากไปนอ้ ย และ คา่
น้อยไปมาก โดยการเลือกจากเมนู โดยเปลยี่ นไปเปน็ โคด้ การจดั เรียงคะแนนโดยเรยี งคา่ มากไปน้อย
2.2.2การเขียนโค้ดหาค่าเฉลี่ยของคะแนน
1. #include <stdio.h>
2. int main(void){
3. #define N 10
4. double x[N] = {2.6527, 6.2204, 5.0001, 4.8996, 7.0236,...
5. 5.5493, 5.5883, 6.7972, 6.5274, 5.3836};
6. double u;
7. double sum = 0;
8. int n;
9.
10. for(n=0; n<N; n++){
11. sum = sum+x[n];
12. }
13. u = sum/(double)N; // u=5.5642
14. printf("Mean value (u) = %3.3f\n", u);
15. return(0);
16. }
ผลการรันโปรแกรม
7
2.3การจดั เรียงข้อมลู แบบ Bubble sort
การเรียงข้อมูลแบบ Bubble Sort จะทาโดยการเปรยี บเทยี บคา่ ขอ้ มูลทีอ่ ยู่ตดิ กันทีละคูไ่ ปเรื่อยๆ ใน
กรณเี รยี ง ลาดับขอ้ มลู จากนอ้ ยไปมาก ถ้าคา่ แรกมคี า่ มากกวา่ ค่าสองกจ็ ะทาการสลบั ที่กัน โดยวิธีการน้ี จะทา
ให้ ข้อมูลทีม่ ีคา่ นอ้ ยกวา่ ลอยสูงขนึ้ เร่อื ยเหมือนฟองสบ(ู่ bubble) ท่ลี อยขน้ึ ท่ีสงู และข้อมูลท่นี ้อยทส่ี ุดกจ็ ะ
อยใู่ นตาแหน่งบนสดุ ของชดุ ขอ้ มลู จึงเรียกการเรยี งลาดบั วิธีนีว้ า่ BUBBLE SORT สมมตวิ ่าต้องการเรียงขอ้ มูล
จากน้อยไปมาก จะทาการเปรียบเทยี บข้อมูลทีละ 2 ตวั ถา้ ขอ้ มลู ตวั แรกมากกว่าจะทาการสลับค่ากับขอ้ มลู ตวั
ที่ 2 และเปรียบเทียบข้อมูลอกี 2 ตัวถัดไปจนสุดอาร์เรย์ จากนัน้ ทาซ้าแบบเดมิ อีกตามจานวนขอ้ มลู ในอารเ์ รย์-
1 เชน่ ถ้าข้อมลู ในอาร์เรยม์ ีจานวน 5 ช่อง กต็ ้องทาซา้ เป็นจานวน 4 ครงั้ เป็นต้น
2.3.1ประสิทธิภาพ
ประสิทธิภาพของการเรียงลาดับแบบฟองขึน้ อยู่กบั ตาแหนง่ ของขอ้ มูลตา่ งๆ ท่ีอยู่ในรายการ หากมีคา่
มากอยตู่ วั แรกๆ การเรียงลาดับแบบฟองจะมปี ระสิทธภิ าพดี เพราะว่าการทางานเพียงรอบเดียวกส็ ามารถทา
ใหค้ า่ มากไปอยใู่ นตาแหน่งท่ใี กล้เคียงกับตาแหน่งจริงได้ เชน่ มีคา่ มากทีส่ ดุ อยู่ในตาแหน่งแรก การทางานรอบ
เดียวก็เพียงพอท่จี ะลากค่าน้ันไปอยูต่ าแหนง่ สดุ ท้ายได้ แตก่ ลบั กันหากมีคา่ น้อยอยหู่ ลงั ๆ การทางานหน่งึ รอบ
จะสามารถเลื่อนคา่ นน้ั มาด้านหนา้ ได้เพียงเล็กน้อย เช่นหากค่าน้ันเป็นค่าน้อยที่สดุ การทางานหนึ่งรอบจะเลอ่ื น
คา่ นนั้ มาด้านหนา้ ไดเ้ พียงหน่ึงตาแหน่งเท่านน้ั
การปรับปรงุ ประสทิ ธภิ าพของการเรยี งลาดบั แบบฟองนนั้ วิธีการหน่งึ กค็ อื การทาให้คา่ น้อยท่ีอย่หู ลงั ๆ
น้ันลงมาดา้ นหนา้ ไดเ้ ร็วขึน้ น่นั คอื หลักการของ Cocktail Sort ซ่งึ มขี ้ันตอนวิธีคลา้ ยการเรียงลาดบั แบบฟอง
มากเพียงแต่ทางานทง้ั ขาไปและขากลบั ขาไปนน้ั ทางานเหมือนการเรยี งลาดับแบบฟองทกุ ประการ สว่ นขา
กลบั ก็เพยี งกลับด้านของการเรยี งลาดบั แบบฟองน่นั เอง
2.3.2การปรบั ปรุงประสิทธิภาพ
ในการเรยี งลาดบั จากน้อยไปมากเสรจ็ หนง่ึ รอบจะทาให้ค่าท่มี ากทส่ี ุดลาดับท่ี i ไปอยู่ในตาแหนง่ ที่
n-1 ดงั น้ันจึงสามารถมองขา้ มตาแหนง่ ท่ี n-1 ในการทางานรอบต่อไปได้
ตวั อยา่ ง
begin bubbleSort ( A คือ แถวลาดับทจ่ี ะถูกเรยี ง )
n = ขนาดของ(A)
do ทาเครื่องหมายวา่ ยังไม่มกี ารสลบั
for i = 1 to n-1
if A[i-1] > A[i] then
สลบั A[i-1] กบั A[i] ทาเครอ่ื งหมายว่ามีการสลับแลว้
8
end if
end for
n=n-1
until ไม่มกี ารสลบั แล้ว
end จบการทางาน
การเรยี งลาดบั แบบฟองน้ันเปน็ หนึง่ ในขน้ั ตอนวิธกี ารเรยี งลาดบั ทีง่ า่ ยที่สดุ เท่าทเ่ี รารจู้ ัก ดว้ ย O(n2)
ทาใหป้ ระสิทธิภาพของมันลดลงอยา่ งมากแมเ้ ราเพม่ิ จานวนสมาชิกทีจ่ ะเรียงเพยี งเลก็ นอ้ ย แม้จะเปรียบเทียบ
ข้นั ตอนวิธีการเรยี งลาดบั ทม่ี ี O(n2) ดว้ ยกนั นัน้ การเรียงลาดับแบบแทรกกน็ ับว่ามีประสิทธภิ าพดกี ว่าในกรณี
ท่วั ๆ ไป แต่ดว้ ยความงา่ ยของขั้นตอนวิธีและความง่ายในการเขยี นทาให้เราพบเห็นการเรยี งลาดบั แบบฟองได้
อยทู่ ั่วไป และมักจะได้เป็นข้ันตอนวธิ กี ารเรยี งลาดับแรกๆ ที่ผเู้ รมิ่ เขียนโปรแกรมไดศ้ ึกษา
9
บทท่ี 3
วิธีดาเนนิ การ
วัสดแุ ละอุปกรณ์
1.คอมพิวเตอร์
วิธดี าเนินการ
1.กาหนดหัวข้อทต่ี ้องการศึกษา
2.การศึกษาวิธกี ารเขยี นโค้ดโปรแกรม Dev-C++
2.1.ศึกษาโครงสรา้ งภาษาซี
2.2.ศึกษาการจัดเรยี งข้อมลู แบบ bubble sort
3.วางแผนและออกแบบการเขียนโคด้ เรยี งคะแนนและหาค่าเฉลีย่ จากโปรแกรม Dev-C++
4.ดาเนนิ การเขียนโค้ดเรยี งคะแนนและหาค่าเฉลีย่ จากโปรแกรม Dev-C++
5.ประเมนิ ผลการใช้โคด้ เรยี งคะแนนและหาคา่ เฉลย่ี
6.สรปุ ผลการศึกษาและเผยแพร่ผลงาน
10
บทท่ี 4
ผลการดาเนนิ งาน
โครงงานคอมพวิ เตอร์ เรือ่ งการจดั เรียงคะแนนและหาคา่ เฉล่ยี ดว้ ยภาษาซี เลม่ นจ้ี ัดทาขน้ึ เพือ่ ศกึ ษา
การเขยี นโปรแกรม Dev-C++ และใชโ้ ค้ดชว่ ยในการเรยี งคะแนนและหาคา่ เฉล่ียคะแนนของเดก็ นกั เรียนทมี่ ี
จานวนมากเพอ่ื ให้เกดิ ความสะดวกสบายในการเรียงคะแนนและหาเฉลีย่ คะแนนของคณุ ครู โดยมีการเขยี น
โปรแกรม Dev-C++ ดังน้ี
อธิบายการทางานของโปรแกรม
บรรทัดท่ี 1-2 เปน็ การเรยี กใชง้ านส่วนของเฮดเดอรไ์ ฟล์ สังเกตได้ทเ่ี ครอ่ื งหมาย#โดยมีการเรยี กใช้ไลบรารี
stdio.h และ stdlib.h
บรรทดั ท่ี 3-38 ส่วนการทางานของฟงั กช์ นั main()
11
บรรทดั ที่ 6 ประกาศตัวแปรชนดิ จานวนเต็มชอ่ื I , temp , j ,sumท่ีมีคา่ =0 และตวั แปรอารเ์ รย์ 1 มติ ิ
ขนาด 20 คอลัมนช์ ือ่ s
บรรทดั ที่ 7 เปน็ คาสั่งแสดงผลทางจอภาพ โดยใหพ้ มิ พ์คาวา่ ---------score of test-----------
บรรทัดท่ี 8 เปน็ คาสงั่ แสดงผลทางจอภาพ โดยให้พิมพ์คาว่า FULL SCORE IS 100
บรรทัดท่ี 9-13 กาหนดให้โปรมแกรมวนลูปทางานชุดคาสัง่ ภายในเครื่องหมาย {} ดวยคาสัง่ for โดย
กาหนดคา่ เร่ิมตน้ ของเงอื่ นไขที่ตัวแปร I = 0 แลว้ ตรวจสอบเงื่อนไขวา่ คา่ ตวั แปร I นอ้ ยกว่า
20 หรือไม่ ถา้ เง่ือนไขเป็นจรงิ ใหท้ างานท่ชี ุดคาสั่งภายในลูป เมื่อทางานเสรจ็ แล้วให้เพชื ่มิ
ค่าตัวแปร I ขนึ้ อกี 1 ค่า และตรวจสอบเงื่อนไขค่าตวั แปร I น้อยกว่า 20 หรอื ไม่อีกคร้งั ถ้า
เง่ือนไขเปน็ จรงิ ให้ทางานท่ชี ดุ คาสัง่ ภายในลปู อกี ครง้ั ถ้าเป็นเท็จใหอ้ อกจากลปู การทางาน
ทันที
บรรทัดที่ 10 เปน็ คาส่ังแสดงผลทางจอภาพโดยให้พิมพค์ าวา่ Student พร้อมท้งั แสดงตวั แปร i+1
บรรทดั ท่ี 11 รบั ขอ้ มลู ชนดิ จานวนเต็มจากเป็นพมิ พเ์ ก็บไว้ทีต่ ัวแปรอารเ์ รย์ตาแหน่งอนิ เด็กซท์ ่กี าหนด
(ตาแหน่งอนิ เดก็ ซ์ท่ีกาหนดในทนี่ ้คี อื คา่ ตวั แปร I )
บรรทดั ท่ี 12 กาหนดคา่ ใหต้ ัวแปร sum เทา่ กบั ผลรวมของตวั แปร sum กบั ตัวแปรอารเ์ รยต์ าแหนง่
อนิ เดก็ ซ์ที่กาหนด(ตาแหนง่ อนิ เด็กซท์ ก่ี าหนดในที่นี้คือ คา่ ตวั แปร I )
บรรทัดที่ 15 เปน็ คาสง่ั แสดงผลทางจอภาพ โดยให้พิมพ์ -------------------------
บรรทัดท่ี 16 เป็นคาสง่ั แสดงผลทางจอภาพ โดยให้พมิ พค์ าวา่ THE HIGHEST SCORE TO THE
LOWEST SCORE
บรรทดั ที่ 17-23 ใชค้ าส่งั for ในการควบคมุ การทางาน 19 ครั้ง โดยใชต้ วั แปร I ทางานวนลูปในคาสง่ั ของ
for ที่2 ซง่ึ ใชต้ วั แปร j ในการวนลูป for 20 ครง้ั ตามจานวนนกั เรยี น โดยเขยี นคาส่ังเงื่อนไข
ว่า ถา้ s ในตาแหน่งท่ี I น้อยกวา่ s ในตาแหนง่ ท่ี j ใหท้ าการสลับค่าของ s ในตาแหนง่ ท่ี I
กับ s ในตาแหนง่ ท่ี j
บรรทัดท่ี 25-27 ใชค้ าสง่ั for ในการควบคุมการทางาน 19 คร้ัง ตรวจสอบเง่อื นไขวา่ คา่ ตวั แปร I นอ้ ยกว่า
20 หรือไม่ ถา้ เง่ือนไขเป็นจริงให้แสดงผลทางจอภาพโดยใหพ้ มิ พ์คาวา่ the พรอ้ มท้ังคา่ ของ
ตัวแปร I+1 = ตวั แปร s ในตาแหน่งที่ I ถา้ เปน็ เทจ็ ให้ออกจากลูปการทางานทันที
บรรทัดที่ 28 เป็นคาสั่งแสดงผลทางจอภาพ โดยใหพ้ มิ พ์ -------------------------
บรรทดั ที่ 29 เป็นคาสั่งแสดงผลทางจอภาพ โดยให้พมิ พค์ าว่า sum of score = คา่ ของตวั แปร sum
บรรทัดท่ี 30 เปน็ คาสง่ั แสดงผลทางจอภาพ โดยใหพ้ ิมพค์ าวา่ avg of score = คา่ ของตวั แปร sum หาร
20
บรรทัดที่ 31-36 ตรวจสอบว่า sum หาร 20 นอ้ ยกว่า 50 ถา้ นอ้ ยกวา่ ให้พิมพ์ STUDENT FAIL ออกทาง
จอภาพแตถ่ า้ มากกวา่ 50 ให้พมิ พ์ STUDENT PASS
12
ผลการทางานของโปรแกรม
13
บทท่ี 5
อภปิ รายผล ประโยชนท์ ี่ได้รบั จากโครงงาน และขอ้ เสนอแนะ
โครงงานคอมพวิ เตอร์ เร่ืองการจัดเรียงคะแนนและหาคา่ เฉลย่ี ด้วยภาษาซี เล่มนจี้ ดั ทาขนึ้ เพอ่ื ศึกษา
การเขียนโปรแกรม Dev-C++ และใช้โค้ดช่วยในการเรยี งคะแนนและหาค่าเฉลยี่ คะแนนของเดก็ นกั เรยี นที่มี
จานวนมากเพ่อื ให้เกดิ ความสะดวกสบายในการเรียงคะแนนและหาเฉลีย่ คะแนนของคณุ ครู โดยมผี ลการ
ดาเนนิ การ ประโยชน์ท่ีไดร้ ับจากโครงงาน และขอ้ เสนอแนะ ดงั นี้
อภปิ รายผล
จากการดาเนินงานโครงงานคอมพวิ เตอร์ เรอ่ื งการจดั เรียงคะแนนและหาคา่ เฉล่ียดว้ ยภาษาซี ทาให้
ทราบว่าเราสามารถเขยี นโปรแกรม Dev-C++ ใหส้ ามารถจดั เรยี งคะแนนและหาคา่ เฉล่ียของคะแนนไดต้ ามท่ี
เราได้เขียนโปรแกรม
ประโยชน์ทไ่ี ด้รับจากโครงงาน
1.มคี วามเขา้ ใจในการเขียนโคด้ โปรแกรม Dev-C++
2.สามารถใชโ้ ค้ดที่เขียนเรยี งคะแนนและหาค่าเฉลย่ี คะแนนของเดก็ จานวนมากได้
3.เกิดความสะดวกสบายในการเรียงคะแนนและหาคา่ เฉลย่ี คะแนนของเดก็ นกั เรยี นจานวนมากได้
ข้อเสนอแนะในการพฒั นาโครงงานในอนาคต
จากการดาเนินงานโครงงานคอมพิวเตอร์ เรอ่ื งการจัดเรียงคะแนนและหาคา่ เฉลยี่ ด้วยภาษาซี ในครัง้
ต่อไปควรจะมกี ารกาหนดจานวนนกั เรยี นทจ่ี ะนามาเรียงคะแนนและหาคา่ เฉลย่ี ได้
14
เอกสารอ้างองิ
วฒั นา วฒั นสุวกุล. 2559. สบื คน้ เม่ือวนั ที่ 27 , กนั ยายน , 2562. จาก
https://sites.google.com/a/banraiwitthaya.ac.th/kruwattana/kar-kheiyn-porkaerm/bth-
thi-1-phasa-si-beuxng-tn
CS Developers. 2554. สืบคน้ เมอ่ื วนั ที่ 28 , กันยายน , 2562. จาก
https://www.comscidev.com/howto/%E0%B9%82%E0%B8%84%E0%B9%89%E0%B8
%94%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2%E0%B8%8B%E0%B8%B5/
Kru Pa. 2015. สืบคน้ เมอ่ื วันที่ 27 , กนั ยายน , 2562. จาก
http://jsbg.joseph.ac.th/6150/index.php?option=com_content&view=article&id=85&Ite
mid=89&fbclid=IwAR3r9UQ0E0_3PoqmW5wKjX4tZez5X6MeVVOnYnfZYTZr6i8q1RoBs8
3ppLo
Programming. 2558. สบื คน้ เมอ่ื วนั ท่ี 26 , กนั ยายน , 2562. จาก
http://cpe-programming.blogspot.com/2012/09/blog-post_5089.html
ShadowWares. 2554. สืบค้นเม่อื วนั ที่ 28 , กนั ยายน , 2562. จาก
http://www.shadowwares.com/forum/index.php?topic=925.0