45
โปรแกรมภาษา C เบื้องต ้น อ. อาจารีย์ ทองอ่อน 1

โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

โปรแกรมภาษา C เบองตน อ. อาจารย ทองออน 1

Page 2: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

บทน า

หนวยส ำคญทสดของคอมพวเตอรกคอ หนวยประมวลผลหรอทเรยกกนวำ CPU โดยปกต CPU จะมภำษำของตวเองทเรยกวำ ภำษำเครอง (Machine Language) ซงจะเปนภำษำทประกอบไปดวยเลขฐำนสองมำกมำย ดงนนกำรทจะเขยนโปรแกรมควบคมกำรท ำงำนของคอมพวเตอร โดยใชภำษำเครองโดยตรงนนจงท ำไดยำก จงไดมกำรพฒนำตวแปรภำษำเครองทเรยกวำ โปรแกรมภำษำระดบสงขนมำ หรอทเรยกวำ High Level Languages โดยภำษำในระดบสงเหลำน จะมลกษณะรปแบบกำรเขยน (Syntax) ทท ำใหเขำใจไดงำยตอกำรสอสำรกบผพฒนำ และถกออกแบบมำใหงำยตอกำรใชงำน และจะเปลยนค ำสงจำกผใชงำน ไปเปนเปนภำษำเครอง เพอทจะควบคมกำรท ำงำนของคอมพวเตอรตอไป ตวอยำงของโปรแกรมภำษำระดบสง ไดแก COBOL ใชกนมำกส ำหรบโปรแกรมทำงดำนธรกจ, Fortran ใชกนมำกส ำหรบกำรพฒนำโปรแกรมดำนวทยำศำสตรและวศวกรรมศำสตร เพรำะงำยตอกำรค ำนวณ, Pascal มใชกนทวไป แตเนนส ำหรบกำรพฒนำเครองมอส ำหรบกำรเรยนกำรสอน, C & C++ ใชทวไป

2

Page 3: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

กอนทจะลงมอพฒนำโปรแกรมคอมพวเตอร ขนแรก เรำตองศกษำรปแบบควำมตองกำรของโปรแกรมทจะพฒนำ จำกนนกวเครำะหถงปญหำตลอดจนวธกำรแกปญหำ จำกนนจงน ำเอำควำมคดในกำรแกปญหำอยำงเปนขนตอน ไปเขยนในรปแบบของโปรแกรมภำษำในระดบสง ซงจะอยในรปแบบของ Source Program หรอ Source Code จำกนนเรำกจะใช Complier ของภำษำทเรำเลอก มำท ำกำร Compile Source code หรอกลำวงำยๆ คอแปลง Source code ของเรำใหเปนภำษำเครองนนเอง ซงในขนตอนน ผลทได เรำจะเรยกวำ Object code จำกนน Complier กจะท ำกำร Link หรอเชอม Object code เขำกบฟงกชนกำรท ำงำนใน Libraries ตำงๆ ทจ ำเปนตอกำรใชงำน แลวน ำไปไวในหนวยควำมจ ำ แลวเรำกจะสำมำรถ Run เพอดผลของกำรท ำงำนโปรแกรมได หำกโปรแกรมมขอผดพลำด เรำกจะท ำกำรแก หรอทเรยกกนในภำษำคอมพวเตอรวำ กำร Debug นนเอง

บทน า

3

Page 4: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ภำษำ C เปนโปรแกรมภำษำระดบสง ถกพฒนำขนในป 1972 ท AT&T Bell Lab เรำสำมำรถใชภำษำ C มำเขยนเปนค ำสงตำงๆ ทคอมพวเตอรสำมำรถเขำใจได และกลมของค ำสงเหลำน เรำกเรยกกนวำ อลกอรธม ไดมผใหค ำจ ำกดควำมของค ำวำ อลกอรธม วำเปน �

A precise description of a step-by-step process that is guaranteed to terminate after a finite number of steps with a correct answer for

every particular instance of an algorithmic problem that may occur.�

บทน า

4

Page 5: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ตวอยำงกำรเขยนโปรแกรมภำษำซ #include <stdio.h> void main( ) { /* Display message to standard output */ printf(“My first program.”); } ผลกำรท ำงำนของโปรแกรม My first program.

รปแบบโปรแกรมภาษา C

5

Page 6: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ตวอยางการเขยนโปรแกรมภาษาซ

#include <stdio.h>

void main( ) {

/* Display message to standard output */

printf(“My first program.”);

}

รปแบบโปรแกรมภาษา C

6

Page 7: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

สวนหว (Header):

จะเปนสวนทอยทตอนตนของโปรแกรม โดยอยนอกสวนทเรยกวาฟงกชน ทสวนหว ของโปรแกรมจะประกอบดวยค า สงทเปนการก าหนดคาหรอก าหนดตวแปรตาง ๆ ค าส ง ในท ขนตนดวยสญลกษณ # เ ปนค า ส ง ท เ รยกวา ตวประมวลผลกอน (Preprocessor) คอค า สงทจะไดรบการท ากอนทจะมการคอมไพลโปรแกรม ตวประมวลผลกอน ทส าคญของภาษาซแบงออกเปน 2 ประเภทดงน # include

# define

7

รปแบบโปรแกรมภาษา C

Page 8: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

# include:

ในภำษำซจะมฟงกชนมำตรฐำนทผ ผลตคอมไพเลอรไดจดเตรยมไวให ซงมกจะเกยวของกบกำรรบขอมล กำรแสดงผลขอมล กำรค ำนวณ และอน ๆ ซงผ เขยนโปรแกรมสำมำรถเรยกใชงำนไดทนท โดยไมตองเขยนโปรแกรมแกรมเอง ในตวอยำงจะมกำรใชค ำสง printf( ) ซงเปนค ำ สงทใชแสดงขอควำมออกทำงอปกรณแสดงผลมำตรฐำน เชน จอภำพ ค ำสง printf( ) เปนกำรเรยกใชฟงกชนมำตรฐำนซงอยในกลมทเรยกวำ Standard Input and Output เมอจะเรยกใชฟงกชนใดในกลมดงกลำว จะตองบอกใหคอมไพเลอรไปอำนคำทอยในอนคลชไฟลทชอ stdio.h มำไวทสวนตนของโปรแกรม โดยใชค ำ สง

#include <stdio.h> เพรำะฉะนนผเขยนโปรแกรมควรจะศกษำฟงกชนมำตรฐำนทคอมไพเลอรแตละบรษทไดเตรยมไวใหวำค ำ สงใดใชคกบอนคลชไฟลใด

8

สวนหว (HEADER)

Page 9: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

# define: ใชส า หรบการก าหนดคาคงท ตวอยางเชน

#define YES 1

ค าสงดงกลาวเปนการก าหนดวา หากทใดในโปรแกรมมค า วา YES จะถก แทนทดวยคาทางขวามอ ในทนคอ 1

9

สวนหว (HEADER)

Page 10: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ฟงกชน (Function): สวนของฟงกชนคอสวนของค ำ สงทบอกใหคอมพวเตอรท ำงำนตำง ๆ เชน กำรรบ

ขอมล กำรค ำนวณ กำรแสดงผล เปนตน โปรแกรมภำษำซจะประกอบดวยฟงกชนยอยหลำย ๆ ฟงกชน แตจะมฟงกชนหลกฟงกชนหนงทชอวำฟงกชน main( ) เสมอ โดยทกำรท ำ งำนของโปรแกรมจะตองเรมกำรท ำ งำนจำกฟงกชนน

10

รปแบบโปรแกรมภาษา C

Page 11: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

กฎพนฐำนทส ำคญในภำษำซ กำรพมพอกษรตวพมพใหญและตวพมพเลกในภำษำซนนในผลลพธทแตกตำงกน

(Case Sensitive) ตวอยำงเชน หำกมกำรพมพ main( ) กลำยไปเปน Main( ) กจะเกดควำมผดพลำดขน

ฟงกชนของภำษำซจะแบงขอบเขตของฟงกชนแตละฟงกชนดวยเครองหมำย { } ในตวอยำงมฟงกชน void main( ) ค ำวำ void จะบอกใหรวำเมอฟงกชนนท ำงำนเสรจจะไมมกำรคนคำกลบไปยงสงทเรยกใชงำนฟงกชน ในกรณของฟงกชน main( ) กคอ จะไมมกำรคนคำใด ๆ กลบไปยงระบบปฏบตกำร หลงฟงกชนจะตองตำมดวย ( ) เสมอ โดยทภำยในวงเลบจะประกอบดวยคำทสงเขำมำยงฟงกชน ทเรยกวำพำรำมเตอร (Parameter) หรออำจจะไมมคำใด ๆ สงเขำมำกได

11

รปแบบโปรแกรมภาษา C

Page 12: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

กฎพนฐำนทส ำคญในภำษำซ ค ำสงตำงๆ ซงตองเขยนอยในฟงกชนเสมอ แบงเปน 2 สวนคอสวนของกำร

ประกำศตวแปรทตองกำรใชในฟงกชน และสวนของค ำ สงเพอท ำ งำนใดงำนหนง ในทนมเฉพำะค ำ สงทใชในกำรแสดงผลลพธออกทำงจอภำพ คอ printf( ) ใชส ำ หรบกำรแสดงผลลพธออกทำงจอภำพ หำกตองกำรแสดงขอควำมใด ๆ ออกทำงจอภำพใหเขยนขอควำมนนอยภำยในเครองหมำย “ ”

ค ำสงในภำษำซจะตองปดทำยดวยเครองหมำย ; (Semicolon) เนองจำกภำษำซจะใชเครองหมำย ; ในกำรแยกค ำ สงตำง ๆ ออกจำกกน กำรเวนบรรทดหรอกำรเขยนค ำสงไมตอเนองกนจะไมมผลตอคอมไพเลอร แตเปนกำรชวยใหผเขยนโปรแกรมอำนโปรแกรมไดงำยขนเทำนน

12

รปแบบโปรแกรมภาษา C

Page 13: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ตวอยำง1

#include <stdio.h> void main( ) { /* Display message to standard output */ printf(“My first program.”); }

ตวอยำง2

#include

<stdio.h>

void

main

()

{

/* Display message

to standard

output */

printf

(

“My first program.”

)

;

}

13

รปแบบโปรแกรมภาษา C

Page 14: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ในกำรเขยนโปรแกรมคอมพวเตอรกระบวนกำรส ำคญทเกดขน คอ กำรรบขอมล กำรประมวลผลขอมล และกำรแสดงผลขอมล จะเหนวำสงทเปนสวนส ำคญทสดคอขอมล กำรท ำ งำนของโปรแกรมขณะใดขณะหนง จะตองมกำรเกบขอมลไวในคอมพวเตอร โดยรบขอมลจำกอปกรณรบขอมลไปเกบไวในสวนทเรยกวำ หนวยความจ า และสงขอมลจำกหนวยควำมจ ำ ไปประมวลผลในหนวยประมวลผลกลำง โดยผำนค ำ สงตำงๆ เมอประมวลผลเสรจแลวกน ำผลลพธทไดกลบมำเกบไวทหนวยควำมจ ำอก เมอตองกำรใหแสดงผลกจะใชค ำสงใหไปอำนขอมลจำกหนวยควำมจ ำสงขอมลนนไปยงอปกรณแสดงผล

14

ตวแปรในโปรแกรมภาษา C

a 15

b 30

c

a 15

b 30

c 45

c = a + b

Page 15: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ชนดของตวแปร

ขนำด (ไบต) คำทเกบ รปแบบ

char 1 ตวอกษร ASCII 1 ตว ตงแต 0 ถง 255 %s

int 2 คำจ ำนวนเตมตงแต 32767 ถง -32768 %d

long 4 คำจ ำนวนเตมตงแต 2147483647 ถง -2147483648

%ld

unsigned unsigned int 2 unsigned long 4

คำจ ำนวนเตมตงแต 0 ถง 65535 คำจ ำนวนเตมตงแต 0 ถง 4294967295

%u %lu

float 4 คำจ ำนวนจรงตงแต 3.4 x 10-38 ถง 3.4 x 1038 %f

double 8 คำจ ำนวนจรงตงแต 3.4 x 10-308 ถง 3.4 x 10308 %lf

15

ชนดของตวแปรในโปรแกรมภาษา C

Page 16: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

เมอตองกำรใชตวแปร จะตองมกำรประกำศชอตวแปรทตองกำรใชงำนนน มรปแบบคอ ประเภทขอมล ชอตวแปร ; ตวอยำงของกำรประกำศตวแปร เชน float score; int age; char ch; float width, height, length; กรณทมตวแปรมำกกวำ 1 ตวทมชนดเดยวกน สำมำรถประกำศไวในค ำ สงเดยวกนไดโดยใชเครองหมำย , คนระหวำงตวแปรแตละตว

16

การใชตวแปรในโปรแกรมภาษา C

Page 17: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

กฎการตงชอ

ในภำษำซมกำรก ำหนดกฎในกำรตงชอ Identifier ตำง ๆ อนไดแก ชอตวแปร ชอฟงกชน ชอคำคงทดงน

ใหใชตวอกษร a ถง z A ถง Z เลข 0 ถง 9 และ _ (Underscore) ประกอบกนเปนชอ ขนตนดวยตวอกษรหรอ _ ตวอกษรตวพมพใหญ ตวพมพเลกมผลตอกำรตงชอและกำรเรยกใชงำน ชอนนจะตองไมซ ำกบค ำ หลก (Keyword) ซงภำษำซจองไวใช คอ

auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while

17

การใชตวแปรในโปรแกรมภาษา C

Page 18: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ค าแนะน าในการตงชอ

ในกำรเขยนโปรแกรมทดนนเรำควรท ำ กำรตงชอของตวแปร คำคงท ฟงกชน ใหอยในรปแบบมำตรฐำนดงน

ใหตงชอทสอควำมหมำยบอกใหรวำตวแปรนนใชท ำอะไร ขนตนดวยตวอกษร กรณตงชอตวแปรมกจะหรอฟงกชนมกจะใชตวอกษรตวพมพเลก คำคงทก ำหนดโดย #define มกจะใชตวอกษรตวพมพใหญทงหมด กรณทชอตวแปรประกอบดวยค ำ หลำย ๆ ค ำ อำจจะใชตวอกษรตวพมพใหญ

ขนตนค ำในล ำ ดบตอมำ หรอใช _ แยกระหวำงค ำ เชน totalScore หรอ total_score ตวอยำงกำรตงชอตวแปร เชน totalscore = score1 + score2 + score3; ยอมจะท ำ ควำมเขำใจไดงำยกวำ robert = willy + bird + smith;

18

การใชตวแปรในโปรแกรมภาษา C

Page 19: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

เมอมกำรประกำศตวแปร จะเกดกระบวนกำรจองพนทในหนวยควำมจ ำ ใหกบตวแปรตวนนมขนำดเทำกบชนดของขอมลทก ำหนด เมอใดทมกำรอำงถงชอตวแปรกจะเปนกำรอำงถงคำทเกบอยในพนทหนวยควำมจ ำ นน สงทตองระวงคอ ควรจะมกำรก ำหนดคำเรมตนใหกบตวแปรนน ๆ เสมอ เพรำะพนทในหนวยควำมจ ำทถกจองนน อำจจะมคำบำงอยำงอยภำยใน ตวอยำงของกำรก ำหนดคำเรมตนใหกบตวแปร คอ int sum=0; float height=0.0; จำกค ำสงขำงตนระบบจะท ำกำรจองพนทในหนวยควำมจ ำใหกบตวแปรชอ sum มขนำดเทำกบ int (2ไบต) และก ำหนดใหมคำเรมตนเทำกบ 0 เมอมกำรอำงถงชอตวแปรกจะไดคำคอ 0 และจองพนทในหนวยควำมจ ำ ใหกบตวแปร height มขนำดเทำกบ float (4 ไบต) และก ำหนดใหมคำเรมตนเทำกบ 0.0

19

การใชตวแปรในโปรแกรมภาษา C

Page 20: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ในภำษำซเรำสำมำรถสรำงตวแปรชดจำกขอมลพนฐำน ไดแก int float float เปนตน รปแบบของกำรประกำศตวแปรชดท ำ ไดดงน ชนดขอมล ชอตวแปร [ ขนำดขอมล ] ; ตวอยำง float score[10]; score ค ำ สง float score[10]; เปนกำรก ำ หนดตวแปรตวแปรชดชอ score เปนตวแปรชดชนด float ทมสมำชกทงหมด 10 ตว ตงแต score[0], score[1], score[2], ... , score[9] สมำชกภำยในตวแปรชดจะเรมท 0 เสมอ และสมำชกตวสดทำยจะอยทต ำ แหนงของขนำดทประกำศไวลบดวย 1 เชน ประกำศขนำดของตวแปรชดไว n สมำชกตวสดทำยจะอยทต ำ แหนง n-1

20

การใชตวแปรชด

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]

Page 21: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ฟงกชนในกำรรบขอมล คอ ฟงกชน scanf( ) ฟงกชนในกำรแสดงผลขอมลคอฟงกชน print( ) ในสวนของกำรใชงำนพนฐำน ซงกอนจะใชงำนฟงกชนดงกลำวทสวนหวของ โปรแกรมจะตองมค ำ สง

#include <stdio.h>

21

การรบขอมลและแสดงผลขอมล

Page 22: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ฟงกชนทใชในกำรรบขอมลมรปแบบของกำรใชงำนคอ scanf ( รปแบบ , อำรกวเมนต1, อำรกวเมนต2, … ) ;

ตวอยำงเชนตองกำรรบขอมลเดอนและปเปนจ ำนวนเตม จะตองใชค ำสง int month, year; scanf(“%d %d”, &month, &year);

22

การรบขอมล

Page 23: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ฟงกชนทใชในกำรแสดงผลขอมลมรปแบบของกำรใชงำนคอ printf ( รปแบบ , อำรกวเมนต1, อำรกวเมนต2, … ) ;

ตวอยำงเชน char name[ ] = “Mickey”; int age = 20; printf(“%s is %d years old.”, name, age); ผลลพธทไดคอ Mickey is 20 years old.

23

การแสดงผลขอมล

Page 24: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ตวด ำเนนกำรก ำหนดคำ ตวด ำเนนกำรคณตศำสตร ตวด ำเนนกำรก ำหนดคำแบบผสม ตวด ำเนนกำรเพมคำและลดคำ ตวด ำเนนกำรเปลยนชนดของขอมล ตวด ำเนนกำรควำมสมพนธ ตวด ำเนนกำรควำมเทำกน ตวด ำเนนกำรตรรกะ

24

ตวด าเนนการ

Page 25: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ตวด ำเนนกำรก ำหนดคำเปนตวด ำเนนกำรพนฐำนทใชในกำรก ำหนดคำตำง ๆ ใหกบตวแปร โดยใชเครองหมำย = มรปแบบของนพจนก ำหนดคำคอ

ตวแปร = นพจน ; ตวแปร1 = ตวแปร2 = …. = นพจน ;

ตวอยำงเชน age = 10; speed = distance / time; x = y = z = 45;

25

ตวด าเนนการก าหนดคา

Page 26: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

26

ตวด าเนนการคณตศาสตร

ตวด าเนนการ ค าอธบาย ตวอยางการท างาน

ผลลพธ

+ Unary plus +10 +10

- Unary minus -7 -7

* Multiplication 10*3 30

/ Division 10/3 3

% Modulus 10%3 1

+ Addition 10+3 13

- Subtraction 10-3 7

1

2

3

ตวอยางเชน 3 * 2 + 4 % 2 จะไดผลลพธเทากบ (3*2) + (4%2) = 6 + 0 = 6 แตหากตองการใหท าตวด าเนนการในล าดบต ากอน ใหใชเครองหมาย ( ) ครอบค าสงทตองการ เชน 3 * (2 + 4 )% 2 จะไดผลลพธเทากบ 3 * 6 % 2 = 18 % 2 = 0

Page 27: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

27

ตวด าเนนการก าหนดคาแบบผสม

ตวด าเนนการ ตวอยางค าสง ค าสงเตม

*= a *= 2; a = a * 2;

/= a /=2; a = a / 2;

%= a %= 2; a = a % 2;

+= a += 2; a = a + 2;

-= a –= 2; a = a – 2;

Page 28: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ตวด ำเนนกำรเพมคำและลดคำ เปนตวด ำเนนกำรเพอใชเพมคำตวแปรขน 1 หรอลดคำตวแปรลง 1 โดยใชเครองหมำย ++ แทนกำรเพมคำขน 1 และ - - แทนกำรลดคำลง 1 และสำมำรถใชตวด ำเนนเพมคำหรอลดคำกบตวแปรได 2 ต ำแหนง คอ วำงตวด ำเนนกำรเพมคำหรอลดคำไวหนำตวแปร และวำงไวหลงตวแปร ดงตวอยำง

a++; ++a;

ทง 2 ค ำ สงจะมคำเทำกบ a = a + 1; สวนค ำ สง

a- -; - - a;

จะมคำเทำกบ a = a – 1;

28

ตวด าเนนการเพมคาและลดคา

Page 29: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

กำรเปลยนชนดขอมลโดยใชค ำ สง (Explicit Casting) เชน หำกตองแปลงขอมลชนด float ไปเปนอกขอมลชนด int จะตองใชค ำสง int a; a = (int)12.423; จะไดวำ a มคำเทำกบ 12 กระบวนกำรท ำ งำนจะมกำรเปลยนชนดขอมลทอยใกลกบตวด ำ เนนกำรเปลยนชนดขอมลใหเปนชนดขอมลทระบในวงเลบ แลวจงมกำรก ำหนดคำใหมนนใหกบ a ทงนสำมำรถก ำหนดชนดขอมลทจะเปลยนคำเปนชนดขอมลใด ๆ กได

29

ตวด าเนนการปลยนชนดของขอมล

Page 30: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ผลทไดจำกกำรใชด ำเนนกำรควำมสมพนธ คอ จรง (True) หรอเทจ (False) ซงในภำษำซแทนดวยเลขจ ำนวนเตม กรณเทจจะแทนดวยคำ 0 และกรณจรงจะแทนดวยคำทไมใช 0

30

ตวด าเนนการความสมพนธ

ตวด าเนนการ ความหมาย

> มำกกวำ

< นอยกวำ

>= มำกกวำหรอเทำกบ

<= นอยกวำหรอเทำกบ

Page 31: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ผลลพธของกำรเปรยบเทยบมคำคอจรง หรอเทจ กำรใชงำนจะตองระวงเพรำะมควำมสบสนระหวำงกำรใชตวด ำเนนกำรควำมเทำกน == กบตวก ำหนดคำ = ซงมกำรท ำงำนทตำงกน และตวด ำเนนกำรไมเทำกนใชเครองหมำย != ไมใชเครองหมำย <> เหมอนในภำษำอน ๆ เชน a == 2 เปนกำรเปรยบเทยบวำตวแปร a มคำเทำกบ 2 หรอไม a = 2 เปนกำรก ำหนดคำ 2 ใหกบตวแปร a

31

ตวด าเนนการความเทากน

ตวด าเนนการ ความหมาย

== เทำกน

!= ไมเทำกน

Page 32: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

32

ตวด าเนนการตรรกะ

ตวด าเนนการ ความหมาย

&& AND

|| OR

! NOT

P Q P&&Q P||Q P !P

true true true true true false

true false false true false true

false true false true

false false false false

Page 33: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ในกำรเขยนโปรแกรมแบบโครงสรำง จะมรปแบบกำรแกปญหำหรอรปแบบกำรเขยนโปรแกรมอย 3 ลกษณะ คอ กำรเขยนแบบล ำดบ (Sequential) กำรเขยนแบบเงอนไข (Selection) และกำรเขยนแบบวนซ ำ (Repetition) โดยทใชภำษำซมค ำสง if for while do-while

33

ค าสงควบคม

Page 34: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ในกำรเขยนภำษำ C if (เงอนไข){ ค ำสง 1; ค ำสง 2; }

34

ค าสง if

if (เงอนไข){ ค ำสง 1; ค ำสง 2; }else { ค ำสง 3; ค ำสง 4; }

เงอนไข

ค ำสง 1 ค ำสง 2

Y N เงอนไข

ค ำสง 1 ค ำสง 2

ค ำสง 3 ค ำสง 4

Y N

Page 35: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ในกำรเขยนภำษำ C if (เงอนไข 1){ ค ำสง 1; }else if (เงอนไข 2){ ค ำสง 2; }

35

ค าสง if

เงอนไข 1

ค ำสง 1 เงอนไข 2

ค ำสง 2

Y

Y N

Page 36: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ค ำสง for เปนค ำ สงวนซ ำในลกษณะทรจ ำนวนรอบของกำรวนซ ำทแนนอน โดยแบงรปแบบหลกออกเปน 3 สวน ไดแก สวนทใชก ำหนดคำเรมตนหรอก ำหนดคำตวนบของกำรวนซ ำ สวนทตรวจเงอนไขกำรวนซ ำ สวนของกำรจดกำรคำตวนบของกำรวนซ ำ for ( ก ำหนดคำตวนบ ; เงอนไขกำรวนซ ำ ; จดกำรคำตวนบ ){ ค ำสง1; ค ำสง2; } for ( i=0 ; i < 5 ; i++) { scanf(“%d”, number); sum += number; }

36

ค าสง for

ค ำสง 1 ค ำสง 2

For i=1 to 10 Do

Page 37: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

หำกแทนผงงำนดงกลำวดวยค ำสง while สำมำรถเขยนรปแบบของค ำสง while ไดดงน while ( เงอนไข ) { ค ำสง1 ; } ค ำสง2 ; ตวอยำง i = 0; while ( i < 10 ) { … i++; } 37

ค าสง while

ค ำสง 1

ค ำสง 2

เงอนไข

Y

N

Page 38: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

จำกรปจะเหนวำกำรท ำงำนของค ำสง do-while จะตองมกำรท ำงำนค ำสง1 เสมอหลงจำกนนจะมกำรตรวจสอบเงอนไข หำกเงอนไขเปนจรงกจะกลบไปท ำค ำสงใน do-while อกจนกวำเงอนไขนนจะเปนเทจ เขยนในรปแบบของค ำ สงไดวำ do { ค ำสง1 ; } while ( เงอนไข ) ; ค ำสง2 ; ตวอยำง do { printf(“Enter number (between 10 and 20) : “); scanf(“%d”, &num); } while (num < 10 || num > 20);

38

ค าสง do-while

ค ำสง 2

Y N เงอนไข

ค ำสง 1

Page 39: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ฟงกชนทใชส ำหรบกำรประมวลผลแฟมขอมล ฟงกชน fopen( ) ฟงกชน fclose( ) ฟงกชน fgetc( ) ฟงกชน fputc ( ) ฟงกชน fgets( ) ฟงกชน fputs( ) ฟงกชน fscanf( ) และ fprintf( ) ฟงกชน feof( )

39

การจดการแฟมขอมล

Page 40: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ฟงกชน fopen( ) :

FILE *fileptr;

fileptr = fopen(filename,mode) ในขนตอนแรกเรำตองก ำหนดตวแปรพอยนเตอรชไปยงแฟมขอมล ในทนใหชอตวแปรนวำ fileptr จำกนน ท ำกำรเรยกฟงกชน fopen เพอท ำกำรเปดแฟมขอมล โดยท filename คอ ตวแปรทเกบชอแฟมขอมลทตองกำรเปด mode คอ รปแบบของกำรเปดแฟมขอมล หำกขนตอนของกำรเปดแฟมขอมลโดยฟงกชน fopen( ) ท ำงำนไมส ำเรจ อำจเนองจำกไมพบแฟมขอมลนนในกรณทตองกำรเปดแฟมขอมลเพออำน หรอขอมลในแผนเตม หรอชอแฟมขอมลยำวเกนไป เปนตน คำทสงกลบจำกฟงกชน fopen( ) จะมคำเทำกบวำง (Null)

40

การจดการแฟมขอมล

Page 41: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

รปแบบของกำรเปดแฟมขอมลมดงน • “w” ท ำกำรสรำงแฟมขอมลใหมและเปดแฟมขอมลเพอเขยน หำกมแฟมขอมลนนอย

แลว จะท ำกำรลบขอมลเดม และสรำงแฟมขอมลใหม • “r” ท ำกำรเปดแฟมขอมลเพอท ำกำรอำนขอมล • “a” ท ำกำรเปดแฟมขอมลเพอท ำกำรเขยนขอมลใหมตอทำยขอมลทมอยเดม • “r+” ท ำกำรเปดแฟมขอมลทมอยแลวเพอท ำกำรแกไขขอมล • “w+” ท ำกำรสรำงแฟมขอมลใหมและเปดแฟมขอมลนนเพอท ำกำรอำนและเขยนขอมล • “a+” ท ำกำรเปดแฟมขอมลเพอท ำ กำรเขยนขอมลใหมตอทำยขอมลทมอยเดม และท ำ

กำรสรำงแฟมขอมลใหมหำกไมพบแฟมขอมลทระบ

41

การจดการแฟมขอมล

Page 42: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ฟงกชน fclose( )

เมอท ำ กำรประมวลผลแฟมขอมลเสรจเรยบรอยแลว สงทจ ำ เปนจะตองท ำ คอกำรปดแฟมขอมลนนเพอคนคำพนทในหนวยควำมจ ำใหสำมำรถน ำ ไปใชงำนอนตอไปได รปแบบของฟงกชน fclose ( ) มดงน fclose(fileptr); โดยท fileptr คอตวแปรพอยนเตอรชไปยงแฟมขอมลทตองกำรปดทกครงทมกำรเปดแฟมขอมลดวยฟงกชน fopen ( ) ควรจะใชฟงกชน fclose ( ) ดวยเสมอ ฟงกชน fgetc( )

ฟงกชน fgetc ( ) จะท ำกำรอำนคำอกขระทละอกขระจำกแฟมขอมลรปแบบเปนดงน ch = fgetc (fileptr) ; โดยท ch เปนตวแปรทใชรบคำอกขระทไดจำกกำรอำนแฟมขอมล และ fileptr คอตวแปรพอยนเตอรชไปยงแฟมขอมลทตองกำรอำนขอมล

42

การจดการแฟมขอมล

Page 43: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ฟงกชน fputc ( )

ฟงกชนนใชส ำหรบกำรเขยนขอมลทละอกขระลงในแฟมขอมล เมอเขยนขอมลเสรจ 1 อกขระจะท ำกำรเลอนต ำแหนงของพอยนเตอรของแฟมขอมลไป 1 ต ำแหนง รปแบบของฟงกขน fputc ( ) เปนดงน fputc ( ch, fileptr); โดยท ch เปนตวแปรทเกบคำอกขระทตองกำรเขยนลงแฟมขอมล และ fileptr คอตวแปรพอยนเตอรชไปยงแฟมขอมลทตองกำรเขยนขอมล ฟงกชน fgets( )

ฟงกชนนใชส ำหรบอำนขอมลในรปแบบของสตรงจำกแฟมขอมล โดยในกำรอำนคำขอมลตองท ำ กำรระบขนำดของขอมลทตองกำรอำน รปแบบของฟงกชน fgets ( ) เปนดงน fgets ( str , len , fileptr ); โดยท str เปนตวแปรทใชส ำหรบเกบคำสตรงทไดจำกกำรอำนขอมล len คอตวแปรทใชส ำหรบก ำหนดขนำดของขอมลทท ำกำรอำน และ fileptr คอตวแปรพอยนเตอรชไปยงแฟมขอมลทตองกำรอำน

43

การจดการแฟมขอมล

Page 44: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ฟงกชน fputs( )

ฟงกชนนใชส ำหรบกำรเขยนขอมลในรปแบบของสตรงลงในแฟมขอมล รปแบบเปนดงน fputs ( str , fileptr ); โดยท str เปนตวแปรทใชส ำหรบเกบคำสตรงทตองกำรบนทก และ fileptr คอตวแปรพอยนเตอรชไปยงแฟมขอมลทตองกำรเขยน ฟงกชน fscanf( ) และ fprintf( )

หำกตองกำรอำนหรอเขยนขอมลโดยก ำหนดรปแบบของกำรประมวลผลนนสำมำรถท ำไดโดยเรยกใชฟงกชน fscanf ( ) เพอกำรอำนขอมล และเรยกใชฟงกชน fprintf ( ) เพอกำรเขยนขอมลรปแบบของทงสองฟงกชนเปนดงน fscanf (fileptr , format , arg1,arg2, … ); fprintf (fileptr , format , arg1,arg2, … ); fileptr คอ ตวแปรพอยนเ ตอรชไปยงแฟมขอมลทตองกำรอำนหรอเขยน format คอ รปแบบของกำรอำนและเขยนขอมล arg1,arg2,… คอ ตวแปรทตองกำรสงคำเพออำนหรอเขยนขอมล

44

การจดการแฟมขอมล

Page 45: โปรแกรมภาษา C เบื้องต้น · # define: ใช้ส า หรับการกาหนดค่าคงที่ตวัอย่างเช่น

ฟงกชน feof( )

กำรเกบขอมลในแฟมขอมลทกแฟมนนจะมกำรเกบอกขระพเศษทไมสำมำรถมองเหนไดคอ EOF (End Of File) เพอเปนสงบอกใหทรำบวำเปนจดสนสดของแฟมขอมล ฟงกชนทใชตรวจสอบวำต ำแหนงของไฟลพอยนเตอรปจจบนเปนต ำแหนงสนสดของแฟมขอมลใชหรอไมคอฟงกชน feof ( ) รปแบบกำรใชงำนฟงกชนนคอ retvalue = feof ( fileptr ); fileptr คอ ตวแปรพอยนเตอรทชไปยงแฟมขอมล retvalue คอคำทคนกลบมำเพอบอกใหทรำบวำไฟลพอยนเตอรชอยทต ำแหนง EOF หรอไม ถำ retvalue = 0 แสดงวำไฟลพอยนเตอรไมไดชอยทต ำแหนง EOF ถำ retvalue ไมเทำกบ 0 แสดงวำไฟลพอยนเตอรชอยทต ำแหนง EOF

45

การจดการแฟมขอมล