+ All Categories
Home > Documents > บทที่ 6 โครงสร้างและ...

บทที่ 6 โครงสร้างและ...

Date post: 01-Jun-2020
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
76
บทที่ 6 โครงสร้างและไวยากรณ์ภาษาซี
Transcript
Page 1: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

บทท 6 โครงสรางและไวยากรณภาษาซ

Page 2: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

1. โครงสรางโปรแกรมภาษาซ

2. ประโยคค าสงในภาษาซ

3. ขอมล คาคงทและตวแปร

4. ตวด าเนนการและนพจน

5. ฟงกชนพนฐาน

หนวยท 6 โครงสรางและไวยากรณภาษาซ

สาระการเรยนร

Page 3: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

1. อธบายสวนประกอบของโครงสรางภาษาซได

2. จ าแนกค าสงในภาษาซได

3. บอกลกษณะการเขาถงขอมลได

4. ประกาศคาคงทในโปรแกรมในภาษาซได

5. จ าแนกลกษณะขอมลพนฐานได

6. ประกาศตวแปรในโปรแกรมภาษาซได

7. จ าแนกชนดของตวแปรได

8. บอกขอก าหนดในการตงชอตวแปรได

9. บอกวธการเปลยนประเภทตวแปรได

10. จ าแนกประเภทของตวด าเนนการในภาษาซได

11. เขยนนพจนในภาษาซได

12. อธบายการใชฟงกชนพนฐานในภาษาซได

13. เขยนโปรแกรมภาษาซรบขอมลและแสดงผลขอมลได

สมรรถนะการเรยนร

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 4: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

แผนผงความคด (Mind Mapping) ของหนวยการเรยนร

โครงสรางและไวยากรณภาษาซ

โครงสรางโปรแกรมภาษาซ ไวยากรณภาษาซ

สวนหว

สวนฟงกชนหลก

สวนก าหนดฟงกชนทสรางขน

ประโยคค าสง

ขอมล

ตวแปร

ตวด าเนนการ

นพจน

นพจน ฟงกชนพนฐาน

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 5: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

โปรแกรมทเขยนดวยภาษาซ มลกษณะโครงสรางแบงออกเปนสวน ๆ ดงน

1.สวนค าสงพร-โพรเซสเซอร (Pre-processor Command)

2.สวนประกาศ (Global Declarations)

3.สวนฟงกชนหลก (Main Function)

4.สวนก าหนดฟงกชนทสรางขน (User Defined Functions)

โครงสรางโปรแกรมภาษาซ

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 6: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

เปนสวนทอยสวนแรกของโปรแกรม อยกอนฟงกชนหลก (Main

Function) ในสวนยงมองคประกอบทส าคญ ไดแก สวนค าสงพร-

โพรเซสเซอร สวนประกาศตวแปรแบบโกลบอลและประกาศฟงกชนท

สรางขนใชเอง

1. สวนค าสงพร-โพรเซสเซอร (Pre-processor Command)

2. สวนประกาศ (Global Declarations)

สวนหว (Header)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 7: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• #include Include text from a file

• #define Define a macro

• #ifdef Test if a symbol is defined

• #ifndef Test if a symbol is not defined

• #if Test if compile-time condition hold

• #elif Same elseif

• #endif End a pre-processor conditional

• #line Give a line number for compile message

• #pragme Implementation dependent directive

• #undef Undefine a macro

ประโยคค าสงพรโพรเซสเซอร

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 8: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

#include

ใชส าหรบสงใหคอมไพเลอร น าไฟลทระบเขามารวมกบโปรแกรมกอนทจะท าการแปล

โปรแกรม สามารถเขยนได 2 รปแบบ คอ

#include <files.h>

โปรแกรมจะเรมคนหาไฟลจากไดเรกทอรทก าหนด เชน

#include <conio.h>

#include <stdio.h>

#include "files.h"

โปรแกรมจะเรมคนหาไฟลจากไดเรกทอรปจจบนกอน ถาหาไมพบกจะไปคนหาในไดเรกทอรท

ก าหนด เชน

#include "conio.h"

#include "stdio.h"

ตวอยางการใชค าสงพรโพรเซสเซอร

หนวยท 6 โครงสรางและไวยากรณภาษาซ หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 9: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

#define

ใชส าหรบประกาศและก าหนดคาคงท

รปแบบ

#define ชอคาคงท คาทก าหนด

เชน

#define PI 3.1415926

#define NAME "Nuntchayathorn"

ตวอยางการใชค าสงพรโพเซสเซอร

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 10: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

อยในสวนหว (Header) ของโปรแกรมทอยถดจากสวนค าสงพร-

โพรเซสเซอร เปนสวนทใชในการประกาศตวแปรแบบโกลบอล (Global Variable)

หรอ ประกาศฟงกชนขนใชเองในโปรแกรม User-Defined Function

– Global Variable Declaration

– User-Defined Function Declaration

สวนประกาศ (Global Declarations)

หนวยท 6 โครงสรางและไวยากรณภาษาซ หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 11: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

– void function_name();

– void function_name(arguments);

– return_type function_name();

– return_type function_name(arguments);

รปแบบการประกาศฟงกชน

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 12: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

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

• รปแบบของโปรแกรมหลก

void main( ) {

local variable declaration;

statements;

...

}

• รปแบบของฟงกชนหลก

int main( ) {

local variable declaration;

statements;

...

return 0;

}

สวนฟงกชนหลก (Main Function)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 13: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

ในภาษาซสามารถเขยนฟงกชน ได 4 รปแบบ

• แบบไมมการรบคาและสงคากลบ

• แบบมการรบคาแตไมมการสงคากลบ

• แบบไมมการรบคาแตมการสงคากลบ

• แบบมการรบคาและสงคากลบ

สวนก าหนดฟงกชนทสรางขน (User Defined Functions)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 14: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

1. แบบไมมการรบคาและสงคากลบ

void function_name( ) {

local variable declaration;

statements;

}

สวนก าหนดฟงกชนทสรางขน (User Defined Functions)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 15: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

2. แบบมการรบคาแตไมมการสงคากลบ

void function_name( parameter ) {

local variable declaration;

statements;

}

สวนก าหนดฟงกชนทสรางขน (User Defined Functions)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 16: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

3. แบบไมมการรบคาแตมการสงคากลบ

return_type function_name( ) {

local variable declaration;

statements;

var = ... ;

return var;

}

หนวยท 6 โครงสรางและไวยากรณภาษาซ หนวยท 6 โครงสรางและไวยากรณภาษาซ

สวนก าหนดฟงกชนทสรางขน (User Defined Functions)

Page 17: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

4. แบบมการรบคาและสงคากลบ

return_type function_name( parameter ) {

local variable declaration;

statements;

var = ... ;

return var;

}

หนวยท 6 โครงสรางและไวยากรณภาษาซ

สวนก าหนดฟงกชนทสรางขน (User Defined Functions)

Page 18: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

ประโยคค าสงในภาษาซ ม 2 ลกษณะ คอเปนค าสงและฟงกชน ประโยค

ค าสงสามารถใชไดทนท สวนฟงกชนจะตองมการน าไลบรารไฟลทไดนยาม

ฟงกชนตาง ๆ ไว โดยการ include ไฟลเหลานนไวในสวนหวโปรแกรม ประโยค

ค าสง (Statements) ทกค าสงจะพมพดวยอกษรตวเลกทงหมด และตองจบค าสงทก

ค าสงดวยเครองหมาย ; (Semi-colon) เสมอ อาจมขอยกเวน ทไมตองใส

เครองหมาย ; (Semi-colon) เชน กรณทค าสงนน มขอบเขตค าสง { } อาจไมตองจบ

ค าสงดวยเครองหมาย ; กได (จะใส ; หรอไมใสกได)

ประโยคค าสง (Statements) ในภาษาซ

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 19: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

ค าสงในภาษาซ สามารถแบงเปนกลมค าสงตาง ๆ ไดดงน คอ

• ค าสงประกาศตวแปร (Variables Declaration)

• ค าสงก าหนดคา (Assignments)

• ค าสงเงอนไข และ ค าสงเลอกท า (Condition)

• ค าสงวนรอบการท างาน (Looping)

• ฟงกชนแสดงผล (Output)

• ฟงกชนรบขอมล (Input)

• ฟงกชนการค านวณ ตรวจสอบและแปลงขอมลตาง ๆ

• ฟงกชนเกยวกบสตรง (String functions)

• ฟงกชนเกยวกบวนและเวลา และเกยวกบเสยง

• ฟงกชนเกยวกบการท างานในโหมดกราฟก

• ฟงกชนด าเนนการเกยวกบไฟล

ค าสงในภาษาซ

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 20: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

รปแบบ type var_list;

เชน

int a,b,c;

float f;

double d,ans;

char ch;

char str[30];

เปนตน

ค าสงประกาศตวแปร (Variables Declaration)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 21: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

รปแบบ var = Expression;

เชน

a = 0;

b = a;

n= 10;

sum = n*(n+1)/2;

เปนตน

ค าสงก าหนดคา (Assignments)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 22: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• if

• if else

• switch/case

ค าสงเงอนไข และ ค าสงเลอกท า (Condition)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 23: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• do while

• while

• for

ค าสงวนรอบการท างาน (Looping)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 24: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

ฟงกชนทถกนยามไวในไฟล conio.h, stdio.h ไดแก

• printf( )

• putchar( )

• puts( )

• cprintf( )

• clrscr( )

• clreol( )

• gotoxy( )

เปนตน

ฟงกชนแสดงผล (Output)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 25: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

ฟงกชนทถกนยามไวในไฟล conio.h, stdio.h ไดแก

• scanf( )

• getch( )

• getche( )

• getchar( )

• gets( )

เปนตน

ฟงกชนรบขอมล (Input)

หนวยท 6 โครงสรางและไวยากรณภาษาซ หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 26: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• abs( )

• atoi( )

• atof( )

• atol( )

• rand( )

• randomize( )

• qsort( )

• max( )

• min( )

• strtod( )

• strtol( )

• stetold( )

• swap( )

• system( )

• time( )

เปนตน

ฟงกชนการค านวณ ตรวจสอบและแปลงขอมลตาง ๆ

ฟงกชนตาง ๆ ทถกนยามในไฟล stdlib.h ไดแก

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 27: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• isalnum( )

• isalpha( )

• isdigit( )

• islower( )

• isupper( )

• tolower( )

• toupper( )

เปนตน

ฟงกชนการค านวณ ตรวจสอบและแปลงขอมลตาง ๆ

ฟงกชนตาง ๆ ทถกนยามในไฟล ctype.h ไดแก

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 28: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• exp( )

• sqrt( )

• pow( )

• sin( )

• cos( )

• tan( )

• log( )

• log10( )

• ceil( )

• floor( )

• fabs( )

เปนตน

ฟงกชนการค านวณ ตรวจสอบและแปลงขอมลตาง ๆ

ฟงกชนตาง ๆ ทถกนยามในไฟล math.h ไดแก

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 29: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• strlen( )

• strcpy( )

• strcat( )

• strcmp( )

เปนตน

ฟงกชนเกยวกบสตรง (String functions)

ฟงกชนตาง ๆ ทถกนยามในไฟล string.h ไดแก

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 30: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• gettime( )

• getdate( )

• settime( )

• setdate( )

• sound( )

• delay( )

• nosound( )

เปนตน

ฟงกชนเกยวกบวนและเวลา และเกยวกบเสยง

ฟงกชนตาง ๆ ทถกนยามในไฟล dos.h ไดแก

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 31: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

arc( )

bar( )

bar3d( )

circle( )

cleardevice( )

closegraph( )

drawpoly( )

ellipse( )

fillellipse( )

fillpoly( )

floodfill( )

getcolor( )

getimage( )

getmaxx( )

getmaxy( )

getx( )

gety( )

imagesize( )

initgraph( )

line( )

linerel( )

lineto( )

moverel( )

moveto( )

outtext( )

outtextxy( )

pieslice( )

putimage( )

putpixel( )

rectangle( )

setbkcolor( )

setcolor( )

setfillpattern( )

setfillstyle( )

settextstyle( )

เปนตน

ฟงกชนเกยวกบการท างานในโหมดกราฟก

ฟงกชนตาง ๆ ทถกนยามในไฟล graphics.h ไดแก

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 32: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• fopen( )

• fgetc( )

• fgets( )

• fputs( )

• fputc( )

• fscanf( )

• fprintf( )

• fseek( )

• feof( )

• fclose( )

เปนตน

ฟงกชนด าเนนการเกยวกบไฟล

ฟงกชนตาง ๆ ทถกนยามในไฟล stdio.h ไดแก

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 33: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• รปแบบการเขยนหมายเหต บรรทดเดยว (Single-Line Comment)

โดยพมพเครอง Double slash // หนาขอความทท าเปนหมายเหต

รปแบบ

// ค าอธบาย หรอ หมายเหต เขยนไวในบรรทดเดยว

• รปแบบการเขยนหมายเหตแบบหลายบรรทด (Multi-Line Comment)

โดยขนตนดวยเครองหมาย /* และสนสดดวยเครองหมาย */

รปแบบ

/*

ค าอธบาย หรอ หมายเหตตาง ๆ สามารถเขยนไดหลาย ๆ บรรทด

*/

การเขยนหมายเหตในโปรแกรมภาษาซ

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 34: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

หมายถง สงทเกยวกบปญหา หรอสงทน ามาใชในการเขยนโปรแกรม

เมอน าขอมลเขาสคอมพวเตอร ขอมลจะถกเกบไวในสวนของหนวยความจ าหลก

ในพนททไดจองไวส าหรบเกบขอมล โดยมการก าหนดชอในการเขาถงขอมลนน

ซงชอทใชส าหรบอางองถงขอมล ม 2 ลกษณะ คอ เปนคาคงท และตวแปร

ขอมล (Data)

หนวยท 6 โครงสรางและไวยากรณภาษาซ หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 35: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

ท าหนาทส าหรบเกบพกขอมล ตามแตละชนดทไดประกาศไว แตเปนคาทไมสามารถเปลยนแปลงไดอก

จดประสงคเพอทจะน าชอคาคงทไปใชในโปรแกรม ในภาษาซ ควรก าหนดชอคาคงทดวยตวพมพใหญ เพอใหแตกตาง

จากตวแปร การก าหนดคาคงท ในภาษาซสามารถท าได 2 รปแบบ คอ

• รปแบบท 1 เปนการก าหนด Macro

#define cont_name value

เชน

#define PI 3.1415926

#define OWNER "Nuntchayathorn"

• รปแบบท 2 เปนการประกาศคาคงท

const type cont_name = value ;

เชน

const float PI = 3.1415926 ;

const char OWNER[ ] = "Nuntchayathorn" ;

คาคงท (Constant)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 36: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

Literals

คอค าทใชแสดงคาคงท ในภาษาซสามารถแบงเปน 4 ประเภท ดงน

• Integer literal

• Floating-point literal

• Character literal

• String literal

ขอมลพนฐาน (Primitive Data Type)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 37: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

คาคงทจ านวนเตม

– เลขฐานสบ (Decimal) เปนเลขฐานสบทใชทวไป

– เลขฐานแปด (Octal) สามารถน าไปค านวณได โดยการพมพตวเลขขนตนดวยเลข 0

เชน 071, 032, 0144

– เลขฐานสบหก (Hexadecimal) สามารถน าไปค านวณได โดยการพมพขนตนดวย

0x หรอ 0X เชน 0xff, 0x54, 0XA9

Integer literal

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 38: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• ในโปรแกรม Turbo C/C++ V3.0 ม 2 ขนาดคอมขนาด 16 บต กบ 32 บต

แบงเปน 4 ชนด คอ

– int มขนาด 16 บต

เปนแบบคดเครองหมาย มคาอยระหวาง -32768 ถง +32767

– unsigned int มขนาด 16 บต

เปนแบบไมคดเครองหมาย มคาอยระหวาง 0 ถง 65535

– long มขนาด 32 บต

เปนแบบคดเครองหมาย มคาอยระหวาง -2147483648 ถง +2147483647

– unsigned long มขนาด 32 บต

เปนแบบไมคดเครองหมาย มคาอยระหวาง 0 ถง 4294967295

เลขจ านวนเตม

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 39: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

คอคาคงทเลขทศนยม การพมพหรอแสดงตวเลขทศนยม มอย 2 รปแบบ คอ

– แบบมาตรฐาน เชน 0.123456

– แบบวทยาศาสตร เชน 1.2345e-1 หรอ 1.2345E-1

Floating-point literal

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 40: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

ในภาษาซ มเลขทศนยมอย 3 ชนด คอ

• แบบ float

มขนาด 32 บต มคาอยระหวาง 3.4 x 10-38 ถง 3.4 x 10+38

แสดงจดทศนยม 6 หลก

• แบบ double

มขนาด 64 บต มคาอยระหวาง 1.7 x 10-308 ถง 1.7 x 10+308

แสดงจดทศนยม 15 หลก

• แบบ long double

มขนาด 80 บต มคาอยระหวาง 3.4 x 10-4932 ถง 1.1 x 10+4932

แสดงจดทศนยม 19 หลก

เลขจ านวนจรง

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 41: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

คอคาคงทตวอกษร ทมความยาว 1 ตวอกขระ โดยตองเขยนอยใน

เครองหมาย ' ' (Single Quote) ซงแบงออกเปนตวอกษรทมองเหนได กบตวอกษรทใช

ในการควบคมการพมพ

• ตวอกษรปกต

ไดแก ตวอกษรทปรากฏอยแปนพมพ a-z, A-Z, 0-9, และสญลกษณตาง ๆ

บนแปนพมพ

• ตวอกษรทใชในการควบคมการพมพ

ใชแทนการแสดงผลอกขระหรอแปนพมพบางตว เชน แทนคย Enter, Tab,

Backspace เปนตน จะตองแสดงโดยใช Escape Sequences ซงไดแก \\, \',

\", \r, \n, \f, \t, \b, \0

Character literal

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 42: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

หมายถงขอมลทมตวอกขระตงแต 1 ตวขนไป ตองเขยนอยใน

เครองหมาย " " (Double Quote)

คาคงท String เชน "Hello World", "Samutsongkhram",

"คอมพวเตอร", "1234567890" ทกสตรงจะปดดวยรหส \0 เสมอ

ในการจองพนทในการจดเกบสตรงตองจองเกบรหสปดนเพมอกหนง

ตวอกษร ดงนนในการประกาศตวแปรส าหรบก าหนดขนาดความยาวของขอความ

ตองเผออกหนงต าแหนงส าหรบจดเกบขอมลปดสตรงนเสมอ ในภาษาซ สามารถ

ก าหนดความยาวของขอความไดไมเกน 254 ตว

String literal

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 43: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

ตวแปรท าหนาทส าหรบเกบพกขอมล ตามแตละชนดทไดประกาศไว

สามารถเปลยนแปลงคาไดตลอดเวลา ดงนนตวแปรจงหมายถง ชอทใชในการ

อางองพนทในหนวยความจ าหลกทจองไวเพอเกบขอมล การจองหนวยความจ าท า

ไดโดยการประกาศตวแปร ซงสามารถอางองถงขอมลไดโดยไมตองรต าแหนงท

เกบจรงของขอมล ซงการจองหนวยความจ าส าหรบตวแปรแตละตวจ าเปนจะตองม

การประกาศตวแปรกอน

ตวแปร (Variable)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 44: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• ตวแปรประเภทพนฐาน (Scalar)

เปนตวแปรทใชในการแทนคาขอมลไดเพยงคาเดยว

• ตวแปรประเภทตวแปรชดหรออารเรย (Array)

เปนตวแปรทสามารถเกบขอมลไวไดหลายคาโดยใชชอตวแปรเดยวกน

โดยมตวช (Index) เปนตวระบต าแหนงทเกบคาขอมล

ประเภทของตวแปร

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 45: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

ชวงของขอมล (Range)

Type Range

char -128 ถง +127

int, short -32,768 to +32,767

long -2,147,483,648 to +2,147,483,647

unsigned char 0-255

unsigned int 0 to 65,535

unsigned long 0 to 4,294,967,295

float -3.4e-38 to +3.4e+38

double -1,7e-308 to +1.7e+308

long double -3.4e-4932 to +1.1e+4932

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 46: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• ประกอบดวยอกษรภาษาองกฤษ a ถง z และตวเลข 0 ถง 9 แตตวแรกตอง

เปนตวอกษร A-Z หรอ a-z หรอขดเสนใต _ (Underscore) เทานน

• หามเวนวรรค สามารถใชเครองหมาย _ และ $ ในการตงชอได

• หามใชค าสงวน (Reserved Word) ในการตงชอ

• ในขอบเขตเดยวกน หามตงชอซ ากน

• การพมพชอโดยใชอกษรตวใหญกบตวเลกถอวาเปนคนละตวแปรกน

• ควรตงชอใหสอความหมาย หรอเปนค านาม

• นยมตงชอตวแปรเปนตวเลก ถาเปนคาคงทจะใชตวพมพใหญทงหมด

หลกการตงชอตวแปร

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 47: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

auto

break

case

char

const

continue

default

do

double

else

enum

extern

float

for

goto

if

int

long

register

return

short

signed

sizeof

static

struct

switch

typedef

union

unsigned

void

volatile

while

ค าสงวน (Reserved Word)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 48: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

วธการเปลยนประเภทของตวแปรในภาษาซ ท าได 2 วธ คอ

1.การเปลยนประเภทของตวแปรโดยอตโนมต (Implicit type conversion)

2.โดยวธทเรยกวาการ Casting

การเปลยนประเภทของตวแปร

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 49: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

หมายถง ตวทท าหนาทเชอมโยงคาหรอกระท ากบคาตาง ๆ กบขอมลและ

ตวแปรตามค าสง เพอใหไดผลลพธตามตองการ แบงเปน 6 ประเภท

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

• ตวด าเนนการทางตรรกะ

• ตวด าเนนการเปรยบเทยบ

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

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

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

ตวด าเนนการ (Operator)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 50: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• + บวก,

• - ลบ,

• * คณ,

• / หาร และ

• % หารเอาเศษ (Remainder) or Modulo

ตวด าเนนการทางคณตศาสตร (Arithmetic or Mathematic Operator)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 51: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

&& And และ

|| Or หรอ

! Not ไม, ตรงกนขาม

ตวด าเนนการทางตรรกะ (Logical Operator)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 52: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

< นอยกวา Less than

<= นอยกวาหรอเทากบ Less than or Equal

> มากกวา Greater than

>= มากกวาหรอเทากบ Greater than or Equal

== เทากบ, เทากน Equal

!= ไมเทากบ, ไมเทากน Not equal

ตวด าเนนการเปรยบเทยบ (Relational Operator)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 53: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

++ เพมคา Increment

-- ลดคา Decrement

ตวด าเนนการเพมคาและลดคา (Increment and Decrement Operator)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 54: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

& And

| Or

^ Exclusive Or

~ Complement

>> Right Shift

<< Left Shift

ตวด าเนนการระดบบต (Bit-wise Operator)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 55: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

+=

-=

*=

/=

%=

&=

|=

^=

<<=

>>=

ตวด าเนนการก าหนดคา (Assignment Operator)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 56: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

1. ( )

2. !, ++, --

3. *, /, %

4. +, -

5. <, <=, >, >=

6. ==, !=

7. &&

8. ||

9. *=, /=, %=, +=, -=

ทศทางการท างาน จากซายไปขวา

ล าดบการท างานของตวด าเนนการ

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 57: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

หมายถง การน าคาคงท ตวแปร และตวด าเนนการมาประกอบกน เพอ

เขยนเปนค าสงใหตวแปลภาษาคอมพวเตอรเขาใจ และสามารถท างานตามค าสง

ไดผลลพธตามตองการ

นพจน (Expression)

สตร นพจน

k1 = n * (n + 1) / 2;

f1 = a * a + 2 * a * b + b * b;

c = sqrt(a * a + b * b);

K=0.25 * a * a * sqrt(3);

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 58: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• clrscr(); - ลางหนาจอในโหมดเทกซ

• clreol(); - ลบขอความจากต าแหนงเคอรเซอรไปจนสดบรรทด

• delline(); - ลบบรรทด

• gotoxy(); - ยายต าแหนงเคอรเซอรไปยงต าแหนงทระบ

• wherex(); - คนคาต าแหนงคอลมนทเคอรเซอรปรากฏ (1-80)

• wherey(); - คนคาต าแหนงบรรทดทเคอรเซอรปรากฏ (1-25)

• textcolor(); - ก าหนดสตวอกษร (0-15)

• textbackground(); - ก าหนดสพน (0-7)

• textmode(); - เขาสโหมดเทกซ (C80)

Basic Function in C Mode Text

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 59: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• cprintf(); - แสดงผลขอความหรอคาตวแปรตามสทก าหนด

• printf(); - แสดงผลขอความหรอคาตวแปร

• sprintf(); - แปลงขอมลตวเลขใหเปนขอความ

• puts(); - แสดงผลขอความ

• putch(); - แสดงผลอกขระ

• getch(); - รบคาอกขระจากแปนพมพโดยจะไมแสดงอกขระทปอน

• getche(); - รบคาอกขระจากแปนพมพโดยจะแสดงอกขระทปอน

• gets(); - รบคาขอความจากแปนพมพมาเกบไวในตวแปรสตรงทระบ

• scanf(); - รบคาขอมลจากแปนพมพมาเกบไวในตวแปรทระบ

• window(); - ก าหนดพนทหนาตาง

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Basic Function in C Mode Text (ตอ)

Page 60: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• initgraph(); - เขาสโหมดกราฟก

• closegraph(); - ออกจากโหมดกราฟก

• cleardevice(); - ลางหนาจอในโหมดกราฟก

• setcolor(); - ก าหนดส

• setfillstyle(); - ก าหนดรปแบบการระบาย

• settextstyle(); - ก าหนดรปแบบขอความ

• arc(); - วาดเสนโคง

• bar(); - วาดแทงสเหลยม

• bar3d(); - วาดแทงสเหลยมสามมต

• circle(); - วาดวงกลม

Basic Function Graphics Mode

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 61: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• ellipse(); - วาดวงร

• pieslice(); - วาดสวนซกวงกลม

• line(); - วาดเสนตรงจากจดหนงไปยงจดหนงตามทระบพกด

• lineto(); - วาดเสนตรงจากจดเดมไปยงอกจดทระบพกด

• linerel(); - วาดเสนตรงจากจดเดมไปยงจดทอยหางตามระยะหางทก าหนด

• moveto(); - ยายพกดไปทใหมตามทระบ

• moverel(); - ยายพกดไปทใหมหางจากพกดเดมตามระยะหางทก าหนด

• floodfill(); - ระบายสทต าแหนงพกดทก าหนดไปจนจดสนสดตามสทระบ

• outtext(); - แสดงขอความทก าหนดในพกดปจจบน

• outtextxy(); - แสดงขอความทก าหนดตามพกดทก าหนด

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Basic Function Graphics Mode (ตอ)

Page 62: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

การแสดงผลบนจอในโหมดขอความ (Text Mode) โปรแกรม Turbo C มขนาด

จอมาตรฐาน 80 x 25 คอม 80 คอลมน และ 25 บรรทด

textmode(C80);

เปนฟงกชนเขาสโหมดเทกซ (Text mode) หนาตางมาตรฐาน 80 x 25, 16 ส

clrscr();

เปนฟงกชนใน TurboC ท าหนาทลางหนาจอ (Clear screen) พรอมน า

เคอรเซอร ไปยงต าแหนงซายบนบรรทดแรกของจอ (คอต าแหนง 1,1) ซงฟงกชนนมใชใน

Turbo C เทานน หากใชกบ C ของคายอน ใหใชค าสง system("cls"); แทนได

clreol();

เปนฟงกชน ลบขอความตงแตต าแหนงทเคอรเซอรปรากฏอยไปจนสดบรรทดนน

ถาเคอรเซอรอยทคอลมนแรก ค าสงนกจะเปนการลบขอความในบรรทดนนทงบรรทด

ฟงกชนเกยวกบการแสดงผลทางจอภาพ

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 63: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

เปนฟงกชนมาตรฐานในภาษาซทใชในการแสดงผลลพธออกทางจอภาพ ณ ต าแหนงทเคอรเซอรปรากฏอย

รปแบบ

printf("ขอความ");

printf("control_format",exp1 [,exp2[,...expN]]); Control_format อาจประกอบไปดวย ขอความ หรอ อกขระ

ควบคมการแสดงผลลพธ หรอ รหสรปแบบ อยภายในเครองหมายค าพด " " แตรวมความยาวทงหมดไมเกน 254 อกขระ

exp1, exp2, ... expN คอเปนคาขอมล หรอตวแปร หรอนพจนกได

จ านวนของ expression จะตองสมพนธกบชนดและจ านวนรหสรปแบบทอยในเครองหมายค าพด เชน

printf("Hello");

printf("\n");

printf("Welcome to Thailand\n");

printf("\nValue A\t\tValue B\t\tSum\n");

printf("%3d\t\t%3d\t\t%3d\n",a,b,(a+b));

printf("Score = %3d\t\tGrade = %.2f\n",78,3.5);

printf("Score = %3d\t\tGrade = %.2f\n",score,grade);

printf()

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 64: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• \a Bell

• \b Backspace

• \f Form feed

• \n New line

• \r Carriage return

• \t Horizontal tab

• \\ back slash

• \' Single quote

• \" Double quote

• \0 Null

อกขระควบคมการแสดงผลลพธ (Escape Control)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 65: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

หมายถง รหสรปแบบขอมล เพอก าหนดประเภทขอมลทก าหนด โดยตองระบภายใน

เครองหมาย " " (Double Quote)

– %c ใชกบขอมลประเภท char

– %d ใชกบขอมลประเภท int - เลขฐานสบ

– %u ใชกบขอมลประเภท unsigned int

– %l ใชกบขอมลประเภท long

– %lu ใชกบขอมลประเภท unsigned long

– %e ใชกบขอมลประเภท float ในรป e ยกก าลง

– %f ใชกบขอมลประเภท float

– %lf ใชกบขอมลประเภท double

– %g ใชกบขอมลประเภท float

– %h ใชกบขอมลประเภท short int

– %o, %O ใชกบขอมลประเภท - เลขฐานแปด

– %0x,%0X ใชกบขอมลประเภท - เลขฐานสบหก

– %s ใชกบขอมลประเภท ขอความ (String)

– %p ใชกบตวแปรพอยนเตอร (Pointer)

รหสรปแบบขอมล (Format code)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 66: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• putchar()

เปนฟงกชนมาตรฐานในภาษาซทใชในการแสดงอกขระออกทางจอภาพ

รปแบบ putchar(ch);

โดย ch เปนตวแปรชนดอกขระ

• puts()

เปนฟงกชนมาตรฐานในภาษาซทใชในการแสดงขอความออกทางจอภาพ

รปแบบ puts(str);

โดย str เปนตวแปรชนดขอความ หรอ สายอกขระ

• gotoxy( )

เปนฟงกชนยายเคอรเซอรไปต าแหนง x และ y

รปแบบ gotoxy(x,y);

x มคาอยระหวาง 1-80

y มคาอยระหวาง 1-25

ฟงกชนเกยวกบการแสดงผลทางจอภาพ (ตอ)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 67: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

เปนฟงกชนก าหนดขนาดของหนาตางในโหมดเทกซ ซงมคาโดยปรยาย

(Default) = 80 x 25 (80 คอลมน 25 บรรทด)

รปแบบ

window(left, top, right, bottom);

left ขอบหนาตางดานซาย มคาอยระหวาง 1-80

right ขอบหนาตางดานขวา มคาอยระหวาง 1-80 แตตองมากกวา left

top ขอบหนาตางดานบน มคาอยระหวาง 1-25 แตตองนอยกวา bottom

bottom ขอบหนาตางดานลาง มคาอยระหวาง 1-25 แตตองมากกวา top

window()

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 68: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• textcolor(fc);

fc = คาสตวอกษร

สามารถก าหนดได 16 ส มคาอยระหวาง 0-15

• textbackground(bc);

bc = คาสพน

สามารถก าหนดได 8 ส มคาอยระหวาง 0-7

• cprintf()

เปนฟงกชนส าหรบพมพขอความทเปนส ใชกบ Turbo C เทานน

การก าหนดสตวอกษรและสพน และค าสงแสดงผล

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 69: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

// by Nuntchayathorn Chatrsuwun

#include <conio.h>

#include <stdio.h>

void main()

{

clrscr();

for (int i=32; i<=255; i++)

{

if (i == 128) getch();

printf(" %03d(%02X) %c",i,i,i);

}

getch();

}

ตวอยาง โปรแกรมแสดงรหสแอสก (ASCII Code)

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 70: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

ผลการรนโปรแกรม

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 71: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• scanf()

เปนฟงกชนในการรบขอมลจากแปนพมพ (Keyboard) เขาไปเกบไวในตวแปรท

ก าหนด โดยชนดขอมลสามารถก าหนดได ทกประเภท ดงนนฟงกชนนจงเปนฟงกชนทนยมใช

กนมากในการรบขอมล เมอค าสงนท างาน จะปรากฏเคอรเซอร (Cursor) กระพรบรอรบ

การปอนขอมล ใหเราพมพขอมลทตองการแลวกดคย Enter

รปแบบ scanf("format", &var);

"format" : รหสรปแบบขอมล (Format code)

var : ตวแปรทจะท าหนาทเกบคาทรบเขามาจากแปนพมพ

โดยชอตวแปรจะตองน าดวยเครองหมาย & เสมอ

ยกเวนถาเปนตวแปรชนดขอความ อาจจะไมตองใสเครองหมาย & กได

ฟงกชนรบคาขอมลทางแปนพมพ

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 72: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

scanf("%d", &n);

เปนการรบขอมลตวเลขจ านวนเตมฐานสบจากแปนพมพมาเกบไวทตวแปร n

scanf("%s", str); หรอ

scanf("%s",&str);

เปนการรบขอมลทเปนขอความ มาเกบไวทตวแปร str

scanf("%c", &ch);

เปนการรบขอมลอกขระจากแปนพมพมาเกบไวในตวแปร ch

การรบคาทางแปนพมพใหกบตวแปรเดยว

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 73: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• แบบตองกดคย Enter ทกครง

getchar( )

เปนฟงกชนทใชส าหรบรบขอมลประเภทตวอกขระจากแปนพมพ โดยรบขอมลครง

ละ 1 ตวอกขระเทานน ดงนนตวแปรทมารบคา กจะตองประกาศเปนชนด char ดวย เมอปอน

อกขระ 1 ตวแลว ตองกดคย Enter

รปแบบ

var = getchar();

เชน

char ch;

printf("Enter your charactor : ");

ch = getchar();

การรบขอมลชนดอกขระ

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 74: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• แบบไมตองกดคย Enter ทกครง

getch();

เปนฟงกชนส าหรบรบขอมลชนดอกขระจากแปนพมพ 1 อกขระ โดยไม

ตองกดคย Enter จะไมแสดงคาอกขระ

getche();

เปนฟงกชนส าหรบรบขอมลชนดอกขระจากแปนพมพ 1 อกขระ โดยไม

ตองกดคย Enter จะแสดงอกขระทกด

การรบขอมลชนดอกขระ

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 75: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

• gets()

เปนฟงกชนทใชส าหรบรบขอมลชนดขอความจากแปนพมพ และเมอปอนขอมลทเปน

ขอความเสรจแลว ใหกดคย Enter

รปแบบ gets(str);

str คอตวแปรชนดขอความไวส าหรบเกบขอมลชนดขอความทปอนจากแปนพมพ

เชน

char str[30];

printf("Enter your name : ");

fflush(stdin); gets(str);

printf("Your name is %s\n",str);

การรบขอมลชนดขอความ

หนวยท 6 โครงสรางและไวยากรณภาษาซ

Page 76: บทที่ 6 โครงสร้างและ ...dusithost.dusit.ac.th/~juthawut_cha/download/L6_BCP.pdf · 1. อธิบายส่วนประกอบของโครงสร้างภาษาซีได้

จบการน าเสนอ

บทท 6 โครงสรางและไวยากรณภาษาซ

หนวยท 6 โครงสรางและไวยากรณภาษาซ


Recommended