บทที่ 1...
TRANSCRIPT
ทบทวนIf - else
1. วธการตโจทย2. วธการเขยน Output Input
Process Variable
3. วธเขยนประโยคเงอนไขเพอใชกบ if และelse if
4. วธการใช else
5. วธการเปรยบเทยบคากบเสนจ านวน6. วธการเปรยบเทยบคากบตวอกษร7. วธการเปรยบเทยบคากบขอความ
การท าซ า หมายถง การสงใหโปรแกรมท างานอยางใดอยางหนงวนไปวนมา จนกระทงครบตามจ านวนทตองการหรอตรงตามเงอนไขทเราก าหนดเอาไว
การท าซ าเกดขนบอยๆ ในชวตประจ าวน เชน การวนรบรหสผาน จนกวาจะใสรหสผานถกตอง หรอไมเกน 3 ครง, การวนรบรหสบตรเตมเงนของบรการโทรศพท ไมเกน 3 ครง จนกวาจะใสรหสบตรเตมเงนถกตอง เปนตน
การท าซ า
การท าซ า
แบบมจ านวนรอบทแนนอน เชน ตองการใหพมพตวอกษร a จ านวน 1000 คร งข น
บนหนาจอ แบบน จะใช ค าสง for
แบบใชเงอนไขเปนตวตดสนใจวาจะท าซ าตอไปหรอไม ตองการใหโปรแกรมท าไปเรอยๆ ในขณะทเงอนไขยงเปนจรง อย
เชน ใหรบรหสผานไปเรอยๆ จนกวาจะใสถก ซงจะไมมจ านวนรอบทแนนอนตายตว
ลกษณะน จะม 2 ค าสงคอdo..while และ while
ใชในกรณทเราตองการท าซ าโดยทราบจ านวนครงทแนนอน เชน 20 ครง 30 ครง
การใชงานจะก าหนดลงไปเลยวาตองการใหท ากครง และจะตองสรางตวแปร ขนมาเปนตวนบ (counter) โดยมากจะก าหนดใหเปนตวแปรแบบจ านวนเตม (integer)
ตวนบจะเปนตวคอยบอกวาครบตามจ านวนทตองการรยง ถายงไมครบกจะวนไปเรอยๆ จนกวาจะครบ
for
for(คาเรมตนของตวนบ เชน 0 ;เปรยบเทยบตวนบวายงอยในชวงนหรอไม ;จ านวนนบเพมทละเทาไร หรอลดทละเทาไร)
{ค าสงทตองการใหท า
}
ForForm
การเขยนประโยคเงอนไขของ for
ถาหากตองการวน ตงแต 0 ถง 5 รวมทงสน 6 ครงไดแก 0 1 2 3 4 และ 5
เปนการเพมจ านวนขนเรอยๆจาก 0 ไป 5สมมตใหตวนบรอบเปนตวแปร i
for(i=0 ; i<=5 ; i++)
ForForm
for(i=0 ; i<=5 ; i++)รอบท 1 i จะมคาเปน 0
รอบท 2 i จะมคาเปน 1
รอบท 3 i จะมคาเปน 2รอบท 4 i จะมคาเปน 3
รอบท 5 i จะมคาเปน 4
รอบท 6 i จะมคาเปน 5แลวออกจากรอบการท างาน
ForForm
การเขยนประโยคเงอนไขของ for
ถาหากตองการวน ตงแต -3 ถง 3 รวมทงสน 7 ครงไดแก -3 -2 -1 0 1 2 และ 3
เปนการเพมจ านวนขนเรอยๆจาก -3 ไป 3สมมตใหตวนบรอบเปนตวแปร j
for(j=-3 ; j<=3 ; j++)
ForForm
for(j=-3 ; j<=3 ; j++)รอบท 1 j จะมคาเปน -3
รอบท 2 j จะมคาเปน -2
รอบท 3 j จะมคาเปน -1รอบท 4 j จะมคาเปน 0
รอบท 5 j จะมคาเปน 1
รอบท 6 j จะมคาเปน 2รอบท 7 j จะมคาเปน 3
แลวออกจากรอบการท างาน
ForForm
ตวอยางการใช for แสดงเลข 1 ถง 10#include<stdio.h>
main()
{
int number;
printf(“Start\n”);
for(number=1;number<11;number++)
{
printf(“%d\n”,number);
}
printf(“Stop\n”);
}
เรมตนใหcount=0
ท ำในขณะท count<10
เพมคำ count ทละ 1
count=count+1
ผลรนโปรแกรมStart
1
2
3
4
5
6
7
8
9
10
Stop
จะสงเกตวา โปรแกรมจะแสดงคาของตวแปร number โดยใหคาของ number เรมตนท 1 แลววนรอบไปเรอยๆ จนถง 10
ตวอยางการใช for แสดง hello 10 ครง#include<stdio.h>
main()
{
int count;
printf(“Begin\n”);
for(count=0;count<10;count++)
{
printf(“Hello\n”);
}
printf(“End\n”);
}
เรมตนใหcount=0
ท ำในขณะท count<10
เพมคำ count ทละ 1
count=count+1
ผลรนโปรแกรมBegin
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
End
ค าวา Hello จะถกแสดงทงหมด 10 ครง โดยทตวแปร count คอตวแปรทใชเปนตวนบ เราใหคาเรมตนเปน 1 และจะเพมคาขนทละ 1 ไปเรอยๆ ในขณะทตวแปร count ยงนอยกวา 10 แตถาตวแปร count เทากบ 10 เมอไร เงอนไขจะเปนเทจ โปรแกรมกจะหลดออกจากค าสง for ทนท
โปรแกรม แสดงสตรคณแม 6#include<stdio.h>
main()
{
int mother=6;
int count;
printf(“Begin\n”);
for (count =1;count<=12;count++)
{
pintf(“%d x %d = %d\n”,mother,count,mother *count);
}
printf(“End\n”);
}
ค าสง while และ do..while จะตางจากค าสง for เลกนอยตรงทการท าซ าแบบน ไมจ าเปนตองบอกถงจ านวนรอบของการท าซ า แตละท าซ าไปเรอยๆ จนกวาเงอนไขจะเปนเทจ
do-while
do
{ค าสงหรอกลมค าสงทตองการใหท าซ า
}while(ประโยคเงอนไข);
do-while จะไมเชคเงอนไขในครงแรกกอนท ำ
do-whileForm
ตวอยางการใช do-while
#include<stdio.h>
main()
{
char out;
do
{
printf(“\n Do you what to exit ?[Y]es or [N]o :”);
scanf(“%c”,&out);
}
while(out!=‘y’);
}
กอนเขาสการตรวจสอบเงอนไข(out!=‘y’) ครงแรกนนจะมการท าค าสงใน {} กอน ดงนน do..while จงท าค าสงภายใน {} อยางนอย 1 ครงเสมอ และถาตรวจสอบแลวเงอนไขยงจรงอยกจะวนมาท าค าสงภายใน {} อกครง
ตวอยางการใช while
#include<stdio.h>
main()
{
int count=1;
while(count<=10)
{
printf(“Hello %d \n”,count);
count++;
}
}
จากตวอยางเราก าหนดให count มคา เปน 1 จากนนใชค าสง while ตรวจดคาของ count วายงนอยกวาหรอเทากบ 10 หรอไม ถาใชกยงท าค าสงภายใน{} ตอไป และเพมคา count ทละ 1 ไปเรอยๆ จนกวาคา count จะมากกวา 10 ท าใหเงอนไขเปนเทจกจะหลดจากลป while
-
Research
คนหา1.ความแตกตางระหวาง
การใช do-while และ while2.วธการเพมคาขนเรอยๆจากการวน
โดยเพมขนรอบละ 1 (x+=1)ปล.ใชตอบค าถามใน Quiz
ExtraResearch
กลบไปลองท าโจทยการบานบทท 5 ขอท 0 ถง 9
ลองท าดวยตวเอง !!!หากสงสย สามารถตงกระทถามได ปล.อาจจะใชตอบค าถามใน Quiz
Big ExtraResearch
กลบไปลองหาและท าโจทยทใช if-else รวมกบการวนรอบ
do-while หรอ forปล.อาจจะใชตอบค าถามใน Quiz