งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

บทที่ 1 บทนำ 1.1 ฮาร์ดแวร์คอมพิวเตอร์ 1.2 ซอฟต์แวร์คอมพิวเตอร์

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "บทที่ 1 บทนำ 1.1 ฮาร์ดแวร์คอมพิวเตอร์ 1.2 ซอฟต์แวร์คอมพิวเตอร์"— ใบสำเนางานนำเสนอ:

1 บทที่ 1 บทนำ 1.1 ฮาร์ดแวร์คอมพิวเตอร์ 1.2 ซอฟต์แวร์คอมพิวเตอร์
1.3 ชนิดของซอฟต์แวร์ 1.4 วิวัฒนาการของภาษาคอมพิวเตอร์ 1.5 การเลือกใช้ภาษาคอมพิวเตอร์ 1.6 ตัวอย่างภาษาคอมพิวเตอร์

2 ฮาร์ดแวร์และซอฟต์แวร์คอมพิวเตอร์
คอมพิวเตอร์ประกอบด้วยส่วนสำคัญสองส่วนคือ ฮาร์ดแวร์และซอฟต์แวร์ อุปกรณ์ภายนอกจะเรียกว่าฮาร์ดแวร์ ซึ่งเป็นชิ้นส่วนที่สามารถจับต้องได้ ส่วนประกอบหลักๆ ของฮาร์ดแวร์มีดังต่อไปนี้ ฮาร์ดแวร์ภายนอก ฮาร์ดแวร์ภายใน

3 ฮาร์ดแวร์ภายนอก เป็นฮาร์ดแวร์ที่มองเห็นภายนอกเครื่องคอมพิวเตอร์
หน่วยรับข้อมูล เป็นหน่วยที่ทำงานในกระบวนการป้อนข้อมูล คำสั่ง โปรแกรมเข้าสู่เครื่องคอมพิวเตอร์ และทำหน้าที่รับข้อมูลและโปรแกรมเข้าสู่ระบบโดยผ่านทางอุปกรณ์รับข้อมูล ได้แก่ แผงแป้นอักขระ เมาส์ หน่วยแสดงผล ทำหน้าแสดงผลลัพธ์ที่ได้จากการประมวลข้อมูลโดยผ่านทางอุปกรณ์แสดงผลลัพธ์ เช่น จอภาพ เครื่องพิมพ์ พลอตเตอร์ เป็นต้น

4 ฮาร์ดแวร์ภายใน เป็นฮาร์ดแวร์ที่อยู่ภายในเครื่องคอมพิวเตอร์ โดยส่วนใหญ่จะทำหน้าที่เกี่ยวกับการประมวลผลข้อมูล แบ่งออกได้ดังนี้ หน่วยประมวลผลกลาง หน่วยความจำ

5 ที่มาของซอฟต์แวร์คอมพิวเตอร์
การซื้อซอฟต์แวร์สำเร็จรูปมาใช้งานถึงแม้จะมีข้อดีที่ประหยัดเวลา และค่าใช้จ่าย แต่ซอฟต์แวร์ที่ซื้อก็จะไม่ได้พัฒนาเพื่อเหมาะสมสำหรับองค์กรใดองค์กรหนึ่งโดยเฉพาะ จึงมักจะต้องพัฒนาเพิ่มเติม ดังนั้นการพัฒนาซอฟต์แวร์เองจึงเป็นสิ่งจำเป็น และมีความสำคัญมากและเป็นส่วนประกอบหนึ่ง ที่ทำให้เกิดการจัดการสารสนเทศให้เป็นไปได้ตามที่ต้องการ

6 ชนิดของซอฟต์แวร์ ซอฟต์แวร์ระบบ (system software)
ซอฟต์แวร์ประยุกต์ (application software)

7 ซอฟต์แวร์ระบบ (system software)
เป็นซอฟต์แวร์ที่สร้างขึ้นมาเพื่อใช้จัดการกับระบบคอมพิวเตอร์ หน้าที่การทำงานของซอฟต์แวร์ระบบคือ ดำเนินงานพื้นฐานต่าง ๆ ของระบบคอมพิวเตอร์ เช่น รับข้อมูลจากแผงแป้นอักขระแล้วแปลความหมายให้คอมพิวเตอร์เข้าใจ นำข้อมูลไปแสดงผลบนจอภาพหรือนำออกไปยังเครื่องพิมพ์ จัดการข้อมูลในระบบแฟ้มข้อมูล ใช้เป็นเครื่องมือในการพัฒนาซอฟต์แวร์อื่นๆ ใช้ในการแปลภาษาต่าง ๆ

8 ตัวอย่างซอฟต์แวร์ระบบ
ไบออส (BIOS: Basic Input/Output System) ระบบปฏิบัติการ (Operating System : OS) ยูนิกซ์ (UNIX) ดอส (Disk Operating System : DOS) แมคโอเอส (MAC OS) โอเอสทู (OS/2) วินโดวส์ (Windows) ลินุกซ์ (Linux) ตัวแปล (compiler) คอมไพเลอร์ (compiler) อินเทอร์พรีเตอร์ (interpreter)

9 ซอฟต์แวร์ประยุกต์ (application software)
ซอฟต์แวร์ที่ใช้กับงานด้านต่าง ๆ ตามความต้องการของผู้ใช้ ซอฟต์แวร์ประยุกต์ออกเป็นสองกลุ่ม คือ ซอฟต์แวร์สำเร็จ ซอฟต์แวร์ที่พัฒนาขึ้นใช้เฉพาะงาน

10 ซอฟต์แวร์สำเร็จ (package)
ซอฟต์แวร์ประมวลคำ (word processing software) ซอฟต์แวร์ตารางคำนวณ (spread sheet software) ซอฟต์แวร์จัดการฐานข้อมูล (database management software) ซอฟต์แวร์นำเสนอ (presentation software) ซอฟต์แวร์สื่อสารข้อมูล (data communication software)

11 ซอฟต์แวร์ใช้งานเฉพาะ
ระบบบัญชี ระบบงานจัดจำหน่าย ระบบงานในโรงงานอุตสาหกรรม บริหารการเงิน การเช่าซื้อ

12 วิวัฒนาการของภาษาคอมพิวเตอร์
ภาษาเครื่อง(machine language) ภาษาระดับต่ำ(low level language) หรือภาษาแอสเซมบลี (assembly) ภาษาระดับสูง (high level language) ภาษาชั้นสูงมาก (very high - level language) ภาษาธรรมชาติ (natural language)

13 การเลือกใช้ภาษาคอมพิวเตอร์
ในหน่วยงานหนึ่ง ๆ ควรจะใช้ภาษาคอมพิวเตอร์ภาษาเดียวกัน ดูจากคุณสมบัติหรือข้อดีของภาษานั้น ๆ ผู้ใช้ควรเลือกภาษาคอมพิวเตอร์ที่จะใช้บางภาษาไม่ควรเลือกหลายภาษาพร้อมกัน ควรใช้ภาษาที่มีผู้รู้อยู่บ้าง ในงานที่ไม่ยุ่งยากนัก อาจใช้ภาษาคอมพิวเตอร์พื้นฐานที่ไม่ยาก เช่น เบสิก

14 ภาษาโปรแกรมคอมพิวเตอร์
ภาษาโปรแกรมเชิงโครงสร้าง (structural programming language) ภาษาเบสิก (BASIC) ภาษาโคบอล (COBOL) ภาษาฟอร์แทรน (FORTRAN) ภาษาปาสคาล (Pascal) ภาษาซี (C) ภาษาวิชวลเบสิก (Visual Basic)

15 ภาษาโปรแกรมคอมพิวเตอร์
ภาษาโปรแกรมเชิงอ็อบเจกต์ (Object-Oriented Programming Language) ภาษาจาวา (JAVA) ไพธอน (Python)

16 บทที่ 2 ขั้นตอนวิธีกับการแก้ปัญหา
2.1 ความหมายของขั้นตอนวิธี 2.2 ขั้นตอนการทำงานของโปรแกรม 2.3 โครงสร้างแฟ้มข้อมูล 2.4 การแสดงขั้นตอนวิธี 2.5 โครงสร้างโปรแกรม

17 ความหมายของขั้นตอนวิธี
ขั้นตอนวิธี หรืออัลกอริทึ่ม (algorithm) หมายถึง ชุดคำสั่ง หรือ คำบอกกล่าว ที่สามารถเข้าใจได้และมีความยาวจำกัด ซึ่งบอกถึง ระเบียบวิธีในการแก้ไขปัญหาใดปัญหาหนึ่ง อย่างเป็นขั้นเป็นตอนและชัดเจน ว่าทำอย่างไร เมื่อป้อนอะไรเข้าไป จะได้ผลลัพธ์เช่นไร ขั้นตอนวิธีจะประกอบด้วย วิธีการเป็นขั้นๆ และมีส่วนที่ต้องทำซ้ำเป็นวงรอบ (iterate) มีการตัดสินใจโดยใช้ตรรกะ (logic) และ/หรือ การเปรียบเทียบ (comparison)

18 อัลกอริทึ่ม คำว่า อัลกอริทึ่ม มีที่มาจากชื่อของนักคณิตศาสตร์ชาวเปอร์เซียในยุคศตวรรษที่ 9 ชื่อ อาบู อับดุลลา บิน มูซา อัล-ควาริสมี (Abu Abdullah Muhammad bin Musa al-Khwarizmi) ซึ่งได้กลายเป็นคำว่า อัลกอริซึม หมายถึงกฎที่ใช้ในการคิดคำนวณเลขคณิต

19 ขั้นตอนการทำงานของโปรแกรม
เข้าใจปัญหา วางแผนลำดับขั้นตอนการแก้ปัญหา เขียนโปรแกรม แปลงโปรแกรมเป็นภาษาเครื่อง ทดสอบโปรแกรม นำโปรแกรมไปใช้

20 เข้าใจปัญหา ต้องการรายชื่อของพนักงานที่ทำงานเกินกว่า 5 ปี
รายงานการขายประจำปี 2547 รายงานการขายประจำเดือนมิถุนายน 2547 รายงานการขายของพนักงานขายชื่อ สุนีย์ รายงานการขายวันนี้

21 วางแผนลำดับขั้นตอนการแก้ปัญหา
วางแผนลำดับขั้นตอนของโปรแกรม เครื่องมือที่ใช้อาจเป็นผังงาน (flowchart) และรหัสเทียมหรือรหัสลำลอง (pseudocode) นำอินพุทเข้ามาเพื่อให้ได้เอาท์พุทที่ถูกต้อง

22 โค้ดเทียม กำหนดให้ค่าเงินเดือนเท่ากับ 0 รับค่าเงินเดือนเข้ามา
ถ้าเงินเดือนมากกว่า 15,000 บาท ให้คิดภาษี 7% ถ้าเงินเดือนน้อยกว่า หรือเท่ากับ 15,000 ให้คิดภาษี 3% คำนวณเงินได้สุทธิโดยเอาเงินเดือนลบด้วยภาษี พิมพ์ค่าเงินเดือน ภาษี และเงินได้สุทธิหลังจากหักภาษี

23 ผังงาน ผังงานหรือแผนภาพการไหลของโปรแกรมมีสัญลักษณ์เบื้องต้นดังต่อไปนี้
ตัวเริ่ม/จบ การประมวลผล การตัดสินใจ ข้อมูลเข้า/ออก ตัวเชื่อม

24 เขียนโปรแกรม เลือกภาษาที่เหมาะสมกับงาน ลงโค้ดโปรแกรม

25 แปลงโปรแกรมเป็นภาษาเครื่อง
ภาษาเครื่อง (Machine Language)มี 0 และ 1 เท่านั้น การ Compile เป็นการเปลี่ยนจากโค้ดต้นฉบับ (Source Code) เป็นภาษาเครื่อง ตัวแปลภาษามี 2 ชนิด Compiler Interpreter

26 ทดสอบโปรแกรม ทดสอบการรันโปรแกรมโดยใช้ข้อมูลจริง
โปรแกรมอาจมีข้อผิดพลาดได้ 2 แบบคือ ผิดพลาดไวยกรณ์ ผิดพลาดทางตรรกะ

27 ผิดพลาดทางตรรกะ Get number Answer = number *2 Print Answer

28 นำโปรแกรมไปใช้งาน ติดตั้งโปรแกรม ทดสอบการใช้งาน อบรมการใช้งาน
ประเมินผลการใช้งาน

29 โครงสร้างแฟ้มข้อมูล จำแนกในรูปแบบตรรกะ ตัวอักษร(Character)
เขตข้อมูล (Field) แอททริบิวต์ของเอ็นทิตี ระเบียน (Record) แฟ้มหรือไฟล์ (File) ฐานข้อมูล (Database)

30 การแสดงขั้นตอนวิธี ผังงาน ภาษาขั้นตอนวิธี ภาษาธรรมชาติ

31 ผังงาน (flowchart) ผังงาน เป็นขั้นตอนวิธีที่เขียนโดยใช้รูปสัญลักษณ์ มีเส้นเชื่อมและหัวลูกศรบอกขั้นตอนการทำงาน การเขียนขั้นตอนวิธีด้วยวิธีนี้เป็นที่นิยมมากกว่าแบบอื่น ๆ เนื่องจากมีเส้นลากโยงใยทำให้เห็นขั้นตอนการทำงานที่ชัดเจน มีลูกศรกำกับทิศทางการทำงานช่วยให้เข้าใจง่ายขึ้น และสามารถตรวจสอบความถูกต้องได้ง่าย สัญลักษณ์ของผังงานดูในหนังสือ ผังงานมี 2 ชนิด คือ ผังงานระบบ (System Flowchart) ผังงานโปรแกรม (Program Flowchart)

32 Begin Salary =0 Income=0 Tax=0 Income=salary-tax Read Salary
Print salary Print tax Print income Salary>15000 No End Yes Tax=salary*3% Tax=salary*7%

33 ภาษาขั้นตอนวิธี ตัวแปร การกำหนดค่า นิพจน์ GOTO If-else Repeat comment

34 ตัวแปร ตัวแปรหมายถึงสิ่งที่ใช้สำหรับการเก็บค่าต่างๆ ตัวอย่างเช่น salary, income,tax เป็นต้น ส่วนมากมักจะกำหนดค่าให้เป็น 0 ก่อนเริ่มโปรแกรมเสมอ Salary =0 Income=0 Tax=0

35 การกำหนดค่า มักใช้เครื่องหมาย  หรือเครื่องหมาย = เพื่อกำหนดค่าให้กับตัวแปร เช่น Salary =0 Income=0 Tax=0 Salary  0 Income  0 Tax  0

36 นิพจน์ (expression) ( ) (วงเล็บ) + (บวก)  (ลบ) * (คูณ) / (หาร)
( ) (วงเล็บ) + (บวก)  (ลบ) * (คูณ) / (หาร) ^ (ยกกำลัง) & (and) | (or) = != หรือ <> < >

37 โครงสร้างทางตรรกะ โครงสร้างทางตรรกะ(logic structure) เชื่อมกันเป็นโครงสร้างทางตรรกะได้ 3 ลักษณะ ได้แก่ ลำดับ ทางเลือก วงวน

38 โครงสร้างแบบลำดับ(sequence structure)
เป็นรูปแบบการทำงานแบบทำคำสั่งหนึ่งต่อจากอีกคำสั่งหนึ่ง ดังภาพ ตัวอย่างเช่น กำหนดให้ ค่าเงินเดือน = 0 รับค่าเงินเดือน statement statement

39 โครงสร้างแบบทางเลือก(selection structure)
เป็นรูปแบบที่มีการตัดสินใจเลือกข้อคำสั่งที่จะทำต่อไป เช่น if-then-else ดังภาพ โดยถ้าเงื่อนไขหลัง if เป็นจริง จะทำหลัง then ถ้าเงื่อนไขเป็นเท็จจะทำหลัง else If (test condition) Then (statement) Else (statement)

40 โครงสร้างแบบวงวน(loop structure)
เรียกอีกชื่อหนึ่งว่า การวนซ้ำ(iteration) มี 2 รูปแบบคือ do until และ do while loop loop yes เงื่อนไข เงื่อนไข no no yes

41 คำอธิบาย (Comment) คำอธิบาย (comment) เป็นข้อความที่อธิบายรายละเอียดของขั้นตอนการทำงาน ซึ่งบางครั้งเราต้องการคำอธิบายรายละเอียดเพิ่มเติมเพื่อให้เข้าใจขั้นตอนวิธีชัดเจนยิ่งขึ้น โดยต้องเขียนอยู่ภายในเครื่องหมาย /* comment */ // comment

42 โครงสร้างโปรแกรม

43 END OF CHEPTER 2 ANY QUESTION ?

44 บทที่ 3 ผังงาน 3.1 ผังงานเบื้องต้น 3.2 ตัวแปร 3.3 สัญลักษณ์เชื่อมต่อ
3.4 รูปแบบของข้อความสั่งทางคณิตศาสตร์ 3.5 ชนิดของตัวแปร

45 ความหมายของผังงาน ผังงาน หมายถึง ภาพที่แสดงลำดับขั้นตอนในการแก้ปัญหา ส่วนรหัสเทียมก็สามารถสื่อความหมายเช่นเดียวกันโดยใช้ภาษาอังกฤษ ซึ่งไม่จำเป็นจะต้องถูกต้องตามวากยสัมพันธ์ของภาษาที่เขียนโปรแกรม โปรแกรมคอมพิวเตอร์แทบทุกโปรแกรมประกอบด้วย การนำเข้า (input) การประมวลผล (process) และการนำออก (output)

46 ตัวอย่าง Get number Answer = number * 2 Print answer Answer= Number*2

47 ตัวอย่างผังงานที่สมบูรณ์
ผังงานจะต้องมีลูกศร การอ่านจะต้องอ่านจากบนลงล่างตามลูกศร ผังงานควรมีการตรวจสอบ ผังงานสามารถนำไปเขียนกับภาษาอะไรก็ได้

48 Simpledouble.c //Program simpledouble.c // เริ่มต้นโปรแกรม
#include<stdio.h> main() { int Number , Answer ; printf(“Please input Number =” ); scanf(“%d”,&Number) ; Answer = Number*2 ; printf(“Answer = %d\n”,Answer) ; } // เริ่มต้นโปรแกรม // เรียกใช้พรีโปรเซสเซอร์ไดเร็คทีฟ // สร้างตัวแปรชนิด integer // คือ GET NUMBER // คือ การนำค่า Number คูณด้วย 2 แล้วเก็บผลลัพธ์ไว้ในตัวแปร Answer // Print Answer คิอ การแสดงค่าที่อยู่ในตัวแปร Answer

49 ตัวแปร โปรแกรมเมอร์เรียกตำแหน่งในหน่วยความจำที่เก็บค่า number และ answer ว่า ตัวแปร ตัวแปรแบ่งออกเป็น 2 ชนิดคือ ตัวแปรตัวเลข ตัวแปรอักขระ ตัวแปรตัวเลข (numeric variable) เป็นตัวแปรที่ใช้แทนตัวเลขในประโยค เช่น Answer = number * 2 ตัวแปรอักขระ (character variable) ใช้กับตัวอักษร Name = “Washington”

50 ตัวแปรในภาษาซี การเก็บค่าตัวแปรในภาษาซีมี 2 ลักษณะคือ
เก็บค่าแบบค่าคงที่(constant) เก็บค่าแบบตัวแปร(variable) ค่าคงที่เมื่อสร้างขึ้นมาแล้วเราจะไม่สามารถเปลี่ยนแปลงแก้ไขค่าได้เลย เช่น a=20; การเก็บค่าแบบตัวแปรสามารถเปลี่ยนแปลงค่าเป็นอะไรก็ได้ตามที่ต้องการ เช่น char ch;

51 การเก็บค่าในภาษาซี การสร้างตัวแปรจะต้องทราบว่าตัวแปรนั้นเก็บค่าอะไร เช่น เลขจำนวนเต็ม เลขทศนิยม ข้อความ หรือตัวอักษร เป็นต้นโดยแบ่งออกเป็นประเภทดังนี้ Character Variable ตัวแปรที่ใช้เก็บอักขระ “A” Integer Variable ตัวแปรที่ใช้เก็บเลขจำนวนเต็ม 0, 23, -9 Float Variable ตัวแปรที่ใช้เก็บเลขจำนวนทศนิยม

52 Character Variable แบ่งออกเป็น 2 ลักษณะ คือ
Char เก็บค่า ASCII ของตัวอักษรได้ตั้งแต่ -128 ถึง 127 Unsigned char เก็บค่า ASCII ของตัวอักษรได้ตั้งแต่ 0-255 ตัวแปรแบบ character จะใช้ในกรณีที่เราต้องการเก็บอักขระ 1 ตัว เช่น a,b หรือ c เป็นต้น สิ่งที่เราเก็บก็คือ ตัวอักษร 1 ตัว ซึ่งมีค่า ASCII อยู่ระหว่าง 0 ถึง 255 ดังนั้นถ้าเราประกาศตัวแปรแบบ char เราจะใช้ตัวแปรนั้นเก็บข้อมูลได้เป็นค่าใดค่าหนึ่งในรหัส ASCII เท่านั้น

53 Integer Variable แบ่งออกเป็น 2 ประเภท คือ
int หรือ short เก็บเลขจำนวนเต็มตั้งแต่ -32,768 ถึง 32,767 Long เก็บเลขจำนวนเต็มตั้งแต่ -2,147,483,648 ถึง 2,147,483,647 วิธีการใช้คือถ้าต้องการตัวเลขจำนวนเต็มมากกว่า 32,767 เราจะต้องประกาศตัวแปรแบบ long ถ้าน้อยกว่าก็ประกาศแบบ int ดังตัวอย่าง

54 ตัวอย่าง integer variable
int a,b,c; int age; int height; long salary,money; เราประกาศตัวแปร a,b,c age height แบบ int เนื่องจาก ต้องการให้เก็บค่าที่อยู่ระหว่าง -32,768 ถึง 32,767 เท่านั้น แต่ salary และ money มีโอกาสจะมีค่ามากกว่า นั้นดังนั้นจึงต้องประกาศเป็น long

55 Float Variable แบ่งออกเป็น 3 ประเภท คือ float grade; double rate;
Float เก็บทศนิยมได้ 3.4E+/-38 (ทศนิยม 7 ตำแหน่ง) Double เก็บทศนิยมได้ 1.7E+/-308 (ทศนิยม 15 ตำแหน่ง) Long Double เก็บทศนิยมได้ 1.2E+/-4932 (ทศนิยม 19 ตำแหน่ง) float grade; double rate; long double longrate; หมายเหตุ ยิ่งเก็บได้มากยิ่งเปลืองหน่วยความจำมาก

56 กฎการตั้งชื่อตัวแปร (สำคัญมากๆ)
ต้องไม่มีอักษรพิเศษใดๆ ประกอบอยู่ด้วย เช่น # $ % ^ & * ( สามารถใช้เครื่องหมาย underscore ( _ ) ได้ ชื่อตัวแปรมีตัวเลขปนอยู่ได้ แต่ต้องไม่ขึ้นต้นด้วยตัวเลข ห้ามมีช่องว่างระหว่างชื่อ ใช้ได้ทั้งพิมพ์เล็ก และพิมพ์ใหญ่ ชื่อเหมือนกันแต่เป็นพิมพ์เล็กพิมพ์ใหญ่ ถือว่าคนละชื่อกัน ห้ามตั้งชื่อซ้ำกับคำสงวน เช่น char long while do

57 ตัวอย่างที่ 1 ตัวอย่างที่ 2
ตัวอย่างที่ ตัวอย่างที่ 2 #include<stdio.h> void main() { int age; char sex; float grade; age = 20; sex = ‘f’; grade = 3.14; } #include<stdio.h> void main() { int age = 20; char sex = ‘f’; float grade = 3.14; }

58 ตัวแปรข้อความที่เรียกว่า สตริง String
นำตัวแปร char มาเรียงต่อกันเรียกว่าตัวแปรแบบสตริง(String) การประกาศตัวแปรแบบสตริง จะต้องกำหนดขนาดของ char ดังตัวอย่าง char name[15] = “Jacky Chan”; ตัวแปรชื่อ name มีความยาว 15 ช่องตัวอักษร และเก็บข้อความ Jacky Chan เอาไว้ ซึ่งการประกาศตัวแปร 15 ช่องเอาไว้ ที่เหลือจะเป็นช่องว่างเฉยๆ ไม่มีตัวอักษรบรรจุอยู่ J a c k y C h n 1 2 3 4 5 6 7 8 9 10 11 12 13 14

59 ตัวอย่าง #include<stdio.h> void main() { } int age = 20;
char sex = ‘f’; float grade = 3.14; char name[10] = “malee”; printf(“You are %s\n”,name); printf(“You are %c\n”,sex); printf(“You are %d years old\n”,age); printf(“You grade is %f\n”,grade); } You are malee You are f You are 20 years old Your grade is

60 บทที่ 4 โครงสร้างโปรแกรม
4.1 รหัสสปาเกตตี 4.2 ตัวแปร 4.3 สัญลักษณ์เชื่อมต่อ 4.4 รูปแบบของข้อความสั่งทางคณิตศาสตร์ 4.5 ชนิดของตัวแปร

61 รหัสสปาเกตตี การเขียนผังงานจะต้องเขียนอย่างมีโครงสร้าง ถ้าเขียนโปรแกรมแบบมีโครงสร้างจะทำให้โปรแกรมดูเข้าใจง่าย และสะดวกในการแก้ไขเมื่อเกิดปัญหาในภายหลัง เหมือนสปาเกตตีในจานจะต้องลากเส้นจากปลายเส้นด้านหนึ่งแล้วดูดจนหมดจาน

62 ตัวอย่าง สมมติว่ากรรมการพิจารณาคัดเลือกนักเรียนเข้าเรียนในมหาวิทยาลัยแห่งหนึ่งตัดสินใจว่าจะรับนักเรียนที่มีคุณสมบัติต่อไปนี้ นักเรียนต้องได้คะแนนอย่างน้อย 90 คะแนนจากการสอบ และอยู่ใน 75 % แรกของนักเรียนมัธยมที่จบการศึกษาในปีเดียวกัน นักเรียนต้องได้คะแนนสอบอย่างน้อย 80 คะแนน และอยู่ใน 50 % แรก นักเรียนต้องได้คะแนนสอบอย่างน้อย 70 คะแนน และอยู่ใน 25 % แรก

63 สรุปจากตัวอย่าง Test ScoreHigh School Rank (%) 90+ 25+ 80+ 50+ 70+ 75+
สามารถเขียนผังงานได้ดังภาพที่ 4.1 ผังงานชนิดนี้เรียกว่ารหัสสปาเกตตี

64 ปัญหาของผังงานแบบไม่มีโครงสร้าง
ผังงานรหัสสปาเกตตีนี้สามารถนำไปเขียนโปรแกรมได้ แต่โปรแกรมที่ได้ อาจทำงานผิดตรรกะ หรือทำงานผิดพลาด และยากแก่การตรวจสอบแก้ไข ดังนั้นโปรแกรมเมอร์ที่ดีจึงควรแก้ไขรหัสสปาเกตตีนี้ให้เป็นผังงานแบบมีโครงสร้างเสียก่อน

65 โครงสร้างของโปรแกรม โครงสร้างทางเลือก โครงสร้างลำดับ โครงสร้างวงวน

66 ตัวอย่างโค้ดภาษาซีแบบโครงสร้างลำดับ
#include<stdio.h> void main() { int age = 20; char sex = ‘f’; float grade = 3.14; char name[10] = “malee”; printf(“You are %s\n”,name); printf(“You are %c\n”,sex); printf(“You are %d years old\n”,age); printf(“You grade is %f\n”,grade); } You are malee You are f You are 20 years old Your grade is

67 ตัวอย่างโค้ดภาษาซีแบบโครงสร้างทางเลือก
#include<stdio.h> void main() { int age; printf(“How old are you ”); scanf(“%d”,&age); if (age>=60) printf(“You are old\n”); } else printf(“You are young\n”); printf(“Good Bye ! ”); }

68 ผังงานโครงสร้างทางเลือก
Age>60 Yes No You are old You are young Good bye

69 ตัวอย่างโค้ดภาษาซีแบบโครงสร้างวงวน
#include<stdio.h> void 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

70 ผังงานโครงสร้างแบบวงวน
Start Int count=0; Count<10 Yes Print “Hello” count=count+1 No Print “END” End

71 ความสำคัญของโครงสร้าง
ความชัดเจน ง่ายแก่การเข้าใจ เมื่อโปรแกรมใหญ่ขั้นและซับซ้อนขั้น จะเข้าใจได้ยากมากถ้าหากไม่มีโครงสร้าง ความเป็นมืออาชีพ โปรแกรมเมอร์อื่น ๆ (รวมทั้งอาจารย์ที่สอนการเขียนโปรแกรม) ต้องการเห็นโปรแกรมมือใหม่เขียนโปรแกรมแบบมีโครงสร้าง

72 ความสำคัญของโครงสร้าง
ความมีประสิทธิภาพ ภาษาคอมพิวเตอร์สมัยใหม่ ส่วนมากเป็นภาษาที่มีโครงสร้าง ถึงแม้ว่าภาษาสมัยใหม่จะเขียนแบบอ็อบเจกต์แต่ก็ยังคงความเป็นโครงสร้างในส่วนย่อยอยู่ดี ความสะดวกในการแจกจ่ายงาน โปรแกรมแบบมีโครงสร้างสามารถแยกย่อยเป็นขั้นตอนเล็กๆ ได้ง่าย แต่ละขั้นตอนสามารถแบ่งให้โปรแกรมเมอร์คนใดเขียนก็ได้ หลังจากนั้น แต่ละขั้นตอนจะถูกนำมาประกอบกลับเข้าที่เดิม โปรดสังเกตว่า แต่ละส่วนมีทางเข้าและทางออกแค่อย่างละ 1 ทาง

73 โครงสร้างแบบพิเศษ โครงสร้าง กรณี (case) ทำในขณะที่ (do while)
ทำจนกระทั่ง (do until)

74 โครงสร้างกรณี ใช้แทนคำถามที่เราสามารถระบุคำตอบออกมาได้ชัดเจน และสามารถแบ่งกลุ่มของคำตอบออกเป็นกรณีๆได้ EXการสอนพิเศษสำหรับนักศึกษา 4 ชั้นปี คือ ปีหนึ่ง (freshman) ปีสอง (sophomore) ปีสาม (junior) ปีสี่ (senior) ต้องเสียค่าใช้จ่าย 75, 50, 30 และ10เหรียญ ตามลำดับ

75 ตัวอย่างผังงานที่มีโครงสร้างแบบกรณี
Fee = 30 Fee = 10 Fee = 50 Fee =75 Class=? "Fresh" "Soph" "Jr" "Sr"

76 ตัวอย่างภาษาซีที่มีโครงสร้างกรณี
#include<stdio.h> void main() { char sex; printf(“are you m (male) of f (female) ?”); scanf(“%c”,&sex); switch (sex) case ‘m’ : printf(“You are male\n”); break; case ‘f’ : printf(“You are female\n”); break; default : printf(“Try again!!\n”); }

77 ทำจนกระทั่ง ทำในขณะที่
ทำจนกระทั่ง ทำในขณะที่ เงื่อนไข = สอบผ่านไม๊ ถ้ายังไม่ผ่านให้สอบใหม่ เงื่อนไข = สวยไม๊ ถ้าสวยยังจีบต่อไป จีบจนกว่าจะไม่สวย loop loop เงื่อนไข no yes เงื่อนไข yes no

78 การบ้าน ให้นักศึกษาทำแบบฝึกหัดท้ายบทที่ 4 Date line 10 August
ทำแบบฝึกหัด ผังงานเบื้องต้น (ที่แจกให้) Ex1 และ Ex 2 Date line 10 August เตรียมสอบเขียนโปรแกรมภาษาซี วันที่ 11 August

79 END OF CHEPTER 4 ANY QUESTION ?

80 บทที่ 5 โปรแกรมย่อยและแผนภูมิลำดับขั้น
5.1 โปรแกรมย่อย 5.2 ตัวแปรแบบโกลบอลและตัวแปรแบบโลคอล 5.3 การใช้งานฟังก์ชันในภาษาซี 5.4 แผนภูมิลำดับขั้น

81 โปรแกรมย่อย หมายถึง หน่วยย่อยของโปรแกรม บางครั้งเรียกว่า ฟังก์ชัน (functions) หรือกระบวนงาน (Procedure) Double_it

82 การใช้งานฟังก์ชันในภาษาซี
ฟังก์ชันในภาษาซีมีอยู่ 2 ชนิดคือ ฟังก์ชั่นที่มีอยู่ในไลบรารีของภาษาซี อยู่ในโฟลเดอร์ lib มีนามสกุล .h ฟังก์ชั่นที่เราสร้างขึ้นเอง ฟังก์ชั่นที่มีอยู่แล้วในภาษาซีเวลาจะเรียกใช้งานก็ต้องทำการ include ไฟล์นามสกุล .h เช่นถ้าต้องการใช้ฟังก์ชั่น prinf หรือ scanf จะต้อง include ไฟล์ชื่อ stdio.h มาก่อน เป็นต้น ฟังก์ชันที่เขียนขึ้นเองใหม่เหมือนกับสร้างภาษาซีขึ้นเองเพิ่มเติมจากที่มีอยู่แล้ว ซึ่งจะทำให้ลดความซับซ้อนของโปรแกรมลง

83 ฟังก์ชันหลักในโปรแกรมคือ main()
ตัวอย่างโปรแกรม Func1.c. #include<stdio.h> void main() { int x,y,z; x = 100; y=23; z=x+y; printf(“%d”,z); } มีการเรียกใช้ฟังก์ชัน printf จะเห็นว่าจะต้องมีการ include ไฟล์ stdio.h เข้ามาก่อนเสมอ

84 การแยกโปรแกรมย่อยหรือฟังก์ชันในภาษาซี
เราสามารถเอาคำสั่งต่างๆ ใน main() มาสร้างเป็นฟังก์ชั่นใหม่ได้ดังนี้ #include<stdio.h> void test( ) { int x,y,z; x = 100; y = 23; z = x+y; printf(“%d”,z); } แยกคำสั่งบางส่วนมาใส่ในฟังก์ชัน ชื่อ test ( ) void main( ) { test( ); } int x,y,z; x = 100; y = 23; z = x+y; printf(“%d”,z); เรียกใช้ฟังก์ชัน test( ) เพียงตัวเดียวก็จะทำงานเหมือนคำสั่งทั้งหมดที่เขียนไว้ในฟังก์ชัน test () ข้างบน

85 โปรแกรมเขียนใหม่จะเป็นดังนี้
2004 โปรแกรมเขียนใหม่จะเป็นดังนี้ #include<stdio.h> void test( ) { int x,y,z; x = 100; y = 23; z = x+y; printf(“%d”,z); } void main( ) test( ); ส่วนของฟังก์ชัน ชื่อว่า test ( ) ฟังก์ชันหลัก เรียกชื่อฟังก์ชัน test ( ) เพื่อทำงานตรงจุดนี้

86 ตัวอย่างโปรแกรม Double_it

87 ตัวอย่าง ผังงานปกติ แยกเป็นโปรแกรมย่อยชื่อ Double_it Start Number=0
Get number Number=0 EOF Yes ANS=number*2 Print ANS Get number No Print “END” End

88 โปรแกรม Double1.cpp #include<stdio.h> #include<conio.h>
void main() { int number,ans; clrscr(); printf("Number="); scanf("%d",&number); do { ans=number*2; //แยกไปเป็นโปรแกรมย่อย Double_it printf("ANS=%d\n",ans); } while (number!=0); }

89 ตัวอย่าง ผังงานมีโปรแกรมย่อย Double_It
Start Get number Double_it Print ANS EOF Number=0 Double_it Yes No Get number Print “END” Return End

90 โปรแกรม Double2.cpp #include<stdio.h> #include<conio.h>
int number,ans; void double_it() { ans=number*2; } void main() { clrscr(); printf("Number="); scanf("%d",&number); do { double_it(); printf("ANS=%d\n",ans); } while (number!=0);

91 ตัวแปรที่ใช้งานในโปรแกรม
ตัวแปรแบบโกลบอล global variable ตัวแปรแบบโลคอล local variable

92 ตัวแปรแบบโกลบอล Global Variable
เป็นตัวแปรที่ใช้ตลอดทั้งโปรแกรม ทั้งในโปรแกรมหลักและในโปรแกรมย่อย ประกาศไว้ภายนอกโปรแกรมหลักเพียงครั้งเดียว

93 Global Variable #include<stdio.h> #include<conio.h>
int number,ans; Function 1 Function 2 Main program

94 โปรแกรม Double2.cpp Global variable Function Main Program
#include<stdio.h> #include<conio.h> int number,ans; void doubleit() { ans=number*2; } void main() { clrscr(); printf("Number="); scanf("%d",&number); do { doubleit(); printf("ANS=%d\n",ans); } while (number!=0); Global variable Function Main Program

95 ตัวแปรแบบโลคอล Local Variable
ตัวแปรที่ใช้ในโพรซีเจอร์หรือ ฟังก์ชัน การเปลี่ยนแปลงค่าของตัวแปรโลคอลจะไม่กระทบต่อโปรแกรมหลักข้างนอก

96 โปรแกรม Double1.cpp Local Variable #include<stdio.h>
#include<conio.h> void main() { int number,ans; clrscr(); printf("Number="); scanf("%d",&number); do { ans=number*2; printf("ANS=%d\n",ans); } while (number!=0); } Local Variable

97 ฝึกปฏิบัติการแยกโปรแกรมย่อย
โปรแกรม showmenu()

98 โปรแกรม EasyFunc1.cpp จงเขียนฟังก์ชัน showmenu();
#include<stdio.h> void main() { printf(“Begin\n”); printf(“==== MENU ====\n\n”); printf(“a) Say Hello\n”); printf(“b) Say Good Bye\n”); printf(“Select a or b : \n”); printf(“END\n”); } Begin ==== MENU ==== a) Say Hello b) Say Good Bye Select a or b : END จงเขียนฟังก์ชัน showmenu();

99 เฉลย โปรแกรม EasyFunc2.cpp
1 #include<stdio.h> void showmenu() { printf(“==== MENU ====\n\n”); printf(“a) Say Hello\n”); printf(“b) Say Good Bye\n”); printf(“Select a or b : \n”); } Void main() printf(“Begin\n”); showmenu(); printf(“END\n”); Begin ==== MENU ==== a) Say Hello b) Say Good Bye Select a or b : END 5 6 7 8 9 2 3 4 10

100 โปรแกรมย่อยของโปรแกรมย่อย
เป็นโปรแกรมย่อยที่อยู่ภายในโปรแกรมย่อยอีกทีหนึ่ง

101 ผังลำดับขั้น Hierarchy chart

102 ค้นคว้าเพิ่มเติม สไลด์ประกอบการเรียน ดาวน์โหลดได้ที่ LMS ของมหาวิทยาลัยรายวิชา การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริทึ่ม เว็บไซต์วิชา การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1 ~tsasalak/c/c-index.htm

103 END OF CHEPTER 5 ANY QUESTION ?

104 บทที่ 6 การตัดสินใจ 6.1 โครงสร้างของการตัดสินใจ
6.2 ชนิดของโครงสร้างของการตัดสินใจ 6.3 บทสรุป

105 โครงสร้างของการตัดสินใจ
โครงสร้างของการตัดสินใจ (Decision making) เป็นลักษณะของการเลือกทางเพื่อตัดสินใจ มีสัญลักษณ์ในผังงานดังนี้

106 การตัดสินใจจากการเปรียบเทียบ
เครื่องหมายเปรียบเทียบ (Operational Operator) ใช้ในการเปรียบเทียบค่า 2 ค่า ว่าเท่ากัน มากกว่า หรือน้อยกว่ากันหรือไม่ (โดยอาจเป็นการเปรียบเทียบระหว่างตัวแปรกับตัวเลข หรือระหว่างตัวแปรกับตัวแปรก็ได้) เช่น การกด ATM จะต้องมีการเปรียบเทียบรหัสผ่านว่ารหัสผ่านที่รับมา ตรงกับรหัสผ่านที่มีอยู่หรือไม่ เป็นต้น

107 ตัวอย่าง 5>3 ผลเป็นจริง เพราะ 5 มากกว่า 3 จริง
5>3 ผลเป็นจริง เพราะ 5 มากกว่า 3 จริง 10<34 ผลเป็นจริง เพราะ 10 น้อยกว่า 34 จริง 4>=3 ผลเป็นจริง เพราะ 4 มากกว่า 3 จริง 4>=4 ผลเป็นจริง เพราะ 4 เท่ากับ 4 6>=20 ผลเป็นเท็จ เพราะ 6 ไม่ได้มากกว่าหรือเท่ากับ 20 ถ้า number=10 แล้ว number>10 จริงไม๊คะ

108 สัญลักษณ์ทางคณิตศาสตร์ที่ใช้ในภาษาซี
> มากกว่าหรือไม่ < น้อยกว่าหรือไม่ >= มากกว่าหรือเท่ากันหรือไม่ <= น้อยกว่าหรือเท่ากันหรือไม่ != ไม่เท่ากันหรือไม่ == เท่ากันหรือไม่

109 โครงสร้างการตัดสินใจแบบสองทางเลือก
โปรแกรมเมอร์เรียกโครงสร้างการตัดสินใจแบบนี้ว่า โครงสร้างการตัดสินใจแบบสอง ทางเลือก(dual-alternative decision)

110 ตัวอย่างผังงานการตัดสินใจแบบสองทางเลือก
No Grade>75 Yes Print “Try Harder” Print “Good Job”

111 โค้ดต้นฉบับภาษาซี //Program ifthenelse.cpp #include<stdio.h>
#include<conio.h> void main() { int Grade; printf(“Please input Grade = ”); scanf(“%d”,&Grade); //รับค่าตัวแปร Grade if(Grade>75) //ตรวจสอบค่าตัวแปร Grade ว่ามากกว่า 75 จริงหรือไม่ printf(“Good Job\n”); // หากเงื่อนไขข้างต้นเป็น “จริง” ทำที่นี่ } else printf(“Try Harder\n”); // หากเงื่อนไขข้างต้นเป็น “เท็จ” ทำที่นี่ getch(); โค้ดต้นฉบับภาษาซี

112 โครงสร้างการตัดสินใจแบบทางเลือกเดียว
โครงสร้างการตัดสินใจแบบทางเลือกเดียว (single-alternative decision) มีทางเลือกสำหรับตัดสินใจเพียงทางเดียวดังภาพ Year=4 ? Graduation Routine No Yes Don’t Do Anything

113 โปรแกรมภาษาซีที่มีทางเลือกเดียว
#include<stdio.h> void main() { int age; printf(“How old are you ”); scanf(“%d”,&age); if (age>=60) printf(“You are old\n”); printf(“Good Bye ! ”); }

114 ชนิดของโครงสร้างของการตัดสินใจ
การเชื่อมต่อโดยการใช้ “และ” การเชื่อมต่อโดยการใช้ “หรือ” การเชื่อมต่อโดยการใช้ทั้งสองวิธีร่วมกัน

115 การเชื่อมต่อโดยการใช้ “และ”
เป็นการตัดสินใจที่มีมากกว่า 1 เงื่อนไข เช่น ต้องการให้เงินค่าล่วงเวลาสำหรับพนักงานที่ทำงานเกิน 40 ชั่วโมง และเป็นพนักงานใน Class 1 มี 2 เงื่อนไขคือ 1. ต้องทำงานเกิน 40 ชั่วโมง 2. ต้องเป็นพนักงานใน Class 1

116 ผังงานแสดงเงื่อนไขแบบ “และ”
ข้อควรระวังในการสลับที่คือ ประสิทธิภาพของการทำงาน No Hour>40 ? Class 1 ? Yes Class=1 ? Hour>40 ? Yes Overtime

117 การเชื่อมต่อโดยการใช้ “หรือ”
จะทำงานก็ต่อเมื่อเงื่อนไขหนึ่งเงื่อนไขใดเป็นจริงหรือเป็นจริงทั้งสองเงื่อนไขก็ได้ เช่น บริษัทจะให้โบนัสแก่พนักงานที่เป็นพนักงานใน Class 1 หรือเป็นพนักงานใน Class 2 โครงสร้างของผังงานแสดงเงื่อนไขแบบ “หรือ”

118 โครงสร้างของผังงานที่มีเงื่อนไขแบบ “หรือ”
ข้อควรระวังในการสลับที่คือ ประสิทธิภาพของการทำงาน เช่นเดียวกัน No Class =1? Yes No Class =2 ? Yes Bonus Bonus

119 การตัดสินใจโดยใช้ทั้งสองวิธีร่วมกัน
สำหรับภาษาซีสามารถจะใช้ทั้งสองวิธีที่กล่าวมาแล้วร่วมกันได้ ใช้สัญลักษณ์ทางคณิตศาสตร์ดังนี้ && หมายถึง “และ” and || หมายถึง “หรือ” or ! หมายถึง “ไม่” not

120 ตัวอย่างผังงานการตัดสินใจแบบใช้สองวิธีร่วมกัน
Hour>40 and Class =1 ? Class =1 or Class=2 ? No Yes No Yes Overtime Bonus

121 โค้ดต้นฉบับภาษาซี ... if((Hours >40) &&(Class=1)) //ตรวจสอบค่าตัวแปร { overtime(); //หากเงื่อนไขข้างต้นทั้งหมดเป็น “จริง” เรียกฟังก์ชันOvertime } if((Class =1) || (Class=2)) //ตรวจสอบค่าตัวแปร bonus(); // หากเงื่อนไขข้างต้นอันใดอันหนึ่งเป็น “จริง” เรียกฟังก์ชัน bonus

122 ตัวอย่าง … int a=20; int b=6; if((a>0) && (b>0)) {
printf(“Yes!! Ok.”); } int a=20; int b=6; int c=8; if((a>0) && (b>0) && (c>5)) { printf(“Yes!! Ok.”); }

123 กิจกรรมฝึกปฏิบัติ ให้นักศึกษาเขียนผังงานที่ทำงานเหมือนโปรแกรมดังกล่าวข้างต้น ทั้งสองโปรแกรม ส่งตัวแทนออกไปเขียนหน้าชั้นเรียนทั้งสองโปรแกรม

124 แบบสั้น a>0 && b>0 ? No Yes Print “Yes! Ok”

125 แบบยาว a>0 ? No Yes No a>0 ? Yes Print “Yes! Ok”

126 บทสรุป โครงสร้างแบบตัดสินใจ ซึ่งแบ่งออกได้เป็น 3 แบบ คือ
การเชื่อมต่อโดยใช้ “และ” การเชื่อมต่อโดยใช้ “หรือ” และการเชื่อมต่อโดยใช้ทั้งสองวิธีร่วมกัน ซึ่งหลักการออกแบบและเขียนโปรแกรมเชิงโครงสร้างส่วนใหญ่มักจะใช้ทั้งสองวิธีร่วมกันอยู่แล้ว ยิ่งถ้าโปรแกรมมีขนาดใหญ่และมีความซับซ้อน โครงสร้างทางเลือกก็อาจจะเป็นหลายชั้น นอกจากนี้นักศึกษาควรศึกษาเพิ่มเติมจากแบบฝึกหัดท้ายบทเรียน จะทำให้เข้าใจรูปแบบการเขียนโปรแกรมโดยใช้โครงสร้างตัดสินใจมากขึ้น

127 ค้นคว้าเพิ่มเติม สไลด์ประกอบการเรียน ดาวน์โหลดได้ที่ LMS ของมหาวิทยาลัยรายวิชา การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริทึ่ม เว็บไซต์วิชา การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1 หรือยูอาร์แอล ~tsasalak/c/c-index.htm

128 END OF CHEPTER 6 ANY QUESTION ?

129 บทที่ 7 การทำซ้ำ 7.1 การทำซ้ำโดยการใช้ While-do 7.2 การทำซ้ำโดยใช้ For
7.3 การทำซ้ำโดยการใช้ Do-Until

130 การทำซ้ำ หมายถึง การทำอะไรซ้ำๆ หรือคำนวณซ้ำ โดยการใช้ วงวน (looping) การทำซ้ำจะเกิดขึ้นเรื่อยๆ จนกว่าจะครบกำหนด การทำซ้ำเกิดขึ้นบ่อยๆ ในชีวิตประจำวัน เช่น การวนรับรหัสผ่าน จนกว่าจะใส่รหัสผ่านถูกต้อง หรือไม่เกิน 3 ครั้ง, การวนรับรหัสบัตรเติมเงินของบริการโทรศัพท์ ไม่เกิน 3 ครั้ง จนกว่าจะใส่รหัสบัตรเติมเงินถูกต้อง เป็นต้น

131 ตัวอย่าง ผังงานที่มีวงวน
Start HouseKeep EOF No Main loop Yes Finish up Stop

132 ชนิดของการทำซ้ำ การทำซ้ำมี 2 ลักษณะ คือ
แบบใช้เงื่อนไขเป็นตัวตัดสินใจว่าจะทำซ้ำต่อไปหรือไม่ ต้องการให้โปรแกรมทำไปเรื่อยๆ ในขณะที่เงื่อนไขยังเป็นจริง อยู่ เช่น ให้รับรหัสผ่านไปเรื่อยๆ จนกว่าจะใส่ถูก ซึ่งจะไม่มีจำนวนรอบที่แน่นอนตายตัว ลักษณะนี้จะมี 2 คำสั่งคือ do..while และ while... แบบมีจำนวนรอบที่แน่นอน เช่น ต้องการให้พิมพ์ตัวอักษร a จำนวน 1000 ครั้งขึ้นบนหน้าจอ แบบนี้จะใช้ คำสั่ง for

133 การทำซ้ำแบบ While-Do และ Do-While
คำสั่ง while และ do..while จะต่างจากคำสั่ง forเล็กน้อยตรงที่การทำซ้ำแบบนี้ ไม่จำเป็นต้องบอกถึงจำนวนรอบของการทำซ้ำ แต่ละทำซ้ำไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็นเท็จ รูปแบบคำสั่ง while คือ While (เงื่อนไข) { คำสั่งหรือกลุ่มคำสั่งที่ต้องการให้ทำซ้ำ }

134 ตัวแปร Counter เป็นตัวแปรที่ใช้สำหรับการเพิ่มค่าเพื่อกำหนดการหยุดของวงวน หากเป็นค่าสุดท้ายจะเรียกว่า ลิมิต (limit) หรือค่าเซนทิเนล (sentinel)

135 ตัวอย่าง ขั้นตอนสำคัญของวงวนหลัก 4 ขั้นตอน

136 ตัวอย่างโปรแกรม While
void main() { void housekeep(); // เรียกฟังก์ชั่นย่อย housekeep() while(EOF!=null) { // ตรวจสอบว่าสิ้นสุดไฟล์หรือไม่ /* main-loop */ int Lable-Counter=0; // กำหนดค่าเริ่มต้นให้ตัวนับ while(Lable-Counter<=100) { // ทำในขณะที่ Label-Counter // น้อยกว่าหรือเท่ากับ 100 printf(“Lable-Line”); // ถ้าไม่เงื่อนไขเป็นจริง จะทำในลูป printf(“In-name”); Lable-Counter++; // เพิ่มค่าให้ตัวนับ } // Read Employees // อ่านระเบียนใหม่ void finishedup(); // เรียกฟังก์ชั่นย่อย finishedup()

137 while.c แบบฝึกหัด 1 จงเขียนผลรันที่ได้จาก การรันโปรแกรมนี้
#include<stdio.h> Void main() { int count=1; while(count<=10) printf(“Hello %d\n”,count); count++; } จากตัวอย่างเรากำหนดให้ count มีค่า เป็น 1 จากนั้นใช้คำสั่ง while ตรวจดูค่าของ count ว่ายังน้อยกว่าหรือเท่ากับ 10 หรือไม่ ถ้าใช่ก็ยังทำคำสั่งภายใน{} ต่อไป และเพิ่มค่า count ทีละ 1 ไปเรื่อยๆ จนกว่าค่า count จะมากกว่า 10 ทำให้เงื่อนไขเป็นเท็จก็จะหลุดจากลูป while แบบฝึกหัด 1 จงเขียนผลรันที่ได้จาก การรันโปรแกรมนี้

138 dowhile.c แบบฝึกหัด 2 จงเขียนผลรันที่ได้จาก การรันโปรแกรมนี้
#include<stdio.h> void main() { char out; do printf(“\n Do you what to exit ?[Y]es or [N]o :”); scanf(“%c”,&out); }while(out!=‘y’); } แบบฝึกหัด 2 จงเขียนผลรันที่ได้จาก การรันโปรแกรมนี้ ก่อนเข้าสู่การตรวจสอบเงื่อนไข(out!=y) ครั้งแรกนั้นจะมีการทำคำสั่งใน {} ก่อน ดังนั้น do..while จึงทำคำสั่งภายใน {} อย่างน้อย 1 ครั้งเสมอ และถ้าตรวจสอบแล้วเงื่อนไขยังจริงอยู่ก็จะวนมาทำคำสั่งภายใน {} อีกครั้ง

139 for ใช้ในกรณีที่เราต้องการทำซ้ำโดยทราบจำนวนครั้งที่แน่นอน เช่น 20 ครั้ง 30 ครั้ง การใช้งานจะกำหนดลงไปเลยว่าต้องการให้ทำกี่ครั้ง และจะต้องสร้างตัวแปร ขึ้นมาเป็นตัวนับ (counter) โดยมากจะกำหนดให้เป็นตัวแปรแบบจำนวนเต็ม (integer) ตัวนับจะเป็นตัวคอยบอกว่าครบตามจำนวนที่ต้องการรึยัง ถ้ายังไม่ครบก็จะวนไปเรื่อยๆ จนกว่าจะครบ

140 รูปแบบ ของ for for(ค่าเริ่มต้นของตัวนับ เช่น 0;
เปรียบเทียบตัวนับว่ายังอยู่ในช่วงนี้หรือไม่; จำนวนนับเพิ่มทีละเท่าไร หรือลดทีละเท่าไร) { คำสั่งที่ต้องการให้ทำ }

141 โปรแกรม for1.c เริ่มต้นให้ count=0 ทำในขณะที่ count<10
#include<stdio.h> Void 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

142 ผลรันโปรแกรม Begin Hello End คำว่า Hello จะถูกแสดงทั้งหมด 10 ครั้ง โดยที่ตัวแปร count คือตัวแปรที่ใช้เป็นตัวนับ เราให้ค่าเริ่มต้นเป็น 1 และจะเพิ่มค่าขึ้นทีละ 1 ไปเรื่อยๆ ในขณะที่ตัวแปร count ยังน้อยกว่า 10 แต่ถ้าตัวแปร count เท่ากับ 10 เมื่อไร่ เงื่อนไขจะเป็นเท็จ โปรแกรมก็จะหลุดออกจากคำสั่ง for ทันที

143 โปรแกรม สูตรคูณ แบบฝึกหัด 3 จงเขียนผลรันที่ได้จาก การรันโปรแกรมนี้
#include<stdio.h> Void 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”); แบบฝึกหัด 3 จงเขียนผลรันที่ได้จาก การรันโปรแกรมนี้

144 END OF CHEPTER 7 ANY QUESTION ?


ดาวน์โหลด ppt บทที่ 1 บทนำ 1.1 ฮาร์ดแวร์คอมพิวเตอร์ 1.2 ซอฟต์แวร์คอมพิวเตอร์

งานนำเสนอที่คล้ายกัน


Ads by Google