1 / 110

418115: Structured Programming การบรรยายครั้งที่ 3 & 4

418115: Structured Programming การบรรยายครั้งที่ 3 & 4. ประมุข ขันเงิน pramook@gmail.com. โปรแกรม #1. void main() { }. โปรแกรม #1. โปรแกรมนี้ทำอะไร ? ไม่ได้ทำอะไร ข้างในไม่มีคำสั่งอะไรเลย เข้ามาแล้วก็ออกไป. โปรแกรม #1. main() คืออะไร ? ฟังก์ชัน ฟังก์ชันคืออะไร ? โปรแกรมย่อย

deanne
Download Presentation

418115: Structured Programming การบรรยายครั้งที่ 3 & 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 418115: Structured Programmingการบรรยายครั้งที่ 3 & 4 ประมุข ขันเงิน pramook@gmail.com

  2. โปรแกรม #1 void main() { }

  3. โปรแกรม #1 • โปรแกรมนี้ทำอะไร? • ไม่ได้ทำอะไร • ข้างในไม่มีคำสั่งอะไรเลย • เข้ามาแล้วก็ออกไป

  4. โปรแกรม #1 • main() คืออะไร? • ฟังก์ชัน • ฟังก์ชันคืออะไร? • โปรแกรมย่อย • ทำหน้าที่เฉพาะตัวอย่างหนึ่ง • ให้โปรแกรมใหญ่เรียกใช้ • แล้วโปรแกรมใหญ่ล่ะ? • ระบบปฏิบัติการ (OS)

  5. โปรแกรม #2 #include <stdio.h> void main() { printf(“Hello, world!\n”); }

  6. โปรแกรม #2 • โปรแกรมนี้ทำอะไร? • พิมพ์ Hello, world!

  7. โปรแกรม #2 • #include <stdio.h> คืออะไร? • ใช้บอกว่าเราจะไปเอาฟังก์ชันจากไฟล์ชื่อ stdio.h มาใช้ • stdio.h เป็นไฟล์ที่เราเรียกว่า header file • มันบรรจุชื่อและข้อมูลอื่นๆ ของฟังก์ชันที่ฟังก์ชัน main ของเราจะไปเรียกใช้ได้

  8. โปรแกรม #2 • #include <stdio.h> คืออะไร? • ใช้บอกว่าเราจะไปเอาฟังก์ชันจากไฟล์ชื่อ stdio.h มาใช้ • stdio.h เป็นไฟล์ที่เราเรียกว่า header file • มันบรรจุชื่อและข้อมูลอื่นๆ ของฟังก์ชันที่ฟังก์ชัน main ของเราจะไปเรียกใช้ได้ • เราใช้ฟังก์ชันอะไรจาก stdio.h? • printf

  9. โปรแกรม #2 • printf มีไว้ทำอะไร? • พิมพ์ข้อความออกทาง standard output • standard output คืออะไร? • ช่องทางแสดงผลลัพธ์ที่ระบบปฏิบัติการสร้างให้โปรแกรมตามปกติ • ส่วนมากคือหน้าจอ • แต่เราสามารถบอกให้ระบบปฏิบัติการต่อ standard output เข้าไฟล์หรือการ์ดเน็ตเวิร์กก็ได้

  10. โปรแกรม #2 • “Hello, world!\n” คืออะไร? • ข้อมูลประเภทข้อความ • ภาษา C เรียกข้อมูลประเภทนี้ว่าสตริง(string) • ในภาษา C เราเขียนข้อความประเภท string ได้ด้วยการใช้เครื่องหมายฟันหนู (“) ล้อมรอบข้อความที่ต้องการ • ตัวอย่างเช่น “one”, “Franscesca Lucchini”, “3.1415”

  11. โปรแกรม #2 • อ้าว! ทำไมพิมพ์ออกมาแล้วไม่เห็นมี \n? • ข้อความ \n เป็นข้อความพิเศษ • เรียกว่า escape sequence • ตัว \n แทน การเว้นบรรทัด

  12. โปรแกรม #3 • ผลลัพธ์ของโปรแกรมนี้ควรจะเป็นอย่างไร? #include <stdio.h> void main() { printf(“one\ntwo\nthree\n”); printf(“four\nfive\nsix\n”); }

  13. โปรแกรม #3 one two three four five six

  14. Escape Sequence อื่นๆ

  15. แบบฝึกหัด #1 • เขียนโปรแกรมเพื่อพิมพ์ข้อความ a\b\\”c” de’f’

  16. แบบฝึกหัด #1 #include <stdio.h> void main() { printf(“a\\b\\\\\”c\”\n”); printf(“de\’f\’”); }

  17. แบบฝึกหัด #1 #include <stdio.h> void main() { printf(“a\\b\\\\\”c\”\n”); printf(“de’f’”); }

  18. เครื่องหมายเซมิโคลอน (;) • เวลาเราเรียกฟังก์ชันหนึ่งครึ่ง ถือเป็นคำสั่งหนึ่งคำสั่ง • มีคำสั่งแบบอื่นๆ อีกมากมายที่จะได้เรียน • ทุกคำสั่งต้องจบด้วยเครื่องหมายเซมิโคลอน (;) เสมอ • ระวังใส่เครื่องหมายเซมิโคลอนหลังทุกคำสั่งด้วย

  19. โปรแกรม #4 #include <stdio.h> void main() { printf(“First value is %d.\n”, 5); printf(“Second value is %d.\n”, 7); }

  20. โปรแกรม #4 • printf(“First value is %d.”, 5); • ข้อมูลที่เราป้อนให้ฟังก์ชันเวลาสั่งให้มันทำงาน เรียกว่า อาร์กิวเมนต์ (argument) • เวลามี argument หลายๆ ตัว เราจะคั่นมันด้วยเครื่องหมายคอมมา (,) • ตอนนี้ printf มี argument สองตัว • สตริง “First value is %d.” • ตัวเลขจำนวนเต็ม 5

  21. โปรแกรม #4 • อาร์กิวเมนต์ตัวแรกของ printf จะต้องเป็นสตริงเสมอ • เพราะมันคือข้อความที่เราจะพิมพ์ออกไป • แล้วอาร์กิวเมนต์ตัวอื่นๆ ที่ตามมาล่ะ? • มันจะถูกนำไปแทนค่าใส่ใน ชุดอักขระจัดรูปแบบ • แล้วชุดอักขระจัดรูปแบบที่ว่านั่นอยู่ไหน? • “First value is %d.” • %dบอกว่ามันจะพิมพ์ค่าที่เอามาแทนเป็น เลขฐานสิบ (decimal)

  22. โปรแกรม #4 • ผลลัพธ์ของโปรแกรม First value is 5. Second value is 7.

  23. โปรแกรม #5 #incluce <stdio.h> void main() { printf(“Sum of %d and %d is %d.\n”, 9, 4, 9+4); printf(“Difference of %d and %d is %d.\n”,9, 4, 9-4); printf(“Product of %d and %d is %d.\n”, 9, 4, 9*4); printf(“Quotient of %d by %d is %d\n”, 9, 4, 9/4); printf(“Modulus of %d by %d is %d\n”, 9, 4, 9%4); }

  24. โปรแกรม #5 • ผลลัพธ์ Sum of 9 and 4 is 13. Difference of 9 and 4 is 5. Product of 9 and 4 is 36. Quotient of 9 and 4 is 2. Modulus of 9 and 4 is 1.

  25. โปรแกรม #5 • printf(“Sum of %d and %d is %d.\n”, 9, 4, 9+4); • แสดงให้เราเห็นว่า printf จะมี argument กี่ตัวก็ได้ • argument ตัวที่ตามหลังมาจะถูกนำไปแทรกที่อักขระจัดรูปแบบตามลำดับที่อักขระจัดรูปแบบปรากฏ

  26. โปรแกรม #5 • 9+4, 9-4, 9*4, 9/4 และ 9%4 • เราเรียกพวกนี้ว่า นิพจน์ • นิพจน์มีผลลัพธ์ ซึ่งจะเป็นค่าหนึ่งค่า • เครื่องหมายสำหรับการคำนวณเชิงคณิตศาสตร์ • เครื่องหมาย +และ -แทนการบวกและการลบ ตามลำดับ • เครื่องหมาย *แทนการคูณ • เครื่องหมาย /แทนการหาร • ถ้าเอาจำนวนเต็มมาหารกันก็จะได้จำนวนเต็ม • เครื่องหมาย %แทนการหารเอาเศษ

  27. โปรแกรม #5 • เครื่องหมายพวกนี้มีลำดับความสำคัญเหมือนกับในทางคณิตศาสตร์ • + และ – มีความสำคัญเท่ากัน • * และ / และ % มีความสำคัญเท่ากัน • * และ / และ % มีความสำคัญมากกว่า + และ – • เราสามารถใช้วงเล็บเพื่อจัดลำดับการคำนวณได้

  28. แบบฝึกหัด #2 • ผลลัพธ์ของโปรแกรมนี้คืออะไร? #include <stdio.h> void main() { printf(“%d\n”, 7+10%3); printf(“%d\n”, (7+10)%3); printf(“%d\n”, 7+10%3*4-(5*20)); }

  29. แบบฝึกหัด #2 8 2 -89

  30. โปรแกรม #6 #incluce <stdio.h> void main() { printf(“%f + %f = %f\n”, 9.0, 4.0, 9.0+4.0); printf(“%f - %f = %f\n”, 9.0, 4.0, 9.0-4.0); printf(“%f * %f = %f\n”, 9.0, 4.0, 9.0*4.0); printf(“%f / %f = %f\n”, 9.0, 4.0, 9.0/4.0); }

  31. โปรแกรม #6 • ผลลัพธ์ของโปรแกรม 9.000000 + 4.000000 = 13.000000 9.000000 - 4.000000 = 13.000000 9.000000 * 4.000000 = 36.000000 9.000000 / 4.000000 = 2.250000

  32. โปรแกรม #6 • ภาษา C สามารถจัดการเลขทศนิยมได้เช่นกัน • ค่าของเลขทศนิยม เวลาพิมพ์ต้องมีจุดทศนิยม มิฉะนั้นภาษา C จะคิดว่าเป็นจำนวนเต็ม • มีเครื่องหมายที่เราใช้ได้สี่เครื่องหมายคือ +, -, *, / • เวลาเอาเลขทศนิยมไปหารเลขทศนิยมก็จะได้เลขทศนิยมกลับมา • เราสามารถพิมพ์ค่าเลขทศนิยมได้ด้วยอักขระจัดรูปแบบ %f

  33. โปรแกรม #7 #include <stdio.h> void main() { int age; age = 15; printf(“The child age is %d\n”, age); }

  34. โปรแกรม #7 • ผลลัพธ์ของโปรแกรม The child age is 15.

  35. ตัวแปร (Variable) • ตำแหน่งในหน่วยความจำ เก็บข้อมูลหนึ่งชิ้น • ตัวแปรต้องมี ชื่อ • ตัวแปรช่วยให้เราแทน ข้อมูล ด้วย ชื่อ ทำให้ไม่จำเป็นต้องรู้ค่าของมัน • ในโปรแกรม #7 มีตัวแปรหนึ่งตัว ชื่อ age • เราพิมพ์ค่าของ age ออกทางด้วย printf ได้เหมือนกับพิมพ์ค่าตัวเลข printf(“The child age is %d\n”, age);

  36. การประกาศตัวแปร • เป็นการบอกว่า • มีตัวแปรชื่อนี้ • ตัวแปรชื่อที่เราประกาศชนิดอะไร • ถ้าจะประกาศตัวแปรแค่ตัวเดียว ให้สั่ง ชนิดข้อมูล ชื่อตัวแปร1; • หรือถ้าจะประกาศพร้อมกันทีละหลายๆ ตัวก็ได้ ชนิดข้อมูล ชื่อตัวแปร 1, ชื่อตัวแปร 2, ชื่อตัวแปร 3, …, ชื่อตัวแปร n;

  37. ตัวอย่าง int age; int x, y, z; float area, length; • int คือชนิดของตัวแปรที่เก็บจำนวนเต็มแบบหนึ่ง • float คือชนิดของตัวแปรที่เก็บจำนวนจริงแบบหนึ่ง

  38. การกำหนดค่าให้ตัวแปร (Assignment) • ใช้เครื่องหมายเท่ากับ (=) โดยมีรูปแบบดังนี้ ชื่อตัวแปร = นิพจน์; ยกตัวอย่างเช่น x = 5; หรือ y = (10*3)%7; • ตัวแปรก็สามารถเข้าไปอยู่ในนิพจน์ได้ เช่น x = 10*y+y/5; • แม้แต่ตัวแปรตัวเดียวกันก็สามารถไปอยู่ทั้งสองฟากของเครื่องหมายเท่ากับได้ • x = x+1; • z = z*z + 2*z + 1 • โปรแกรมจะอ่านค่าที่เก็บในหน่วยความจำมาใช้ในการคำนวณทางด้านซ้าย เมื่อคำนวณเสร็จแล้วจะเอาผลลัพธ์ไปเขียนทับลงในตัวแปรที่อยู่ในด้านขวา • ถ้า x เท่ากับ 5 หลังจากสั่ง x = x+1 จะได้ x เท่ากับ 6 • ถ้า z เท่ากับ 3 หลังจากสั่ง z = z*z + 2*z + 1 แล้ว z จะมีค่าเท่ากับ 16

  39. แบบฝึกหัด #3 #include <stdio.h> void main() { int x, y, z; x = 2; y = 5; z = 6; x = x+y*z; z = y–x-z; y = 4*x/y printf(“%d %d %d\n”, x, y, z); }

  40. แบบฝึกหัด #3 #include <stdio.h> void main() { int x, y, z; x = 2; y = 5; z = 6; x = x+y*z; z = y–x-z; y = 4*x/y printf(“%d %d %d\n”, x, y, z); } 2

  41. แบบฝึกหัด #3 #include <stdio.h> void main() { int x, y, z; x = 2; y = 5; z = 6; x = x+y*z; z = y–x-z; y = 4*x/y printf(“%d %d %d\n”, x, y, z); } 2 5

  42. แบบฝึกหัด #3 #include <stdio.h> void main() { int x, y, z; x = 2; y = 5; z = 6; x = x+y*z; z = y–x-z; y = 4*x/y printf(“%d %d %d\n”, x, y, z); } 2 5 6

  43. แบบฝึกหัด #3 #include <stdio.h> void main() { int x, y, z; x = 2; y = 5; z = 6; x = x+y*z; z = y–x-z; y = 4*x/y printf(“%d %d %d\n”, x, y, z); } 32 2 5 6

  44. แบบฝึกหัด #3 #include <stdio.h> void main() { int x, y, z; x = 2; y = 5; z = 6; x = x+y*z; z = y–x-z; y = 4*x/y printf(“%d %d %d\n”, x, y, z); } 32 2 5 6 5

  45. แบบฝึกหัด #3 #include <stdio.h> void main() { int x, y, z; x = 2; y = 5; z = 6; x = x+y*z; z = y–x-z; y = 4*x/y printf(“%d %d %d\n”, x, y, z); } 32 2 5 6 5 32

  46. แบบฝึกหัด #3 #include <stdio.h> void main() { int x, y, z; x = 2; y = 5; z = 6; x = x+y*z; z = y–x-z; y = 4*x/y printf(“%d %d %d\n”, x, y, z); } 32 2 5 6 5 32 6

  47. แบบฝึกหัด #3 #include <stdio.h> void main() { int x, y, z; x = 2; y = 5; z = 6; x = x+y*z; z = y–x-z; y = 4*x/y printf(“%d %d %d\n”, x, y, z); } 32 2 5 6 -33 5 32 6

  48. แบบฝึกหัด #3 #include <stdio.h> void main() { int x, y, z; x = 2; y = 5; z = 6; x = x+y*z; z = y–x-z; y = 4*x/y printf(“%d %d %d\n”, x, y, z); } 32 2 5 6 -33 5 32 6 32

  49. แบบฝึกหัด #3 #include <stdio.h> void main() { int x, y, z; x = 2; y = 5; z = 6; x = x+y*z; z = y–x-z; y = 4*x/y printf(“%d %d %d\n”, x, y, z); } 32 2 5 6 -33 5 32 6 32 5

  50. แบบฝึกหัด #3 #include <stdio.h> void main() { int x, y, z; x = 2; y = 5; z = 6; x = x+y*z; z = y–x-z; y = 4*x/y printf(“%d %d %d\n”, x, y, z); } 32 2 5 6 -33 5 32 6 32 5 24

More Related