การเขียนโปรแกรมด้วยภาษา C

Slides:



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

INTRODUCTION TO C LANGUAGE
Introduction to C Introduction to C.
ENG2116 การโปรแกรมคอมพิวเตอร์ (C programming)
โครงสร้างโปรแกรมภาษา C
โครงสร้างภาษาซี เบื้องต้น
Introduction to C Programming
Control Statement if..else switch..case for while do-while.
Control Statement for while do-while.
Lecture no. 5 Control Statements
Structure Programming
Week 15 C Programming.
คำสั่งเพื่อการกำหนดเงื่อนไข
การแสดงผล และการรับข้อมูล
ฟังก์ชั่น function.
Lecture no. 10 Files System
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
บทที่ 13 Pre-processor directive & macro Kairoek choeychuen
Lex & Yacc โดย...นายชัชวาลย์ ฮาสุวรรณกิจ.
บทที่ ไลบรารีฟังก์ชัน
หน่วยที่ 4: คำสั่งควบคุมโปรแกรม (Control Flow Command)
ตัวอย่างโปรแกรมคำนวณหาพื้นที่สี่เหลี่ยม
Lecture 4 องค์ประกอบภาษา C To do: Hand back assignments
Flow Control.
การเขียนโปรแกรมภาษาซี
Introduction to C Language
ทบทวน กันก่อน .....กระบวนการแปลโปรแกรม
Week 2 Variables.
Computer Programming for Engineers
2 /* ข้อความนี้เป็นเพียงคำอธิบาย ไม่มีผลต่อขั้นตอนการ ทำงานของโปรแกรม */ /* A simple program to display a line of text */ #include void main ( ) { printf.
หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรที่ ๑ ทักษะการโปรแกรม เบื้องต้น วันที่สาม.
Computer Programming การเขียนโปรแกรม คอมพิวเตอร์ สัปดาห์ที่ 6 คำสั่งควบคุมการทำงานแบบ เงื่อนไขและคำสั่งควบคุมการ ทำงานแบบวนซ้ำ.
Operators & Expression ธนวัฒน์ แซ่ เอียบ. Arithmetic Operators OperationOperatorExample Value of Sum before Value of sum after Multiply *sum = sum * 2;
Chapter 5 Elementary C++ Programming Dept of Computer Engineering Khon Kaen University.
1 exit() and break C++ provides a way to leave a program early (before its natural finish) with the exit() function. The format of exit() is as follows:
ฟังก์ชันในภาษา C. ฟังก์ชัน (Functions) 2 การออกแบบโปรแกรมในภาษาซี จะอยู่บนพื้นฐานของการออกแบบ โมดูล (Module Design) โดยการแบ่ง โปรแกรมออกเป็นงานย่อย ๆ.
โครงสร้างภาษาซี C ++ structure
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
Computer Programming I โดย อ.วิมลศรี เกตุโสภณ สาขาวิชาระบบสารสนเทศ
โครงสร้างโปรแกรมภาษา C
โปรแกรม ภาษา C ภาษาซี (C Language) เป็นภาษาหนึ่งสำหรับเขียนโปรแกรมคอมพิวเตอร์   พัฒนาขึ้นโดยนายเดนนิส  ริทชี่ (Dennis Ritche)  ในปี ค.ศ. 1972  เพื่อสร้างระบบปฏิบัติการยูนิกซ์
บทที่ 5 การจัดเตรียมเครื่องมือในการพัฒนาโปรแกรม
C Programming By Mr. Sanae Sukprung.
การควบคุมทิศทางการทำงาน
คำสั่งวนซ้ำ (Looping)
บทที่ 6 การเขียนโปรแกรมแบบมีเงื่อนไข
Chapter 9 ตัวชี้ pointer.
INC 161 , CPE 100 Computer Programming
Control Statements.
ใช้สำหรับ Turbo C++ Version 3.0
ภาษา C เบื้องต้น.
การควบคุมการทำงานด้วยภาษา C
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
โครงสร้างโปรแกรมภาษา C
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
คำอธิบายรายวิชา การเขียนผังงาน รหัสเทียม ตรรกศาสตร์เบื้องต้น การเขียนโปรแกรมคอมพิวเตอร์แบบโครงสร้าง ชนิดตัวแปร ตัวดำเนินการทางตรรกะ ตัวดำเนินการเปรียบเทียบ.
บทที่ 4 ตัวแปร (Variables)
อาจารย์ชนิดา เรืองศิริวัฒนกุล หลักสูตรสาขาวิชาเทคโนโลยีสารสนเทศ
หลักการเขียนโปรแกรมภาษาซี
introduction to Computer Programming
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
Lecture no. 1: Introduction to Computer and Programming
บทที่ 2 แนะนำภาษา C Basic C Program
Chapter 2 ตัวดำเนินการ และนิพจน์.
Chapter 7 ฟังก์ชัน Function.
บทที่ 3 โครงสร้างภาษาซีเบื้องต้น
Introduction to Computer Programming
การเขียนโปรแกรมภาษา Java (ต่อ)
Lecture 7: ทางเลือกแบบมีโครงสร้างซ้อนใน
องค์ประกอบของคอมพิวเตอร์ และภาษาซี
ใบสำเนางานนำเสนอ:

การเขียนโปรแกรมด้วยภาษา C อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี (tko@webmail.npru.ac.th)

เนื้อหาที่สนใจ ภาษาซี (C Language) โครงสร้างภาษาซี การแยกไฟล์ของภาษาซี Preprocessor Commands & macro definitions ฟังก์ชันและการค่าส่งกลับ (Functions & Return Value) ตัวแปรและค่าคงที่ (Variables & Typed constant) คำสั่งและนิพจน์ (statement & Expressions) การแยกไฟล์ของภาษาซี ตัวแปลภาษาซี เครื่องมือที่รองรับการเขียนภาษาซี (IDEs for C/C++ Programming) ตัวอย่างการเขียนโปรแกรมภาษาซี http://1.bp.blogspot.com/-tw1caa8lBus/Vphe8RV3rwI/AAAAAAAAAKM/wAhp-ds7iQM/s1600/8.png

ภาษา C ภาษาซีเป็นภาษาที่นิยมในการเขียนโปรแกรมพื้นฐาน สามารถประยุกต์ใช้กับงานต่างๆ ได้แก่ ระบบปฏิบัติการคอมพิวเตอร์ การคำนวณทางคณิตศาสตร์ โปรแกรมทางไฟฟ้า อิเล็กทรอนิกส์และ ไมโครคอนโทรลเลอร์ ภาษาซีที่เป็นรากฐานของภาษาอื่นๆ ภาษาซีเป็นภาษาเชิงคำสั่ง https://th.wikipedia.org/wiki/ภาษาซี

โครงสร้างของโปรแกรมภาษาซี Preprocessor Commands Functions Variables Statements & Expressions Comments http://siwanatsirilert57170112.blogspot.com/2015/05/c-dennis-ritchie-c-b-ken-thomson-bcpl.html

Preprocessor Commands จัดการค่าเริ่มต้นของโปรแกรมจาก source code ก่อน compile จริง ดึงข้อมูลจากไฟล์อื่นมาใช้แทน เครื่องหมาย # หน้า คําสั่ง preprocessor directives https://www.codingunit.com/cplusplus-tutorial-preprocessor-directives

Preprocessor Commands https://www.tutorialspoint.com/cprogramming/c_preprocessors.htm http://marcuscode.com/lang/cpp/preprocessor-directives http://www.cs.science.cmu.ac.th/person/areerat/204216/LectureNote/CompilerDirective.pdf

Source file inclusion (#include) #include การรวมไฟล์อื่นเข้ากับ source program รูปแบบการใช้ดังนี้ #include <filename> หรือ #include “filename” เป็นไฟล์ข้อความ (text file) < > หมายถึง ไฟล์ใน system.s จากโฟลเดอร์ (C:\TC\INCLUDE) “” หมายถึง ไฟล์ใน directory เดียวกับ source code #include <stdio.h> includes stdio.h from include folder #include <iostream> includes cpp class library header iostream #include<my.cpp> includes my.cpp file from include folder #include “my.h” includes my.h file from current working folder #include “myfolder/abc.h” includes abc.h file from the myfolder which is available in current working folder https://www.codingunit.com/cplusplus-tutorial-preprocessor-directives

macro definitions (#define, #undef) การกำหนดค่าคงที่ด้วยสัญลักษณ์ (Symbolic Constant) คือ การตั้งชื่อให้กับข้อมูลที่มีค่าคงที่หรือ แทนคำสั่ง เพื่อสะดวกในการอ้างถึงและแก้ไขข้อมูล มักนิยมใช้เป็นตัวพิมพ์ใหญ่เพื่อให้แตกต่างจากตัวแปร รูปแบบ #define identifier replacement เช่น #define PI 3.1414 #define STR1 .C Programming Language #define PR printf

Predefined Macros

Conditional inclusions (#ifdef, #ifndef, #if, #endif, #else and #elif) คำสั่งที่ถูกใช้เพื่อตรวจสอบว่า macro directives ได้ถูกสร้างก่อนหน้านี้แล้วหรือไม่ และไม่สำคัญไม่ว่าค่ามันจะเป็นอะไร

Line control (#line) คำสั่งที่อนุญาติให้เราสามารถควบคุมว่าโปรแกรมจะแสดงข้อผิดพลาดอย่างไร

Error directive (#error) Error directive ถูกใช้เพื่อหยุดการคอมไพล์ในบางโอกาส มักจะถูกใช้กับ conditional directives ถ้ามีเงื่อนไขที่ตรง

ฟังก์ชัน (Functions) ฟังก์ชันหลัก ค่าเริ่มต้นของโปรแกรมภาษาซี ฟังก์ชันย่อย ฟังก์ชันพื้นฐาน ฟังก์ชันที่สร้างขึ้นเพื่อใช้งาน ประโยชน์ของฟังก์ชัน นำกลับมาใช้ซ้ำได้ ลดความซ้ำซ้อนในการเขียนโปรแกรม การแยกส่วนประกอบของโปรแกรม http://marcuscode.com/lang/c/functions

ฟังก์ชันหลัก Main() ภาษา C มีฟังก์ชันหลัก ชื่อ main() ฟังก์ชันหลักทำหน้าที่เป็นจุดเริ่มต้นสำหรับการรันโปรแกรม ควบคุมการทำงานของโปรแกรมด้วยการเรียกไปยังฟังก์ชันอื่น ๆ โปรแกรมมักจะหยุดการทำงานเมื่อสิ้นสุดการทำงานหลัก เมื่อมีการตรวจพบข้อผิดพลาดบางอย่าง อาจบังคับให้โปรแกรมสิ้นสุดลง http://www.businessnewsdaily.com/4686-how-to-start-a-business.html https://sunisara.wordpress.com/2012/05/25/

ฟังก์ชันที่สร้างขึ้นเพื่อใช้งาน 1 http://marcuscode.com/lang/c/functions

ค่าส่งกลับ (Return Value) ฟังก์ชันจะส่งค่ากลับไปให้กับฟังก์ชั่นที่เรียก ผ่านชื่อฟังก์ชัน ผลลัพธ์ของฟังก์ชัน (output) คำสั่ง return ค่าที่ต้องการส่งกลับ ระบุประเภทของผลลัพธ์ที่จะส่งค่ากลับ http://www.kktrade.co.th/kkicube/faq.php

ฟังก์ชันในภาษา C ฟังก์ชันรับข้อมูลและฟังก์ชันแสดงผลข้อมูล NetCDF-C Libraries http://www.unidata.ucar.edu/software/netcdf/docs/winbin.html

การประกาศตัวแปร (Variables) ตัวแปรและค่าคงที่ ประเภทของตัวแปร ขอบเขตของตัวแปร เฉพาะส่วน (local variable) ส่วนรวม (global variable) การกำหนดค่าตัวแปร https://www.codecademy.com/en/forum_questions/53a6b2c48c1ccc0d3d0039eb https://www.codecademy.com/en/forum_questions/514900b642e721e65d0003f1

ตัวแปรและค่าคงที่ ค่าคงที่ (constant) ไม่สามารถเปลี่ยนแปลงค่าในภายหลังได้ ตัวแปร (Variables) สามารถเปลี่ยนแปลงค่าได้ ใช้สำหรับเก็บข้อมูลในหน่วยความจำ ใช้ชื่ออ้างถึงข้อมูล (identifier) ตัวแปรถูกใช้เพื่อเก็บค่าของข้อมูลชนิดต่างๆ ได้ สามารถสร้างตัวแปรได้เป็นจำนวนมากโดยมีชื่อที่แตกต่างกัน รูปแบบของการประกาศตัวแปรในภาษา C type identifier; type identifier = value; http://www.whatprogramming.com/Java/java-variable-types-and-scope/ http://www.tenouk.com/Module8.html

ชนิดของตัวแปร ตัวแปรที่มีเครื่องหมาย * ไม่ใช่ตัวแปรของภาษา C ตามมาตรฐาน ANSI C http://www.mcuthailand.com/articles/mcs/Constant.html

ค่าคงที่ (Typed constant) รูปแบบ  const data_type identifier = value; ประกาศค่าคงที่เหมือนกับตัวแปร แต่มีคำสั่ง const นำหน้า ทีที่สร้าง ค่าของข้อมูลอาจเป็นค่าคงที่หรือตัวแปรก็ได้ int  i ;                     // สร้างตัวแปรชื่อ i สำหรับเก็บข้อมูลจำนวนเต็ม   char  data ;              // สร้่างตัวแปรชื่อ data สำหรับเก็บข้อมูลชนิดตัวอักษร   float  num ;             // สร้างตัวแปรชื่อ num สำหรับเก็บข้อมูลชนิดทศนิยม   int  num = 1 ;          // สร้างตัวแปรชื่อ num สำหรับเก็บข้อมูลจำนวนเต็ม และมีค่าเริ่มต้นเท่ากับ 1   char font = 'A' ;        // สร้างตัวแปรชื่อ font สำหรับเก็บข้อมูลชนิดตัวอักษร และมีค่าเริ่มต้นเป็น ASCII คือ A   int  x = 0xFF ;          // สร้างตัวแปรชื่อ x สำหรับเก็บข้อมูลจำนวนเต็ม และมีค่าเริ่มต้นเป็น 0xFF อยู่ในรูปฐานสิบหก   unsigned int  x,y,z ;  // สร้างตัวแปร 3 ตัว ชื่อ x, y และ z สำหรับเก็บข้อมูลจำนวนเต็ม แบบไม่คิดเครื่องหมาย http://www.mcuthailand.com/articles/mcs/Constant.html

executable statement & Expressions เครื่องคอมพิวเตอร์จะทำตามคำสั่ง (Statements) ในโปรแกรมที่สร้างขึ้น โปรแกรมคอมพิวเตอร์ ประกอบไปด้วยคำสั่งต่าง ๆ แต่ละคำสั่งจะเขียนด้วยตัวอักษรพิมพ์เล็ก ใช้เครื่องหมาย ; เพื่อให้รู้ว่าจบคำสั่ง นิพจน์ (Expressions) หมายถึง การนำตัวแปร (variables) หรือค่าคงที่ (constant) มาสัมพันธ์กันด้วยสัญลักษณ์ต่างๆ เช่น เครื่องหมายทางคณิตศาสตร์ (เช่น + - * / ) เครื่องหมายเปรียบเทียบ (เช่น > = <) เครื่องหมายตรรกะ (เช่น OR, NOR)

Expression statements http://www.cprogrammingexpert.com/C/Tutorial/fundamentals/expression_statement.aspx

คำสั่ง (Statements) Statement คือคำสั่งที่ใช้สั่งให้คอมพิวเตอร์ทำงานต่างๆ ซึ่งแบ่งออกได้เป็น 3 ประเภทคือ Expression Statement (operation) เครื่องหมายทางคณิตศาสตร์ (เช่น + - * / ) เครื่องหมายเปรียบเทียบ (เช่น > = <) เครื่องหมายตรรกะ (เช่น OR, NOR) Compound Statement {} Control Statement (if else, case, while, do while, for)

นิพจน์ (Expressions) การแทนค่า หรือการหาค่าของ data เช่น ตัวเลขหรือตัวแปร ประกอบด้วยสมาชิกเพียงตัวเดียว เช่นค่า constant ตัวแปร ประกอบด้วยตัวแปรหลายตัว สัมพันธ์กันด้วยเครื่องหมาย (operator) ตัวดำเนินการแบ่งออกได้เป็นหลายชนิดได้ดังนี้ Arithmetic operator Unary operator Relational and logical operator Assignment operator Condition operator

คำอธิบาย (Comments) //แบบบรรทัดเดียว /* แบบหลายบรรทัด */

C-Tokens คำที่ภาษาซี สงวนไว้ในการประมวลผล ไม่สามารถนำไปตั้งชื่อตัวแปรหรือฟังก์ชันได้ ตัวอย่างเช่น http://swamios.com/basic-elements/

การแยกไฟล์ของภาษาซี ไฟล์นามสกุล *.c เริ่มต้นที่ฟังก์ชัน main() สร้างฟังก์ชันหรือไลบรารีจัดเก็บไว้ในแต่ละไฟล์ได้ จัดเก็บไว้ภายในโฟลเดอร์เดียวกัน เรียกใช้ผ่านการประกาศไว้ก่อนฟังก์ชัน main() เรียกใช้ผ่านชื่อไฟล์ เรียกใช้ผ่านชื่อฟังก์ชัน สามารถรับส่งค่าระหว่างฟังก์ชันได้

ตัวอย่างการเขียนโปรแกรม

ตัวแปลภาษา ชุดแปลโปรแกรมของกนู (GNU Compiler Collection) หรือ (GCC) เป็นชุดโปรแกรมแปลโปรแกรมสำหรับแปลภาษาโปรแกรมต่าง ๆ พัฒนาโดยโครงการกนู (GNU) และแจกจ่ายเป็นซอฟต์แวร์เสรี โดยชุด GCC ถือว่าเป็นชุดคอมไพเลอร์มาตรฐานในระบบปฏิบัติการแบบยูนิกซ์ อย่างเช่น ลินุกซ์ หรือ Mac OS X เป็นต้น ชื่อเดิมของ GCC คือ GNU C Compiler เนื่องจากในระยะแรกถูกพัฒนาขึ้นเป็นคอมไพเลอร์ของภาษาซีเท่านั้น https://th.wikipedia.org/wiki/ชุดแปลโปรแกรมของกนู

เครื่องมือที่รองรับการเขียนภาษาซี การวิเคราะห์ภาษาที่ใช้จากนามสกุลของไฟล์ แล้วเรียกพรีโพรเซสเซอร์คอมไพเลอร์ แอสเซมเบลอร์ และ ลิงเกอร์ ตามลำดับ 

Best IDEs for C/C++ Programming 1. Netbeans for C/C++ Development 2. Code::Blocks 3. Eclipse CDT(C/C++ Development Tooling) 4. CodeLite IDE 5. Bluefish Editor 6. Brackets Code Editor 8. Atom Code Editor 9. Sublime Text Editor 10. JetBrains CLion 11. Microsoft’s Visual Studio Code Editor 12. KDevelop 13. Geany IDE 14. Ajunta DeveStudio 15. The GNAT Programming Studio 16. Qt Creator 17. Emacs Editor 18. VI/VIM Editor http://www.tecmint.com/best-linux-ide-editors-source-code-editors/ http://ccm.net/download/c-c-21

ตัวอย่างโปรแกรมที่เขียนด้วยภาษาซี for( i = 0; i<9 && winner==0; i++){ clrscr(); printf("\n\n"); printf("\t\t\t\t %c | %c | %c\n", board[0][0], board[0][1], board[0][2]); printf("\t\t\t\t---+---+---\n"); printf("\t\t\t\t %c | %c | %c\n", board[1][0], board[1][1], board[1][2]); printf("\t\t\t\t %c | %c | %c\n", board[2][0], board[2][1], board[2][2]); player = i%2 + 1; do{ printf("\n\t\tPlayer %d, please enter the number [your] %c: ", player,(player==1)?'X':'O'); scanf("%d", &go); row = --go/3; column = go%3; }while(go<0 || go>9 || board[row][column]>'9'); board[row][column] = (player == 1) ? 'X' : 'O'; if((board[0][0] == board[1][1] && board[0][0] == board[2][2]) || (board[0][2] == board[1][1] && board[0][2] == board[2][0])) winner = player; else for(line = 0; line <= 2; line ++){ if((board[line][0] == board[line][1] && board[line][0] == board[line][2])|| (board[0][line] == board[1][line] && board[0][line] == board[2][line])) winner = player; } clrscr(); printf("\n\n"); printf("\t\t\t\t %c | %c | %c\n", board[0][0], board[0][1], board[0][2]); printf("\t\t\t\t---+---+---\n"); printf("\t\t\t\t %c | %c | %c\n", board[1][0], board[1][1], board[1][2]); printf("\t\t\t\t %c | %c | %c\n", board[2][0], board[2][1], board[2][2]); if(winner == 0) printf("\n\t\t\tHow boring, it is a draw\n"); else printf("\n\t\tCongratulations, player %d, YOU ARE THE WINNER!\n", winner); } #include "stdio.h" #include "conio.h" void main(){ int i = 0; int player = 0; int go = 0; int row = 0; int column = 0; int line = 0; int winner = 0; char board[3][3] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'} }; http://cpe-programming.blogspot.com/2012/10/xo.html http://www.comscidev.com/howto/ตัวอย่างภาษาซี/

สรุป การเขียนโปรแกรมด้วยภาษาซี จำเป็นต้องเข้าใจโครงสร้างและองค์ประกอบของโค้ด การแยกและประกอบส่วนของโปรแกรม โดยเขียนแยกแต่ละไฟล์แล้วเรียกใช้งานได้ ภาษาซีถือเป็นภาษาที่มีโครงสร้างชัดเจนและเป็นพื้นฐานในการเขียนโปรแกรมคอมพิวเตอร์ของภาษาต่างๆ