38
Pisit Nakjai การท้าซ้า

การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

Pisit Nakjai

การท้าซ า้

Page 2: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

สาเหตุที่ต้องมกีารทา้ซ ้า

• เหตุการณ์ที่เกดิขึ นหลายรอบ เช่น โปรแกรมแสดง ชื่อ 20 ครั ง

• เหตุการณ์ที่เกดิขึ นหลายรอบ โดยมีการเปลี่ยนแปลงค่า หรือมีเงื่อนไข เช่น แสดงผลเลข 0, 1, 2, … , 10

แสดงผลรวมของ 1,3,5,7, … , 99

แสดง ชื่อ ไปเรื่อย ๆ จนกว่าค่า X จะมากกว่า 30

Page 3: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

ทดลองเขยีนโปรแกรม

จงเขียนผังงานและโปรแกรมเพื่อแสดงตัวเลข 0 - 10 ออกทางหน้าจอ • Output Analysis

แสดงผลเลข 0, 1, 2, … , 10

• Input Analysis ไม่ม ี

• Process Analysis โปรแกรมแสดงผลเลข 0, 1, 2, … ,10

• Variable Define ไม่ใช้ (หรือใช้ count เพื่อเพิ่มค่า)

Page 4: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

#include<stdio.h> int main() { printf ("0\t"); printf ("1\t"); printf ("2\t"); printf ("3\t"); printf ("4\t"); ... ... printf ("10\t"); return 0; }

#include<stdio.h> int main() { int count = 0; printf ("%d\t",count++); printf ("%d\t",count++); printf ("%d\t",count++); printf ("%d\t",count++); printf ("%d\t",count++); ... ... printf ("%d\t",count++); return 0; }

Page 5: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

#include<stdio.h> #include<conio.h> int main() { int count = 0; while (count < 10) { printf ("%d\t",count++); } return 0; }

Page 6: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

ค้าสัง่ในการวนซ ้าในภาษาซ ี

• While

• Do while

• For

• ค้ำสัง่ ท้ำซ ำ้มี 3 ส่วน

• 1. ส่วนเริ่ม

• 2. ส่วนตรวจสอบกำรท้ำซ ้ำ

• 3. ส่วนปรับปรุงค่ำตัวแปร

Page 7: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

7

5.1 ค้าสัง่ while

while (expression){ statement-1.1; statement-1.2; ... statement-1.n; }

while (expression) statement-1.1;

Page 8: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

8

โปรแกรม แสดงผลตัวเลข 1 ถึงค่าทีก่้าหนด | while

จงเขียนผังงานและโปรแกรมที่มีการควบคุมทิศทางแบบวนรอบโดยใช้ค้าสั่ง while เพื่อให้โปรแกรมท้าการบวกเลขจ้านวนเต็มตั งแต่ 1 จนถึงค่าที่ผู้ใช้งานก้าหนด

• Output Analysis ผลลัพธ์การบวกเลขจ้านวนเต็ม ตั งแต่ 1 ถึงค่าที่ผู้ใช้ก้าหนด

• Input Analysis ค่าที่ผู้ใช้งานป้อนเข้ามา

Page 9: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

9

โปรแกรม แสดงผลตัวเลข 1 ถึงค่าทีก่้าหนด | while

• Process Analysis โปรแกรมถามว่าผู้ใช้งานต้องการบวกเลขตั งแต่ 1 ถึงเลขใด วนรอบแบบ while เพื่อบวกค่า แสดงผลลัพธ์ที่ได ้

• Variable Define sum = 0 ผลรวมของการบวก โดยเริ่มต้นมีค่าเท่ากับ 0 i = 1 ค่าที่น้าเข้าไปบวกกับ sum ในแต่ละรอบ โดยรอบแรกค่า i มีค่าเท่ากับ 1 และมีค่าเพิ่มขึ นรอบละ 1 final เพื่อรับค่าจากผู้ใช้ และก้าหนดจุดสิ นสุดของค่า i

Page 10: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

10

START

i=1,final,sum=0

i<=final True

False i++ sum

END

final

sum = sum + i

Page 11: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

11

โปรแกรมแสดงผลตัวเลข 1 ถึงค่าทีก่้าหนด | while

int main() { int i = 1, final, sum=0; printf ("Enter final number : "); scanf ("%d",&final); while (i<=final) { sum = sum + i; i++; } printf ("Sum = %d",sum); return 0; }

Page 12: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

12

5.3 ค้าสัง่ do-while

do { statement-1.1; statement-1.2; ... statement-1.n; } while (expression);

do statement-1.1; while (expression);

Page 13: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

13

โปรแกรม หาผลรวม 1 ถึง 100 | do-while

จงเขียนผังงานและโปรแกรมส้าหรับรวมเลขจ้านวนเต็ม

ตั งแต่ 1 – 100 โดยใช้ค้าสั่ง do-while

• Output Analysis ผลรวมของเลขจ้านวนเต็ม ตั งแต่ 1 - 100

• Input Analysis ไม่มี

Page 14: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

14

โปรแกรม หาผลรวม 1 ถึง 100 | do-while

• Process Analysis โปรแกรมท้าการบวกค่าเก็บไว้ในตัวแปรผลลัพธ์ แล้วเพิ่มค่าจนถึง 100

• Variable Define count เป็นตัวแปรชนิดจ้านวนเต็มเพ่ือนับจ้านวน

sum เป็นจ้านวนเต็มเพ่ือเก็บค่าผลรวม

Page 15: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

15

START

count=1, sum=0

count<=100 True

False

count++

sum

END

sum=sum+count

Page 16: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

16

โปรแกรม หาผลรวม 1 ถึง 100 | do-while

int main() { int count=1,sum=0; do { sum = sum + count; count++; } while(count<=100); printf ("Summation of 1 to 100 = %d",sum); return 0; }

Page 17: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

17

5.4 ค้าสัง่ for

• initial เป็นส่วนที่ใช้ก้าหนดค่าเริ่มต้นให้กับตัวแปร • condition เป็นเงื่อนไขเพื่อพิจารณา • change เป็นส่วนที่เปลี่ยนแปลงค่าตัวแปร • statement-1, 2, ... , n เป็นค้าสั่งที่จะท้างานเมื่อเงื่อนไขเป็นจริง

for (initial; expression; change) {

statement-1.1; statement-1.2; ...

statement-1.n; }

Page 18: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

18

รูปแบบการใช้ค้าสัง่ for

Page 19: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

19

โปรแกรม หาผลรวม 1 ถึง 100 | for (2)

• Process Analysis – โปรแกรมท้าการบวกค่าเก็บไว้ในตัวแปรผลลัพธ์ แล้วเพิ่มค่าจนถึง 100

• Variable Define count เป็นตัวแปรชนิดจ้านวนเต็มเพ่ือนับจ้านวน

sum เป็นจ้านวนเต็มเพ่ือเก็บค่าผลรวม

Page 20: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

20

START

sum=0

count<=100

True

False

count++ sum

END

sum=sum+count

count=1

Page 21: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

21

โปรแกรม หาผลรวม 1 ถึง 100 | for

#include<stdio.h> int main() { int sum=0, count; for (count=1; count<=100; count++) { sum = sum + count ; } printf ("Summation of 1 to 100 = %d",sum); return 0; }

Page 22: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

22

โปรแกรม แสดงผล a – z | for

จงเขียนผังงานและโปรแกรมส้าหรับแสดงผลอักษร a – z ออกทางจอภาพ โดยใช้ค้าสั่ง for

• Output Analysis แสดงผล a – z ทางจอภาพ

• Input Analysis ไม่มี

a b c d e f g h i j k l m n o p q r s t u v w x y z

Page 23: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

23

โปรแกรม5.5 แสดงผล a – z | for (2)

• Process Analysis โปรแกรมท้าการวนรอบเพื่อแสดงผลอักษรตั งแต่ a – z โดยการเพิ่มค่าตัวแปรขึ นครั งละ

1 (ดูตาราง ASCII Code)

• Variable Define letter เป็นตัวแปรชนิดอักขระ

printf ("%c\n",'a'); // printf ("%c\n",97);

printf ("%c\n",'a'+1); // printf ("%c\n",98);

printf ("%c\n",'a'+2); // printf ("%c\n",98);

a

b

c

Page 24: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

ASCII Table

Page 25: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

25

START

letter

letter<='z' True

False letter++

letter

END

letter='a'

Page 26: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

26

โปรแกรม แสดงผล a – z | for (4)

#include<stdio.h> int main() { char letter; for (letter='a'; letter<='z'; letter++) { printf ("%c ",letter); } return 0; }

Page 27: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

แบบฝึกหัด

• จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ ตามที่ผู้ใช้ก้าหนด

• จงเขียนโปรแกรม เพื่อแสดงตัวเลข 100 ถึง 50

• จงเขียนโปรแกรม เพื่อแสดงเฉพาะเลขคู่ตั งแต่ 2 – 30

Page 28: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

28

โปรแกรม แสดงผลรปูสี่เหลีย่ม | for (1)

จงเขียนผังงานและโปรแกรมแสดงผลรูปสี่เหลี่ยมขนาด n x n โดยโปรแกรมจะรอรับจ้านวนเต็มจากผู้ใช้งาน ดังตัวอย่าง

Please enter number : 4 Output **** **** **** ****

Please enter number : 9 Output ********* ********* ********* ********* ********* ********* ********* ********* *********

Page 29: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

29

โปรแกรม แสดงผลรปูสี่เหลีย่ม | for (2)

• Output Analysis – ผลตัวเลข เป็นรูปสี่เหลี่ยมจัตุรัสขนาดเท่ากับจ้านวนตัวเลขที่รับเข้ามา

• Input Analysis – เลขจ้านวนเต็มท่ีผู้ใช้ป้อนเข้ามา

• Process Analysis – โปรแกรมรอรับค่าจ้านวนเต็มจากผู้ใช้งาน – โปรแกรมวนรอบเพื่อท้าการแสดง '*' เป็นรูปสี่เหลี่ยมจัตุรัส

Page 30: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

30

โปรแกรม แสดงผลรปูสี่เหลีย่ม | for (3)

บรรทัดที่ 1 แสดงผล '\n' แล้วแสดงผล '*' จ้านวนเท่ากับค่าที่รับมา

บรรทัดที่ 2 แสดงผล '\n' แล้วแสดงผล '*' จ้านวนเท่ากับค่าที่รับมา

บรรทัดที่ n แสดงผล '\n' แล้วแสดงผล '*' จ้านวนเท่ากับค่าที่รับมา

• Variable Define num เป็นจ้านวนเต็มเพ่ือใช้เก็บค่าตัวเลขที่ผู้ใช้ป้อน

i เป็นจ้านวนเต็มเพ่ือใช้นับจ้านวนบรรทัด

j เป็นจ้านวนเต็มเพ่ือใช้นับจ้านวน '*'

Page 31: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

31

START

num, i, j

i<=num True

False

'\n'

END

i=1

num

i++

j<=num

j=1

j++

'*' True False

Page 32: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

32

โปรแกรมแสดงผลรปูสี่เหลีย่ม | for ()

int main() { int num,i,j; printf ("Enter number : "); scanf ("%d",&num); for (i=1; i<=num; i++) { printf ("\n"); for (j=1; j<=num; j++) { printf ("*"); } } return 0; }

Page 33: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

33

โจทย์ : โปรแกรมคิดดอกเบี ย

• จงเขียนผังงาน และโปรแกรมค้านวณดอกเบี ย โดยโปรแกรมรับ เงินต้น (บาท) และดอกเบี ยต่อปี (%) จ้านวนเงินที่ผ่อนช้าระต่อเดือน แล้วแสดงผลว่าต้องใช้เวลาก่ีปีในการผ่อนช้าระ และจ่ายดอกเบี ยทั งหมดคิดเป็นเท่าใด

Page 34: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

5.4 ค้าถามท้ายบท

1. จงเขียนโปรแกรมแสดงรหัสแอสกี ตั งแต่ 33 ถึง 55

Decimal ASCII

33 !

34 “

35 #

. . .

. . .

55 7

34

Page 35: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

ค้าถามท้ายบท

2. จงเขียนโปรแกรมรับตัวเลขเพื่อมาค้านวณหาผลบวกก้าลังสอง จนกระทัง่ตัวเลขที่รับเข้ามามีค่าเป็น 0

Enter a number : 2

Enter a number : -5

Enter a number : 0

Result : 29

35

Page 36: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

ค้าถามท้ายบท

3. ข้อใดเป็นโปรแกรมที่รันไม่รู้จบ (Infinite loop)

เมื่อก้าหนด int i=0;

3.1 for(i=0; i>0; i++) printf("%d",i);

3.2 for(i=0; i%2!=0; i += 2) puts("a");

3.3 while(i<7) printf("%d",i--);

3.4 do {

i+=3;

} while(i%3==0);

36

Page 37: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

การบ้าน

• จงเขียนโปรแกรมวาดรูปปริามิด ด้วยดอกจันทร์ โดยการใช้ค้าสั่งการท้าซ ้า โดยรับค่าจ้านวนชั นจากผู้ใช้

* ** *** ****

* ** *** ****

* ** *** ****

1 12 123 1234

4 34 234 1234

Page 38: การท้าซ ้า - mathcom.uru.ac.thmathcom.uru.ac.th/~beebrain/Slide/4121103A/%a1%d2%c3%b7%d3%ab%e9%d3.pdf•จงเขียนโปรแกรม เพื่อแสดงตารางสูตรคูณ

• จงเขียนโปรแกรมเพื่อรับค่าตัวเลขจากผู้ใช้ รับค่าตัวเลขจนกว่าผู้ใช้จะกรอกเลขเป็นจ้านวนลบ และท้าการหาผลรวมของตัวเลขที่ผู้ใช้รับเข้ามา

• จงเขียนโปรแกรมหาค่าเฉลี่ยของตัวเลขที่ผู้ใช้กรอกเข้ามาในโปรแกรมจ้านวน 10 ตัว โดยแสดงค่าเฉลี่ย ออกทางหน้าจอ