บทที่ 1...

31
ETE183 การเขียนโปรแกรมคอมพิวเตอร์สาหรับ วิศวกรรมไฟฟ้า ดร.วชิราพรรณ แก้วประพันธ์

Upload: others

Post on 01-Sep-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

ETE183การเขยนโปรแกรมคอมพวเตอรส าหรบ

วศวกรรมไฟฟา

ดร.วชราพรรณ แกวประพนธ

บทท 6 การท าซ า

บทท 6

1. ทบทวนการใช if - else

2. กระบวนการการท าซ า

3. การใช for

4. การใช do - while

5. การใช while

ทบทวน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(ประโยคเงอนไข){

ค าสงหรอกลมค าสงทตองการใหท าซ า}

while จะเชคเงอนไขในครงแรกกอนท ำ

whileForm

ตวอยางการใช 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

-

ลองท าโจทย

จงเขยนโปรแกรมแสดงสตรคณแม 2โดยใช do-while

จงเขยนโปรแกรมแสดงสตรคณแม 3โดยใช for

กจกรรม

ชวยกนต งโจทยโปรแกรมทตองใช1. การรบคา

2. การแสดงคา3. if – else

4. การวนรอบ

กจกรรมเขยนโปรแกรมใหสมบรณ

และเขยน Flowchart

-

Research

คนหา1.ความแตกตางระหวาง

การใช do-while และ while2.วธการเพมคาขนเรอยๆจากการวน

โดยเพมขนรอบละ 1 (x+=1)ปล.ใชตอบค าถามใน Quiz

ExtraResearch

กลบไปลองท าโจทยการบานบทท 5 ขอท 0 ถง 9

ลองท าดวยตวเอง !!!หากสงสย สามารถตงกระทถามได ปล.อาจจะใชตอบค าถามใน Quiz

Big ExtraResearch

กลบไปลองหาและท าโจทยทใช if-else รวมกบการวนรอบ

do-while หรอ forปล.อาจจะใชตอบค าถามใน Quiz

-

Quiz Quiz บทท 6กอนเขาเรยน LAB

-

การบานLecture

ปรญญาผามาน เวอรชน 3ปล.สงในระบบ ete183.nokchon.com

กอน 24 ชม. Lecture คาบหนา