40
ททททททททททททท ททททททททททททท ททททททททททททททททท ททททททททททททททททท ณณณณณณณ ณณณณณณณณ ณณณณณณณณณณณณณณณณณณณณณณณณ ณณณณณณณณณ ณณณณณณณณณณณณณณณณณณณณณณณณ

C lang

Embed Size (px)

DESCRIPTION

การเขียนโปรแกรมภาษาซี

Citation preview

Page 1: C lang

ทบทวนการเขียนทบทวนการเขียนโปรแกรมด้�วยภาษาซีโปรแกรมด้�วยภาษาซี

ณั�ฐวุ�ฒิ� ปอโนนสู�งกลุ่��มสูาระฯการงานอาชี�พแลุ่ะเทคโนโลุ่ยี�

โรงเร�ยีนศร�สูะเกษวุ�ทยีาลุ่�ยี

Page 2: C lang

2

เน��อหาเน��อหา•Dev-C++: ซอฟต์%แวุร%ชี�วุยีพ�ฒินา

โปรแกรม•โครงสูร&างโปรแกรมภาษาซ�•ชีน�ดของข&อม�ลุ่ ต์�วุแปร แลุ่ะสู�ญพจน%•ค,าสู�-งควุบค�มการไหลุ่ของโปรแกรม•ฟ1งก%ชี�น•ข&อผิ�ดพลุ่าดท�-พบบ�อยี

Page 3: C lang

3

เร��มต้�นใช้�งาน เร��มต้�นใช้�งาน Dev-C+Dev-C+++

•สูร&างไฟลุ่%ใหม�จากเมน� File > New > Source File

•ทดลุ่องกรอกโปรแกรมต์ามต์�วุอยี�างด&านขวุา

•เซฟไฟลุ่%โดยีใชี&นามสูก�ลุ่ .c เชี�น first.c

Page 4: C lang

4

เร��มต้�นใช้�งาน เร��มต้�นใช้�งาน Dev-C+Dev-C+++

• ทดลุ่องคอมไพลุ่%แลุ่ะร�นโปรแกรม โดยีคลุ่�4กป�5ม หร6อกด F9

• หากด�ผิลุ่ลุ่�พธ์%ไม�ท�น: เพ�-มค,าสู�-ง getchar() หร6อ system("PAUSE") ด&าน

ท&ายีของโปรแกรม หร6อ เร�ยีกโปรแกรมจาก Command Prompt

Page 5: C lang

5

ด้บ กโปรแกรมด้�วย ด้บ กโปรแกรมด้�วย Dev-Dev-C++C++

•ระบ�บรรท�ดท�-ต์&องการหยี�ดโปรแกรม (Breakpoint) โดยีคลุ่�4กท�-ต์&นบรรท�ด

•คลุ่�4กป�5ม Debug ( )

• ใชี&ชี�ดค,าสู�-งด&านลุ่�างของโปรแกรมเพ6-อควุบค�มการท,างาน

Page 6: C lang

6

ต้ วอย!างโปรแกรมภาษาซีต้ วอย!างโปรแกรมภาษาซี#include <stdio.h>

int main(){int a, b, sum;printf("Enter A: ");scanf("%d", &a);printf("Enter B: ");scanf("%d", &b);sum = a+b;printf("Sum = %d\n", sum);return 0;

}

#include <stdio.h>

int main(){int a, b, sum;printf("Enter A: ");scanf("%d", &a);printf("Enter B: ");scanf("%d", &b);sum = a+b;printf("Sum = %d\n", sum);return 0;

} ค6นค�า 0 เพ6-อระบ�วุ�าโปรแกรมจบการท,างานโดยีไม�ม�ข&อ

ผิ�ดพลุ่าด

อ�านไฟลุ่% stdio.h เพ6-อเอาฟ1งก%ชี�นมาต์รฐานมาใชี&

ฟ1งก%ชี�น main ระบ�จ�ดเร�-มต์&นของโปรแกรม ค6นค�ากลุ่�บเป8น

int ประกาศต์�วุแปรแบบ int สูามต์�วุ

ค6อ a, b แลุ่ะ sum

ฟ1งก%ชี�นมาต์รฐาน printf() ใชี&พ�มพ%ข&อควุามออกทาง

หน&าจอ ฟ1งก%ชี�นมาต์รฐาน scanf() ใชี&ร�บอ�นพ�ทจากแป9นพ�มพ%

Page 7: C lang

7

โครงสร�างหน!วยความจำ%าโครงสร�างหน!วยความจำ%า

1 ช้!อง = 1 ไบต้' (8 บ�ต้)

ต้%าแหน!งท�อย(!(address)

ขี�อม(ลท�เก*บ(data)

0000 320001 670002 2550003 00004 121

: :

Page 8: C lang

8

•ใชี&แทนการอ&างถึ;งหน�วุยีควุามจ,า ณั ต์,าแหน�งหน;-ง ๆ เพ6-อใชี&ในการเก=บข&อม�ลุ่ (ท�-เปลุ่�-ยีนค�าได&)

ในขณัะประมวุลุ่ผิลุ่

ต้ วแปรต้ วแปร (Variable)(Variable)

short a, b, sum;a = 10;b = 5;sum = a+b;

short a, b, sum;a = 10;b = 5;sum = a+b;

ต้%าแหน!ง ค!า: :

1000 2

1001 30

1002 211

1003 5

1005 23

: :

1004 8

10

0

5

0

0

15

b ม�ค�า 5 (อ&างถึ;งค�า)&b ม�ค�า 1002 (อ&างถึ;งต์,าแหน�ง)

a

b

sum

Page 9: C lang

9

ช้น�ด้ขี�อม(ลพื้��นฐานช้น�ด้ขี�อม(ลพื้��นฐานการ

ประกาศขีนาด้(ไบต้'

)ค!าต้%�าส/ด้ ค!าส(งส/ด้

char 1 -128 +127unsigned char 1 0 255short 2 -32,768 +32,767unsigned short 2 0 65,535

int2

หร6อ 4

-32,768 หร6อ -2,147,483,648

+32,767 หร6อ +2,147,483,647

unsigned int

2 หร6อ 4

0 65,535 หร6อ 4,294,967,295

long 4 -2,147,483,648 +2,147,483,647unsigned long 4 0 4,294,967,295

long long 8 −9,223,372,036,854,775,808

+9,223,372,036,854,775,807

unsigned long long 8 0 18,446,744,073,7

09,551,615

Page 10: C lang

10

ช้น�ด้ขี�อม(ลอ��น ๆช้น�ด้ขี�อม(ลอ��น ๆ•เลุ่ขทศน�ยีม (floating point)

float (4 ไบต์% ) เก=บเลุ่ขทศน�ยีมแบบ single precision

double (8 ไบต์% ) เก=บเลุ่ขทศน�ยีมแบบ double precision

•ต์�วุชี�4 (pointer)•อาร%เรยี% (array)

Page 11: C lang

11

•เป8นต์�วุแปรท�-เก=บต์,าแหน�งของหน�วุยีควุามจ,า เพ6-อใชี&อ&างอ�งข&อม�ลุ่ในหน�วุยีควุามจ,า

ต์,าแหน�งอ6-น ๆ

ต้ วแปรแบบต้ วช้�ต้ วแปรแบบต้ วช้� (Pointer)(Pointer)

short a = 57;short *p;p = &a;*p = 78;

short a = 57;short *p;p = &a;*p = 78;

ต้%าแหน!ง ค!า: :

0020 2

0021 30

0022 211

0023 5

0025 23

: :

0024 8

57

0

20

0

p

78

0

a

p ม�ค�า 20 (ค�าของ p)&p ม�ค�า 22 (ต์,าแหน�งของ p)*p ม�ค�า 78 (ค�าในต์,าแหน�งท�- p ชี�4อยี��)

Page 12: C lang

12

อาร'เรย'และสต้ร�งอาร'เรย'และสต้ร�ง•ข&อม�ลุ่แบบอาร%เรยี%เป8นการรวุมกลุ่��ม

ข&อม�ลุ่ชีน�ดเด�ยีวุก�นไวุ&เป8นแถึวุลุ่,าด�บ•จ�ดเป8นต์�วุแปรแบบต์�วุชี�4ประเภทหน;-ง

short arr[3];arr[0] = 50;arr[2] = 89;

short arr[3];arr[0] = 50;arr[2] = 89;

arr ม�ค�า 20arr[0] ม�ค�า 50&arr ม�ค�า 20*arr ม�ค�า 50

23

8

ต้%าแหน!ง ค!า: :

0020 2

0021 30

0022 211

0023 5

0027 12

: :

0026 33

0025

0024

50

0

89

0

arr

Page 13: C lang

13

ขี�อม(ลประเภทสายอ กขีระ ขี�อม(ลประเภทสายอ กขีระ ((สต้ร�งสต้ร�ง))

• “สูต์ร�ง” ค6ออาร%เรยี%ของอ�กขระโดด (array of char)

char s[] = "Hello";printf("%c %c %c\n", s[0], s[1], s[2]);

char s[] = "Hello";printf("%c %c %c\n", s[0], s[1], s[2]);

H e lH e l

ผิลุ่ลุ่�พธ์%:

Page 14: C lang

14

ส ญพื้จำน' ส ญพื้จำน' (Literal)(Literal)• เป8นเสูม6อน “ค�าคงท�-” ท�-ปรากฏอยี��ภายีในโปรแกรม• จ,านวุนเต์=ม (ชีน�ดข&อม�ลุ่ char, short, long,...)

เชี�น 10, -30• จ,านวุนเต์=มแบบยีาวุ (ชีน�ดข&อม�ลุ่ long long)

เชี�น 123456789012LL• เลุ่ข Floating point (ชีน�ดข&อม�ลุ่ float, double) เชี�น 3.14, 500.0

• อ�กขระโดด (ชีน�ดข&อม�ลุ่ char) เชี�น 'a'

• สูต์ร�ง (ชีน�ดข&อม�ลุ่ char*) เชี�น "Hello"

Page 15: C lang

15

การร บการร บ//แสด้งผลแสด้งผล•ฟ1งก%ชี�นมาต์รฐาน (เพ6-อการร�บ/แสูดงผิลุ่ข&อม�ลุ่)

ถึ�กเต์ร�ยีมไวุ&ในเฮดเดอร%ไฟลุ่% “stdio.h”

•ฟ1งก%ชี�นร�บข&อม�ลุ่ scanf สู,าหร�บต์�วุแปรท�กชีน�ด (ระบ�ด&วุยี %format)

getchar, getch สู,าหร�บต์�วุแปรชีน�ดอ�กขระโดด gets สู,าหร�บต์�วุแปรชีน�ดสูต์ร�ง

•ฟ1งก%ชี�นแสูดงผิลุ่ข&อม�ลุ่ (Output Function) printf สู,าหร�บต์�วุแปรท�กชีน�ด (ระบ�ด&วุยี %format)

Page 16: C lang

16

การแสด้งผลขี�อม(ลการแสด้งผลขี�อม(ล•ท�กอยี�างในหน�วุยีควุามจ,าลุ่&วุนเป8น

ต์�วุเลุ่ข•การแสูดงผิลุ่ลุ่�พธ์%ด&วุยีฟ1งก%ชี�น printf

จ;งต์&องระบ�ร�ปแบบต์ามท�-เราต์&องการจะเห=นchar c = 65;

printf("c (as a number) = %d\n", c);printf("c (as a character) = %c\n", c);

char c = 65;

printf("c (as a number) = %d\n", c);printf("c (as a character) = %c\n", c);

หน!วยความจำ%า:

2

30

65

5

23

:

8

c

c (as a number) = 65c (as a character) = A

c (as a number) = 65c (as a character) = A

ผิลุ่ลุ่�พธ์%:

Page 17: C lang

17

%format %format ใน ใน scanf scanf และ และ printfprintf

ช้น�ด้ขี�อม(ล ช้น�ด้ต้ วแปร %forma

t

จ,านวุนเต์=ม

int %dlong %ldlong long %lldunsigned int %uunsigned long %luunsigned long long %llu

จ,านวุนม�ทศน�ยีม

float %f

double %lf

อ�กขระโดด char %c

สูต์ร�ง char array[] %s

Page 18: C lang

18

ต้ วอย!างการใช้� ต้ วอย!างการใช้� scanfscanfchar name[20];int age;

printf("Enter your name and age: ");scanf("%s %d", name, &age);

printf("Hello %s. You are %d years old.\n",name, age);

char name[20];int age;

printf("Enter your name and age: ");scanf("%s %d", name, &age);

printf("Hello %s. You are %d years old.\n",name, age);

Enter your name and age: Tony 38Hello Tony. You are 38 years old.

Enter your name and age: Tony 38Hello Tony. You are 38 years old.

ผิลุ่ลุ่�พธ์%:

Page 19: C lang

19

การไหลขีองโปรแกรมการไหลขีองโปรแกรม•โปรแกรมแบบง�ายี ท,างาน

รวุดเด�ยีวุจากบนลุ่งลุ่�าง

STARTSTARTSTARTSTART

ENDENDENDEND

StatementStatementStatementStatement

โปรแกรมท�มค%าโปรแกรมท�มค%าส �งเด้ยวส �งเด้ยว

โปรแกรมท�มโปรแกรมท�มหลายค%าส �งหลายค%าส �ง

StatementStatement11StatementStatement11

StatementStatement22StatementStatement22

StatementStatementnnStatementStatementnn

ENDENDENDEND

STARTSTARTSTARTSTART

StatementStatement33StatementStatement33

Page 20: C lang

20

การควบค/มการไหลขีองการควบค/มการไหลขีองโปรแกรมโปรแกรม

•ค,าสู�-งก,าหนดเง6-อนไข โครงสูร&าง if โครงสูร&าง if…else

•ค,าสู�-งวุนซ,4า โครงสูร&าง while loop โครงสูร&าง do…while loop โครงสูร&าง for loop

•โปรแกรมยี�อยี (ฟ1งก%ชี�น)

Page 21: C lang

21

โครงสร�าง โครงสร�าง ififif (if (conditioncondition) ) {{ statement1;statement1;

:: statementN;statementN;}}

if (if (conditioncondition) ) {{ statement1;statement1;

:: statementN;statementN;}}

C SyntaxC Syntax

STARTSTARTSTARTSTART

ENDENDENDEND

StatementStatementStatementStatement

conditionconditionconditionconditiontrue

false

StatementStatementStatementStatement

FlowchartFlowchart

• สู�วุนของ conditioncondition ต์�ควุามเป8นข&อม�ลุ่แบบ int

• ท,าค,าสู�-งใน {} หาก conditioncondition เป8นจร�ง (ไม�เป8นศ�นยี%)

• หากม�ค,าสู�-งเด�ยีวุไม�จ,าเป8นต์&องใชี&วุงเลุ่=บป@กกา

Page 22: C lang

22

โครงสร�าง โครงสร�าง if…elseif…else

if (if (conditioncondition)){ { statementstatementt1t1;; statementstatementt2t2;;}}elseelse{{ statementstatementf1f1;; statementstatementf2f2; ; }}

if (if (conditioncondition)){ { statementstatementt1t1;; statementstatementt2t2;;}}elseelse{{ statementstatementf1f1;; statementstatementf2f2; ; }}

C SyntaxC SyntaxFlowchartFlowchart

STARTSTARTSTARTSTART

ENDENDENDEND

StatementStatementf1f1StatementStatementf1f1

conditionconditionconditionconditiontrue false

StatementStatementt1t1StatementStatementt1t1

StatementStatementf2f2StatementStatementf2f2StatementStatementt2t2

StatementStatementt2t2

Page 23: C lang

23

โครงสร�างโครงสร�าง ifif แบบหลายแบบหลายเง��อนไขีเง��อนไขีif (x==1)

Action1;else if (x==2) Action2;else if (x==3) Action3;else if (x==4) Action4;else Default_Action;

if (x==1) Action1;else if (x==2) Action2;else if (x==3) Action3;else if (x==4) Action4;else Default_Action;

false

Action1;Action1;x==1x==1

Action2;Action2;x==2x==2

Action3;Action3;x==3x==3

Action4;Action4;x==4x==4

true

true

true

true

false

false

false

Default_Action;Default_Action;

Page 24: C lang

24

โครงสร�างโครงสร�าง switch-caseswitch-caseswitch (x) { case 1: Action1; break; case 2: Action2; break; case 3: Action3; break; case 4: Action4; break; default: Default_Action;

break;}

switch (x) { case 1: Action1; break; case 2: Action2; break; case 3: Action3; break; case 4: Action4; break; default: Default_Action;

break;}

false

Action1;Action1;x==1x==1

Action2;Action2;x==2x==2

Action3;Action3;x==3x==3

Action4;Action4;x==4x==4

true

true

true

true

false

false

false

Default_Action;Default_Action;

Page 25: C lang

25

โครงสร�าง โครงสร�าง whilewhile ล(ปล(ป

• วุนท,าค,าสู�-ง stmt1 ถึ;ง stmtNต์ราบเท�าท�- condition เป8นจร�ง

conditionconditionconditioncondition

ENDENDENDEND

STARTSTARTSTARTSTART

true

StatementStatementStatementStatement

StatementStatementStatementStatement

false

while (condition) { stmt1; stmt2; : stmtN;}

while (condition) { stmt1; stmt2; : stmtN;}

Page 26: C lang

26

โครงสร�าง โครงสร�าง do…whiledo…while ล(ปล(ป

• ท,าค,าสู�-ง stmt1...stmtN แลุ่ะวุนท,าซ,4าอ�กต์ราบเท�าท�- condition ยี�งคงเป8นจร�ง

• น�-นค6อ stmt1...stmtN จะถึ�กกระท,าอยี�างน&อยีหน;-งคร�4ง ENDENDENDEND

conditionconditionconditioncondition

false

STARTSTARTSTARTSTART

StatementStatement11StatementStatement11

StatementStatementNNStatementStatementNN

true

do { stmt1; stmt2; : stmtN;} while (condition);

do { stmt1; stmt2; : stmtN;} while (condition);

Page 27: C lang

27

ล(ปวนน บ ล(ปวนน บ ((Counting Counting Loop)Loop)

•หากพ�จารณัาโครงสูร&างของลุ่�ปท�-ใชี&ในโปรแกรมสู�วุนใหญ� ม�กจะเป8นลุ่�ปแบบวุนน�บ

•ลุ่�ปวุนน�บจะม�สู�วุนประกอบด�งต์�วุอยี�างต์�อไปน�4เสูมอint i, sum = 0;

i = 1;while (i <= 10){sum = sum + i;i = i + 1;

}printf("Sum = %d\n", sum);

int i, sum = 0;i = 1;while (i <= 10){sum = sum + i;i = i + 1;

}printf("Sum = %d\n", sum);

ต์�วุแปรท�-ใชี&น�บ

สู�วุนก,าหนดค�าเร�-มต์&น

การปร�บค�าต์�วุน�บ

เง6-อนไขของต์�วุน�บ

ค,าสู�-งท�-ถึ�กท,าซ,4า

Page 28: C lang

28

โครงสร�าง โครงสร�าง for for ล(ปล(ป• เป8นโครงสูร&างท�-ให&ควุามสูะดวุกในการเข�ยีนลุ่�ปวุนน�บ

• การท,างาน1. ท,าค,าสู�-ง init_stmt หน;-งคร�4ง2. ถึ&า condition เป8นจร�ง ท,าค,าสู�-ง statement1...statementN3. ท,าค,าสู�-ง update_stmt จากน�4นกลุ่�บไปท,าข&อ 2

for (init_stmt; condition; update_stmt){ statement1; statement2; : statementN;}

for (init_stmt; condition; update_stmt){ statement1; statement2; : statementN;}

Page 29: C lang

29

การท%างานขีอง การท%างานขีอง for for ล(ปล(ปSTARTSTARTSTARTSTART

ENDENDENDEND

falseconditionconditionconditioncondition

true

Statement1Statement1Statement1Statement1

StatementNStatementNStatementNStatementN

init_stmtinit_stmtinit_stmtinit_stmt

update_stmtupdate_stmtupdate_stmtupdate_stmt

for (init_stmt; condition; update_stmt){ statement1; statement2; : statementN;}

for (init_stmt; condition; update_stmt){ statement1; statement2; : statementN;}

Page 30: C lang

30

โปรแกรมย!อย โปรแกรมย!อย (Subroutine)(Subroutine)

• ในภาษาซ�เร�ยีกวุ�า "ฟ1งก%ชี�น" (Function)• เป8นสู�วุนของโปรแกรมท�-ม�หน&าท�-การท,างานชี�ดเจน

ในต์�วุเอง ซ;-งถึ�กเร�ยีกใชี&ในโปรแกรมหลุ่�กอ�กท�หน;-ง• การเข�ยีนโปรแกรมโดยีแยีกเป8นฟ1งก%ชี�นม�ข&อด�

หลุ่ายีประการ ชี�วุยีแบ�งงานท�-ซ�บซ&อนเป8นงานยี�อยีหลุ่ายีงาน ลุ่ดการเข�ยีนโค&ดท�-ซ,4าซ&อน ซ�อนรายีลุ่ะเอ�ยีดไวุ&ในสู�วุนอ6-น ท,าให&โปรแกรมเข&าใจได&

ง�ายีข;4น ฟ1งก%ชี�นท�-เข�ยีนข;4นมาสูามารถึน,าไปใชี&ในโปรแกรมอ6-นได&

Page 31: C lang

31

ช้น�ด้ขีองฟั4งก'ช้ นช้น�ด้ขีองฟั4งก'ช้ น• ฟ1งก%ชี�นมาต์รฐาน ฟ1งก%ชี�นมาต์รฐาน (Standard (Standard

Functions)Functions) เป8นฟ1งก%ชี�นท�-อยี��ในชี�ดไลุ่บราร�ของภาษาซ� เร�ยีก

ใชี&ได&ท�นท� เชี�น printf(), scanf(), ...

• ฟ1งก%ชี�นท�-ผิ�&ใชี&ก,าหนด ฟ1งก%ชี�นท�-ผิ�&ใชี&ก,าหนด (User Defined (User Defined Functions)Functions) เป8นฟ1งก%ชี�นท�-ผิ�&ใชี&สูร&างข;4นเอง เร�ยีกใชี&ใน main() หร6อจากฟ1งก%ชี�นอ6-นๆ ได&

เหม6อนฟ1งก%ชี�นมาต์รฐาน

Page 32: C lang

32

ต้ วอย!างฟั4งก'ช้ นมาต้รฐานต้ วอย!างฟั4งก'ช้ นมาต้รฐานกล/!มฟั4งก'ช้ น เฮด้เด้อร'ไฟัล' ต้ วอย!างฟั4งก'ช้ น

จ�ดการอ�นพ�ท/เอาท%พ�ท stdio.h scanf, printf,

gets, putsคณั�ต์ศาสูต์ร% math.h sin, cos, exp, powแยีกประเภทข&อม�ลุ่อ�กขระ ctype.h isalpha, isdigit,

islower, isupper

จ�ดการก�บสูต์ร�ง string.h strlen, strcpy, strcmp

อ6-น ๆ stdlib.h rand, atoi, atof

Page 33: C lang

33

ฟั4งก'ช้ นท�ผ(�ใช้�ก%าหนด้เองฟั4งก'ช้ นท�ผ(�ใช้�ก%าหนด้เอง•แบบไม�สู�งค�ากลุ่�บ

ระบ�ชีน�ดข&อม�ลุ่ void ไม�ต์&องม�ค,าสู�-ง return

•แบบสู�งค�ากลุ่�บ ระบ�ชีน�ดข&อม�ลุ่ท�-

ต์&องการ ใชี&ค,าสู�-ง return สู�งค�า

ค6นต์ามชีน�ดท�-ระบ�

void say_hi(char *name){printf("Hi, %s\n", name);

}

void say_hi(char *name){printf("Hi, %s\n", name);

}

int max(int a, int b){if (a > b)return a;

elsereturn b;

}

int max(int a, int b){if (a > b)return a;

elsereturn b;

}

Page 34: C lang

34

การไหลขีองโปรแกรมเม��อการไหลขีองโปรแกรมเม��อใช้�ฟั4งก'ช้ นใช้�ฟั4งก'ช้ น

int incr(int i){ int j; j = i + 1; return j;}

int main() { int k, m = 4; k = incr(m); printf ("k = %d, m = %d\n", k, m);return 0;

}

int incr(int i){ int j; j = i + 1; return j;}

int main() { int k, m = 4; k = incr(m); printf ("k = %d, m = %d\n", k, m);return 0;

}

Page 35: C lang

35

ขี �นต้อนว�ธีก บการขี �นต้อนว�ธีก บการโปรแกรมโปรแกรม

•การออกแบบข�4นต์อนวุ�ธ์�เป8นสู�วุนสู,าค�ญในการพ�ฒินาโปรแกรม

•การ "เข�ยีนโปรแกรม" เป8นเพ�ยีงการแปลุ่งข�4นต์อนวุ�ธ์�ให&อยี��ในร�ปท�-ยีอมร�บได&โดยีต์�วุภาษา

Page 36: C lang

36

ต้ วอย!างต้ วอย!าง•เข�ยีนโปรแกรมเพ6-อร�บต์�วุเลุ่ขระบ�ขนาด

แลุ่ะพ�มพ%ร�ปสูามเหลุ่�-ยีมท�-ม�ขนาดต์ามท�-ก,าหนดEnter N: 3

******

Enter N: 3******

Enter N: 5***************

Enter N: 5***************

Page 37: C lang

37

ต้ วอย!างต้ วอย!าง•เข�ยีนฟ1งก%ชี�น sort(int a[], int n)

เพ6-อเร�ยีงลุ่,าด�บข&อม�ลุ่ในอาร%เรยี%จากน&อยีไปมาก แนวุค�ด: ด;งข&อม�ลุ่ท�-น&อยีท�-สู�ดมาวุางไวุ&

ด&านหน&าท�ลุ่ะต์�วุ 12 34 5 หาต์�วุน&อยีท�-สู�ด

สูลุ่�บท�-มาไวุ&ด&านหน&าท,าซ,4า เฉพาะก�บสู�วุนท�-เหลุ่6อ

2 34 51

12 34 5 21

2 34 51 42

Page 38: C lang

38

ขี�อผ�ด้พื้ลาด้ท�พื้บบ!อยขี�อผ�ด้พื้ลาด้ท�พื้บบ!อย#include <stdio.h>

int main (){int i;

scanf("%d", i);if (i = 0)puts("false");

elseputs("true");

return 0;}

#include <stdio.h>

int main (){int i;

scanf("%d", i);if (i = 0)puts("false");

elseputs("true");

return 0;}

สู�งค�า i ให& scanf แทนท�-จะสู�งต์,าแหน�ง

ใชี&ค,าสู�-งก,าหนดค�า (=) แทนการ

เปร�ยีบเท�ยีบ (==)

Page 39: C lang

39

ขี�อผ�ด้พื้ลาด้ท�พื้บบ!อยขี�อผ�ด้พื้ลาด้ท�พื้บบ!อย#include <stdio.h>

int main (){char s[10];

printf("Enter password: ");scanf("%s", s);if (s == "pass")puts("Correct password");

elseputs("Incorrect password");

return 0;}

#include <stdio.h>

int main (){char s[10];

printf("Enter password: ");scanf("%s", s);if (s == "pass")puts("Correct password");

elseputs("Incorrect password");

return 0;}

ใชี& == เปร�ยีบเท�ยีบสูต์ร�งไม�ได&ใชี&ฟ1งก%ชี�น

strcmp() แทน

Page 40: C lang

40

เอกสารอ�างอ�งเอกสารอ�างอ�ง• สูไลุ่ด%บรรยีายี การโปรแกรมภาษา C โดยี รศ.ธ์�ร

วุ�ฒิน% ประกอบผิลุ่• สูไลุ่ด%บรรยีายี Crash Course in C โดยี

J. R. Cooperstock