รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ...

59
กกกกก 4 กกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกก 1) นนนนนนนนน นนนนนนนนนนนนนนนน นนนนนน10 2) น.น.นนนนนน นนนนนนนน นนนนนน 28 3) น.น.นนนนนนน นนนนนนนนนนน นนนนนน 29 4) น.น.นนนนนนน นนนนนนนนนนน นนนนนน 32 5) น.น.นนนนนนนน นนนนนนนน นนนนนน 33 6) น.น.นนนนนนนนนน นนนนนนน นนนนนน 34 7) น.น.นนนนนนนนน นนนนนนนนนนนนน นนนนนน 35 นนนนนนนนนนนนนนนนนนน 6/2

Transcript of รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ...

Page 1: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

กลุ่��ม 4

การเขี�ยนคำ�าสั่��งคำวบคำ�มแบบวนซ้ำ��า

สั่มาชิ�ก

1) นายธนภั�ทร เหลื องร�ตน�วั�ฒนะ เลืขท��10

2) น.ส.จาร�ภัา พรหมมงคลื เลืขท�� 28

3) น.ส.จ�ฑามาศ อ�ครเดชพงศา เลืขท�� 29

4) น.ส.หท�ยชนก ห#วัยหงส�ทอง เลืขท�� 32

5) น.ส.ศ$ร$วัรรณ พงศโอสธ� เลืขท�� 33

6) น.ส.ส$ร$กาญจน� พานะก$จ เลืขท�� 34

7) น.ส.ส�ดาร�ตน� ก(าจรก$ตต$ค�ณ เลืขท�� 35

ช�)นม�ธยมศ*กษาปี-ท�� 6/2

โรงเร�ยนเฉลื$มพระเก�ยรต$สมเด/จพระศร�นคร$นทร�

กาญจนบุ�ร�

Page 2: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

การเขี�ยนคำ�าสั่��งคำวบคำ�มแบบวนซ้ำ��า

หั�วขี�อ

1. เทคน$คการเข�ยนน$พจน�คณ$ตศาสตร�2. ค(าส��งควับุค�มวันซ้ำ()าแบุบุ for

3. ค(าส��งควับุค�มวันซ้ำ()าแบุบุ while

4. กรณ�ศ*กษา การใช#ค(าส��งควับุค�มวันซ้ำ()า

จุ�ดประสั่งคำ"

1. วั$เคราะห�น$พจน�คณ$ตศาสตร�ในร4ปีแบุบุย5อตามท��ก(าหนดให# แลื#วัเข�ยนผลืลื�พธ�ได#

2. เข�ยนน$พจน�คณ$ตศาสตร�ในร4ปีแบุบุย5อตามท��ก(าหนดให#3. วั$เคราะห�โปีรแกรมท��ใช#ค(าส��งควับุค�มวันซ้ำ()าแบุบุค(าส��ง for , while ,

do-while แลื#วัเข�ยนผลืการท(างานได#4. วั$เคราะห�โปีรแกรมท��ใช#ค(าส��งควับุค�มวันซ้ำ()าแบุบุค(าส��ง for , while ,

do-while แลื#วัเข�ยนข#อผ$ดพลืาดได#5. วั$เคราะห�ข#อผ$ดพลืาดโปีรแกรมท��ใช#ค(าส��งควับุค�มวันซ้ำ()าแบุบุค(าส��ง for

, while , do-while แลื#วั แก#ไขให#ถู4กต#องได#

Page 3: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

1. เทคำน�คำการเขี�ยนน�พจุน"คำณิ�ตศาสั่ตร"

จากบุทท��ผ5านมาได#แนะน(าการเข�ยนสมการค(านวัณ ลื�กษณะน$พจน�คณ$ตศาสตร�โดยใช#ส�ญลื�กษณ�ต�วัด(าเน$นงานท��ม�ให#เลื อกใช#งานได#หลืากหลืายร4ปีแบุบุ ส(าหร�บุในหน5วัยเร�ยนน�)ม�ข#อเสนอแนะเพ$�มเต$ม ด#านเทคน$ควั$ธ�เข�ยนน$พจน� แลืะใช#ต�วัด(าเน$นการอ�กร4ปีแบุบุเพ �อเข�ยนน$พจน�แบุบุย5อด�งน�)

1.1 ต�วด�าเน�นการเพ��มคำ�า (Increment Operator)

ภัาษาซ้ำ�ม�ส�ญลื�กษณ� ด�งน�)

ตาราง 4.1 ส�ญลื�กษณ�ต�วัด(าเน$นการเพ$�มค5า

ต�วด�าเน�นการ ศ�พท"เฉพาะ คำวามหัมาย++ increment เพ$�มค5าอ�ก

1

ต�วอย�างคำ�าสั่��ง เข�ยนน$พจน�โดยใช#ต�วัด(าเน$นการเพ$�มค5า อย45ต(าแหน5งหลื�งต�วัแปีรท��ก(าหนดให# b=3 ;

อธิ�บาย 1.เปีร�ยบุได#ก�บุการเข�ยนค(าส��ง 2 บุรรท�ดค อ a = b ; (

หมายถู*ง a = 3)

b = b + 1 ; ( หมายถู*ง b =

3 + 1)

2.ค(าตอบุค อ a เก/บุค5า 3 ส5วัน b เก/บุค5า 4

ต�วอย�างคำ�าสั่��ง เข�ยนน$พจน�โดยใช#ต�วัด(าเน$นการเพ$�มค5า อย45ต(าแหน5งหน#าต�วัแปีรท��ก(าหนดให# b=3 ;

a=b++

Page 4: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

อธิ�บาย 1. เปีร�ยบุได#ก�บุการเข�ยนค(าส��ง 2 บุรรท�ดค อ

b = b + 1 ; ( หมายถู*ง b = 3 + 1)

a = b ; ( หมายถู*ง a = 4 )

2.ค(าตอบุค อ a เก/บุค5า 4 ส5วัน b เก/บุค5า 4

1.2 ต�วด�าเน�นการลุ่ดคำ�า ( decrement operator )

ภัาษาซ้ำ�ม�ส�ญลื�กษณ� ด�งน�)ตาราง 4.2 ส�ญลื�กษณ�ต�วัด(าเน$นการลืดค5า

ต�วด�าเน�นการ ศ�พท"เฉพาะ คำวามหัมาย-- decrement ลืดค5าอ�ก 1

ต�วอย�างคำ�าสั่��ง เข�ยนน$พจน�โดยใช#ต�วัการด(าเน$นการลืดค5าอย45ต(าแหน5งหลื�งต�วัแปีร ก(าหนดให# b = 3

อธิ�บาย 1. เปีร�ยบุได#ก�บุการเข�ยนค(าส��ง 2 บุรรท�ดค อ

a = b ; ( หมายถู*ง a = 3)

b = b - 1 ; ( หมายถู*ง b = 3 - 1)

2.ค(าตอบุค อ a เก/บุค5า 3 ส5วัน b เก/บุค5า 2

ต�วอย�างคำ�าสั่��ง เข�ยนน$พจน�โดยใช#ต�วัการด(าเน$นการลืดค5าอย45ต(าแหน5งหน#าต�วัแปีร

a = b- - ;

a = - - b ;

Page 5: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

อธิ�บาย 1. เปีร�ยบุได#ก�บุการเข�ยนค(าส��ง 2 บุรรท�ดค อ

b = b - 1 ; ( หมายถู*ง b = 3 - 1)

a = b ; ( หมายถู*ง a = 2 )

2. ค(าตอบุค อ a เก/บุค5า 2 ส5วัน b เก/บุค5า 2

1.3 ต�วด�าเน�นการก�าหันดคำ�า  (compound 

assignment operators)

ภัาษาซ้ำ�ม�ส�ญลื�กษณ�ด�งน�)

ตารางท�� 4.3 ส�ญลื�กษณ�ต�วัด(าเน$นการก(าหนดค5า

สั่�ญลุ่�กษณิ"  (symbol)

ต�วด�าเน�นการ  (operators)

ต�วอย�าง

= Assignment a=b+= Addition a+=b  หมายถู*ง 

(a=a+b)-= Subtraction a-=b  หมายถู*ง 

(a=a-b)*= Multiplication a*=b  หมายถู*ง 

(a=a*b)/= Division a/=b  หมายถู*ง 

(a=a/b)%= Remainder a%=b  หมายถู*ง 

(a=a%b)&= bitwise  AND a&=b  หมายถู*ง 

(a=a&b)|= bitwise 

Inclusive  ORa|=b  หมายถู*ง 

(a=a|b)

Page 6: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

^= bitwise  exclusive  OR

a^=b  หมายถู*ง  (a=a^b)

<<= right  shift a<<2  หมายถู*ง  (a=a<<2)

>>= left  shift a>>3  หมายถู*ง  (a=a>>3)

1.4 ประสั่�ทธิ�ภาพพจุน"แบบย�อ

ต�วัอย5างต5อไปีน�)แสดงให#เห/นวั5า การเข�ยนน$พจน�แบุบุย5อสามารถูให#ปีระส$ทธ$ภัาพการท(างานเท�ยบุเท5าก�บุการเข�ยนน$พจน�แบุบุยาวั

ต�วัอย5างโปีรแกรมท�� 4.1 แสดงปีระส$ทธ$ภัาพน$พจน�ท�ใช#ต�วัด(าเน$นการก(าหนดค5า#include <stdio .h>

/* project_loop//operatorl.c */main ( ){int a = 2 , = 4 ;printf ( “---------------------- \n\n ”) ;printf ( “ * operator *\n ”) ;printf ( “---------------------- \n\n”) ;printf ( a = -> %d \n “ , a ) ;

printf ( “ a = a + 1 -> %d \n\n ” , a ) ;printf (“ b = -> %d \n “ , b ) ;

b + = 1 ;

printf ( “ b + = 1 -> %d \n ” , b ) ;printf ( “---------------------- \n\n ”) ;}

a = a + 1 ;

---------------------------------------------------------------------- * Operator *---------------------------------------------------------------------- a = --> 2 a = a+1 --> 3 b = --> 4 b + = 1 --> 5--------------------------------------------------------------------

Page 7: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ร4ปีท�� 4.1 ผลืทดสอบุโปีรแกรมต�วัอย5างท�� 4.1

อธิ�บาย แสดงให#เห/นวั5าการเข�ยนน$พจน� a = a + 1 ; ก�บุ a + = 1 ;

ย5อมได#ผลืเหม อนก�น

ต�วอย�างโปรแกรมท�� 4.2 แสดงปีระส$ทธ$ภัาพน$พจน�ท��ใช#ต�วัด(าเน$นการเพ$�มค5า

#include <stdio .h>/* project_loop//operatorl.c */main ( ){int a = 2 , = 4 ;printf ( “---------------------- \n\n ”) ;printf ( “ * operator *\n ”) ;printf ( “---------------------- \n\n”) ;printf ( a = -> %d \n “ , a ) ;printf (“ b = -> %d \n “ , b ) ;printf (“ \n “) ;

printf (“ a = b + + \n “) ;printf ( “ a = %d \n ” , a ) ;printf ( “ b = %d \n ” , b ) ;printf (“ \n “) ;

printf (“ b = + + a \n “) ;printf ( “ a = %d \n ” , a ) ;printf ( “ b = %d \n ” , b ) ;printf ( “-------------------------------- \n\n ”) ;}

a = b ++ ;

b = ++a ;

---------------------------------------------------------------------- * Operator *---------------------------------------------------------------------- a = --> 2 b = --> 4 a = b ++ a = 4 b = 5

b = a ++

Page 8: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ร/ปท�� 4.2 ผลืการทดสอบุโปีรแกรมต�วัอย5างท�� 4.2

อธิ�บาย ค(าส��ง a = b ++ ; เปีร�ยบุได#ก�บุการเข�ยนค(าส��ง 2

บุรรท�ดด�งน�)a = b ; (น(าค5า b ไปีไวั#ในหน5วัยควัามจ(า a ด�งน�)น a

= 4)

a = b + 1 ; (น(าค5า 4 + 1 ค อ 5 ไปีไวั#ในหน5วัยควัามจ(า b ด�งน�)น b = 5)

อธิ�บาย ค(าส��ง b = ++ a ; ค อa = a + 1 ; ( ปี:จจ�บุ�น a ม�ค5า 4 จ*งน(าค5า 4 + 1 ด�ง

น�)น a = 5 )

a = b + 1 ; (น(าค5า a ไปีไวั#ในหน5วัยควัามจ(า b ด�งน�)น a

= 5 )

1.5 น�พจุน"ก�บการแปลุ่งชิน�ดขี�อม/ลุ่ โดยท��วัไปี ผลืการค(านวัณจากน$พจน�ระบุบุจะวั$เคราะห�แลืะเปีลื��ยนค5าให# โดยย*ดเกณฑ�เปีลื��ยนค5าไปีขอบุเขตข#อม4ลืท��ใหญ5กวั5า เร�ยกวั5าเปีลื��ยนค5าแบุบุ

---------------------------------------------------------------------- * Operator *---------------------------------------------------------------------- a = --> 2 b = --> 4 a = b ++ a = 4 b = 5

b = a ++

Page 9: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

implicit type conversion

กรณ�ท��ต#องการเปีลื��ยนแปีลืงผลืการค(านวัณจากน$พจน�ไปีให#ชน$ดข#อม4ลืท��ต#องการ ต#องเข�ยนค(าส��งเพ$�มเต$มในน$พจน� เร�ยกวั5าการเปีลื��ยนแปีลืงค5าแบุบุ explicit type conversion

ต�วัอย5างโปีรแกรมท�� 4.3 แสดงปีระส$ทธ$ภัาพน$พจน�แปีลืงชน$ดข#อม4ลื

#include < stdio . h >/ * file name job6 */main ( )

{

Const char line [ 40 ] = “______________________________” ;printf ( “ % s \n\n “ , line) ;printf ( “ * Implicit type conversion * \n “) ;printf ( “ % s \n\n “ , line) ;

printf ( “ 10 + 3.17 = % . 2f \n\n “ , result1) ;printf ( “ % s \n\n “ , line) ;printf ( “ * Explict type conversion * \n “) ;printf ( “ % s \n\n “ , line) ;

printf ( “(int) (10 + 3.17 ) = % . 2d \n “ , result2 ) ;printf ( “ % s \n\n “ , line) ;}

Int value1 = 10 , result2 ; float value 2 = 3.17 , result ;

result 1 = value1 + value2 ;

result 2 = (int) ( value1 + value2 ) ;

-----------------------------------------------------------------------------------* Implicit type conversion * ----------------------------------------------------------------------------------10 + 3.17 =13.1710 / 3 = 3.00----------------------------------------------------------------------------------* Explict type conversion *<int > <10 + 3.17 > = 13----------------------------------------------------------------------------------Press any key to continue

Page 10: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ร/ปท�� 4.3 ผลืทดสอบุโปีรแกรมต�วัอย5าง ท� 4.3

อธิ�บาย

1. จากค(าส��งน$พจน� result 1 = value1 + value 2 ;

ระบุบุจะน(าค5า 10 + 3.17 ได# 13.17 แลื#วัเก/บุในหน5วัยควัามจ(า result 1 การแปีลืงชน$ดข#อม4ลื ระบุบุจะวั$เคราะห�แลืะเปีลื��ยนแปีลืงค5าให#อ�ตโนม�ต$ โดยย*ดเกณฑ�เปีลื��ยนค5าขอบุเขตข#อม4ลืท��ใหญ5กวั5า ด�งน�)นจ*งเปี;นทศน$ยม เพราะขอบุเขตกวั#างกวั5าจ(านวันเต/ม

2.จากค(าส��งน$พจน� result 1 = value / 3 ;

ระบุบุจะวั$เคราะห�แลืะเปีลื��ยนค5าให# โดยย*ดลื�กษณะเคร �องหมายน��นค อ หากจ(านวันใดก/ตามใช#เคร �องหมาย / แลืะส��งแสดงผลืด#วัยส�ญลื�กษณ�ควับุค�ม % .2f เคร �องหมายจะเปีลื��ยนเปี;นชน$ดทศน$ยม

3. จากค(าส��งน$พจน� result 2 = (int) ( value1 +

value2 ) ;

ระบุบุจะน(าค5า 10 + 3.17 ได# 13.17 แลื#วัถู4กค(าส��ง int ()

แปีลืงเปี;นจ(านวันเต/ม จ*งเก/บุค5า 13 ในหน5วัยควัามจ(า result 1

2. คำ�าสั่��งคำวบคำ�มวนซ้ำ��าแบบ for

ประสั่�ทธิ�ภาพคำ�าสั่��ง : ควับุค�มการท(างานวันซ้ำ()า ลื�กษณะท��ต#องแจ#งจ(านวันรอบุการท(างาน อาจปี<อนจ(านวันผ5านทางแปี<นพ$มพ�จ�ดเก/บุลืงต�วัแปีร หร อเข�ยนค(าส��งก(าหนดรอบุการท(างานคงท��ในโปีรแกรม ด�งน�)นในส5วันของค(าส��งต#องการค5า 3 ค5า ค อ ค5าเร$�มต#นน�บุรอบุ ค5าส$)นส�ดรอบุ แลืะอ�ตราเพ$�มแต5ลืะรอบุ

Page 11: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ข#อควัรจ(า : ต�วัแปีรท��ใช#ในค(าส��ง for ต#องเปี;นต�วัแปีรปีระเภัทจ(านนเต/มเท5าน�)น

2.1 ร/ปแบบคำ�าสั่��งแลุ่ะแนวทางการเขี�ยนผั�งงานคำ�าสั่��ง for

ร/ปแบบ การใช#ค(าส��ง for

ข#อควัรจ(า : กรณ�ม� 1 ค(าส��งในกระบุวันการวันซ้ำ()าไม5ต#อง {} ก�)นขอบุเขต

ร4ปีผ�งงานท�� 4.1 แนวัทางการเข�ยนผ�งงานค(าส��ง for

2.2 แนวทางการใชิ�คำ�าสั่��ง for กรณิ�ก�าหันดการวนซ้ำ��าเป2นคำ�าคำงท��

ว�ตถุ�ประสั่งคำ" จงเข�ยนงานวันซ้ำ()าจ(านวัน 5 รอบุ เพ �อปี<อนช �อน�กเร�ยนแต5ลืะรอบุให#ระบุบุพ$มพ�ลื(าด�บุรอบุอ�ตโนม�ต$ด#วัย

For ( ต�วัแปีร = ค5าเร$�มต#น ; น$พจน�ตรรกะ ; ค5าเพ$�มหร อค5าลืด ){

statemmnt ( s ) ;

}

Page 12: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ต�วอย�างโปรแกรมท�� 4.4 โปีรแกรมระบุบุงานใช#ค(าส��งควับุค�มการวันซ้ำ()า ด#วัยค(าส��ง for ก(าหนดรอบุการวันซ้ำ()าคงท��

ร4ปีท�� 4.4 ผลืทดสอบุโปีรแกรมต�วัอย5างท�� 4.4

อธิ�บาย 1. โปีรแกรมวันซ้ำ()าคงท��จ(านวัน 5 รอบุ จากการเข�ยนค(าส��งก(าหนดในโปีรแกรม

2. ลื(าด�บุท��แสดงอ�ตโนม�ต$ ใช#ปีระโยชน�จากค5า n ท��เพ$�มค5ารอบุลืะ 1

3. หากค5า n มากกวั5า 6 จะออกจากการวันซ้ำ()าไปีท(างานค(าส��งหลืงปี-กกาปี=ด

4. กระบุวันการด(าเนอนงานวันซ้ำ()าอย45ภัายใต#เคร �องหมาย {} 1

#include < stdio . h>/* project_loop // ex_for1.cpp */main ( ){char name [ 30 ] ; int n ;printf (“ Report Data \n “ ) ;Printf ( “ **************************************** \n\n “) ;

Printf ( “ **************************************** \n “ ) ;printf ( “ \n end program …………..\n “ ) ;}

for ( n = 1 ; n < 6 ; n++ ) { printf (“ No. => %d “ , n ) ; printf ( “ Name is = > “ ) ; scanf ( “ %s “ , name ) ; }

Report Data****************************************************NO. => 1 Name is => ANANNO. => 2 Name is => SOMJITNO. => 3 Name is => UILAINO. => 4 Name is => RUNGNO. => 5 Name is => TEERA****************************************************

End program ………………………….Press any key to continue

ANANSOMJITUILAIRUNGTEERA

ผ4#ใช#ระบุบุงานปี<อนข#อม4ลืจ(านวัน 5 ราย เพราะควับุค�มกรท(างานด#วัย

For ( n =1 ; n < 6 ; n ++)

For ( n = 1 ; n < 6 ; n++){

Printf ( No . => %d , n ) ;

Page 13: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

เท5าน�)น ระบุบุตรวัจสอบุระบุบุเง �อนไขการท(างานท�� for น��น ค อ n ม�ค5าเปี;น 1 แต5ไม5เก$น 6 แลืะเพ$�มค5าอ�ตโนม�ต$ n = n+1

2.3 แนวทางการใชิ�คำ�าสั่��ง for กรณิ�ก�าหันดการวนซ้ำ��าเป2นต�วแปร

ว�ตถุ�ประสั่งคำ" จงเข�ยนงานวันซ้ำ()า เพ �อปี<อนช �อน�กเร�ยน ให#ผ4#ใช#ระบุบุก(าหนดจ(านวันรอบุเอง แต5 ลืะรอบุให#ระบุบุพ$มพ�ลื(าด�บุอ�ตโนม�ต$ด#วัย

ต�วัอย5างโปีรแกรมท�� 4.5 โปีรแกรมระบุบุงาน ใช#ค(าส��งควับุค�มวันซ้ำ()าด#วัย ค(าส��ง for ก(าหนดรอบุการวันซ้ำ()า โดยผ4#ใช#ระบุบุงาน

For ( n = 1 ; n < 6 ; n++){

Printf ( No . => %d , n ) ;

#include < stdio .h >/* project_loop // ex_for2_1.cpp */main ( ){char name [ 30 ] ;

int midterm , final ,score , n ,num ;printf ( “ key loop => “) ; scanf ( “%d” , & num) ;printf ( “ \n Report Score \n “ ) ;printf ( “ ***************************************** \n\n “ ) ;

Printf ( “ **************************************** \n “ ) ;printf ( “ \n end program …………..\n “ ) ;}

For ( n = 1 ; n <= num ; n++) { printf ( “ No. => %d “ , n) printf ( “ Name is => “ ) ; scanf ( “ %s” , name) ; }

Key loop => 3

Report Score****************************************************NO. => 1 Name is => ANANNO. => 2 Name is => SOMJITNO. => 3 Name is => UILAI

ผ4#ใช#ระบุบุงานระบุ�จ(านวันรอบุ

3

Page 14: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ร/ปท�� 4.5 ผลืกาทดสอบุโปีรแกรมต�วัอย5างท�� 4.5

อธิ�บาย 1. โปีรแกรมน�)ให#ผ4#ใช#ระบุบุงานปี<อนจ(านวันน�กเร�ยนหร อรอบุท(างาน

2. จากต�วัอย5างปี<อน 3 จ*งวันซ้ำ()าร�บุช �อน�กเร�ยน 3 ราย3. การเข�ยนค(าส��งควับุค�มการวันซ้ำ()าจากต�วัอย5างค อ

3. การคำวบคำ�มคำ�าสั่��งแบบวนซ้ำ��า while

ประสั่�ทธิ�ภาพคำ�าสั่��ง : ควับุค�มการท(างานวันซ้ำ()า กรณ�ระบุบุงานม�ลื�กษณะตรวัจสอบุเง �อนไข ก5อนเข#าส45ส5วันลื(าด�บุงานค(าส��งท��ก(าหนดไวั# การเข�ยนค(าส��ง while ต#องก(าหนดน$พจน�แบุบุตรรกะเปี;นเง �อนไขให#ระบุบุตรวัจสอบุวั5าเง �อนไขม�ค5าในหน5วัยควัามจ(าเปี;น 1 (ค5าจร$ง) หร อค5าท��ได#เปี;น 0 (ค5าเท/จ) กรณ�ค5าน$พจน�ตรรกะเปี;นจร$ง จ*งวันซ้ำ()ากลื�5มค(าส��งภัายในส�ญลื�กษณ� {

} ต5อจาก while เม �อน$พจน�ตรรกะได#ค5าเปี;นเท/จจะด(าเน$นงานค(าส��งหลื�งเคร �องหมายปี-กกาปี=ด { } ของค(าส��ง while

ขี�อคำวรจุ�า > ค อภัายในการวันซ้ำ()าแต5ลืะรอบุ ต#องม�ค(าส��งท��ส5งผลืให#เก$ดการเปีลื��ยนแปีลืงน$พจน�ให#เปี;นเท/จ เพ �อออกจากการวันซ้ำ()าได#

Key loop => 3

Report Score****************************************************NO. => 1 Name is => ANANNO. => 2 Name is => SOMJITNO. => 3 Name is => UILAI

ผ4#ใช#ระบุบุงานปี<อนข#อม4ลื จ(านวันตามท��ระบุ�รอบุ เพราะควับุค�มการท(างานด#วัย for ( n = 1 ; n < num ; n++)

SOMKITLINDAKITTI

Printf ( “ key loop => “ ) ; scanf ( “ %d “ , num)for ( n =1 ; n <= num ; n++){ printf ( “ No. => %d “ , n) printf ( “ Name is => “ ) ; scanf ( “ %s” , name) ; }

Page 15: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

3.1 ร/ปแบบคำ�าสั่��งแลุ่ะแนวทางการเขี�ยนผั�งงานคำ�าสั่��ง while

ร/ปแบบ การใชิ�คำ�าสั่��ง while

ขี�อคำวรจุ�า > กรณิ� 1 คำ�าสั่��ง ในกระบวนการวนซ้ำ��า ไม�ต�องม� { } ก��นขีอบเขีต

ร/ปผั�งงานท�� 4.2 แนวทางการเขี�ยนผั�งงานคำ�าสั่��ง while

3.2 แนวทางการใชิ�คำ�าสั่��ง while วนซ้ำ��า กรณิ�ท��ก�าหันดการวนซ้ำ��าเป2นคำ�าคำงท��

ว�ตถุ�ประสั่งคำ" จงเข�ยนงานเพ �อวันซ้ำ()า ให#ผ4#ใช#ระบุบุปี<อนคะแนนน�กเร�ยน 5 ราย แต5ลืะรอบุให#ระบุบุพ$มพ�ลื(าด�บุรอบุอ�ตโนม�ต$ด#วัย

Page 16: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ต�วอย�างโปรแกรม โปีรแกรมระบุบุงาน ควับุค�มการวันซ้ำ()าด#วัยค(าส��ง while วันซ้ำ()าร�บุคะแนนน�กเร�ยน 5 ราย (แต5ม�ข#อผ$ดพลืาด วันไม5ร4 #จบุ)

อธิ�บาย 1. โปีรแกรมน�)ม�ข#อผ$ดพลืาดค อวันซ้ำ()าไปีเร �อย ๆ มากกวั5า 5

รอบุ (ต#องกดแปี<น Ctrl-Break)

2. ข#อผ$ดพลืาดค อ ก(าหนดเง �อนไขวั5าให#โปีรแกรมน�)วันซ้ำ()าเร �อย ๆ ตราบุท�� n <= 5 แต5ไม5ม�ค(าส��ง เปีลื��ยนแปีลืงค5า n ด�งน�)น n จ*งม�ค5า 1

ตลือดไปี

Page 17: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

3.โปีรแกรมท��ถู4กต#องแสดงในต�วัอย5างต5อไปี

ต�วอย�างโปรแกรม โปีรแกรมระบุบุงาน ควับุค�มการวันซ้ำ()าด#วัยค(าส��ง while วันซ้ำ()าร�บุคะแนนน�กเร�ยน 5 ราย (แก#ไขจากต�วัอย5างเก5า)

อธิ�บาย 1. หลื�งปีระโยคค(าส��ง while ต#องเข�ยนน$พจน�ตรรกะควับุค�มการวันซ้ำ()า เช5น while

( n <= 5 )

2. ต#องม�ค(าส��งเปีลื��ยนแปีลืงเง �อนไขให#เปี;นเท/จ เพ �ออกจาการวันซ้ำ()าเช5น ค(าส��ง n = n+1 ;เม �อค5า n > 5 ส5งผลืตรรกะในค(าส��ง while ( n

<= 5 ) เปี;นเท/จจ*งออกจากการวันซ้ำ()า

3. ด�งน�)น โปีรแกรมน�)ส5วันควับุค�มการวันซ้ำ()าค อ

Page 18: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ผัลุ่การทดสั่อบโปรแกรมต�วอย�าง

3.3 แนวทางการใชิ�คำ�าสั่��ง while วนซ้ำ��า กรณิ�ก�าหันดการวนซ้ำ��าเป2นต�วแปร

ว�ตถุ�ประสั่งคำ" จงเข�ยนงานเพ �อวันซ้ำ()า เพ �อปี<อนคะแนนน�กเร�ยนจ(านวัน n ราย ให#ผ4#ใช#ระบุบุระบุ�จ(านวันน�กเร�ยนด#วัยตนเอง แต5ลืะรอบุให#ระบุบุพ$มพ�ลื(าด�บุรอบุอ�ตโนม�ต$ด#วัย

Page 19: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ต�วอย�างโปรแกรม โปีรแกรมระบุ�งานควับุค�มการวันซ้ำ()าด#วัยค(าส��ง while ร�บุคะแนน น�กเร�ยน n ราย

ผัลุ่ทดสั่อบโปรแกรมต�วอย�าง

อธิ�บาย 1. ผ4#ใช#ควับุค�มรอบุวันซ้ำ()าด#วัยการระบุ�ทางแปี<นพ$มพ� เช5น 2

หมายถู*งวันซ้ำ()า 2 รอบุ

Page 20: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

2. ต#องระม�ดระวั�งต�วัแปีรท��เก��ยวัข#องก�บุการควับุค�มจ(านวันรอบุ ต#องเปี;นกลื�5ม จ(านวันเต/ม ในท��น�)ค อ n ใช#เปี;นต�วัน�บุรอบุ แลืะใช#ตรวัจสอบุเปีร�ยบุเท�ยบุก�บุค5า num ท��เก/บุค5าจ(านวันรอบุไวั#

4. คำ�าสั่��งคำวบคำ�มวนซ้ำ��าแบบ do-while

ประสั่�ทธิ�ภาพคำ�าสั่��ง : ควับุค�มการวันซ้ำ()า ลื�กษณะการท(างาน 1 รอบุก5อน แลื#วัจ*งตรวัจสอบุน$พจน�ตรรกะท��ก(าหนดเปี;นเง �อนไขก5อนวันซ้ำ()าในรอบุต5อไปี ท�)งน�)หากค5าน$พจน�ตรรกะ เปี;นจร$ง จะวันซ้ำ()า แต5หากค5าน$พจน� เปี;นเท/จ จะไม5วันซ้ำ()า

ขี�อคำวรจุ�า > ค อ ต#องตรวัจสอบุงานโปีรแกรมวั5าได#เข�ยนค(าส��งงาน เพ �อใช#แปีรเปีลื��ยนน$พจน�ให#เปี;นเท/จหร อไม5 อย5างไรม$ฉะน�)นโปีรแกรมอาจวันไม5ร4 #จบุ

4.1 ร/ปแบบคำ�าสั่��งแลุ่ะแนวทางการเขี�ยนผั�งงานคำ�าสั่��ง do – while

ร/ปแบบ การใช#ค(าส��ง do – while

Page 21: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

แนวทางการเขี�ยนผั�งงานคำ�าสั่��ง do – while

4.2 แนวทางการใชิ�คำ�าสั่��ง do – while วนซ้ำ��า กรณิ� ก�าหันดการวนซ้ำ��าเป2นคำ�าคำงท��

ว�ตถุ�ประสั่งคำ" จงเข�ยนงานวันซ้ำ()า ให#ผ4#ใช#ระบุบุปี<อนคะแนนน�กเร�ยน 5

ราย แต5ลืะรอบุให#เปี;นระบุบุพ$มพ�ลื(าด�บุอ�ตโนม�ต$

ต�วอย�างโปรแกรม โปีรแกรมระบุบุงาน ควับุค�มการวันซ้ำ()าด#วัยค(าส��ง do – while ร�บุคะแนนน�กเร�ยน 5 ราย

Page 22: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ผัลุ่ทดสั่อบโปรแกรม

อธิ�บาย 1. โปีรแกรมลื�กษณะน�)จะท(างานระบุบุงานใน { } ก5อนตรวัจสอบุเง �อนไขเสมอ

2. เม �อระบุบุท(างาน 1 รอบุ แลื#วัจ*งตรวัจสอบุเง �อนไข while (n

<= 5) เพ �อ วั$เคราะห�การวันซ้ำ()าหากตราบุใดเง �อนไข เปี;นจร$ง จะวันซ้ำ()า หากเง �อนไข เปี;นเท/จ n > 5 จะเลื$กวันซ้ำ()า

Page 23: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

3. ค(าส��ง n++ : ค อค(าส��ง n = n + 1 : ใช5เปีลื��ยนแปีลืงค5า n

เพ �อให#ค5า n > 5

4. กระบุวันการวันซ้ำ()า อย45ภัายใต#เคร �องหมาย { } จากต�วัอย5างค อ

4.3 แนวทางการใชิ�คำ�าสั่��ง do – while วนซ้ำ��า กรณิ�ก�าหันดการวนซ้ำ��าเป2นต�วแปร

ว�ตถุ�ประสั่งคำ" จงเข�ยนงานวันซ้ำ()าปี<อนคะแนนน�กเร�ยน ให#ผ4#ใช#ระบุบุจ(านวันน�กเร�ยนด#วัยตนเองแต5ลืะรอบุให#ระบุบุพ$มพ�ลื(าด�บุรอบุอ�ตโนม�ต$

ต�วอย�างโปรแกรม โปีรแกรมระบุบุงานควับุค�มการวันซ้ำ()าด#วัยค(าส��ง do

– while เพ �อวัน ซ้ำ()าร�บุคะแนนน�กเร�ยน n ราย

Page 24: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ผัลุ่ทดสั่อบโปรแกรม

Page 25: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

5.กรณิ�ศ5กษาการใชิ�คำ�าสั่��งคำวบคำ�มวนซ้ำ��า

5.1 กรณ�ศ*กษา ข� )นตอนการสร#างโปีรแกรม ควับุค�มการวันซ้ำ()าด#วัยค(าส��ง for

ค(าส��ง For น�)นจะเปี;นลื4ปีแบุบุ pretest loop ท��ใช#น$พจน� 3 น$พจน� น$พจน�แรกเปี;นการก(าหนดค5า น$พจน�ท�� 2 เปี;นเง �อนไขในการตรวัจสอบุต�วัควับุค�มลื4ปี แลืะส5วันท�� 3 เปี;นการปีร�บุปีร�งค5าของต�วัควับุค�มลื4ปี จะพบุวั5าในต�วัของค(าส��ง for สามารถูม�ค(าส��งได#เพ�ยงหน*�งค(าส��งเท5าน�)นจะต#องใช#ช�ดค(าส��งแบุบุ compound statement แลืะจะพบุอ�กวั5าค(าส��ง for น��นม�การท(างานเหม อน while แต5ค(าส��ง for น�)นจะรวัมการกระท(าท�)งสามอย5างไวั#ในบุรรท�ดเด�ยวัก�นเลืย การเปีร�ยบุเท�ยบุการเข�ยนโปีรแกรมโดยใช#ค(าส��ง for แลืะค(าส��ง while โดยโจทย�ม�อย45วั5าให#ร�บุต�วัเลืขทางค�ย�บุอร�ด 20 ต�วั แลื#วัน(าต�วัเลืขท�)งหมาดมารวัมก�น ซ้ำ*�งจากโปีรแกรมข#างต#นด#านลื5างจะเห/นได#วั5า ค(าส��ง for จะช5วัยให#ผ4#ใช#เข�ยนโปีรแกรมได#ส� )นลืง

โจุทย" จงเข�ยนโปีรแกรมให#ผ4#ใช#ระบุบุก(าหนดรอบุการทงานก5อนแลื#วัจ*งปี<อนช �อน�กเร�ยน คะแนนกลืางภัาค แสดงผลืรวัมคะแนน จ(านวัน n ราย ท�)งน�)ให#ระบุบุพ$มพ�ลื(าด�บุอ�ตโนม�ต$ เม �อส$)นส�ดจ(านวันน�กศ*กษาท��ระบุ�ให#พ$มพ�คะแนนเฉลื��ยของน�กเร�ยนกลื�5มน�)

ก(าหนดการแสดงผลื ด�งน�)key loop =>……………Report Score****************************No. => ……………name is => …………..midterm is => …………..Final is => ……………* Score = ……………***************************** *Average Score is = ………….*****************************

Page 26: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ขี��นตอนการสั่ร�างโปรแกรมประย�กต"งาน

1.การวั$เคราะห�ระบุบุงานเบุ )องต#น

1.1 ส$�งท��ต#องการค อ ผลืรวัมคะแนน คะแนนเฉลื��ย

1.2 สมการค(านวัณ

ลื(าด�บุ = ลื(าด�บุ+1

ผลืรวัมคะแนน = คะแนนกลืางภัาค + ปีลืายภัาคคะแนนเฉลื��ย = คะแนนรวัมท�)งกลื�5ม / จ(านวันน�กศ*กษาคะแนนรวัมท�)งกลื�5ม =คะแนนรวัมท�)งกลื�5ม + ผลืรวัมคะแนน

1.3 ข#อม4ลืน(าเข#า จ(านวันน�กศ*กษา คะแนนกลืางภัาค คะแนนปีลืายภัาค

1.4 การแสดงผลืตามโจทย�ก(าหนด

1.5 การก(าหนดค�ณสมบุ�ต$ต�วัแปีร

ข#อม4ลื ช �อหน5วัยควัามจ(า

ชน$ดข#อม4ลื

จ(านวันน�กศ*กษา

num ต�วัเลืขจ(านวันเต/ม

ลื(าด�บุ n ต�วัเลืขจ(านวันเต/ม

Page 27: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ช �อน�กศ*กษา name กลื�5มอ�กขระคะแนนกลืาง

ภัาคmidterm ต�วัเลืข

จ(านวันเต/มคะแนนปีลืาย

ภัาคผลืfinal ต�วัเลืข

จ(านวันเต/มผลืรวัมคะแนน score ต�วัเลืข

จ(านวันเต/มคะแนนรวัมท�)ง

กลื�5มsum ต�วัเลืขทศน$ยม

คะแนนเฉลื��ย average ต�วัเลืขทศน$ยม

1.6 ข�)นตอนการท(างาน (action)

1) ปี<อนจ(านวันนน�กศ*กษา (num)

2) ควับุค�มวันซ้ำ()าด#วัยค(าส��ง for (n =1; n<=num ; n+

+)

หากเง �อนไข เปี;นจร$ง ให#ท(าข#อ 2.1-2.6 หากเง �อนไข เปี;นเท/จ ไปีท��ข#อ 3

2.1) พ$มพ�ลื(าด�บุท�� (n)

2.2) ปี<อนข#อม4ลืช �อน�กศ*กษา (name) คะแนนกลืางภัาค (midterm)คะแนนปีลืาย

ภัาค (final)

2.3) ค(านวัณผลืคะแนน (score) = midterm +

final

2.4) พ$มพ� score

2.5) ค(านวัณรวัมท�)งกลื�5ม (sum) = sum + score

2.6) วันซ้ำ()าไปีท(าท��ข#อ 2

Page 28: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

3) ค(าน(าคะแนนเฉลื��ย (average) = sum / num

4) พ$มพ� average

5) จบุการท(างาน

2.ลื(าด�บุการท(างานด#วัยผ�งงานโปีรแกรม

start

ปี<อน num

For (n = 1 ; n <= num ; n++)

พ$มพ� n

ปี<อน name,midterm,final

Averge = sum / num

พ$มพ�

n > num

n <= num

Page 29: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

3.ค(าส��งควับุค�มการท(างาน

#include <stdio.h>/* file name ex_for3.cpp*/main (){char name [30] ;int midterm = 0 , final = 0 , score = 0 ,n , num ;float sum = 0 , average = 0 ;printf (“ key loop => “) ; scanf (“%d “,&num) ;Printf (“\n Report Score \n”) ;printf(“*************************\n \n”) ;

for(n = 1;n <= num ; n++) { printf ({“No. => %d \n” , n) ; printf (“Name is => “) ; scanf (“%s”,name) ; printf (“midterm is => “) ; scanf (“%d”&midterm) ; printf (“final is => “) ; scanf (“%d”&final) ; score = midterm =+ final; printf ( “* score = %d\n”,score) ; sum = sum + score ; printf (“*****************\n”) ; }

Page 30: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ค(าส��งน�)ปีระกอบุด#วัย 3 ส5วันค อ 1.สั่�วนก�าหันดคำ�าเร��มต�นใหั�ก�บต�วแปร ส5วันน�)เปี;นการก(าหนดค5าเร$�มต#นให#ก�บุต�วัแปีรท��ต#องการใช#งานใน ลื4ปี โดยปีกต$เราจะใช#ต�วัแปีรน�)เปี;นต�วัควับุค�มลื4ปี 2.สั่�วนเง6�อนไขีท��ต�องการตรวจุสั่อบ เปี;นน$พจน�ตรรกะท��ใช#เปี;นเง �อนไขในการท(างานของลื4ปีโดยหากเง �อนไขน�)เปี;นจร$งก/ย�งคงท(างานในลื4ปีต5อไปี แต5หากเง �อนไขเปี;นเท/จจะออกจากการท(างานของลื4ปีไปีท(าค(าส��งท��อย45นอกลื4ปีต5อไปี 3.สั่�วนปร�บคำ�าขีองต�วแปร เปี;นส5วันท��ใช#ปีร�บุค5าของต�วัแปีรท��ใช#ในลื4ปี การท(างานของ for น�)น จะเร$�มจากส5วันแรกค อก(าหนดค5าเร$�มต#นให#ก�บุต�วัแปีรก5อน จากน�)นจะไปีตรวัจสอบุเง �อนไขในส5วันท�� 2 วั5าเปี;นจร$งหร อไม5 ถู#าเปี;นจร$งก/จะเข#าส45การท(างานของลื4ปี (ถู#าเปี;นเท/จจะไม5เข#าส45ลื4ปี แต5จะไปีท(าค(าส��งต5อไปีท��อย45ถู�ดจากลื4ปีเลืย) แลืะเม �อท(างานตามค(าส��งท�)งหมดท��อย45ภัายในลื4ปีแลื#วัก/จะเข#าไปีท(างานในส5วันท��3 ของค(าส��ง for เพ �อปีร�บุค5าของต�วัแปีร แลืะท(าการตรวัจสอบุเง �อนไขใหม5อ�กคร�)ง ซ้ำ*�งท5าเง �อนไขเปี;นจร$งก/ย�งคงอย45ใน ลื4ปีต5อไปี แลืะจะท(าอย5างน�)เร �อยๆจนกระท��งผลืการตรวัจสอบุเง �อนไขเปี;นเท/จจ*งค5อยออกจาก ลื4ปีไปีท(าค(าส��งท��อย45นอกลื4ปีต5อไปี

5.2 กรณ�ศ*กษา ข� )นตอนการสร#างโปีรแกรม ควับุค�มการวันซ้ำ()าด#วัยค(าส��ง while

#include <stdio.h>/* file name ex_for3.cpp*/main (){char name [30] ;int midterm = 0 , final = 0 , score = 0 ,n , num ;float sum = 0 , average = 0 ;printf (“ key loop => “) ; scanf (“%d “,&num) ;Printf (“\n Report Score \n”) ;printf(“*************************\n \n”) ;

for(n = 1;n <= num ; n++) { printf ({“No. => %d \n” , n) ; printf (“Name is => “) ; scanf (“%s”,name) ; printf (“midterm is => “) ; scanf (“%d”&midterm) ; printf (“final is => “) ; scanf (“%d”&final) ; score = midterm =+ final; printf ( “* score = %d\n”,score) ; sum = sum + score ; printf (“*****************\n”) ; }

Page 31: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

เง �อนไข-เท/จ

ออกจากค(าส��ง while

ค(าส��งต5าง ๆ

เปีลื��ยนแปีลืงเง �อนไขในการท(าซ้ำ()า

จร$ง

ก(าหนดเง �อนไขในการท(าซ้ำ()า

while เปี;นค(าส��งท��ใช#ในโครงสร#างควับุค�มแบุบุวันซ้ำ()า (repetition

control structure) ค อ เปี;นค(าส��งให#ม�การท(าซ้ำ()าเปี;นรอบุ ๆ (loop)

ลื�กษณะการท(างานท(านองเด�ยวัก�บุค(าส��ง for แต5ต5างก�นตรงท��ไม5ทราบุจ(านวันรอบุท��แน5นอน เม �อเร$�มต#นจะม�การตรวัจเง �อนไข ถู#าเง �อนไขม�ค5าเปี;นจร$งจะท(าตามค(าส��งท��ม�ท��ม� 1 ค(าส��ง หร อ ช�ดของค(าส��ง แลื#วักลื�บุมาตรวัจสอบุเง �อนไขใหม5 ถู#าเง �อนไขท��เปี;นเท/จจะออกจากค(าส��ง while ในการใช#ค(าส��งน�)ต#องม�ค(าส��งเปีลื��ยนแปีลืงค5าของน$พจน�ท��ใช#เปี;นเง �อนไขให#สามารถูม�ค5าเปี;นเท/จได# หร อม$ค(าส��งให#หย�ดการวันซ้ำ()า ม$ฉะน�)นจะม�ปี:ญหาท��โปีรแกรมท(างานแบุบุวันซ้ำ()าแบุบุไม5ม�ท��ส$)นส�ด (endless loop) ซ้ำ*�งเปี;นการผ$ดพลืาดท��ร�นแรงเพราะจะไม5สามารถูท(าค(าส��งต5อ ๆ ไปีแลืะจบุการท(างานของโปีรแกรมไม5ได#

การท�าซ้ำ��าแบบ while อาจเข�ยนผ�งงาน ด�งร4ปี

คำ�าสั่��ง while ม�ร/ปแบบ ด�งน�)

while (น$พจน�ทดสอบุเง �อนไข) statement ; หร อ while

(น$พจน�ทดสอบุเง �อนไข)

Page 32: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

{

ค(าส��งท��1;

ค(าส��งท��2;

...

ค(าส��งส�ดท#าย;

}

โดย while จะท(าการท(าซ้ำ()าต5อไปีเม �อน$พจน�ทดสอบุเง �อนไขให#ผลืลื�พธ�เปี;นจร$ง แลืะท(าต5อจนกระท��งผลืลื�พธ�ของน$พจน�ทดสอบุเง �อนไขเปี;นเท/จ

โจุทย" จงเข�ยนโปีรแกรมในลื�กษณะให#ระบุบุตรวัจสอบุเง �อนไขก5อนเข#าส45รอบุการท(างานวั5า หากรห�สน�กศ*กษาไม5ใช5เลืข 0 (ค5าตรรกะเปี;นจร$ง) ให#วันพ$มพ�ซ้ำ()าลื(าด�บุท�� ปี<อนช �อน�กเร�ยน คะแนนกลืางภัาค คะแนนปีลืายภัาค แสดงผลืรวัมคะแนน จ(านวัน n ราย หากรห�สน�กศ*กษาเปี;นเลืข 0 (ค5าตรรกะเปี;นเท/จ)ให#พ$มพ�คะแนนเฉลื��ยน�กศ*กษากลื�5มน�)

ก(าหนดการแสดงผลืด�งน�)

ขี��นตอนการสั่ร�างโปรแกรมประย�กต"งาน

1.การวั$เคราะห�ระบุบุงานเบุ )องต#น

Report Score===========================Student Id => ……………No. => …………….name is => …………..midterm is => …………..Final is => ……………* Score = ……………=========================== *Average Score is = ………….===========================

กดรห�สเปี;น 0 ออกจากการวันซ้ำ()า

Page 33: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

1.1 ส$�งท��ต#องการค อ ผลืรวัมคะแนน คะแนนเฉลื��ย

1.2 สมการค(านวัณ

ลื(าด�บุ = ลื(าด�บุ+1

ผลืรวัมคะแนน = คะแนนกลืางภัาค + ปีลืายภัาคคะแนนเฉลื��ย = คะแนนรวัมท�)งกลื�5ม / (ลื(าด�บุส�ดท#าย –

1)

คะแนนรวัมท�)งกลื�5ม =คะแนนรวัมท�)งกลื�5ม + ผลืรวัมคะแนน

1.3 ข#อม4ลืน(าเข#า รห�สน�กศ*กษา จ(านวันน�กศ*กษา คะแนนกลืางภัาค คะแนนปีลืายภัาค

1.4 การแสดงผลืตามโจทย�ก(าหนด

1.5 การก(าหนดค�ณสมบุ�ต$ต�วัแปีร

ข#อม4ลื ช �อหน5วัยควัามจ(า

ชน$ดข#อม4ลื

รห�สน�กศ*กษา id ต�วัเลืขจ(านวันเต/ม

ลื(าด�บุ n ต�วัเลืขจ(านวันเต/ม

ช �อน�กศ*กษา name กลื�5มอ�กขระคะแนนกลืาง

ภัาคmidterm ต�วัเลืข

จ(านวันเต/มคะแนนปีลืาย

ภัาคผลืfinal ต�วัเลืข

จ(านวันเต/มผลืรวัมคะแนน score ต�วัเลืข

จ(านวันเต/ม

Page 34: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

คะแนนรวัมท�)งกลื�5ม

sum ต�วัเลืขทศน$ยม

คะแนนเฉลื��ย average ต�วัเลืขทศน$ยม

1.6 ข�)นตอนการท(างาน (action)

1) ก(าหนดลื(าด�บุท�� (n) ม�ค5าเปี;น 12) ปี<อนรห�สน�กศ*กษา (id)

3) ควับุค�มวันซ้ำ()าด#วัยค(าส��ง while (id ! = 0)

หากเง �อนไข เปี;นจร$ง ให#ท(าข#อ 3.1-3.8 หากเง �อนไข เปี;นเท/จ ไปีท��ข#อ 4

3.1) พ$มพ�ลื(าด�บุท�� (n)

3.2) ปี<อนข#อม4ลืช �อน�กศ*กษา (name) คะแนนกลืางภัาค (midterm)คะแนนปีลืาย

ภัาค (final)

3.3) ค(านวัณผลืคะแนน (score) = midterm +

final

3.4) พ$มพ� score

3.5) ค(านวัณรวัมท�)งกลื�5ม (sum) = sum + score

3.6) ค(านวัณ n 3.7) ปี<อนรห�สน�กศ*กษา (id)

3.8) วันซ้ำ()าไปีท(าท��ข#อ

4) ค(าน(าคะแนนเฉลื��ย (average) = sum / (num-1)

5) พ$มพ� average

6) จบุการท(างาน

Page 35: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

2.ลื(าด�บุการท(างานด#วัยผ�งงานโปีรแกรม

start

ปี<อน id

พ$มพ� n

ปี<อน name,midterm,final

Score = midterm + final

พ$มพ� score

Averge = sum / num (n-1)

พ$มพ� average

end

no

yes

n =1

While (id !=0)

Page 36: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

3. ค(าส��งควับุค�มการท(างาน

n = n+1

ปี<อน id

#include <stdio.h>/* file name ex_while4.c*/main (){char name [30] ;int midterm = 0 , final = 0 , score = 0 ,n=1 , id ;float sum = 0 , average = 0 ;printf (“\n Report Score \n“) ; printf(“==========================\n \n”) ;Printf (“student id . => ”) ; scanf (“%d”,& id) ;

while (id ! =0) { printf ({“No. => %d \n” , n) ; printf (“Name is => “) ; scanf (“%s”,name) ; printf (“midterm is => “) ; scanf (“%d”&midterm) ; printf (“final is => “) ; scanf (“%d”&final) ; score = midterm =+ final; printf ( “* score = %d\n”,score) ; sum = sum + score ; printf (“============================\n”) ; printf (“student id . => ”) ; scanf (“%d”,& id) ; } average = sum / (n-1) ;printf end job….. \n” ,) ;printf (“======================\n) ;printf (“* Averge score is = %.2f \n” , averge) ;printf (“======================\n) ;

}

Page 37: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

คำ�าอธิ�บาย

1. สาเหต�ท��ต#องเข�ยนสมการค5าเฉลื��ย (averge) = คะแนนรวัมท�)งหมด (sum) (จ(านวันนกศ*กษา (n)-1) ; n หมายถู*ง หน5วัยควัามจ(าเก/บุสะสมค5าจ(านวันน�กศ*กษา แต5ในกระบุวันการท(างานม�ข#อส�งเกตวั5า จากต�วัอย5าง n ม�ค5าเปี;น 3 บุวักเพ$�มไปี 1 ราย แต5ผ4#ใช#ระบุบุกดรห�สน�กศ*กษาเปี;น 0 หมายถู*งไม5วันซ้ำ()า ด�งน�)นจ(านวันข#อม4ลืน�กส*กษาท��แท#จร$งน�)นม� 2 รายเท5าน�)น จ*งต#องลืบุไปี 1 จากค5าท��ม�อย45 ท�)งน�)หากใช#สมการคะแนนเฉลื��ย = คะแนนรวัมท�)งกลื�5ม/ ลื(าด�บุส�ดท#าย ผลืลื�พธ ท��ได#จะผ$ด

2. สาเหต�ท��ต#องเข�ยน scanf (“%d”,& id) ; ในโปีรแกรม 2 แห5ง ค อ

เพราะเม �อวันซ้ำ()าไปีรอบุท�� 2 ระบุบุจะไปีท(างานต(าแหน5งบุรรท�ด while ด�งน�)นเพ �อให#การวันซ้ำ()ารอบุถู�ดไปีม��ค5ารห�สน�กศ*กษาไปีใช#ในการตรวัจสอบุเง �อนไข (id ! =0)

Printf (“student id . => ”) ; scanf (“%d”,& id) ;while (id ! =0) { printf ({“No. => %d \n” , n) ; ………. printf (“student id . => ”) ; scanf (“%d”,& id) ; }

Page 38: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ต�วอย�างเพ��มเต�ม

โปีรแกรมน�) เร$�มต#น ก(าหนดค5า num เปี;น 0 แลืะให# counter ม�ค5าเปี;น 3 แลื#วั จ*งเข#าส45การท(าซ้ำ()า แบุบุ while เร$�มต#นทดสอบุวั5าเง �อนไข ค อ counter <= 11 เปี;นจร$ง หร อไม5 ถู#าเปี;นจร$ง จะท(าตามค(าส��ง

#include <stdio.h>int counter , num;char word[20] = "Bodindecha";main(){ num = 0; counter = 3; while ( counter <= 11){ printf("\n\tcounter = %2d my school is %s print round %d. ",counter,word,++num); counter = counter + 2 ;

}getch();

}

Page 39: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ค(าส��งต5าง ๆ

จร$ง

ก(าหนดเง �อนไขในการท(าซ้ำ()า

printf("\n\tcounter = %2d my school is %s print round %d. ",counter,word,++num);

แลืะค(าส��ง counter = counter + 2 ซ้ำ*�งเปี;นการเพ$�มค5า ของ counter จากเด$ม แลื#วัตรวัจสอบุเง �อนไข ถู#าเปี;นจร$งก/ท(าต5อไปีซ้ำ()าก�นไปีเร �อยจนกระท��งน$พจน�เง �อนไข เปี;นเท/จ ค อ counter มากกวั5า 11 ซ้ำ*�งค อ เง �อนไข counter <= 11 ม�ค5าเปี;นเท/จ จ*งออกจากการท(าซ้ำ()า ในต�วัอย5างน�)ม�การท(าซ้ำ()า 5 รอบุ ได#ผลืด�งร4ปี

5.3 กรณ�ศ*กษา ข� )นตอนการสร#างโปีรแกรม ควับุค�มการวันซ้ำ()าด#วัยค(าส��ง do-while

do while เปี;นค(าส��งให#ม�การท(าซ้ำ()าเปี;นรอบุ ๆ (loop) ลื�กษณะการท(างานท(านองเด�ยวัก�บุค(าส��ง while แต5ต5างก�นตรงท��ค(าส��งน�)จะม�การท(างานตามค(าส��งไปี 1 รอบุ ก5อนท��จะทดสอบุเง �อนไข ถู#าเง �อนไขท��เปี;นจร$งจะท(างานต5อไปี ถู#าเง �อนไขเปี;นเท/จจ*งจะออกจากค(าส��ง do while ค(าส��งน�)ก/เช5นเด�ยวัก�นจะต#องก(าหนดให#ม�โอกาสท��เง �อนไขเปี;นเท/จได# ม$ฉะน�)นจะม�ปี:ญหาท��โปีรแกรมท(างานแบุบุวันซ้ำ()าแบุบุไม5ม�ท��ส$)นส�ด (endless loop)

กรณ�ท��เง �อนไขเปี;นเท/จเพ�ยงอย5างเด�ยวัจะม�การท(างาน 1 รอบุ ก5อนออกจากการท(าซ้ำ()า

การท�าซ้ำ��าแบบ do while อาจเข�ยนผ�งงาน ด�งร4ปี

Page 40: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

คำ�าสั่��ง do while ม�ร/ปแบบ ด�งน�)

โดย do while จะท(าการท(าซ้ำ()าต5อไปีเม �อน$พจน�ทดสอบุเง �อนไขให#ผลืลื�พธ�เปี;นจร$ง แลืะท(าต5อจนกระท��งผลืลื�พธ�ของน$พจน�ทดสอบุเง �อนไขเปี;นเท/จ ก/จะออกจากการท(าซ้ำ()า

ต�วอย�าง

Do {

ค(าส��งท��1;

ค(าส��งท��2;

...

ค(าส��งส�ดท#าย;

} while (น$พจน�ทดสอบุเง �อนไข) ;

#include <stdio.h>int counter ,num ;char word[20] = "Bodindecha";main()

{ Num = 0;counter = 3;do /* start do while */{ printf("\n\tcounter = %2d my school is %s print round %d. ",counter,word,++num); counter = counter + 2 ;

Page 41: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

โปีรแกรมน�)ก(าหนด เร$�มต#น ให# counter ม�ค5าเปี;น 3 แลื#วั จ*งเข#าส45การท(าซ้ำ()า แบุบุ do while ท(าตามค(าส��ง printf("\n\tcounter =

%2d my school is %s print round %d. ",counter,word,+

+num); แลืะ counter = counter + 2; ไปีก5อน 1 คร�)ง แลื#วัจ*งทดสอบุวั5าเง �อนไข ค อ counter < 11 เปี;นจร$ง หร อไม5 ถู#าเง �อนไขเปี;นจร$งก/จะท(าซ้ำ()ารอบุต5อไปี เปี;นในลื�กษณะน�)จนกระท��งเง �อนไขเปี;นเท/จ ค อ เม �อ counter เปี;น 13 ผลืการท(างานของโปีรแกรม /* example4_17.c

*/ เปี;นด�งร4ปี

ซ้ำ*�งจะเปี;นได#วั5าผลืการท(างานของโปีรแกรมเหม อนก�บุโปีรแกรมท��ใช#ค(าส��งวันซ้ำ()า while

โจุทย" จงเข�ยนโปีรแกรมในลื�กษณะท(างาน พ$มพ�ลื(าด�บุท�� ปี<อนช �อน�กเร�ยน คะแนนกลืางภัาค คะแนนปีลืายภัาค แสดงผลืรวัมคะแนน แลื#วัสอบุถูามควัามต#องการผ4#ใช#วั5าต#องการวันวั()าหร อไม5 หากค(าตอบุไม5ใช5 (ค5าตรรกะเปี;นจร$ง) ให#วันซ้ำ()า หากค5าตรรกะเปี;นเท/จให#เลื$กวันซ้ำ()าแลืะพ$มพ�คะแนนเฉลื��ยน�กศ*กษากลื�5มน�)

#include <stdio.h>int counter ,num ;char word[20] = "Bodindecha";main()

{ Num = 0;counter = 3;do /* start do while */{ printf("\n\tcounter = %2d my school is %s print round %d. ",counter,word,++num); counter = counter + 2 ;

Page 42: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ก(าหนดการแสดงผลืด�งน�)

ขี��นตอนการสั่ร�างโปรแกรมประย�กต"งาน

1.การวั$เคราะห�ระบุบุงานเบุ )องต#น

1.1 ส$�งท��ต#องการค อ ผลืรวัมคะแนน คะแนนเฉลื��ย

1.2 สมการค(านวัณ

ลื(าด�บุ = ลื(าด�บุ+1

ผลืรวัมคะแนน = คะแนนกลืางภัาค + ปีลืายภัาคคะแนนเฉลื��ย = คะแนนรวัมท�)งกลื�5ม / (ลื(าด�บุส�ดท#าย –

1)

ผลืรวัมคะแนน = คะแนนกลืางภัาค + คะแนนปีลืายภัาคคะแนนรวัมท�)งกลื�5ม =คะแนนรวัมท�)งกลื�5ม + ผลืรวัมคะแนน

1.3 ข#อม4ลืน(าเข#า รห�สน�กศ*กษา จ(านวันน�กศ*กษา คะแนนกลืางภัาค คะแนนปีลืายภัาค ควัามต#องการ–

วันซ้ำ()า

Report Score===========================No. => …………….name is => …………..midterm is => …………..Final is => ……………* Score = ……………=========================== calculate again y/n => ………….=========================== *Average Score is = ………….===========================

ระบุ�ควัามต#องการวันซ้ำ()า y/n

Page 43: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

1.4 การแสดงผลืตามโจทย�ก(าหนด

1.5 การก(าหนดค�ณสมบุ�ต$ต�วัแปีร

ข#อม4ลื ช �อหน5วัยควัามจ(า

ชน$ดข#อม4ลื

ควัามต#องการวันซ้ำ()า

ans อ�กขระ

ลื(าด�บุ n ต�วัเลืขจ(านวันเต/ม

ช �อน�กศ*กษา name กลื�5มอ�กขระคะแนนกลืาง

ภัาคmidterm ต�วัเลืข

จ(านวันเต/มคะแนนปีลืาย

ภัาคผลืfinal ต�วัเลืข

จ(านวันเต/มผลืรวัมคะแนน score ต�วัเลืข

จ(านวันเต/มคะแนนรวัมท�)ง

กลื�5มsum ต�วัเลืขทศน$ยม

คะแนนเฉลื��ย average ต�วัเลืขทศน$ยม

1.6 ข�)นตอนการท(างาน (action)

1) ก(าหนดลื(าด�บุท�� (n) ม�ค5าเปี;น 12) ควับุค�มวันซ้ำ()าด#วัยค(าส��ง do

2.1) พ$มพ�ลื(าด�บุท�� (n)

2.2) ปี<อนข#อม4ลืช �อน�กศ*กษา (name) คะแนนกลืางภัาค (midterm)คะแนนปีลืาย

ภัาค (final)

Page 44: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

2.3) ค(านวัณผลืคะแนน (score) = midterm +

final

2.4) พ$มพ� score

2.5) ค(านวัณรวัมท�)งกลื�5ม (sum) = sum + score

2.6) ค(านวัณ n = n+1

2.7) ปี<อนควัามต#องการวันซ้ำ()า (ans)

2.8) ตรวัจสอบุค(าส��ง while (ans!=’n’)

หากเง �อนไข เปี;นจร$ง ให#ท(าข#อ 2 หากเง �อนไข เปี;นเท/จ ไปีท��ข#อ 3

3) ค(านวัณคะแนนเฉลื��ย (average) = sum / (n-1)

4) พ$มพ� average

5) จบุการท(างาน

Page 45: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

2.ลื(าด�บุการท(างานด#วัยผ�งงานโปีรแกรมstart

พ$มพ� n

ปี<อน name,midterm,final

Score = midterm + final

พ$มพ� score

sum = sum + score

yes

n =1

While (ans!=’n’)

n = n+1

ปี<อน ans

do

Page 46: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

3. ค(าส��งควับุค�มการท(างาน

Averge = sum / num (n-1)

พ$มพ� average

end

#include <stdio.h>/* file name ex_do5.c*/main (){char ans ;char name [30] ;int midterm = 0 , final = 0 , score = 0 ,n=1 , id ;float sum = 0 , average = 0 ;printf (“\n Report Score \n“) ; printf(“==========================\n \n”) ;

do { printf (“\n”) printf ({“No. => %d \n” , n) ; printf (“Name is => “) ; scanf (“%s”,name) ; printf (“midterm is => “) ; scanf (“%d”&midterm) ; printf (“final is => “) ; scanf (“%d”&final) ; score = midterm =+ final; printf ( “* score = %d\n”,score) ; sum = sum + score ; n = n+ 1 printf (“============================\n”) ; printf (“\n calculate again y/n = > “ ) ; ans = getche ( ) ; } while (ans ! = “n”) ; average = sum / (n-1) ;printf (“\n”,) ;printf (“======================\n) ;printf (“* Averge score is = %.2f \n” , averge) ;printf (“======================\n) ; printf end job….. \n” ,) ;

}

Page 47: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

อธิ�บาย

1. โปีรแกรมน�)ควับุค�มการวันซ้ำ()าด#วัยเง �อนไข

2. ใช#ปีระโยคค(าส��ง ans = getche ( ) ; ร�บุข#อม4ลืแบุบุอ�กขระแลื#วัน(าไปีเก/บุไวั#ในหน5วัยควัามจ(าต�วัแปีร ans

3. น(าค5าในหน5วัยควัามจ(า ans ไปีตรวัจสอบุเง �อนไขจากปีระโยค} while

(ans ! = “n”) ;

หากตราบุใดท��ย�งไม5ปี<อนค5า n หมายถู*งปีระโยคเง �อนไขเปี;นจร$ง โปีรแกรมน�)จะวันซ้ำ()าไปีเร �อย

do { …………………… ans = getche ( ) ; } while (ans ! = “n”) ;

Page 48: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

สั่ร�ปเน6�อหัา

การสร#างโปีรแกรมปีระย�กต�งานโดยใช#ค(าส��งให#โปีรแกรมท(างานเปี;นลื�กษณะวันซ้ำ()าน�)น เปี;นการใช#งานโดยใช#ปีระโยชน�จากปีระส$ทธ$ภัาพทางตรรกะของระบุบุคอมพ$วัเตอร� ด�งน�)นจ*งต#องใช#ควัามร4 #ควัามสามารถูในเร �องการเข�ยนน$พจน�ทางตรรกะท��เคยศ*กษาจากบุทท��ผ5านมา ส(าหร�บุภัาษาซ้ำ�ม�ค(าส��งให#เลื อกใช#ควับุค�มงานลื�กษณะวันซ้ำ()า 3 แบุบุ ค อ ค(าส��ง for ค(าส��ง while แลืะค(าส��ง do-while

คำ�าสั่��ง for

เหมาะก�บุระบุบุงานท��ระบุ�รอบุการท(างานช�ดเจน การระบุ�รอบุน�)นอาจระบุ�โดยการเข�ยนค(าส��งก(าหนดเปี;นค5าคงท��ในโปีรแกรมหร อก(าหนดผ5านทางการท(างานของต�วัแปีร เพ �อท(างานในร4ปีแบุบุย ดหย�5นให#ผ4#ใช#ระบุบุงานเปี;นผ4#ปี<อนจ(านวันรอบุการท(างานด#วัยตนเอง เม �อระบุบุตรวัจสอบุวั5าครบุจ(านวันรอบุตามท��ก(าหนดแลื#วัจ*งออกจากการวันซ้ำ()า ท�)งน�)ระบุบุจะเพ$�มค5าน�บุรอบุโดยอ�ตโนม�ต$

คำ�าสั่��ง while

ใช#ก�บุระบุบุงานท��ต#องการตรวัจสอบุน$พจน�ตรรกะ ก5อนเข#าส�5กระบุวันการวันซ้ำ()าในเคร �องหมาย { } หากค5าตรรกะท��ได#เปี;นค5าจร$ง จะท(างานวันซ้ำ()าในส5วันควับุค�มวันรอบุ { } หากตรวัจสอบุค5าตรรกะได#ค5าเปี;นเท/จเม �อใด จะไม5เข#าส45กระบุวันการวันซ้ำ()า ท�)งน�)ต#องระม�ดระวั�งวั5าต#องม�ค(าส��งท��สามารถูท(าให#น$พจน�ตรรกะน�)นม�โอกาสเปีลื��ยนแปีลืงค5าเปี;นเท/จได# ม$ฉะน�)นจะเก$ดข#อผ$ดพลืาดออกจากการวันซ้ำ()าไม5ได#

Page 49: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

คำ�าสั่��ง do – while

ใช#ก�บุระบุบุงานกรณ�ท��ให#เข#าไปีท(างานวันซ้ำ()าในเคร �องหมาย { } 1

รอบุก5อนแลื#วัจ*งตรวัจน$พจน�ตรรกะ หากค5าตรรกะท��ได#เปี;นค5าจร$ง จะวันซ้ำ()าการท(างานต5อไปี หากค5าตรรกะเปี;นค5าเท/จ จะออกจากการวันซ้ำ()า ม�ข#อควัรระวั�งเช5นเด�ยวัก�บุค(าส��ง while ค อจ�ต#องระม�ดระวั�งวั5าม�ค(าส��งท��สามารถูท(าให#น$พจน�ตรรกะน�)นม�โอกาสเปีลื��ยนแปีลืงค5าเปี;นเท/จได# ม$ฉะน�)นจะเก$ดข#อผ$ดพลืาดออกจากการวันซ้ำ()าไม5ได#

อ�กปีระการหน*�งหากต#องการใช#ต�วัแปีรน�บุรอบุการท(างานเปี;นปีระโยคค(าส��งควับุค�มการวันซ้ำ()า จะต#องจ(าไวั#เสมอวั5าต#องก(าหนดชน$ดต�วัแปีรเปี;นกลื�5มจ(านวันเต/ม

คำ�าถุาม (กลุ่��ม 4)

เร6�องการเขี�ยนคำ�าสั่��งคำวบคำ�มแบบวนซ้ำ��า

1.สั่�ญลุ่�กษณิ" “ ++ ” หัมายถุ5งอะไร

ก.เพ$�มค5าคร�)งลืะ 2 ข.เพ$�มค5าคร�)งลื5ะ 1

ค.ลืดค5าท��ลืะ 1 ง.บุวักเพ$�ม 1 ข*)นไปี

2.การประมวลุ่ผัลุ่ขีองน�พจุน"คำณิ�ตศาสั่ตร"จุะท�าการประมวลุ่ผัลุ่ในสั่�วนใดเป2นสั่�วนแรก

ก.ต�วัแรกเสมอ ข.ต�วัใดก/ได#

ค.ส5วันของวังเลื/บุ ง.นอกวังเลื/บุ

Page 50: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

3.ขี�อคำวามสั่��งโดยใชิ� for ใชิ�ในกรณิ�ท��เราต�องการท�าซ้ำ��าโดยต�องทราบอะไร

ก.จ(านวันคร�)ง ข.จ(าวันต�วัอ�กษร

ค.จ(านวันภัาพ ง.ไม5ม�ข#อใดถู4ก

4.คำ�าสั่��ง while จุะตรวจุสั่อบเง6�อนไขีก�อน ถุ�าพบว�าเง6�อนไขีเป2นจุร�งจุะเป2นอย�างไรต�อไป

ก.จะท(าค(าส��งท��อย45ภัายในลื4ปี(loop) หลื�งจากน�)นจ*งกลื�บุมาตรวัจสอบุเง �อนไขอ�กคร�)ง วันซ้ำ()าเช5นน�)ไปีเร �อยๆ จนกวั5าเง �อนไขจะเปี;นเท/จ

ข.จะไม5ท(าค(าส��งท��อย45ภัายในลื4ปี(loop) แต5จะวันลื4ปี (loop) เม �อเปี;นเท/จ

ค.จะท(าตามค(าส��งท��อย45ภัายในลื4ปี(loop)แต5จะไม5วันลื4ปี(loop)

ง.จะไม5ท(าตามค(าส��งท��อย45ในลื4ปี(loop)แลืะไม5วันตามลื4ปี(loop)

5.คำ�าสั่��ง while แตกต�างจุากคำ�าสั่��ง for อย�างไร

ก.ไม5แตกต5าง

ข.การวันซ้ำ()า

ค.การท(างานหลื�งจากพบุวั5าเปี;นเท/จ

ง.ต5างจากค(าส��ง for เลื/กน#อยตรงท��การวันซ้ำ()าแบุบุน�)ไม5จ(าเปี;นต#องบุอกถู*งจ(านวันรอบุของการวันซ้ำ()า แต5จะวันซ้ำ()าไปีเร �อย ๆ จนกวั5าเง �อนไขจะเปี;นเท/จ

Page 51: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

6.สั่�ญลุ่�กษณิ" “ - - ” หัมายถุ5งอะไร

ก.เพ$�มค5าคร�)งลืะ 2 ข.เพ$�มค5าคร�)งลื5ะ 1

ค.ลืดค5าท��ลืะ 1 ง..ลืดค5าท��ลืะ 2

ก(าหนด a = 3 , b= 2 จงตอบุค(าถูามต5อไปีน�)ข#อ 7-8

7. a /=b ; หัมายถุ5งอะไร แลุ่ะ คำ�าตอบ a ม�คำ�าเท�าใด

ก. หมายถู*ง  (a=a/b) ค(าตอบุ a ม�ค5า 1ข. หมายถู*ง  (a=a * b) ค(าตอบุ a ม�ค5า 1ค. หมายถู*ง  (a=a-b) ค(าตอบุ a ม�ค5า 1ง. หมายถู*ง  (a=a+ b)ค(าตอบุ a ม�ค5า 5

8. a - =b ; หัมายถุ5งอะไร แลุ่ะ คำ�าตอบ a ม�คำ�าเท�าใด

ก. หมายถู*ง  (a=a/b) ค(าตอบุ a ม�ค5า 1ข. หมายถู*ง  (a=a * b) ค(าตอบุ a ม�ค5า 1ค. หมายถู*ง  (a=a-b) ค(าตอบุ a ม�ค5า 1ง. หมายถู*ง  (a=a+ b) ค(าตอบุ a ม�ค5า 5

9. คำ�าสั่��งคำวบคำ�มวนซ้ำ��าแบบ for ในสั่�วนขีองคำ�าสั่��งต�องการคำ�า ก��คำ�า

ก. 5 ข. 4

ค. 2 ง. 3

10. ขี�อไม�ใชิ�คำ�าสั่��งคำวบคำ�มวนซ้ำ��าแบบ for ในสั่�วนขีองคำ�าสั่��งต�องการคำ�า

Page 52: รายงานการเขียนคำสั่งควบคุมแบบวนซ้ำ กลุ่ม 4 ม. 6 ห้อง2

ก.ค5าเร$�มต#น ข. น$พจน�ตรรกะค.ค5าส$)นส�ดง. ค5าเพ$�มหร อค5าลืด