23
ใใใใใใใใใใใใ 2 ใใใใใใ ใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใ ใใใใใใใใใใ ใใใใใใใใใใใใใ (ใใใใใใใใใใใใใใใใใใ2) ใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใ ใ 40214 ใใใใใใใใใใใ 4 ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ C ออออออ(characters) ออออออออ(constants) ออออออ(variables) อออออออออออออ(operators) ออออออ(expressions) Characters ออออออออ ออออออ (digits) อออ ออออออ 0 อออ 9 อออออออออ อออออ อออ A B C D E อออ F ออออออออ(letters) อออออออออออออออออออออออ อออออออออออออออออออออออออออออออ อออ A-Z อออ a-z อออออออออออ(special characters) อออ ! * + " < # ( = | > % ) ~ : / ^ - [ ; ? , & _ ] ' . space ออออออออ ออออออ อออออออออออออออออออออออออ ออออออออ ออออออออ characters ออออ อ ออออออออออออ ออออออออ ออออออ อออออออออออออ Constants อออออออออออออออออออออออออออออ ออออออออ อออออออออออออออออออออออออออ (integer constant) ออออออออออออออออ ออออออออออออออ -32768 อออ 32767 ออออ -25 ออออ 0 ออออ 236 อออออออออออ ออออออออออออออออออออออออออออออออ 2 ออออ ออออออออ ออออออออออออออออออออออ ออออออ(อออออออออออออออออออ อออออออ ออออ 045) อออออออออออ(ออออออออ ออออออ ออออออออ x อออออออ ออออ 0x28 0X2AF) ออออออออออออออออออออออออ(floating point constants) ออออออออออออออออ ออออ 1.0 1.6 E+09 อออ ออออออออออออออออออออออออออออออออ 4 ออออ ออออออออ ออออออออออ 1.2 E -38 ใใใ 3.4E+38 อออ 3 อออออออ ออออออออออออออออ ออออออออออออออออออออออออออออออ

ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

ใบความรท 2เรอง องคประกอบพนฐาน ตวดำาเนนการ ในการเขยนโปรแกรมภาษาซ

(ประกอบแผนการสอนท2)รายวชา การโปรแกรมและการประยกต ง 40214

ชวงชนท 4

องคประกอบพนฐานของการเขยนโปรแกรมภาษา Cอกขระ(characters) คาคงท(constants)

ตวแปร(variables) ตวดำาเนนการ(operators) นพจน(expressions) Characters แบงเปน

ตวเลข (digits) คอ ตวเลข 0 ถง 9 และเลขฐานสบหก คอ A B C D E และ F ตวอกษร(letters) คอตวอกษรในภาษาองกฤษ เปนตวพมพใหญและตวพมพเลก คอ A-Z และ a-z

อกขระพเศษ(special characters) คอ ! * + " < # ( = | > % ) ~ : / ^ - [ ; ? , & _ ] ' . space ในภาษาซ ถอวา เครองหมายขดเสนใตเปนตวอกษร ตวหนง characters ตาง ๆ นจะใชเปนคาคงท ตวแปร ตวดำาเนนการ

Constants เปนคาทมคาไมเปลยนแปลง แบงเปนคาคงทประเภทเลขจำานวนเตม (integer constant) คอเลขจำานวน

เตม ทอยระหวาง -32768 ถง 32767 เชน -25 หรอ 0 หรอ 236 คาเหลานแตละคาใชหนวยความจำาในการเกบ 2 ไบต คาเหลานเขยนในรปเลขฐานสบ ฐานแปด(เขยนโดยใชเลขศนยนำาหนา เชน 045) เลขฐานสบหก(เขยนโดย ใชเลขศนยและ x นำาหนา เชน 0x28 0X2AF)

คาคงทชนดตวเลขทศนยม(floating point constants) เปนตวเลขทศนยม เชน 1.0 1.6 E+09 คานใชหนวยความจำาในการเกบคาละ 4 ไบต และมคาอยในชวง 1.2 E -38 ถง 3.4E+38 โดย 3 ไบตแรกเกบคาตวทศนยม สวนไบตสดทายเกบเลขยกกำาลง

คาคงทชนดตวเลขทศนยมความละเอยดสองเทา (double floating point) เรยกสน ๆ วา double เกบจำานวน 2.2E-308 ถง 1.8E+308

Page 2: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

เทานน ใชหนวยความจำา 8 ไบต 7 ไบตแรกเกบเลขทศนยม ไบตสดทายเกบเลขยกกำาลง

คาคงทชนดตวอกขระ (single character constant) เกบตวอกขระ 1 ตว โดยใชเครองหมาย ' และ ' ลอม 1 ตวอกขระใช 1 ไบต เชน 'E' 'X'

คาคงทชนดขอความ (string constant) ใชเกบขอความ มความยาวตงแต 1 ตวอกขระ เกบในรปอารเรย แตละตวใชหนวยความจำา 1 ไบต เรยงตอกนโดยไบตสดทายจะตองเกบ \0 (null charactor) เพอบอกวาจบขอความแลว เชน "Bodindecha" ใชหนวยความจำา 11 ไบต

Page 3: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

ตวแปร(variables)

เปนชอทตงเพอใชอางองถงขอมลตาง ๆ โดยตวแปรจะมการใชเนอทในหนวยความจำาในปรมาณทตางกนขนกบชนดของขอมล ขอมล พนฐานในภาษาซ ม 5 ชนด คอ อกขระ (char) จำานวนเตม(int) จำานวนจรง(float) จำานวนจรงละเอยด 2 เทา(double) ไมใหคาใด ๆ (void) นอกจากนเพอความสามารถในการใชงานจงมการเพมชนดของตวแปรขนมาดงตาราง

ตารางแสดงชนดของตวแปรคำาประกาศชนดของ

ตวแปรเครองหมาย จำานวนไบต

ทใชคาทเปนไปได

char คดเครองหมาย 1 -128 ถง 128int คดเครองหมาย 2 -32768 ถง 32767short คดเครองหมาย 2 -32768 ถง 32767long คดเครองหมาย 4 -2147483648 ถง

2147483647unsigned char

ไมคดเครองหมาย

1 0 ถง 255

unsigned int

ไมคดเครองหมาย

2 0 ถง 65535

unsigned short

ไมคดเครองหมาย

2 0 ถง 65535

unsigned long

ไมคดเครองหมาย

4 0 ถง 4294967295

float คดเครองหมาย 4 3.4E-38 ถง 3.4E+38

double คดเครองหมาย 8 1.7E-308 ถง 1.7E+308

long double

คดเครองหมาย 10 3.4E-4932 ถง 1.1E+4932

การตงชอตวแปร1. ตองขนตนดวยตวอกษรหรอเครองหมาย underscore เทานน

Page 4: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

2. ตวตอไปจะเปนตวเลขหรอตวอกษรหรอเครองหมาย underscore 3. ชอมความยาวไมจำากด (ตงยาวเกนได แต compiler จำาแนกไดเพยง 31 ตวแรกเทานน ตงเกนจงไมมประโยชน)4.หามตงชอตรงกบคำาสงวนในภาษาซ ซงม 33 คำา ดงน asm 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 while5. ชอตวแปรควรสอความหมายของตวแปรเพอปองกนความสบสนของการพจารณาโปรแกรม

Page 5: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

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

ในการจะใชงานตวแปรจะตองมการประกาศชนดและชอของตวแปรนนกอน โดยการประกาศตวแปรใชรปแบบ คอ

ชนดของตวแปร ชอตวแปรโดยถามตวแปรชนดเดยวอาจประกาศพรอมกนโดยใช คอมมา คนระหวาง

ชอของตวแปร ถามการกำาหนดคาใหใชเครองหมาย = และใชเครองหมายแสดงการจบคำาสงเมอสนสด คำาสง ตวอยาง เชน

char name, day = 'S' , surname[20] ="Kodedee";int x=5 ,y,z[100]; float a=5.00 ,b,c; double

k=1.234567, m ;

การประกาศคาคงท(หรอตวคงท)

คาคงทมลกษณะทำานองเดยวกบตวแปร แตเปนตวแปรทมคาไมเปลยนแปลง การประกาศทำาได 2 แบบ คอใชคำาสง const ดงน

const ชนดของขอมล ชอตวแปร = คาของตวแปร;เชน const int num1 = 5; const float vat = 0.07; const char student[10] = ‘Bush’;ใช directive #define (เคยอธบายมาแลว) ดงน #define ชอตวคงท คาคงท เชน #define NUM1 5 #define VAT 0.07 #define STUDENT Bush โปรแกรม MinGW ไดกำาหนดคาคงทมาใหไวดวย โดยคาคงททเปนจำานวนเตมจะเกบไวใน header file คอ limits.h สวนจำานวนจรงจะอยใน float.h ดงตวอยางในโปรแกรม con_max_min.c ทแสดงไว

Page 6: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

/* con_max_min.c */#include <stdio.h>#include <limits.h>main(){ printf("\n\tConstants names\tValue\n"); printf("\n\tCHAR_BIT \t%d",CHAR_BIT); printf("\n\tCHAR_MAX \t%d",CHAR_MAX); printf("\n\tCHAR_MIN \t%d",CHAR_MIN); printf("\n\tSCHAR_MAX \t%d",SCHAR_MAX); printf("\n\tSCHAR_MIN \t%d",SCHAR_MIN); printf("\n\tINT_MAX \t%d",INT_MAX); printf("\n\tINT_MIN \t%d",INT_MIN); printf("\n\tLONG_MAX \t%ld",LONG_MAX); printf("\n\tLONG_MIN \t%ld",LONG_MIN); printf("\n\tSHRT_MAX \t%hd",SHRT_MAX); printf("\n\tSHRT_MIN \t%hd",SHRT_MIN); printf("\n\tUCHAR_MAX \t%u",UCHAR_MAX); printf("\n\tUINT_MAX \t%u",UINT_MAX); printf("\n\tULONG_MAX \t%lu",ULONG_MAX); printf("\n\tUSHRT_MAX \t%hu",USHRT_MAX); getch();} เมอโปรแกรมทำางานจะไดผลดงรป

ตวดำาเนนการ(operator)

ตวดำาเนนการมหลายประเภทลกษณะการดำาเนนการแตกตางกนไป ในทนจะกลาวถงบางประเภทเทานน

Page 7: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

ตวดำาเนนการทางคณตศาสตร (mathematical operators)สญลกษณ การดำาเนนการ ตวอยาง

+ การบวก 2+5 ผลลพธ 7- การลบ 7-4 ผลลพธ 3* การคณ 2*6 ผลลพธ 12/ การหาร 8/2 ผลลพธ 4% การหารหาเศษ 9%4 ผลลพธ 1

ตวดำาเนนการความสมพนธหรอการเปรยบเทยบ (relational operators)

สญลกษณ การดำาเนนการ ตวอยาง< นอยกวา 2<3 ผลลพธ จรง(1)> มากกวา 2>3 ผลลพธ

เทจ(false)(0)<= นอยกวาหรอเทากบ 2<= 3 ผลลพธ

จรง(true)>= มากกวาหรอเทากบ 2>= 3 ผลลพธ

เทจ(false)== เทากบ 4==4 ผลลพธ

จรง(true)!= ไมเทากบ 2!= 2 ผลลพธ

เทจ(false)

ตวดำาเนนการตรรกะ (logical operators)สญลกษณ การดำาเนนการ ตวอยาง

&& และ(AND) (2<3)&&(3>1) ผลลพธ จรง

|| หรอ(OR) (2>3)||(4<1) ผลลพธ เทจ(false)

! ไม(NOT) !(2> 3) ผลลพธ จรง(true)

Page 8: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

ตวดำาเนนการกำาหนดคา (assignment operators)สญลกษณ การดำาเนนการ ตวอยาง

= กำาหนดคา(assignment

)

a=2 ความหมายคอ กำาหนดใหa มคาเปน 2

+= การบวก(addition)

a+=b ความหมายคอ(a=a+b)

*= การคณ(multiplicat

ion)

a*=b ความหมายคอ(a=a*b)

-= การลบ(subtraction

)

a-=b ความหมายคอ(a=a-b)

/= การหาร(division)

a/=b ความหมายคอ(a=a/b)

%= การหารหาเศษ(remainder

)

a%=b ความหมายคอ(a=a%b)

++ เพมคา(increment)

a++ หรอ ++a ความหมายคอ a=a+1

-- ลดคา(decrement)

a-- หรอ --a ความหมายคอ a=a-1

ลำาดบการดำาเนนการของตวดำาเนนการ (operator precedence)ลำาดบท

ตวดำาเนนการ ลกษณะการทำางาน

1 ( ) [ ] . -> ซาย ไป ขวา2 - ~ | * & ขวา ไป ซาย3 ++ -- ขวา ไป ซาย4 * / % ซาย ไป ขวา5 + - ซาย ไป ขวา6 << >> ซาย ไป ขวา

Page 9: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

7 < > <= >= ซาย ไป ขวา8 == != ซาย ไป ขวา9 &(bitwise AND) ซาย ไป ขวา

10 ^(bitwise XOR) ซาย ไป ขวา11 |(bitwise OR) ซาย ไป ขวา12 && ซาย ไป ขวา13 || ซาย ไป ขวา14 ?: ซาย ไป ขวา15 = += -= /= %= ขวา ไป ซาย16 <<= >>= ขวา ไป ซาย

โดยตวดำาเนนการทมลำาดบนอยกวาจะดำาเนนกอนตวดำาเนนการทมลำาดบสงกวา เชน X = 2 + 5 * 3 จะมลำาดบการดำาเนนการ คอ ลำาดบท 1 5 * 3 (เพราะ * มลำาดบเปน 4 สวน + อยลำาดบ 5) ลำาดบท 2 2 + 15 ลำาดบท 3 17 เปนคาของ X นพจน (expression)

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

2 + x * 5 เปนตวอยางของนพจนทางคณตศาสตร (2>3)&&(5>=4) เปน

นพจนทางตรรกะและการเปรยบเทยบ !(a) เปนนพจนทางตรรกะ if(x==y) เปนนพจนเงอนไข

ตวอยาง การหาผลลพธของนพจน กำาหนด int a = 10 , b = 12, c =3; จงหาผลลพธของ 2 * a + b % c ดำาเนนการดงน (2 * a) + (b %c) ผลลพธ คอ 20 + 0 คอ 20

จากขอกำาหนดดานบน จงหาผลลพธ ของ (a>b)&&(c<=b) ซงเราอาจพจารณา ดงน

Page 10: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

(เทจ)&& (จรง) ดงนน ผลลพธ คอ เทจ จากความรทเรยนมาในใบความรท 1 และ 2 ควรจะเขยนโปรแกรมเปนภาษาซไดบางแลว

Page 11: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

ตวอยาง 2.1 กำาหนดให x y z เปนจำานวนเตม จงเขยนโปรแกรม หา คา ของ z ทมความสมพนธกบ x y เปนสมการทางคณตศาสตร ดงน z = 5x + 10y โดย x มคาเปน 6 สวน y มคา 7 และแสดงผลลพธทางจอภาพโปรแกรม อาจเปนทำานองน/* program example2_1_1.c */#include <stdio.h>int x = 6,y=7,z; /* declare variable */main(){ z = (5 * x) +( 10 * y); /* compute value of z */ printf("value of x = %d \t value of y = %d \t value of z = %d",x,y,z); getch(); /* wait for keyboard pressing */}

หรอ

/* program example2_1_2.c */#include <stdio.h>int x = 6,y=7,z;main(){ printf("value of x = %d \t value of y = %d \t value of z = %d",x,y,5*x+10*y); getch(); /* wait for keyboard pressing */}

โปรแกรม example2_1_1.c กบ example2_1_2.c จะใหผลทแสดงออกเหมอนกน ตางกนทขนตอนการดำาเนนการ example2_1_1.c มการประกาศตวแปรทใชทวไปตลอดโปรแกรม และมการคำานวณ คา z เกบไวในหนวยความจำากอน จงแสดงผลลพธ สวนโปรแกรม example2_1_2.c ประกาศตวแปรทใชไดเฉพาะในฟงกชน main() เทานน และไมมการคำานวณหาคา z แตคำานวณแลวแสดงผลลพธออกทางจอภาพเลยโดยไมมการเกบคาทคำานวณไดไวในตวแปร z

Page 12: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

ตวอยางท2.2 จาก ขนตอนวธหรอรหสจำาลอง ตอไปน เรมตน

กำาหนดคาความยาวฐาน = 5กำาหนดคาความสง = 4คำานวณพนท = 0.5 x ความยาวของฐาน x ความสงพมพหวรายงานพมพความยาวของฐาน

พมพความสงพมพพนท

จบจงเขยนโปรแกรมททำางานตามขนตอนวธ ดงกลาวจากขนตอนวธ ดงกลาว อาจเขยนโปรแกรมได ดงโปรแกรม example2_2.c ดงน/* program example2_2.c */#include <stdio.h> int lengt , high ;float area;main(){ /* begin the program */ lengt = 5; /* assign the length of triangle */ high = 4; /* assign the height of triangle */ area = 0.5 * lengt * high ; /* compute the area of triangle */ printf("\tDetermination of triangle area\n"); /* print report title */ printf("\tThe length of triangle = %d\n ",lengt); /* print length */ printf("\tThe height of triangle = %d\n ",high); /* print height */ printf("\tThe area of triangle = %.2f\n",area); /* print area */

Page 13: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

getch(); /* wait for keyboard pressing */} /* end program */ผลการทำางานของโปรแกรมน จะลกษณะ ดงรป

ตวอยาง 2.3 จงเขยนโปรแกรมหา พนทวงกลมทมรศม 2.00 หนวยวธการ เนองจากขนตอนการทำางานไมยงยากและคดวานกเรยนคงสามารถสรางขนตอนในสมองได จงไมเขยนรหสลำาลองกอน โปรแกรมอาจเขยนได ดง โปรแกรม example2_3.c ดงน/* program 2_3.c */#include <stdio.h>#define pi 3.14float radius,area;main() { radius = 2.00; area = pi * radius * radius; printf("\tArea of circle\n "); printf("\tRadius = %.2f \n",radius); printf("\tArea = %.2f \n",area); getch(); }

Page 14: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

พจารณาตำาแหนงน

ตวอยาง 2.4 การหารจำานวนเตมและการหาจำานวนจรง ใหนกเรยนศกษาการทำางานของโปรแกรม example2_4.c ซงมคำาสง ดงน/* program example2_4.c */ #include <stdio.h>main(){ int x,y; float a,b,c,d; x = 5; y = 2; a = 5; b = 2; c = 5.0; d = 2.0; printf("\n\tInteger division\n"); printf("\t x/y = %d \n\t y/x = %d \n",x/y,y/x); printf("\t 5/2 = %d \n\t 2/5 = %d \n",5/2,2/5); printf("\n\tFloating point division\n"); printf("\t a/b = %f \n\t b/a = %f \n",a/b,b/a); printf("\t c/d = %f \n\t d/c = %f \n",c/d,d/c); printf("\t 5/2 = %f \n\t 2/5 = %f \n" ,5/2 , 2/5); printf("\t 5./2. = %f \n\t 2./5. = %f \n",5./2.,2./5.); printf("\t 5.0/2.0 = %f \n\t 2.0/5.0 = %f \n",5.0/2.0,2.0/5.0); getch(); }เมอโปรแกรมทำางานจะไดผลลพธดงรป

ตวดำาเนนการเอกภาค (unary operator)

คอ ตวดำาเนนการทดำาเนนกบตวแปรตวเดยว เชน ++x หรอ ++x หรอ –y หรอ y— ซงมลกษณะการใช 2 แบบ คอ ตวดำาเนนการเอกภาคเตม

Page 15: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

หนา( prefix mode ) เชน ++x หรอ – y ตวดำาเนนการแบบนจะทำางานกอนทจะทำาตามคำาสงอน กบ ตวดำาเนนการเอกภาคเตมหลง (postfix mode) เชน x++ หรอ y-- ตวดำาเนนการแบบนจะทำางานหลงจากททำาคำาสงอน แลว

Page 16: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

ตวอยาง 2.5 โปรแกรม example2_5.c แสดงการใชตวดำาเนนการเอกภาคทำางานรวมกบการทำางานอน ๆในคำาสงเดยวกน /* program example2_5.c */ #include <stdio.h>main(){ int a,b; a = b = 0; printf("\n\ta\tb"); printf("\n\t%d\t%d",a++,++b); /* จะมการพมพคา a เปน 0 กอนเพมคา a เปน 1 สวน b จะเพมคาเปน 1 กอนพมพคา */ printf("\n\t%d\t%d",a++,++b); /* จะมการพมพคา a เปน 1 กอนเพมคา a เปน 2 สวน b จะเพมคาเปน 2 กอนพมพคา */ b = a++ ; /* กำาหนด คา b ใหมคา เทากบ a คอ 2 แลวเพมคา a อก 1 เปน 3 printf("\n"); printf("\n\t%d\t%d",a,b); /* พมพ a คอ 3 และ b คอ 2 */ b = ++a ; /* เพมคา a อก 1 เปน 4 แลวใหเปนคาของ b ดงนน b มคาเปน 4 */ printf("\n"); printf("\n\t%d\t%d",a,++b); / พมพคา a คอ 4 และ เพมคา b อก 1 เปน 5 แลวจงพมพ คา b คอ 5 b = b + ++a ; /* เพมคา a อก 1 เปน 5 แลวนำาไปบวก กบ b เดมคอ 5 ทำาให b มคาเปน 10 */ printf("\n"); printf("\n"); printf("\n\t%d\t%d",a,b); /* พมพคา a คอ 5 สวน b คอ 10 b = a-- - a ; /* นำาคา a คอ 5 ลบกน ได 0 ทำาให b มคาเปน 0 แลวลดคา a อก 1 ทำาให a มคาเปน 4 */ printf("\n"); printf("\n\t%d\t%d",a,b); /* พมพ คา a คอ 4 และ b คอ 0 b = ++a - a ; */ เพมคา a จาก 4 เปน 5 แลวลบกน เปน คา b ทำาให b มคาเปน 0 */ printf("\n"); printf("\n\t%d\t%d",a,b); /* พมพคา a คอ 5 สวน b คอ 0 */ b = a - --a ; /* ลดคา a ลง 1 ทำาให a มคา เปน 4 แลวนำามาลบกนเปนคาของ b ทำาให b มคาเปน 0 */

Page 17: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

printf("\n"); printf("\n\t%d\t%d",a,b); /* พมพ คา a คอ 4 สวน b คอ 0 */ b = --a - --a ; /* ลดคา a ครงละ 1 จำานวน 2 ครง ทำาให a เปน 2 สวน b เปน 0 */ printf("\n"); printf("\n\t%d\t%d",a,b); b = a++ + ++a ; /* เพมคา a จาก 2 เปน 3 บวกกนทำาให b เปน 6 แลวเพมคา a อก 1 เปน 4 printf("\n"); printf("\n\t%d\t%d",a,b); getch(); }ผลการทำางานของโปรแกรมเปนดงรป

การแปลงชนดของขอมล การเปลยนชนดของขอมล ทำาไดหลายวธขนกบชนดของขอมล วธการทจะกลาวถง คอ กำาหนดชนดหนาขอมล มรปแบบคอ

ตวแปร = (ชนดขอมล) นพจน;

ดงตวอยาง ในโปรแกรม example2_6.c

Page 18: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

ตวอยางท 2.6 โปรแกรม example2_6.c แสดงตวอยางการเปลยนชนดของขอมล /* program example2_6.c */#include <stdio.h>main(){ int a,b; a = 2.7 + 3.9 ; /* บวกกอน ได 6.5 แตเนองจาก a เปน int จงตดทศนยมทงได a เปน 6 */ printf("\n\ta = %d ",a); b = (int) 2.7 + (int) 3.9 ; /* เปลยน 2.7 เปน int ได 2 และเปลยน 3.9 เปน int ได 3 บวกกนได 5 */ printf("\n\tb = %d ",b); int num1 =5 , num2 =4; float x,y; x = num1/num2; /* ผลหารได 1.25 แตทง num1 และ num2 เปน int จงตดเศษทง แลวจงกำาหนดคาให x จงมคาเปน 1 แต x เปน float จงมทศนยม */ printf("\n\tx = %f",x); /* พมพ x เปนแบบ %f ถาไมระบตำาแหนงจะให 6 ตำาแหนงจงเปน 1.000000 */ y = (float)num1/num2; /* เปลยน num1 เปน float กอน แลวจงหาร จงไดผลลพธเปน 1.25 */ printf("\n\ty = %f",y); /* พมพแบบ float จงไดผลลพธเปน 1.250000 getch();}ผลการทำางานของโปรแกรมไดเปนa = 6b = 5x = 1.000000y = 1.250000

กรณทนพจนนนประกอบดวยขอมลหลายชนด จะมการเปลยนเปนขอมลชนดเดยวกนกอน จงดำาเนนการอนตอ โดยการเปลยนจะเปลยนจากขอมลทเลกกวาเปนขอมลชนดทใหญกวา เชนขอมลชนด int มการดำาเนนการ

Page 19: ใบงานที่€¦ · Web viewโปรแกรม example2_1_1.c ก บ example2_1_2.c จะให ผลท แสดงออกเหม อนก น ต างก

กบขอมลชนด float จะมการเปลยนขอมลชนด int เปน float กอน จงดำาเนนการอนตอไป