1 / 85

ภาษาโปรแกรม (ภาษาซี)

ภาษาโปรแกรม (ภาษาซี). 1. ประวัติความเป็นมา. ภาษา BCPL. ภาษา B. ภาษา C. Basic Combined Programming Language. พ.ศ. 2515 โดย เดนนิช ริทชี่. บนเครื่อง PDP-7 (UNIX) พ.ศ. 2513. # header ส่วนที่ 1 main( )

hada
Download Presentation

ภาษาโปรแกรม (ภาษาซี)

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. ภาษาโปรแกรม (ภาษาซี)

  2. 1. ประวัติความเป็นมา ภาษา BCPL ภาษา B ภาษา C Basic Combined Programming Language พ.ศ. 2515 โดย เดนนิช ริทชี่ บนเครื่อง PDP-7 (UNIX) พ.ศ. 2513 สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  3. # header ส่วนที่ 1 main( ) { /* เริ่มโปรแกรม */ declaration ส่วนที่ 2 ……… คำสั่งต่าง ๆ ส่วนที่ 3 } 2. โครงสร้างพื้นฐานของภาษาซี สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  4. ส่วนที่ 1 เป็นส่วนที่ระบุให้ซีคอมไพเลอร์เตรียมการทำงานที่กำหนด ในส่วนนี้ไว้ โดยหน้าคำสั่งจะมีเครื่องหมาย # เช่น # include <stdio.h> เป็นการระบุให้นำไฟล์ stdio.h มารวมกับไฟล์นี้ เพื่อที่จะ สามารถใช้คำสั่งที่อยู่ในไฟล์นี้มาใช้งานได้ หรือ # define START 0 เป็นการกำหนดค่าคงที่ให้กับตัวแปร START โดยให้มีค่าเป็น 0 หรือ # define temp 37 เป็นการกำหนดให้ตัวแปร temp มีค่าเท่ากับ 37 สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  5. ส่วนที่ 2declaration เป็นการกำหนดชนิดข้อมูลที่จะใช้ใน โปรแกรมซึ่งตัวแปรหรือข้อมูลต่าง ๆ นั้นจะต้องถูก ประกาศ (declare) ในส่วนนี้ก่อน จึงจะสามารถนำไปใช้ ในโปรแกรมได้ เช่น int stdno; เป็นการกำหนดว่าตัวแปร stdno เป็นข้อมูลชนิดจำนวนเต็ม หรือ interger ซึ่งอาจได้แก่ค่า 0,4,-1,-3,…. เป็นต้น float score; เป็นการกำหนดว่าตัวแปร scoreเป็นข้อมูลชนิดเลขมีจุด ทศนิยม (floating point)ซึ่งอาจมีค่า 0.23, 1.34, -21.002, เป็นต้น สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  6. ส่วนที่ 3Body คือส่วนของตัวโปรแกรม ฟังก์ชัน ต่างๆ เช่น ฟังก์ชัน main ( ) ใส่เครื่องหมายกำหนดขอบเขตเริ่มต้นคือ { หลังจากนั้นใส่คำสั่งหรือฟังก์ชันต่างๆ โดยแต่ละคำสั่ง หรือฟังก์ชันนั้นๆ จะต้องปิดด้วยเครื่องหมาย ; เมื่อต้องการจบใส่เครื่องหมาย} ปิดท้าย เช่น main ( ) { /* เริ่มต้น */ คำสั่งต่าง ๆ ; ฟังก์ชัน; …………… …………... } /* จบ */ สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  7. เครื่องหมายต่าง ๆ {} - เป็นตัวกำหนดขอบเขตหรือบล็อกของฟังก์ชัน ( ) - เป็นการระบุตัวผ่านค่าหรืออาร์กิวเมนต์ให้กับฟังก์ชัน ถ้าภายในวงเล็บไม่มีข้อความใด ๆ แสดงว่าไม่มีตัวผ่าน ค่าที่ต้องการระบุสำหรับฟังก์ชันนั้น ๆ /* */ - เป็นการกำหนด comment หรือข้อความ ที่ไม่ ต้องการให้คอมไพเลอร์ปฏิบัติงาน ซึ่งข้อความที่อยู่ ภายในเครื่องหมายนี้จะถือว่า ไม่ใช่คำสั่งปฏิบัติงาน สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  8. ตัวอย่างโปรแกรม โปรแกรมที่ 1 # include <stdio.h> int main (void ) { printf(“Hello, Good morning. \n”); } เป็นโปรแกรมสั่งพิมพ์ข้อความHello, Good morning. สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  9. โปรแกรมที่ 2 # include <stdio.h> main ( ) { float point; printf("\n\nPut your score in\n"); scanf("%f", &point); printf("Your score is %f point\n\n", point); } เป็นโปรแกรมรับคะแนนและเก็บค่าที่ตัวแปร point หลังจากนั้นสั่งให้มีการพิมพ์คะแนนออกมา สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  10. ชนิดของข้อมูลและตัวแปรในภาษาซีชนิดของข้อมูลและตัวแปรในภาษาซี int number; float point; การกำหนดชื่อตัวแปร หลักการมีดังนี้ 1. ต้องขึ้นต้นด้วยตัวอักษร 2. ห้ามใช้เครื่องหมายทางคณิตศาสตร์ในชื่อตัวแปร 3. สามารถใช้เครื่องหมาย underline ‘_’ ได้ 4. ห้ามใช้ reserved words เช่น int, float, etc. Note:คอมไพเลอร์ในภาษาซีสามารถเห็นความแตกต่างของชื่อตัวแปรได้ยาวไม่เกิน 8 ตัวอักษร และชื่อตัวแปรจะแตกต่างกันถ้าใช้รูปแบบของตัวอักษรต่างกัน X y _time DAY day day_of _week AverageOfAge สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  11. คำสงวน (Keywords) int do;  สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  12. ตัวอย่างการตั้งชื่อ char string; int temp2,temp3; char cha; float 2grade; int temperature_2; int tripple-x int integer; int floate;         สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  13. แบบข้อมูลและขนาด แบบข้อมูลหรือชนิดของตัวแปรต่าง ๆ ที่กำหนดไว้ในภาษาซี charชนิดของตัวอักษรหรืออักขระ int ชนิดจำนวนเต็มปกติ short ชนิดจำนวนเต็มปกติ long ชนิดจำนวนเต็มที่มีความยาวเป็น 2 เท่า unsigned ชนิดของเลขที่ไม่คิดเครื่องหมาย float ชนิดเลขมีจุดทศนิยม double ชนิดเลขที่มีจุดทศนิยมความยาวเป็น 2 เท่า สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  14. ตารางแสดงเนื้อที่ในหน่วยความจำและค่าตัวเลขที่เก็บของข้อมูลแต่ละชนิดตารางแสดงเนื้อที่ในหน่วยความจำและค่าตัวเลขที่เก็บของข้อมูลแต่ละชนิด สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  15. ในการเขียนโปรแกรม แบบข้อมูลที่ใช้จะแบ่งออกเป็น 4 กลุ่มใหญ่ ดังนี้ ข้อมูลและตัวแปรชนิดอักขระ ข้อมูลและตัวแปรชนิดจำนวนเต็ม ข้อมูลและตัวแปรชนิดเลขมีจุดทศนิยม ข้อมูลและตัวแปรแบบสตริง สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  16. ข้อมูลและตัวแปรชนิดอักขระข้อมูลและตัวแปรชนิดอักขระ 1 อักขระแทนด้วย char โดยอยู่ภายในเครื่องหมาย ‘ ’ เช่น # include <stdio.h> main ( ) { char reply; reply = ‘y’; ………………… } reply = “A”; สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  17. การให้ค่าอักขระที่เป็นรหัสพิเศษหรือรหัสควบคุมการให้ค่าอักขระที่เป็นรหัสพิเศษหรือรหัสควบคุม อักขระเหล่านี้ไม่สามารถให้ค่าโดยตรง แต่จะทำได้โดยการให้ค่าเป็นรหัส ASCII ซึ่งจะเขียนในรูปของเลขฐานแปด โดยใช้เครื่องหมาย ‘\’ นำหน้า หรือใช้ตัวอักขระที่กำหนดให้กับรหัสนั้น ๆ เขียนตามเครื่องหมาย ‘\’ สำหรับรหัสบางตัว เช่น รหัส BELL แทนด้วย ASCII 007 ซึ่งกำหนดได้ดังนี้ beep = ‘\007’; หรือรหัสควบคุมการขึ้นบรรทัดใหม่ ตัวอักขระที่กำหนดให้กับรหัส คือ n สามารถกำหนดเป็น newline = ‘\n’; สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  18. ตัวอย่างโปรแกรม # include <stdio.h> main ( ) { char newline; newline = ‘\n’; printf(“Hello, Good morning. %c”,newline); printf(“Hello, Good morning.\n”); printf(“ส่งเสียงปี๊บ \007”); } ผลลัพธ์ Hello, Good morning. Hello, Good morning. ส่งเสียงปี๊บ สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  19. ข้อมูลและตัวแปรชนิดจำนวนเต็มข้อมูลและตัวแปรชนิดจำนวนเต็ม จำนวนเต็มในภาษาซีสามารถใช้แทนได้ 4 รูปแบบคือ int, short, longและ unsigned สำหรับการกำหนดตัวแปรแบบ unsigned คือจำนวนเต็มที่ไม่คิดเครื่องหมายนั้นจะต้องใช้ควบคู่กับรูปแบบข้อมูลจำนวนเต็มชนิดอื่น ๆ คือ int หรือ short หรือ long ตัวอย่างเช่น unsigned int plusnum; unsigned long width; unsigned short absno; /* absolute number */ สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  20. ข้อมูลและตัวแปรชนิดเลขมีจุดทศนิยมข้อมูลและตัวแปรชนิดเลขมีจุดทศนิยม สำหรับเลขมีจุดทศนิยมนั้นแทนได้ 2 แบบคือ floatและ doubleโดย double เก็บค่าได้เป็น 2 เท่าของ float สำหรับงานทางวิทยาศาสตร์ที่ต้องการความละเอียดในการเก็บค่า มักใช้การเก็บในรูปแบบนี้ คือเก็บแบบเอ็กโพเนนซ์ ดังตัวอย่างต่อไปนี้ ตัวเลข แสดงแบบวิทยาศาสตร์ แบบเอ็กโพเนนซ์ 9,000,000,000 9.0*109 9.0e9 345,000 3.45*105 3.45e5 0.00063 6.3*10-4 6.3e-4 0.00000924 9.24*10-6 9.24e-6 สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  21. ข้อมูลและตัวแปรแบบสตริงข้อมูลและตัวแปรแบบสตริง สตริงหมายถึงตัวอักขระหลาย ๆ ตัวมาประกอบกันเป็นข้อความ ซึ่งการที่นำตัวแปรหลาย ๆ ตัวมาเก็บรวมกันในภาษาซีนี้เรียกว่า อะเรย์ (array) ดังนั้นข้อมูลแบบสตริงคือ อะเรย์ของตัวอักขระ นั่นเอง เครื่องหมายของอะเรย์คือ [ ] รูปแบบการกำหนดสตริงจึงมี ลักษณะดังนี้ char name[30]; หมายถึง ตัวแปร name เป็นชนิด char ที่มีความยาว 30 ตัวอักษร โดยเก็บเป็น อะเรย์ การเก็บนั้นจะเก็บเรียงกันทีละไบต์ และไบต์สุดท้าย เก็บรหัส null คือ \0 ดังนั้นจะเก็บได้จริงเพียง 29 ตัวอักษร สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  22. Mr. Surasak is 18 years old and tall 172.500000 cms. 6 ช่อง การกำหนดค่าให้ตัวแปรและการส่งผลลัพธ์ การกำหนดค่าให้ตัวแปรอาจทำได้โดยกำหนดในโปรแกรม หรือกำหนดในขณะที่มีการกำหนดชนิดก็ได้ เช่น main ( ) { int age = 18; float height; height = 172.5; printf(“Mr. Surasak is %d years old”,age); printf(“ and tall %f cms.\n”,height); } กำหนดค่าเริ่มต้น ประกาศตัวแปร กำหนดค่า สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  23. sum valuea count ตัวอย่างของโปรแกรมในการกำหนดค่าและส่งค่าผลลัพธ์ # include <stdio.h> main ( ) { int sum,valuea; int count = 1; valuea = 4; sum = count + valuea; printf(“Total value is %d.\n”,sum); } ผลลัพธ์จะปรากฏข้อความ: Total value is 5. 1 byte 1 สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  24. รูปแบบการแสดง ฟังก์ชัน printf( ) และ scanf( ) รูปแบบของ printf ( ) printf( ส่วนควบคุมการพิมพ์, อาร์กิวเมนต์, อาร์กิวเมนต์,...) ส่วนควบคุมการพิมพ์ เป็นสตริงที่มีข้อความและรูปแบบของการพิมพ์โดยอยู่ในเครื่องหมาย “ ” อาร์กิวเมนต์ เป็นส่วนที่จะนำข้อมูลมาพิมพ์ ตามรูปแบบที่กำหนดมาในส่วนควบคุมการพิมพ์ เช่น printf(“Hello World”); printf(“The sum of %d and %d is %d\n”, a , b , a+b ); สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  25. รูปแบบที่ใช้สำหรับกำหนดการพิมพ์ในฟังก์ชัน printf %d พิมพ์ด้วยเลขฐานสิบ %o ”” เลขฐานแปด %x ”” เลขฐานสิบหก %u ”” เลขฐานสิบแบบไม่คิดเครื่องหมาย %e ” ” ตัวเลขแบบวิทยาศาสตร์ เช่น 2.13e45 %f ” ” ตัวเลขมีจุดทศนิยม %g ” ” รูปแบบ %e หรือ %f โดยเลือกแบบ ที่สั้นที่สุด สำหรับสตริงมีรูปแบบการพิมพ์ดังนี้ %c พิมพ์ด้วยตัวอักษรตัวเดียว %s ” ”ข้อความ สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  26. printf("%c %d %f %e %s %d%%\n", '1', 2, 3.14, 56000000., "eight", 9); 1 2 3.140000 5.600000e+07 eight 9% 12ช่อง 6 ช่อง ตัวอย่าง char ch=‘J’; printf(“char : %c, dec : %d, oct : %o, hex : %x”, ch, ch, ch, ch); ผลลัพธ์ char : J, dec : 74, oct : 112, hex : 4a สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  27. การเพิ่มส่วนขยายเพื่อจัดรูปแบบการแสดงการเพิ่มส่วนขยายเพื่อจัดรูปแบบการแสดง printf("%f",2.5); 2.500000 เพิ่มส่วนขยายการเพื่อจัดรูปแบบการแสดง ให้เหมาะสม 2.5 สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  28. เครื่องหมายสำหรับปรับเปลี่ยนรูปแบบของข้อมูลเครื่องหมายสำหรับปรับเปลี่ยนรูปแบบของข้อมูล เครื่องหมายลบ ให้พิมพ์ข้อมูลชิดขอบซ้าย (ปกติข้อมูลทั้งหมดจะพิมพ์ชิดขวา) สตริงตัวเลข ระบุความกว้างของฟิลด์ จุดทศนิยม เป็นการกำหนดความกว้างของจุดทศนิยม Note การปรับเปลี่ยนรูปแบบของข้อมูลนี้ทำได้โดย การใส่ เครื่องหมายเหล่านี้ระหว่างเครื่องหมาย % และเครื่องหมาย ที่กำหนดรูปแบบการพิมพ์ สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  29. เครื่องหมาย– • ปกติการแสดงข้อมูลจะแสดงผลชิดด้านขวามือ • สามารถใช้ตัวขยาย – ในการบังคับการแสดงชิดซ้าย • ตัวอย่าง สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  30. ตัวเลข เช่น%5d • ใช้กำหนดจำนวนช่องที่ใช้ในการแสดงผล • กรณีค่าของข้อมูลต้องการช่องน้อยกว่าที่กำหนดจะแสดงผลโดยจัดชิด ด้านขวา ด้านหน้าที่เหลือเป็นช่องว่าง ตัวอย่างint age = 25; printf(“ age is: %4d”, age); ผลลัพธ์คือ age is: _ _ 25_ หมายถึงช่องว่าง • กรณีค่าของข้อมูลต้องการช่องมากกว่าจะแสดงผลโดยไม่สนใจจำนวนช่อง ตัวอย่างint total = 5600;ผลลัพธ์คือ printf(“Total=%3d”, total);Total=5600 สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  31. จุดทศนิยมตามด้วยตัวเลข(.ตัวเลข)จุดทศนิยมตามด้วยตัวเลข(.ตัวเลข) • ใช้กำหนดการแสดงจำนวนตัวเลขหลังจุดทศนิยม • ตัวอย่างกำหนดให้ float rate = 2.5; สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  32. รูปแบบของ scanf ( ) scanf( ส่วนควบคุมข้อมูล, อาร์กิวเมนต์, อาร์กิวเมนต์,...) ส่วนควบคุมข้อมูล เป็นการกำหนดรูปแบบข้อมูลในเครื่องหมาย “ ” อาร์กิวเมนต์ เป็นส่วนที่จะนำข้อมูลมาเก็บ(ในตัวแปร) ซึ่งชนิดของข้อมูลต้องตรงตามรูปแบบที่กำหนดในส่วนควบคุมข้อมูล การกำหนดลักษณะอาร์กิวเมนต์มีได้ 2 แบบดังนี้ ถ้าข้อมูลนั้นอาจจะนำไปใช้ในการคำนวณ - จะใส่เครื่องหมาย & หน้าตัวแปร ถ้าข้อมูลนั้นเป็นข้อความที่จะนำไปเก็บไว้ในตัวแปรเลย - ไม่จำเป็นต้องใส่เครื่องหมาย & หน้าตัวแปร สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  33. ตัวอย่าง1 การใช้ scanf • กำหนดตัวแปร int age; • แสดงข้อความทางจอภาพ printf (“ Enter your age:”); • รับค่าที่ผู้ใช้ป้อนซึ่งเป็นตัวเลขจำนวนเต็ม และจัดเก็บลงหน่วยความของตัวแปร age scanf (“ %d”, &age); สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  34. ตัวอย่าง2 การใช้ scanf • กำหนดตัวแปร int a, b; • แสดงข้อความเพื่อรับค่าตัวเลขจำนวนเต็ม 2 จำนวนให้กับตัวแปร a และ b printf(“Enter number 1:”); scanf(“%d”, &a); printf(“Enter number 2:”); scanf(“%d”, &b); สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  35. ตัวอย่างโปรแกรม รับเงินเดือนพนักงาน พร้อมแสดงเงินเดือนในรูปทศนิยม 2 ตำแหน่ง #include <stdio.h> main ( ) { float salary; printf("Enter your salary : "); scanf("%f",&salary); printf("Your salary is %.2f",salary); getch(); } สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  36. เขียนโปรแกรมเพื่อรับตัวเลขจำนวนเต็ม 2 จำนวน แสดงตัวเลขทั้ง 2 คนละบรรทัดโดยให้หลักตรงกัน ตัวอย่างเช่น ตัวเลขที่รับคือ 52 และ 123 ผลลัพธ์แสดงออกทางจอภาพคือ 52 123 #include <stdio.h> main ( ) { int a,b; printf("Enter number 1 : "); scanf("%d",&a); printf("Enter number 2 : "); scanf("%d",&b); printf("\n%5d\n%5d\n", a, b); } สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  37. โอเปอเรเตอร์และนิพจน์โอเปอเรเตอร์และนิพจน์ การแทนโอเปอเรเตอร์ทางคณิตศาสตร์สำหรับภาษาซี + การบวก - การลบ * การคูณ / การหาร % การหารเอาเศษ (โมดูลัส) 3 + 2 นิพจน์ประกอบด้วยตัวดำเนินการ และตัวถูกดำเนินการ สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓ a * b

  38. ลำดับความสำคัญของตัวดำเนินการลำดับความสำคัญของตัวดำเนินการ หน้า 91 สูง ต่ำ ตัวอย่าง y = 7 + 8 * 2; y = 5 % 2 + 15 / 3 - 6; สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  39. การเปลี่ยนชนิดของข้อมูลการเปลี่ยนชนิดของข้อมูล ทำได้โดยระบุชนิดที่ต้องการเปลี่ยนภายในเครื่องหมาย ( ) แล้ววางหน้าตัวแปรหรือข้อมูลที่ต้องการเปลี่ยนแปลงชนิด float money; ต้องการเปลี่ยนตัวแปร float ไปเป็น integer ทำได้ดังนี้ (int) money; int cost; cost = 2.7+4.5; cost = (int)2.7+(int)4.5; สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  40. การเพิ่มค่าและลดค่าตัวแปรการเพิ่มค่าและลดค่าตัวแปร ++n เพิ่มค่า n อีก 1 --n ลดค่า n ลง 1 ความแตกต่างระหว่าง count++และ ++count เช่น count = 5; x = count++; จะได้ค่า x เท่ากับ 5 แล้วค่า count เท่ากับ 6 count = 5; x = ++count; จะได้ค่า x เท่ากับ 6 สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  41. นิพจน์กำหนดค่า (Assignment expression) เครื่องหมายที่ใช้กำหนดค่าคือ = โดยเป็นการกำหนดค่าทางขวาของเครื่องหมาย ให้กับตัวแปรที่อยู่ ทางซ้าย เช่น j = 7+2 หรือ k = k+4 3.4.6 เครื่องหมายและนิพจน์เปรียบเทียบ > หรือ >= มากกว่า หรือ มากกว่าเท่ากับ < หรือ <= น้อยกว่า หรือ น้อยกว่าเท่ากับ == เท่ากับ != ไม่เท่ากับ สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  42. ความแตกต่างของเครื่องหมาย = และ == เครื่องหมาย = เป็นตัวกำหนดค่า ในขณะที่เครื่องหมาย == เป็นเครื่องหมายเปรียบเทียบ ตัวอย่างเช่น point = 44; หมายถึง เป็นการกำหนดค่าให้กับตัวแปร point ให้มีค่าเท่ากับ 44 point == 44 หมายถึง เป็นการตรวจสอบว่าค่า point มีค่าเท่ากับ 44 หรือไม่ if( point = 50 ) สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  43. แสดงผลลัพธ์ #include <stdio.h> int nickels,dimes,TotCenter; main() { nickels = 3; dimes = 7; TotCenter = (nickels * 5) + (dimes * 10); printf(“%d nickels and %d dimes \n” , nickels, dimes); printf(“= %d cents \n”,TotCenter); } 3 nickels and 7 dimes = 85 cents สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  44. เขียนโปรแกรมเพื่อคำนวณจำนวนเงินที่ขายสินค้าเขียนโปรแกรมเพื่อคำนวณจำนวนเงินที่ขายสินค้า ได้ในวันนี้โดยได้รับ เหรียญ 5 จำนวน 25 เหรียญ แบงค์ 10 จำนวน 122 ใบ แบงค์ 20 จำนวน 26 ใบควรกำหนดตัวแปรให้กับเงินแต่ละประเภท นำเหรียญบาทมาแลกจำนวน 155 บาท สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  45. เครื่องหมายและนิพจน์เปรียบเทียบแบบตรรกศาสตร์เครื่องหมายและนิพจน์เปรียบเทียบแบบตรรกศาสตร์ && และ (and) | | หรือ (or) ! ไม่ (not) ค่าของนิพจน์เปรียบเทียบเชิงตรรก นิพจน์ที่ 1 && นิพจน์ที่ 2 เป็นจริง เมื่อนิพจน์ทั้งสองเป็นจริง นิพจน์ที่ 1 | |นิพจน์ที่ 2 เป็นจริง เมื่อนิพจน์ใดนิพจน์หนึ่ง เป็นจริงหรือ ทั้งสองนิพจน์นั้นเป็นจริง ! นิพจน์เปรียบเทียบ เป็นจริง เมื่อนิพจน์เปรียบเทียบเป็นเท็จ สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  46. ตัวอย่างการใช้ && และ || ต้องการค่าที่อยู่ในช่วงตั้งแต่ 10 ถึง 50 [10..50] ควรเขียนนิพจน์อย่างไร (x>=10) && (x<=50) (x>=10) || (x<=50) 10  25  30  60  สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  47. คำสั่งควบคุม (Control Statements) • คำสั่งการเลือก (Selection Statements) • คำสั่งการทำซ้ำ (Iteration Statements) • คำสั่ง break (Break Statement) • คำสั่ง continue (Continue Statement) • คำสั่ง goto (Goto Statement) สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  48. คำสั่งการเลือก(Selection/Condition Statement) คำสั่งการเลือก สามารถเขียนโดยใช้ • คำสั่ง if (if statement) มี 2 รูปแบบ • if • if-else • คำสั่ง Switch (switch statement) สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  49. Condition? true Statement(s) false Rest of the program คำสั่ง if รูปแบบของคำสั่ง if ( เงื่อนไข ) คำสั่งที่ต้องทำ ถ้าเงื่อนไขนั้นเป็นจริง; ตัวอย่างเช่น if (score >= 80) grade = ‘A’; /* simple statement */ หรือ if (math >= 60 && eng >= 55) { grade = ‘S’; /* compound statement */ printf(“Your grade is %c\n”,grade); } สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

  50. ตัวอย่างโปรแกรมการใช้คำสั่ง if #include <stdio.h> main() { int n = 3; if (n < 10) printf(“n less than 10 \n”); printf(“Thank you ”); } ผลลัพธ์ n less than 10 Thank you สำหรับอบรมครูคอมพิวเตอร์ (SP2) / พ.ศ. ๒๕๕๓

More Related