หน่วยที่ 2 ภาษาโปรแกรม และการออกแบบโปรแกรม กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
การเขียนขั้นตอนวิธี การวิเคราะห์ปัญหา Output, Input, Process กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
การเขียนขั้นตอนวิธี โปรแกรมอ่านเลข 2 จำนวน หาผลรวมแล้วพิมพ์ผลรวม ADD_TWO_NUMBER Read num1,num2 total = num1+num2 Print total END Read two numbers Add number2 together Print total number อ่านเลข 2 จำนวน บวกเลข 2 จำนวน เข้าด้วยกัน พิมพ์ค่าผลรวม กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
การเขียนขั้นตอนวิธี โปแกรมแสดงคำถามทางหน้าจอเพื่ออ่านค่าคะแนนสูงสุด และต่ำสุด โดยค่าที่รับเข้ามาเป็นเลขจำนวนเต็ม คำนวณคะแนนเฉลี่ยและแสดงทางจอภาพ Get max, min average = (max+min)/2 Display average กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
การเขียนขั้นตอนวิธี YARD_AREA Get land_w, land_l, house_w,house_l ต้องการปูหญ้าที่สนามรอบตัวบ้าน จงเขียนโปรแกรมเพื่อคำนวณหาพื้นที่สนามหญ้าโดยรับข้อมูลความกว้างและความยาวของที่ดิน พร้อมทั้งความกว้างและความยาวของตัวบ้าน YARD_AREA Get land_w, land_l, house_w,house_l land_area = land_w * land_l house_area = house_w * house_l yard_area = land_area – house_area Display yard_area END กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
การตรวจสอบความถูกต้องของขั้นตอนวิธี ข้อมูลชุดที่ 1 ข้อมูลชุดที่ 2 Land_w Land_l House_w House_l 30 20 40 10 Yard_area 500 600 กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
แบบฝึก โปรแกรมทำการอ่านอัตราภาษีเป็นเปอร์เซ็นต์ พร้อมราคาสินค้าที่ขาย 5 ชนิด โปรแกรมทำการหาผลรวมราคาขายก่อนคิดภาษี การคิดภาษีให้นำอัตราภาษีคูณด้วยยอดขายรวม ให้พิมพ์ยอดขายรวม ภาษี และยอดขายรวมภาษี จงหาค่าจ้างทั้งสิ้นต่อสัปดาห์ โดยที่โปรแกรมทำการอ่านจำนวนชั่วโมงทำงานตามปกติ จำนวนชั่วโมงทำงานล่วงเวลาและอัตราค่าจ้างต่อชั่วโมง ค่าจ้างปกติคิดจากชั่วโมงทำงานปกติ กับอัตราค่าจ้างต่อชั่วโมง ส่วนค่าจ้างล่วงเวลาคิดเป็น 1.5 เท่าของอัตราปกติ ค่าจ้างต่อสัปดาห์คิดจากค่าจ้างปกติรวมกับค่าจ้างล่วงเวลา กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
องค์ประกอบของภาษาซี การเขียนคำสั่ง การเขียนหมายเหตุ (comment) เขียนด้วยตัวอักษรตัวเล็ก จบคำสั่งด้วย ; statement; การเขียนหมายเหตุ (comment) ใช้อธิบายการทำงานในส่วนต่าง ๆ ของโปรแกรม compiler จะไม่แปลและทำงานตามสิ่งที่อยู่ใน comment ใช้สัญลักษณ์ /* comment */ กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
องค์ประกอบของภาษาซี รูปแบบโปรแกรม main( ) { variable declaration; program statement; } main เป็นการบอกว่าเป็นฟังก์ชั่นเริ่มต้นของการทำงาน ( ) แสดงว่าไม่ต้องการมีค่าพารามิเตอร์ใด ๆ variable declaration เป็นส่วนของโปรแกรมที่ใช้ในการประกาศตัวแปร program statement ส่วนของโปรแกรมที่ใช้เขียนคำสั่งต่าง ๆ ที่สามารถ ปฏิบัติงานได้ในภาษาซี กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
องค์ประกอบของภาษาซี อักขระที่ใช้ในภาษาซี ตัวอักษร ใช้ภาษาอังกฤษทั้งตัวเล็กและตัวใหญ่ ตัวเลข 0-9 อักขระพิเศษ ได้แก่เครื่องหมายต่าง ๆ ที่ไม่ใช่ตัวอักษร และตัวเลข เช่น + - * / % , ; ( ) { } [ ] \ = < > ! & ^ ~ ‘ “ # : . | blank กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
องค์ประกอบของภาษาซี ข้อมูล ค่าคงที่ที่ใช้คำนวณ จำนวนเต็ม ทศนิยม เลขฐานแปด ใช้เลข 0 นำหน้า เลขฐานสิบหก ใช้เลข 0x นำหน้า ค่าคงที่ที่ไม่ใช้ในการคำนวณ จะเขียนในเครื่องหมายคำพูด เช่น “Hello” “a” “053-412541” กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
องค์ประกอบของภาษาซี ตัวแปร (Variable) ชื่อที่ผู้เขียนโปรแกรมตั้งขึ้นเพื่อใช้เป็นกล่องสำหรับเก็บข้อมูล มีกฎการตั้งชื่อดังนี้ ใช้ตัวอักษร หรืออักษรปนตัวเลขได้ หรือปนเครื่องหมายขีดล่าง(underscore) โดยขีดล่างต้องอยู่ระหว่างกลางเท่านั้น ตัวแรกต้องเป็นตัวอักษรเท่านั้น ยาวตั้งแต่ 1-256 ตัว ห้ามตั้งชื่อซ้ำกับคำสงวน ตัวอักษรเล็กใหญ่มีความหมายต่างกัน กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
องค์ประกอบของภาษาซี ชนิดของตัวแปร การประกาศตัวแปร type variable-list; int : เก็บเลขจำนวนเต็ม float : เก็บค่าที่เป็นเลขทศนิยม short : เก็บเลขจำนวนเต็มในช่วง -128 ถึง 127 หรือ 0-255 long : เก็บเลขจำนวนเต็ม ที่มีจำนวนบิตมากเป็น 2 เท่า double : เก็บเลขทศนิยม 2 เท่า unsigned : เก็บจำนวนเต็มที่เป็นบวกเท่านั้น char : เก็บตัวอักษร การประกาศตัวแปร type variable-list; ตัวอย่าง int vat_rate; float salary,tax; กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
องค์ประกอบของภาษาซี Type Length Range unsigned char 8 bits 0 to 255 enum 16 bits -32,768 to 32,767 unsigned int 0 to 65,535 short int int unsigned long 32 bits 0 to 4,294,967,295 long -2,147,483,648 to 2,147,483,647 float 3.4 * (10**-38) to 3.4 * (10**+38) double 64 bits 1.7 * (10**-308) to 1.7 * (10**+308) long double 80 bits 3.4 * (10**-4932) to 1.1 * (10**+4932)
องค์ประกอบของภาษาซี เครื่องหมายดำเนินการและนิพจน์ เครื่องหมายคณิตศาสตร์ (Arithmetic Operators) +, -, *, /, % (mod), - -, ++ เครื่องหมายเปรียบเทียบ >, <, >=, <=, = =, != เครื่องหมายตรรก (Logical operators) && (AND) || (OR) ! (NOT) กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
องค์ประกอบของภาษาซี && (AND) A B A&&B 1 1 กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
องค์ประกอบของภาษาซี || (OR) A B A||B 1 1 กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
องค์ประกอบของภาษาซี ! (NOT) A !A 1 1 กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์
ตัวอย่างโปรแกรม โปรแกรมแรก ... สวัสดีชาวโลก #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; } คำสั่งที่เกี่ยวข้อง #include … เป็นการเรียกใช้ header file printf( ) … เป็นคำสั่งที่ใช้สำหรับแสดงผลทางจอภาพ มีรูปแบบดังนี้ printf(control, argument list); โดยที่ control ต้องเขียนอยู่ภายในเครื่องหมาย “ ” และ มีลักษณะเป็นข้อความ หรือรหัสรูปแบบ ที่ใช้ในการแสดงผล