1 / 88

บทที่ 2 แนะนำภาษา C Basic C Program

บทที่ 2 แนะนำภาษา C Basic C Program. ขั้นตอนการพัฒนาโปรแกรม โครงสร้างโปรแกรมภาษา C ตัวแปรและตัวดำเนินการ การแสดงผลและรับค่า ข้อผิดพลาดที่เกิดขึ้นบ่อย. แนะนำภาษา C. ภาษา ซี C Programming Language. ถูกออกแบบและสร้างขึ้นในปี พ.ศ. 2515 (1972) โดย Dennis Ritchie

melora
Download Presentation

บทที่ 2 แนะนำภาษา C Basic C Program

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แนะนำภาษา CBasic C Program

  2. ขั้นตอนการพัฒนาโปรแกรมขั้นตอนการพัฒนาโปรแกรม โครงสร้างโปรแกรมภาษา C ตัวแปรและตัวดำเนินการ การแสดงผลและรับค่า ข้อผิดพลาดที่เกิดขึ้นบ่อย แนะนำภาษา C

  3. ภาษาซี C Programming Language • ถูกออกแบบและสร้างขึ้นในปี พ.ศ. 2515 (1972) โดย Dennis Ritchie • เป็นภาษาเชิงโครงสร้าง (structured programming) โดยมีการนิยามและเรียกใช้ฟังก์ชัน • มีโครงสร้างและลำดับการเขียนที่มีความยืดหยุ่น • สามารถเข้าถึงอุปกรณ์ฮาร์ดแวร์ได้โดยตรง • สามารถขยายโปรแกรมเป็น C++

  4. ขั้นตอนการพัฒนาโปรแกรมขั้นตอนการพัฒนาโปรแกรม • เขียนซอร์สโค้ด (source code) ผ่านโปรแกรมประเภท Text Editor หรือ IDE (Integrated Development Environment)สำหรับโปรแกรมภาษาซีโดยให้บันทึกเป็นไฟล์ นามสกุล .C • ซอร์สโค้ดจะต้องเป็นไปตามโครงสร้างประโยคของภาษา C • คอมไพล์โปรแกรม หากซอร์สโค้ดถูกต้อง จะได้ออบเจ็คไฟล์ (นามสกุล .OBJ หรือ .O) • ลิงค์ออบเจ็คไฟล์เข้าด้วยกัน กลายเป็นไฟล์ที่มีภาษาเครื่อง ที่สามารถนำมารันได้ • นามสกุล .EXE สำหรับ Windows • ไฟล์ที่มีสิทธิ execute สำหรับ Linux (หรือ Unix)

  5. ขั้นตอนการพัฒนาโปรแกรมภาษาซีขั้นตอนการพัฒนาโปรแกรมภาษาซี Compiler (c-free, gcc, dev-c++) Source Code ( file.c ) Object code (file.o) Preprocessing & Compilation Linker Linking ไฟล์ภาษาเครื่อง หรือ ไฟล์โปรแกรม(ไฟล์ที่ทำงานได้) Machine code / Program / executable file ( file.exe )

  6. 3 ขั้นตอนของการพัฒนาโปรแกรม (1) ขั้น 1: Preprocessing • ทำงานโดยโปรแกรมที่เรียกว่า preprocessor • ทำการแก้ไขโค๊ดในหน่วยความจำหลัก (RAM) โดยทำการแก้ไขตามข้อความในซอคโค๊ด • นำช่องว่างและ comments ออกจากโค๊ด • โค๊ดที่อยู่ในฮาร์ดดิสไม่มีการเปลี่ยนแปลง

  7. 3 ขั้นตอนของการพัฒนาโปรแกรม (2) ขั้น 2: Compilation • ทำงานโดยโปรแกรมที่ชื่อว่า compiler • ทำการแปลโค๊ดที่ได้จากขั้นที่ 1 มาอยู่ในรูปของ object code หรือ machine code ซึ่งเป็นภาษาเครื่อง • ทำการตรวจสอบหา ข้อผิดพลาด syntax และ warnings • ทำการบันทึกผลที่ได้ลงไปในฮาร์ดดิส หากมีการสั่ง • หากที่ข้อผิดพลาดเกิดขึ้น จะไม่มีการสร้างไฟล์ object ออกมา • ไฟล์ object จะถูกสร้างขึ้นหากมี warnings แต่ต้องไม่มี errors ใดๆ

  8. 3 ขั้นตอนของการพัฒนาโปรแกรม (2) ขั้น 3: Linking • รวม object ของโปรแกรมกับ object อื่นๆ เพื่อสร้างเป็นโปรแกรมที่สามารถรันได้ • Object code อื่นๆได้มาจาก Run-Time Library หรือ ไลบรารี่อื่นๆ หรือ object code ที่มีการสร้างขึ้นมาก่อนหน้านี้ • บันทึกโปรแกรมที่สามารถรันได้ลงฮาร์ดดิส • หากมีข้อผิดพลาด (errors) ใดๆ เกิดขึ้น (หา library ไม่พบ, เขียนไฟล์ลงดิสก์ไม่ได้, ฯลฯ) จะไม่มีการสร้างโปรแกรมที่รันได้ (executable file) • เมื่อสำเร็จ ผลลัพธ์ จะได้ไฟล์โปรแกรมที่รันได้ (EXE file)

  9. Source Code -------------------------- -------------------------- Compiler Object File --.obj Library ---------------- -------------------------- Linker Executable File --.exe OS Hardware ขั้นตอนการพัฒนาโปรแกรม • มีการแปล Source Code ทั้งหมดก่อนได้ Object File • นำมาประกอบกับ Code บางส่วนที่เตรียมไว้แล้ว (Library) • ได้ผลลัพธ์เป็น machine language (Executable File)

  10. โปรแกรมแรกกับภาษา C Pre-processor # include <stdio.h> int main (void) { // My first program printf(“Hello World!!!”); system(“PAUSE”); return 0; } ฟังก์ชัน main comment คำอธิบายโปรแกรม คำสั่ง ขอบเขตของฟังก์ชันmain เป็นโปรแกรมสั่งพิมพ์ข้อความHello World!!!

  11. ส่วนต่างๆ ในโปรแกรมภาษาซี • Comment ส่วนหัวและ/หรือส่วนอื่นๆของโปรแกรม • ส่วนของ preprocessors • int main ( void ) • { • ส่วนของโปรแกรม • return 0 ; • }

  12. Comment คำอธิบายโปรแกรม • comment เป็นข้อมูลที่ช่วยให้ข้อมูลเกี่ยวกับโปรแกรม • ใช้อธิบายหน้าที่การทำงานของโปรแกรม ฟังก์ชัน หรือคำสั่ง เพื่อความง่ายในการทำความเข้าใจ • เขียนด้วยภาษาอะไรก็ได้ (ภาษาไทยก็ได้) • ไม่มีผลกระทบกับการทำงานของโปรแกรม • ในขณะทดลองแก้ไขโปรแกรม ส่วนใดต้องการข้ามไป ใช้ comment ปิดไว้ก่อน ไม่ต้องลบ code ออกทั้งหมด เผื่อต้องการเรียกกลับมาใช้ใหม่ได้ • เราสามารถเขียนคำอธิบายโปรแกรมได้สองแบบ คือ // คำอธิบายเริ่มต้นจากจุดนี้ ไปจนหมดบรรทัด /* คำอธิบายเริ่มต้นจากจุดนี้ ไปจนถึงเครื่องหมายจบแม้จะข้ามบรรทัดไปก็ตาม */

  13. ส่วนของ Preprocessor • บรรทัดที่เริ่มต้นด้วย เครื่องหมาย # เรียกว่า preprocessor ตัวอย่างเช่น • #define symbol another_symbol • ใช้ในการแทนที่คำที่กำหนด (symbol) ทุกคำในซอร์สโค้ดด้วยคำที่กำหนด (another_symbol) • มักใช้ในการกำหนดค่าคงที่ เพื่อสะดวกต่อการแก้ไข • เช่น ในไฟล์ซอร์สโค้ดมีโค้ดที่เกี่ยวกับกับเลข 50 ซึ่งใช้ในการตัดเกรด ซึ่งมีการใช้ในหลายจุดของโปรแกรม เราใช้ #define เพื่อให้ง่ายต่อการเปลี่ยนแปลง • #define FAIL_SCORE 50

  14. ส่วนของ Preprocessor • #include <stdio.h> ซึ่งเป็นตัวบอกว่าให้นำ header file ของมาตราฐานการส่งรับข้อมูล ใน stdio.h เข้ามาในโปรแกรมด้วย เนื่องจากจำเป็นต้องใช้ • โดย header file ตัวนี้มีข้อมูลของคำสั่ง printf() ที่ใช้ในโปรแกรมของเรา

  15. stdio.h • เป็น header file ของไลบรารี่ของฟังก์ชันที่ช่วยให้เราสามารถเขียนโปรแกรมได้โดยไม่จำเป็นต้องเขียนโปรแกรมเดิมๆหลายๆครั้ง • เนื่องจากฟังก์ชันบางตัวนั้นมีขนาดยาวและมีความซับซ้อน การที่ไม่ต้องเขียนฟังก์ชันเหล่านี้เองทำให้การเขียนโปรแกรมง่ายและเร็วขึ้น • การใช้งานฟังก์ชันเหล่านี้ยังเป็นการทำให้ง่ายต่อการเรียนรู้โปรแกรม เนื่องจากทำให้อ่านโปรแกรมง่าย

  16. int main ( void ) • ทุกๆโปรแกรมจะต้องมีฟังก์ชันที่ชื่อว่า main. เพราะนี้เป็นส่วนแรกที่โปรแกรมจะเริ่มทำงาน • ฟังก์ชัน main( ) ถูกกำหนดขึ้นให้เป็นส่วนแรกของโปรแกรมที่จะถูกรันเพื่อให้สะดวกแก่การอ่านโปรแกรม ทุกโปรแกรมต้องมีฟังก์ชันที่มีชื่อนี้ และต้องมีเพียงฟังก์ชันเดียวเท่านั้นเพื่อให้โปรแกรมสามารถ compile และทำงานได้

  17. int main ( void ) • คำสงวน “int” ที่นำหน้า main( ) เป็นตัวบอกว่าฟังก์ชันจะมีการส่งค่าออกเป็นชนิดตัวเลขจำนวนเต็ม (int มาจาก integer) เมื่อจบฟังก์ชัน • วงเล็บที่ตามหลังคำสงวน “main” บอกให้ทราบว่านี้คือฟังก์ชัน • คำสงวน “void” บอกให้ทราบว่าฟังก์ชันดังกล่าวไม่มีการรับค่าเข้าจากภายนอก (parameter/argument) • int main( ) มีความหมายเดียวกับ int main(void)

  18. ส่วนของโปรแกรม • วงเล็บปีกกาเปิด { บอกให้ทราบว่าส่วนของฟังก์ชันหรือขอบเขตของโค๊ดเริ่มต้นที่ใด • วงเล็บปีกกาปิด } บอกให้ทราบว่าส่วนของฟังก์ชันหรือขอบเขตของโค๊ดสิ้นสุดที่ใด • เครื่องหมาย ; บอกให้ทราบว่าคำสั่งหนึ่งจบลง (ต้องใส่ไว้หลังคำสั่งทุกคำสั่ง มิฉะนั้นจะเกิด syntax error • การย่อหน้าในการเขียนโปรแกรมเป็นลักษณะการเขียนโปรแกรมที่ดี เพื่อให้สะดวกต่อการหาขอบเขตของคำสั่ง

  19. printf (“Hello World!!!”) ; • บรรทัดนี้เป็นส่วนคำสั่งของภาษาซี • เป็นการเรียกใช้ฟังก์ชันชื่อว่า printf ( ) โดยมีการส่งผ่านค่าเข้าไปในฟังก์ชัน หนึ่งค่า “Hello World!!!” เป็น ค่าชนิด string • argument (parameter): ค่าที่ส่งผ่านเข้าไปในฟังก์ชั่น

  20. return 0 ; • เนื่องจากฟังก์ชัน main() มีการส่งค่ากลับมา ก่อนจะจบฟังก์ชันจึงต้องมีการใช้คำสั่ง return ตามด้วยตัวเลขที่จะส่งกลับไป โดยค่าที่ส่งกลับไปจะถูกส่งไปให้ระบบปฏิบัติการ (operating systems) • ค่า 0 เป็นตัวบอกว่าโปรแกรมทำงานเสร็จสิ้นสมบูรณ์ • ยังไม่ต้องกังวลกับเรื่องนี้ตอนนี้ เพียงให้จำว่าต้องใส่คำสั่งนี้ไว้ในตอนท้ายของฟังก์ชัน main() ทุกครั้ง

  21. ตัวอย่างโปรแกรม จงแสดงผลลัพธ์ของโปรแกรม # include <stdio.h> int main (void) { printf(“My name is Tommy \n”); return 0; } ผลการรันโปรแกรม My name is Tommy

  22. ทดสอบความเข้าใจ จงเขียนโปรแกรมแสดงชื่อ นามสกุล พร้อมกับรหัสนักศึกษา # include <stdio.h> int main (void) { printf(“Tommy Kim\n 53102999\n”); return 0; } ผลการรันโปรแกรม: Tommy Kim 53102999

  23. ตัวแปรและตัวดำเนินการตัวแปรและตัวดำเนินการ

  24. ชนิดข้อมูลพื้นฐาน • ภาษา C เป็นภาษาที่เข้มงวดกับเรื่องชนิดข้อมูล • int ตัวเลขจำนวนเต็ม • float ตัวเลขทศนิยม • double ตัวเลขทศนิยมที่มีความจุเป็น 2 เท่า • char ตัวอักษร • ชนิดข้อมูลบางตัว อาจทำงานร่วมกับตัวปรับปรุง signed, unsigned, short และ long

  25. ข้อมูล • โปรแกรมส่วนใหญ่เกี่ยวข้องกับการประมวลผลข้อมูล • ข้อมูลภายในโปรแกรม • ค่าคงที่ • ตัวแปร • ข้อมูลจากภายนอก • การกด keyboard • ไฟล์ • ระบบเครือข่าย • อื่นๆ

  26. ค่าคงที่ Constant Value • ตัวเลขจำนวนเต็ม (ฐานสิบ Decimal) เช่น 10, 20, -5 • เลขฐาน 16 (Hexadecimal) เช่น 0x32, 0x5FB (ขึ้นต้นด้วย 0x) • เลขฐาน 8 (Octal) เช่น 013, 041, 07 (ขึ้นต้นด้วยศูนย์) • ตัวเลขทศนิยม เช่น 7.2, 5.6, 0.002, 2e-3, -3.14159e2, -314.159 • ตัวอักษร เช่น 'c' ,'1', '5' , ' ' (space), ‘$' • ตัวอักษรพิเศษที่ขึ้นต้นด้วย \ เช่น '\t' • อักขระพิเศษสามารถยกเลิกความพิเศษได้โดยใช้ \ นำหน้า เช่น '\\' คืออักขระ \ • ข้อความ String (ไม่ใช่ข้อมูลชนิดพื้นฐาน) เช่น "Hello" • ข้อความว่างเปล่า "" • ข้อความที่มีตัวอักษรว่าง(space)หนึ่งตัว " "

  27. ข้อมูลตัวอักษร Character • ขนาดหนึ่งไบต์ เก็บค่าเป็นจำนวนเต็มได้ 256 ค่า (0_255หรือ -128_127) • ค่าจำนวนคือรหัสของตัวอักษร ตามมาตรฐานASCII เรียกว่ารหัสแอสกี้ (ASCII)

  28. ตัวแปร Variable • ใช้หน่วยความจำของคอมพิวเตอร์ในการจดจำข้อมูล • ยากที่จะอ้างอิงตำแหน่งในหน่วยความจำ เราจึงใช้ชื่อของตัวแปรในการอ้างอิง • ตัวแปรต้องถูกประกาศก่อนการใช้งาน • การประกาศตัวแปร ประกอบด้วย ชนิดข้อมูล ชื่อตัวแปร (อาจจะมีการกำหนดค่าเริ่มต้นด้วย) และตามด้วย ; (semi-colon) • เช่น int x; หรือ int x = 2; • ชื่อตัวแปร เป็นการประกอบกันระหว่าง ตัวอักษร ตัวเลข เครื่องหมาย _ (underscore) ทั้งนี้ห้ามขึ้นต้นด้วยตัวเลข และไม่เป็นคำสงวน

  29. ตัวอย่างการประกาศใช้งานตัวแปรตัวอย่างการประกาศใช้งานตัวแปร • ประกาศตัวแปร c มีชนิดเป็นตัวอักษร 1 ตัว char c; • ประกาศตัวแปร count มีชนิดเป็นเลขจำนวนเต็มพร้อมทั้งกำหนดให้มีค่าเท่ากับ 8 int count=8; • ประกาศตัวแปร price มีชนิดเป็นเลขทศนิยม float price;

  30. ตัวอย่างการประกาศตัวแปรตัวอย่างการประกาศตัวแปร • ประกาศตัวแปรชื่อ happy มีชนิดเป็นตัวอักษร 1 ตัว พร้อมทั้งกำหนดให้มีค่าเป็นตัวอักษร C (capital letter พิมพ์ใหญ่ ) char happy=‘C’; • ประกาศตัวแปร easy มีชนิดเป็นเลขจำนวนเต็มพร้อมทั้งกำหนดให้มีค่าเท่ากับ 5 และตัวแปร Easy มีชนิดเป็นเลขจำนวนเต็มพร้อมทั้งกำหนดให้มีค่าเท่ากับ 10 int easy=5, Easy=10; หรือ int easy=5; int Easy=10; • ประกาศตัวแปรชื่อ test มีชนิดเป็นเลขทศนิยมมีค่าเท่ากับ 7.5 float test=7.5;

  31. การตั้งชื่อตัวแปร • อักษรตัวแรกจะต้องเป็นตัวอักษรภาษาอังกฤษหรือเครื่องหมาย _ (underline character) • สามารถตั้งชื่อตัวแปรโดยใช้ตัวเลขร่วมกับตัวอักษรภาษาอังกฤษ ได้แต่ห้ามใช้ตัวเลขเป็นตัวอักษรตัวแรก • ตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ถือเป็นคนละตัวกัน เช่น name กับ NAME

  32. การตั้งชื่อตัวแปร • ห้ามตั้งชื่อซ้ำกับคำสงวน (Keywords) ซึ่งเป็นคำที่มีอยู่แล้วในภาษาC auto default float register struct volatile break do for return switch while case double goto short typedef char else if signed union const enum int sizeof unsigned continue extern long static void

  33. ตัวอย่าง คำต่อไปนี้สามารถนำมาตั้งเป็นชื่อตัวแปรได้หรือไม่ number 2value grade1 student_id float _score $age Number-person

  34. x เป็นตัวแปร ชนิดจำนวนเต็ม ค่า y ถูกกำหนดค่าโดยเครื่องหมาย = ด้านซ้ายเป็นตัวแปร ด้านขวาเป็นการคำนวณตัวเลข ตัวอย่างการใช้งานตัวแปร #include <stdio.h> #define NUM 5 int main(){ int x = NUM; float y; y = x + NUM; printf("%.1f\n", y); return 0; } NUM ไม่ใช่ตัวแปร แต่จะถูกแทนด้วย 5 ก่อนการคอมไพล์ ผลลัพธ์ของการคำนวณ เป็นไปตามชนิด ข้อมูลของตัวถูกดำเนินการที่ใหญ่สุด int + float => float

  35. ตัวดำเนินการทางคณิตศาสตร์ Arithmetic Operators • ตัวดำเนินการทางคณิตศาสตร์ มี 5 ตัว คือ บวก ลบ คูณ หาร มอดูลัส ( + - * / % ตามลำดับ) • มอดูลัสคือการหาเศษของการหาร ใช้ได้กับจำนวนเต็มเท่านั้น • มอดูลัส คือ เครื่องหมายที่ให้ผลลัพธ์เป็น เศษของการหาร คือ 13%5 ได้ 3 • ผลลัพธ์ของนิพจน์ จะมีชนิดข้อมูล ตามชนิดข้อมูลที่ใหญ่ที่สุดของตัวถูกดำเนินการ • int x =6; float y = 2.0; • x*5 ผลลัพธ์ที่ได้คือ นิพจน์ของ int • x/5 ผลลัพธ์ที่ได้คือ นิพจน์ของ int (เลขทศนิยมจะหายไป) • x*y ผลลัพธ์ที่ได้ คือ นิพจน์ของ float

  36. ตัวอย่าง จากคำสั่งต่อไปนี้ int a,b,c; a = 2; b = 3; c = a + b; จงหาค่าของตัวแปรc C = 5

  37. ตัวอย่าง จากคำสั่งต่อไปนี้ int a,b; a = 2; a = 5; b = a + 4; จงหาค่าของตัวแปร b จากคำสั่งต่อไปนี้ int a; a = 2; a = a + 3; จงหาค่าของตัวแปรa

  38. เครื่องหมาย ความหมาย + บวก - ลบ * คูณ / หาร % หารเอาเศษ (Modulo) ++ เพิ่มค่าครั้งละ 1 -- ลดค่าครั้งละ 1 ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic Operator)

  39. ลำดับของตัวดำเนินการ ก่อน เครื่องหมาย ทิศการทำงาน () ซ้ายไปขวา * / % ซ้ายไปขวา + - ซ้ายไปขวา หลัง

  40. การกำหนดค่า และลำดับของการดำเนินการ • ลำดับของตัวดำเนินการ จะเกิดขึ้นตามระดับของตัวดำเนินการ • คูณ และหาร จะกระทำก่อนบวกและลบ ถ้าระดับเท่ากัน จึงคำนวนจากซ้ายไปขวา • เพื่อป้องกันความสับสน ควรใช้ () เพื่อระบุว่าตัวดำเนินการใดต้องทำก่อน • เช่น (sum/4) + (max*lowest) เป็นต้น นิพจน์ทางขวามือของเครื่องหมาย = ต้องถูกประเมิน answer = sum / 4 + MAX * lowest; 4 1 3 2 ผลลัพธ์ของนิพจน์ถูกนำไปบันทึกในตัวแปรทางซ้ายมือ

  41. ตัวอย่างจงหาค่าของนิพจน์ต่อไปนี้ตัวอย่างจงหาค่าของนิพจน์ต่อไปนี้ 2 0 3 3.5 1 3 0 3 10/5 _____________ 3/9 _____________ 7/2 _____________ 7.0/2 _____________ 21%4 _____________ 10%7 _____________ 10%2 _____________ 3%7 _____________

  42. ตัวอย่าง.จงหาค่าของนิพจน์ต่อไปนี้ตัวอย่าง.จงหาค่าของนิพจน์ต่อไปนี้ 10 + 2 * 3 * -1 _____________ 2 * 5 % 8 + -7 _____________ (3 + 5/2)*(7 - 3 - 5%2) _____________ 4 -5 15 5 * 3

  43. กำหนดให้ x, y และ z เป็นตัวแปรจำนวนเต็มจงหาค่าของตัวแปร x, y และ z หลังจากส่วนของโปรแกรมข้างล่างนี้ทำงานเสร็จ int x = 7; int y = 2; int z = 4; x = x / y; y = z; y = z % 6; z = z / 2; ก. x=7 y=2 z=4 ข. x=3 y=4 z=2 ค. x=3 y=4 z=4 ง. x=7 y=2 z=2

  44. ตัวอย่าง • ความแตกต่างของเครื่องหมาย =และ == • เครื่องหมาย = เป็นตัวกำหนดค่า • เครื่องหมาย ==เป็นเครื่องหมายเปรียบเทียบ • ตัวอย่างเช่น • หมายถึง เป็นการกำหนดค่าให้กับตัวแปร point ให้มีค่าเท่ากับ 30 • หมายถึง เป็นการตรวจสอบว่าค่า pointมีค่าเท่ากับ 30 หรือไม่ point = 30; point == 30;

  45. ตัวดำเนินการเพิ่มค่าและตัวดำเนินการลดค่า(Increment & Decrement) • ตัวดำเนินการ ++ จะบวกหนึ่งเข้ากับตัวแปรที่ถูกดำเนินการ • ตัวดำเนินการ -- จะลบหนึ่งออกจากตัวแปรที่ถูกดำเนินการ

  46. ตัวอย่าง จงเขียนผลลัพธ์ของโปรแกรมต่อไปนี้ //increment.c #include <stdio.h> int main() { int a = 2,b,c; b = ++a; printf(“b= %d a= %d\n”,b,a); c = b++; printf(“b= %d c= %d\n”,b,c); return 0; } b= 3 a= 3 b= 4 c=3

  47. การแปลงชนิดข้อมูล • การแปลงชนิดข้อมูล เกิดขึ้นได้ 3 ทางด้วยกัน • ทางที่ 1 การแปลงผ่านเครื่องหมาย = int a = 3; double y=a; printf("y %f",y);// 3.000 • ทางที่ 2 การแปลงเมื่อเกิดการดำเนินการ • เมื่อ a * b โดย a และ b เป็น int int a = 3,b,c; float y=1.5; printf("%f",(a*y));//4.5000 • ทางที่ 3 การแปลงผ่านการทำคาสติ้ง (Casting)

  48. //cast.c #include <stdio.h> int main() { int a =10, b=4; double x1,x2,x3; printf("a/b= %d \n",(a/b)); x1=a/b; printf("x1= %f \n",x1); x2= (double)(a/b); printf("x2= %f \n",x2); x3= (double)a/b; printf("x3= %f \n",x3); return 0; }

  49. ตัวดำเนินการประกอบ (Compound Operator) • เป็นรูปย่อของตัวดำเนินการและตัวแปรที่ถูกดำเนินการ • ตัวอย่างเช่น x = x + 1;เขียนแทนได้ด้วย x += 1; a = a - b;เขียนแทนได้ด้วย a -= b; x = x * 2;เขียนแทนได้ด้วย x *= 2; y = y / 5;เขียนแทนได้ด้วย y /= 5;

  50. ตัวอย่าง จากคำสั่งต่อไปนี้ int num1 = 3,num2 = 1; num1 *= 4; num2 += num1 - 2; จงหาค่าของตัวแปร num2 num2=11

More Related