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

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

C Pragramming Penporn Duangkaew (Qookratai) Faculty of Informatics ทบทวนภาษาซี ให้นักเรียนดาวน์โหลดและศึกษาเอกสารดังกล่าวแล้วเขียนโปรแกรม 6 โปรแกรมเริ่มสไลด์ที่

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


งานนำเสนอเรื่อง: "C Pragramming Penporn Duangkaew (Qookratai) Faculty of Informatics ทบทวนภาษาซี ให้นักเรียนดาวน์โหลดและศึกษาเอกสารดังกล่าวแล้วเขียนโปรแกรม 6 โปรแกรมเริ่มสไลด์ที่"— ใบสำเนางานนำเสนอ:

1 C Pragramming Penporn Duangkaew (Qookratai) Faculty of Informatics ทบทวนภาษาซี ให้นักเรียนดาวน์โหลดและศึกษาเอกสารดังกล่าวแล้วเขียนโปรแกรม 6 โปรแกรมเริ่มสไลด์ที่ ให้ลอก Code ของโปรแกรมลงสมุด พร้อมบันทึกผลลัพธ์ที่ได้ลงสมุด

2 ภาษา BCPL ภาษา B ภาษา C บนเครื่อง PDP-7 (UNIX) พ. ศ พ. ศ โดย เดนนิช ริทชี่ Basic Combined Programming Language Faculty of Informatics ประวัติความเป็นมา

3 ภาษาซี (C Language)  เป็นภาษาระดับสูง  ไม่ขึ้นกับระบบปฏิบัติการ (OS)  ไม่ขึ้นกับชนิดของเครื่องคอมพิวเตอร์  เป็นภาษาโครงสร้าง (Structure Language) คุณสมบัติ

4 โครงสร้างของโปรแกรมภาษาซี 1. ส่วนประมวลผลก่อน 2. ส่วนประกาศส่วนกลาง 3. ส่วนต้นแบบฟังก์ชั่น 4. ส่วนของฟังก์ชั่น โครงสร้างประกอบด้วย ส่วนประมวลผลก่อน ส่วนประกาศส่วนกลาง ส่วนของฟังก์ชัน ส่วนต้นแบบฟังก์ชัน Faculty of Informatics

5 ส่วนที่ 1 เป็นส่วนที่ระบุให้ซีคอมไพเลอร์เตรียมการทำงานที่ กำหนดในส่วนนี้ไว้ โดยหน้าคำสั่งจะมีเครื่องหมาย # เช่น เป็นการระบุให้นำไฟล์ stdio.h มารวมกับไฟล์นี้ เพื่อที่จะสามารถใช้คำสั่งที่อยู่ในไฟล์นี้มาใช้งานได้ หรือ เป็นการกำหนดค่าคงที่ให้กับตัวแปร START โดยให้มีค่าเป็น 0 หรือ เป็นการกำหนดให้ตัวแปร temp มีค่าเท่ากับ 37 Faculty of Informatics # include ส่วนประมวลผลก่อน # define START 0 # define temp 37

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

7 ส่วนที่ 3 เป็นส่วนที่ใช้กำหนดว่ามีฟังก์ชั่นอะไรบ้าง และมีการ ประกาศพารามิเตอร์อย่างไร เช่น เป็นการประกาศฟังก์ชั่นต้นแบบสำหรับพังก์ชั่นชื่อ main โดยมีค่าที่ส่งกลับเป็นชนิด interger และไม่มีการส่งค่าเข้าไป ในฟังก์ชั่นนี้ Faculty of Informatics ส่วนประกาศต้นแบบฟังก์ชั่น int main ( void );

8 ส่วนที่ 4 เป็นส่วนที่ใช้กำหนดรายละเอียดของแต่ละฟังก์ชั่น ว่ามีลักษณะการทำงานเป็นอย่างไรบ้าง รับค่าใดเข้าไปใน ฟังก์ชั่นบ้าง และส่งค่ากลับเป็นอะไร เช่น เป็นการประกาศฟังก์ชั่นชื่อ main ตามฟังก์ชั่นต้นแบบ สำหรับพังก์ชั่น main นี้ไม่มีการรับค่าเข้าในฟังก์ชั่น แต่เมื่อ ทำงานเสร็จแล้วจะส่งค่ากลับมาเป็น 0 Faculty of Informatics ส่วนประกาศฟังก์ชั่น int main ( void ) { printf ( “Hello World \n” ); return (0); }

9 กฎเกณฑ์ของโปรแกรมภาษาซี  ประกอบด้วยส่วนย่อย ๆ โดยใช้ปีกกา ({ }) เป็นตัวกำหนดขอบเขต  ฟังก์ชั่นแรกต้องเป็น main() เสมอ  ใช้เครื่องหมาย ; (semi colon) เป็นตัวกำหนดการ สิ้นสุดของคำสั่ง  ใช้อักษรตัวเล็กในการเขียนโปรแกรม  ใช้เครื่องหมาย, (comma) เป็นตัวคั่นตัวแปรและ พารามิเตอร์  ใช้เครื่องหมาย /* */ เป็นการกำหนดข้อความ ที่ไม่ ต้องการให้คอมไพเลอร์ปฏิบัติงาน กฎเกณฑ์ (Rules) Faculty of Informatics

10 # include int main ( void ) { printf(“Hello, Good morning. \n”); return ( 0 ); } ตัวอย่างโปรแกรม เป็นโปรแกรมสั่งพิมพ์ข้อความ Hello, Good morning. Faculty of Informatics

11 แบบข้อมูลหรือชนิดของตัวแปรต่าง ๆ ที่กำหนดไว้ ในภาษาซีประกอบด้วย char ชนิดของตัวอักษรหรืออักขระ int ชนิดจำนวนเต็มปกติ short ชนิดจำนวนเต็มปกติ long ชนิดจำนวนเต็มที่มีความยาวเป็น 2 เท่า unsigned ชนิดของเลขที่ไม่คิดเครื่องหมาย float ชนิดเลขมีจุดทศนิยม double ชนิดเลขที่มีจุดทศนิยมความยาว เป็น 2 เท่า Faculty of Informatics ชนิดและแบบของข้อมูลในภาษาซี

12 ตารางแสดงเนื้อที่ในหน่วยความจำของชนิดข้อมูล

13 ในการเขียนโปรแกรม แบบข้อมูลที่ใช้จะแบ่ง ออกเป็น 4 กลุ่มใหญ่ ๆ ดังนี้ ข้อมูลและตัวแปรชนิดอักขระ ข้อมูลและตัวแปรชนิดจำนวนเต็ม ข้อมูลและตัวแปรชนิดเลขมีจุดทศนิยม ข้อมูลและตัวแปรแบบสตริง Faculty of Informatics ชนิดและแบบของข้อมูลในภาษาซี

14  อักขระแทนด้วย char โดยอยู่ภายในเครื่องหมาย ‘ ’ เช่น ‘a’, ‘A’, ‘9’  อักขระพิเศษบางตัวไม่สามารถให้ค่าได้โดยตรง แต่ จะให้ค่าเป็นรหัส ASCII ซึ่งจะเขียนในรูปของเลข ฐานแปด เช่น รหัส BELL แทนด้วย ASCII 007 เขียนแทนด้วย BELL=‘\007’ หรือรหัสควบคุมการ ขึ้นบรรทัดใหม่ ตัวอักขระที่กำหนดให้กับรหัส คือ n สามารถกำหนดเป็น newline = ‘\n’; Faculty of Informatics ชนิดข้อมูลชนิดอักขระ

15  จำนวนเต็มในภาษาซีสามารถใช้แทนได้ 4 รูปแบบ คือ int, short, long และ unsigned  การกำหนดตัวแปรแบบ unsigned คือจำนวนเต็ม ที่ไม่คิดเครื่องหมาย ซึ่งจะต้องใช้ควบคู่กับรูปแบบ ข้อมูลจำนวนเต็มชนิดอื่น คือ int, short หรือ long เช่น Faculty of Informatics ชนิดข้อมูลของเลขจำนวนเต็ม unsigned intunsigned short

16  การกำหนดขนิดข้อมูลเลขจุดทศนิยมสามารถ กำหนดได้ 2 แบบ คือ float, double  โดย double เก็บค่าได้เป็น 2 เท่าของ float ตัวเลข แบบนี้นิยมใช้กับงานทางวิทยาศาสตร์ที่ต้องการ ความละเอียดในการเก็บค่า  การเก็บข้อมูลในรูปแบบนี้ คือเก็บแบบเอ็กโพเนนซ์ ดังตัวอย่างต่อไปนี้ ตัวเลขแสดงแบบวิทยาศาสตร์แบบเอ็กโพเนนซ์ 9,000,000, * e9 345, * e * e * e-6 Faculty of Informatics ชนิดข้อมูลของเลขมีจุดทศนิยม

17  สตริงหมายถึงการนำตัวอักขระหลายตัวมาประกอบ กันเป็นข้อความ  จะเรียกว่า array หรือแถวลำดับของตัวอักขระ นั่นเอง  ในการใช้งานชนิดข้อมูลแบบสตริงนั้นอักขระตัว สุดท้ายจะเก็บรหัส null คือ \0 หมายถึงจุดจบของ ข้อความ เช่น Faculty of Informatics ชนิดข้อมูลแบบสตริง Hello\

18 การประกาศตัวแปร คือ การจองเนื้อที่ในหน่วยความจำ และตั้งชื่อไว้ เพื่อเรียกใช้งานในขณะปฏิบัติงาน การตั้ง ชื่อตัวแปร มีหลักการดังนี้ 1. ต้องขึ้นต้นด้วยตัวอักษร 2. ห้ามใช้เครื่องหมายทางคณิตศาสตร์ในชื่อ ตัวแปร 3. สามารถใช้เครื่องหมาย underline ‘_’ ได้ 4. ห้ามใช้อักขระพิเศษเหล่านี้ คือ 5. ห้ามตั้งชื่อซ้ำกับคำสงวน (Reserved Word) Faculty of Informatics การประกาศตัวแปรในภาษาซี

19 คำสงวนในภาษาซี autobreakcasecharconst continuedefaultdodoubleelse enumexternfloatforgoto ifintlongregisterreturn shortsignedsizeofstaticstruct switchtypedefunionunsignedvoid volatilewhile คำสงวนได้แก่

20 การประกาศชื่อตัวแปรในภาษาซีสามารถทำได้ดังนี้ Faculty of Informatics การประกาศตัวแปรในภาษาซี ; ตัวอย่างเช่น char ch; int num; float width; double height; unsigned int a; long int b;

21  การเขียนประโยคคำสั่งในภาษาซี แต่ละคำสั่งจะ ประกอบด้วย ตัวระบุ (Identifier) คำสงวน ตัวแปร ชื่อฟังก์ชั่น และตัวดำเนินการ (operator) ต่าง ๆ แต่ละคำสั่งจบลงด้วยเครื่องหมายอัฒภาค (;) เช่น Faculty of Informatics การเขียนประโยคคำสั่ง printf ( “Hello” ); printf ( “ C \n” );  อาจเขียนในบรรทัดเดียวกันก็ได้ เช่น printf ( “Hello” );printf ( “ C \n” ); ทั้งสองแบบให้ผลลัพธ์เหมือนกัน

22  การแสดงผลลัพธ์ในภาษาซีจะใช้ฟังก์ชั่น printf โดยที่ฟังก์ชั่น printf มีรูปแบบดังนี้ o ส่วนควบคุมการพิมพ์ จะเป็นข้อความและรูปแบบ ของการพิมพ์โดยอยู่ในเครื่องหมาย “ ” o อาร์กิวเมนต์ เป็นส่วนที่จะนำข้อมูลมาพิมพ์ ตามรูปแบบที่กำหนดมาในส่วนควบคุมการพิมพ์ Faculty of Informatics การแสดงผลลัพธ์ในภาษาซี printf( ส่วนควบคุมการพิมพ์, อาร์กิวเมนต์, …)

23  รูปแบบการพิมพ์สำหรับตัวเลขมีดังนี้ %d พิมพ์ข้อมูลจำนวนเต็มด้วยเลขฐานสิบ %o พิมพ์ข้อมูลด้วยเลขฐานแปด %x พิมพ์ข้อมูลด้วยเลขฐานสิบหก %u พิมพ์ข้อมูลด้วยเลขฐานสิบแบบไม่คิด เครื่องหมาย %e พิมพ์ข้อมูลด้วยตัวเลขแบบวิทยาศาสตร์ เช่น 2.13e45 %f พิมพ์ข้อมูลด้วยตัวเลขมีจุดทศนิยม %g พิมพ์ข้อมูลด้วยรูปแบบ %e หรือ %f โดยเลือกแบบที่สั้นที่สุด Faculty of Informatics รูปแบบที่ใช้กำหนดการพิมพ์ใน printf

24  รูปแบบการพิมพ์สำหรับสตริงมีดังนี้ %c พิมพ์ด้วยตัวอักษรตัวเดียว %s พิมพ์ด้วยข้อความ  ตัวอย่างการคำสั่ง printf เช่น Faculty of Informatics รูปแบบที่ใช้กำหนดการพิมพ์ใน printf printf ( “%d %f %s“, 20, 25.5, “Hello” ); คู่ที่ 1 คู่ที่ 2 คู่ที่ 3

25  เครื่องหมายสำหรับปรับเปลี่ยนรูปแบบของข้อมูล ในการแสดงผล o เครื่องหมายลบ ให้พิมพ์ข้อมูลชิดขอบซ้าย ( ปกติข้อมูลทั้งหมดจะพิมพ์ชิดขวา ) o สตริงตัวเลข ระบุความกว้างของฟิลด์ o จุดทศนิยม เป็นการกำหนดความกว้างของ จุดทศนิยม  ตัวอย่างการใช้เครื่องหมายปรับเปลี่ยนรูปแบบของ การแสดงผล Faculty of Informatics เครื่องหมายปรับเปลี่ยนรูปแบบข้อมูล printf ( “%3d %-6.0f “, 20, 25.5 );

26  การรับข้อมูลเข้ามาใช้งานในภาษาซีจะใช้ฟังก์ชั่น scanf รูปแบบของฟังก์ชั่น scanf ( ) มีดังนี้ o ส่วนควบคุมข้อมูล เป็นการกำหนดรูปแบบ ข้อมูลในเครื่องหมาย “ ” o อาร์กิวเมนต์ เป็นส่วนที่จะนำข้อมูลมาเก็บ ( ในตัวแปร ) ซึ่งชนิดของข้อมูลต้องตรงตาม รูปแบบที่กำหนดในส่วนควบคุมข้อมูล Faculty of Informatics การรับข้อมูลเข้าในภาษาซี scanf( ส่วนควบคุมข้อมูล, อาร์กิวเมนต์,...)

27  การกำหนดลักษณะอาร์กิวเมนต์มีได้ 2 แบบดังนี้ o ถ้าข้อมูลนั้นอาจจะนำไปใช้ในการคำนวณ จะใส่เครื่องหมาย & หน้าตัวแปร o ถ้าข้อมูลนั้นเป็นข้อความที่จะนำไปเก็บไว้ในตัว แปรเลยไม่จำเป็นต้องใส่เครื่องหมาย & หน้า ตัวแปร  ตัวอย่างการใช้ฟังก์ชั่น scanf Faculty of Informatics การรับข้อมูลเข้าในภาษาซี scanf ( “%d “,&num); scanf ( “%s “,str);

28  ทำได้โดยระบุชนิดที่ต้องการเปลี่ยนภายใน เครื่องหมาย ( ) แล้ววางหน้าตัวแปรหรือข้อมูล ที่ต้องการเปลี่ยนแปลงชนิด  ตัวอย่าง ถ้าในโปรแกรมภาษาซีมีการประกาศ ตัวแปรเป็น ต้องการเปลี่ยนตัวแปร float ไปเป็น integer ทำได้ดังนี้ Faculty of Informatics การเปลี่ยนชนิดของข้อมูล float money; (int) money;

29  เครื่องหมายที่ใช้คำนวณในภาษาซีเรียกว่า ตัวดำเนินการ (Operator) มีดังนี้ Faculty of Informatics เครื่องหมายที่ใช้คำนวณในภาษาซี ตัวดำเนินการความหมายตัวอย่างผลลัพธ์ + การบวก การลบ 7 – 52 * การคูณ 3 * 412 / การหาร 8/24 - ลบ ( ยูนารีเครื่องหมายลบ )-5 % โมดูลัส ( หาเศษเหลือจากการหาร ) 7 % 21 4 % 20

30 เครื่องหมายเปรียบเทียบ Faculty of Informatics สัญลักษณ์ความหมาย > มากกว่า < น้อยกว่า >= มากกว่าหรือเท่ากับ <= น้อยกว่าหรือเท่ากับ == เท่ากับ != ไม่เท่ากับ

31  นิพจน์กำหนดค่า (Assignment expression) เครื่องหมายที่ใช้กำหนดค่าคือ = โดยเป็นการ กำหนดค่าทางขวาของเครื่องหมาย ให้กับตัวแปร ที่อยู่ทางซ้าย เช่น Faculty of Informatics นิพจน์กำหนดค่า j = 7+2; k = k + 4; หรือ

32  ความแตกต่างของเครื่องหมาย = และ == o เครื่องหมาย = เป็นตัวกำหนดค่า o เครื่องหมาย == เป็นเครื่องหมายเปรียบเทียบ ตัวอย่างเช่น หมายถึง เป็นการกำหนดค่าให้กับตัวแปร point ให้มีค่าเท่ากับ 44 หมายถึง เป็นการตรวจสอบว่าค่า point มีค่า เท่ากับ 44 หรือไม่ Faculty of Informatics นิพจน์กำหนดค่า point = 44; point == 44;

33  เครื่องหมายและนิพจน์เปรียบเทียบแบบ ตรรกศาสตร์ && หมายถึง และ (and) | | หมายถึง หรือ (or) ! หมายถึง ไม่ (not) ตัวอย่างเช่น จะได้ค่าความจริงเป็นจริงก็ต่อเมื่อ a และ b เป็นจริงทั้งคู่ จะได้ค่าความจริงเป็นเท็จก็ต่อเมื่อ a และ b เป็นเท็จทั้งคู่ Faculty of Informatics เครื่องหมายและนิพจน์แบบตรรกศาสตร์ a && b a || b

34  ลำดับของการประมวลผลนิพจน์ทางพีชคณิตยึด หลักการตามตารางต่อไปนี้ Faculty of Informatics ลำดับการประมวลผลนิพจน์พีชคณิต ลำดับตัวดำเนินการการใช้ทิศทางการ ประมวลผล 1( ) วงเล็บซ้ายไปขวา 2- เครื่องหมายลบซ้ายไปขวา 3++, -- การเพิ่มค่า, การลดค่า ขวาไปซ้าย 4*, /, % การคูณ, การหาร, โมดูลัส ซ้ายไปขวา 5+, - การบวก, การลบ ซ้ายไปขวา 6=, +=, *=, /=, %= การกำหนดค่าขวาไปซ้าย

35  หากมีนิพจน์ 4.5 * * 5.0 มีลำดับการ ประมวลผลดังนี้ Faculty of Informatics ลำดับการประมวลผลนิพจน์พีชคณิต 4.5 * * *

36  สามารถใช้เครื่องหมายต่อไปนี้แทนการเพิ่มหรือ ลดค่าของตัวแปร ++ เป็นการเพิ่มค่าให้กับตัวแปรทีละ 1 -- เป็นการลดค่าตัวแปรทีละ 1  ตัวอย่างเช่น ++n เป็นการเพิ่มค่า n อีก 1 --n เป็นการลดค่า n ลง 1  ความแตกต่างระหว่าง n++ และ ++n เช่น n = 5; x = n++; จะได้ค่า x เท่ากับ 5 แล้วค่า n เท่ากับ 6 แต่ถ้า x = ++n; จะได้ค่า x เท่ากับ 6 Faculty of Informatics การเพิ่มค่าและลดค่าตัวแปร

37 #include int main ( void ) { printf ("Size of int = %d \n",sizeof(int)); printf ("Size of float = %d \n",sizeof(float)); printf ("Size of char = %d \n",sizeof(char)); printf ("MAX integer = %d \n",INT_MAX); printf ("MIN integer = %d \n",INT_MIN); printf ("LONG integer max = %ld \n",LONG_MAX); return (0); } Faculty of Informatics โปรแกรม1

38 #include int main ( void ) { int a=10; int b,c,d; int res; b=5; c=6; d=12; res = b*c+d/c; printf ("res = %d \n",res); return (0); } Faculty of Informatics โปรแกรม2

39 #include #define APPLE 5 #define ORANGE 10 #define RES APPLE*ORANGE int main ( void ) { printf ("Value of APPLE = %d \n",APPLE); printf ("Value of ORANGE = %d \n",ORANGE); printf ("Value of RES = %d \n",RES); return (0); } Faculty of Informatics โปรแกรม 3

40 #include int main ( void ) { int num1,num2,res; scanf ("%d",&num1); scanf ("%d",&num2); res = num1 + num2; printf ("Res = %d \n",res); res = num1 * num2; printf ("Res = %d \n",res); res = num1/num2; printf ("Res = %d \n",res); res = num1%num2; printf ("Res = %d \n",res); return (0); } Faculty of Informatics โปรแกรม 4

41 #include int main ( void ) { int a = 3, b = 7, c = 6, d = 8; int res1; float res2; res1 = a+b/c*d; res2 = a+b/c*d; printf ("Res1 = %d \n",res1); printf ("Res2 = %f \n",res2); ++a; ++b; c--; --d; res1 = a+b*c+d; res2 = a-d/b+c; printf ("Res1 = %d \n",res1); printf ("Res2 = %f \n",res2); return (0); } Faculty of Informatics โปรแกรม 5

42 #include int main ( void ) { int a = 3, b = 7, c = 6, d = 8; int res1; float res2; res1 = a+b/c*d; res2 = a+b/c*d; printf ("Res1 = %d \n",res1); printf ("Res2 = %f \n",res2); ++a; ++b; c--; --d; res1 = a+b*c+d; res2 = a-d/b+c; printf ("Res1 = %d \n",res1); printf ("Res2 = %f \n",res2); return (0); } Faculty of Informatics โปรแกรม 5

43 #include int main ( void ) { int num1; float num2, num3, res; printf ("Enter num1, num2, num3 : "); scanf ("%d %f %f",&num1,&num2,&num3); res = (num3/num2) + num1; printf ("Res = %0.3f \n",res); return (0); } Faculty of Informatics โปรแกรม 6

44 END Department of Computer Science


ดาวน์โหลด ppt C Pragramming Penporn Duangkaew (Qookratai) Faculty of Informatics ทบทวนภาษาซี ให้นักเรียนดาวน์โหลดและศึกษาเอกสารดังกล่าวแล้วเขียนโปรแกรม 6 โปรแกรมเริ่มสไลด์ที่

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


Ads by Google