โครงสร้างภาษาซีเบื้องต้น

67
โโโโโโโโโ โโโโโโ โโโโโโโโโ 3202-2008 โโโโโโโโโโโโโโโโโโโโโ 1 3 2 0 4 - 2 0 0 8 .

Upload: niesha

Post on 05-Jan-2016

86 views

Category:

Documents


0 download

DESCRIPTION

โครงสร้างภาษาซีเบื้องต้น. 3202-2008 การเขียนโปรแกรมภาษาซี. 1. 2. ส่วนประกอบในโครงสร้างภาษาซี. - PowerPoint PPT Presentation

TRANSCRIPT

โครงสร�างภาษาซี�เบื้��องต้�น

3202-2008 การเขี�ยนโปรแกรมภาษาซี�

1

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�นะสิ�ทธิ์��

มณี�เบญ

จร�ตน�

2

ต�วอย!างภาษาซี�

1

2

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

สิ!วนประกอบในโครงสิร%างภาษาซี�

3

หร'อเร�ยกว!า ปร�โปรเซีสิเซีอร� ไดเรกท�ฟ(Preprocessor Directive) ใชิ%ระบ+ชิ',อเฮดเดอร�ไฟล์� ควบค+มการท/างานขีองฟ0งก�ชิ�นมาตรฐานท�,ถู3กเร�ยกใชิ%งานในสิ!วนขีอง main( ) เฮดเดอร�ไฟล์�ม�ชิน�ดเป4น .h จ�ดเก5บในไล์บราร�ฟ0งก�ชิ�น ซี6,งต%องศึ6กษาว!าฟ0งก�ชิ�นท�,ใชิ%งานน�8นอย3!ในเฮดเดอร�ไฟล์�ชิ',ออะไร จ6งจะเร�ยกใชิ%งานได%ถู3กต%อง น�ยมใชิ%ร3ปแบบค/าสิ�,ง ด�งน�8

ร�ปแบื้บื้

อธิ�บื้าย header_name ชิ',อเฮดเดอร�ไฟล์�ท�,ควบค+มฟ0งก�ชิ�นมาตรฐาน เชิ!น ฟ0งก�ชิ�น printf ใชิ%ควบค+มการแสิดงผล์ จ�ดเก5บในไล์บราร�ชิ',อ #include <stdio.h>

#include <header_name> หร�อ #include “header_name”

1

• ส�วนห วขีองโปรแกรม (Header File)

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

4

#include <stdio.h>main() { }

ร3ปแบบการเขี�ยน ค'อ #include แล์%วตามด%วยชิ',อไฟล์�เชิ!น #include <stdio.h> หมายถู6ง อ!านไฟล์� stdio.h เขี%ามาด%วย #include <conio.h> อ!านไฟล์� conio.h เขี%ามาด%วย

ไดเรกท�ฟ

directive

ไฟล์�สิ!วนห�วHeader

file

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

5

stdio.h หมายถู6ง กล์+!มฟ0งก�ชิ�นท�,ใชิ%งานด%าน Input/Output ท�,วๆไป เชิ!น printf, scanf,puts, Fread, Fwrite ฯล์ฯconio.h หมายถู6ง ใชิ%ควบค+มการแสิดงผล์, ร�บค!าจากค�ย�บอร�ด เชิ!น clrscr(), getch(), cprintf ฯล์ฯstring.h หมายถู6ง การใชิ%จ�ดการขี%อความ เชิ!น รวมขี%อความ ค%นหาอ�กขีระใน ขี%อความmath.h หมายถู6ง ฟ0งก�ชิ�นด%านการค/านวณี เชิ!น หาค!า sin, cos,tan,abs

Header File ที่�"ใช้�ควบื้ค%มฟั'งก(ช้ นมาต้รฐาน

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

สิ!วนประกอบในโครงสิร%างภาษาซี�

6

#include “stdio.h”main(){ }

เป4นสิ!วนเขี�ยนค/าสิ�,งควบค+มการท/างานภายในขีอบเขีตเคร',องหมาย { } ขีองฟ0งก�ชิ�นหล์�กค'อ main ( ) ต%องเขี�ยนค/าสิ�,งตามล์/าด�บขี�8นตอนจากกระบวนการว�เคราะห�ระบบงานเบ'8องต%นท�,ล์/าด�บการท/างานไว%

2

• ส�วนขีองฟั'งก(ช้ นหลั ก (Main Function)

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การ COMPILINGการ Compile ค'อ การให%โปรแกรมท/าการตรวจสิอบว!า

โปรแกรมท�,เราเขี�ยนขี68นน�8น ถู3กหล์�กไวยากรณี�หร'อย�ง โดยการกดป+<ม

ถู%าตรวจพบจ+ดผ�ดพล์าด โปรแกรมจะท/าการแจ%งไว%ท�,ด%านล์!างขีองจอภาพ

7

Alt + F9

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

สิถูานะขีองการ COMPILING

8

Errors หมายถู6งโปรแกรมตรวจพบจ+ดผ�ดพล์าด จะต%องท/าการแก%ไขีจ+ดผ�ดพล์าดซีะก!อน ถู6งจะด3ผล์ล์�พธิ์�ได%

Success หมายถู6งผ!านการ Compile

Warnings หมายถู6งหน%าต!างแจ%งเต'อนว!าอาจจะม�บางค/าสิ�,งเขี�ยนผ�ดหล์�กไวยกรณี� น�,นค'อ ถู%าพบหน%าจอน�8เราสิามารถู Run ด3ผล์ล์�พธิ์�ได%

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การ Run หร'อ การด3ผล์ล์�พธิ์�

การ Run ค'อการให%โปรแกรมแสิดงผล์ล์�พธิ์� โดยการกดป+<ม

ถู%าตรวจพบจ+ดผ�ดพล์าด โปรแกรมจะแจ%ง Errors ด�งภาพ

9

Ctrl + F9

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การร�บแล์ะพ�มพ�ขี%อม3ล์ ฟ0งก�ชิ�นในการร�บขี%อม3ล์จากแป>นพ�มพ�มาเก5บไว%ในหน!วยความ

จ/า

ฟ0งก�ชิ�นในการสิ!งขี%อม3ล์จากหน!วยความจ/าออกทางจอภาพ

10

scanf(…)

printf(…)

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การแสิดงผล์ขี%อม3ล์ฟั'งก(ช้ น printf()

printf ม�ชิ',อเต5มว!า Print Format เป4นฟ0งก�ชิ�นท�,ใชิ%สิ/าหร�บแสิดงผล์ขี%อม3ล์ต!างๆ ออกทางจอภาพ โดยม�ร3ปแบบด�งน�8

Control String เป4นสิ!วนท�,ใชิ%ควบค+มล์�กษณีะการแสิดงผล์

Variable List เป4นสิ!วนขีองค!าคงท�,หร'อต�วแปรท�,จะให%แสิดงผล์

11

printf(“I am %d year old”,age)

Control String

Variable List

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การใชิ%รห�สิควบค+มการแสิดงผล์เคร�"องหมาย % ค�ออะไร ?

เคร',องหมาย % น�8เร�ยกว!า Format Specification เป4นรห�สิควบค+มล์�กษณีะการแสิดงผล์ (Control String) ซี6,งม�ใชิ%หล์ายร3ปแบบด�งน�8

12

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

รห�สิควบค+มล์�กษณีะการแสิดงผล์ (CONTROL STRING)

เคร�"องหมาย

ใช้�ก บื้ต้ วแปรที่�"เก-บื้ค�า

%d เล์ขีจ/านวนเต5ม (int)

%ld เล์ขีจ/านวนเต5มแบบยาว (long int)

%f เล์ขีจ/านวนจร�ง หร'อเล์ขีทศึน�ยม (float)

%c ต�วอ�กขีระ 1 ต�ว (char)

%s ชิ+ดต�วอ�กษร (String)13

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การแสิดงผล์ขี%อม3ล์ร�ปแบื้บื้การใช้� Control String

ในการเขี�ยนค/าสิ�,ง printf หน6,งบรรท�ด เราสิามารถูให%พ�มพ�ต�วอ�กษรหล์ายๆ ร3ปแบบได% เชิ!น

printf(“%s %d %f %c”,”Warunee”,25,-45.67,’F’);

ในสิ!วนขีอง Variable List- ถู%าเป4นสิตร�งจะอย3!ในเคร',องหมาย “ “- ถู%าเป4นต�วอ�กษรจะอย3!ในเคร',องหมาย ‘ ‘ 14

Control String

Variable List

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การแสิดงผล์ขี%อม3ล์การระบื้%จำ/านวนเลัขีที่ศน�ยม

ในการใชิ% %f ถู%าเราไม!ได%ระบ+จ/านวนเล์ขีทศึน�ยม ผล์ล์�พธิ์�ท�,ได%จะม�ทศึน�ยมหล์ายต/าแหน!ง

ร�ปแบื้บื้การระบื้%จำ/านวนเลัขีที่ศน�ยม

printf(“%f %.3f %.2f %.1f”,4.5678,4.5678,4.5678,4.5678);

ผลัลั พธิ(ที่�"ได้�

15

4.567800

4.568

4.574.6

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การใสิ! COMMENTComments ค'อค/าอธิ์�บายต!างๆ ซี6,งโปรแกรมจะไม!ท/าการ

แปล์ความหมายในสิ!วนท�,เราท/าการ comments เอาไว% ร3ปแบบการเขี�ยน ค'อ ต%องเป?ดด%วยเคร',องหมาย /* แล์ะป?ดด%วยเคร',องหมาย */เชิ!น

16

/*สิ!วนน�8พ�มพ�อะไรก5ไม!เก�ดผล์กระทบก�บโปรแกรม*/ #include “stdio.h”void main(){

printf(“Hello Kitty”);printf(“RMUTSB”);

}

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ค/าสิ�,งในการรอร�บการกระท/า (ENTER)

#include “stdio.h”void main(){

printf(“C Language”);

printf(“Programming”);

}

17

ร3ปแบบค/าสิ�,ง ค'อ getch()เชิ!น

#include “stdio.h”#include “conio.h”void main(){

printf(“C Language”);

printf(“Programming”);getch();

}

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ค/าสิ�,งในการล์%างจอภาพ

#include “stdio.h”void main(){

printf(“C Language”);

printf(“Programming”);

}18

ร3ปแบบค/าสิ�,ง ค'อ clrscr()#include “stdio.h”#include “conio.h”void main(){

clrscr();printf(“C Language”);

printf(“Programming”);getch();

}

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ค/าสิ�,งในการขี68นบรรท�ดใหม!

#include “stdio.h”#include “conio.h”void main(){

printf(“C Language\n”);printf(“Programming\n”);printf(“\nTraining”);getch();

}

19

ร3ปแบบค/าสิ�,ง ค'อ “\n”เชิ!น

ผล์ล์�พธิ์�C LanguageProgramming

Training

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ฟ0งก�ชิ� ,นพ'8นฐานเก�,ยวก�บสิ� ใส�ส�ต้ วอ กษร = textcolor();

ใส�ส�พ��นให�ก บื้ต้ วอ กษร = textbackground();

แสด้งผลัต้ วอ กษรที่�"เป4นส� = cprintf();

20

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

รห�สิสิ�

21

Macro ค�าคงที่�" ความหมาย Macroค�า

คงที่�" ความหมาย

BLACK 0 สิ�ด/า LIGHTBLUE 9 สิ�ฟ>าอ!อน

BLUE 1 สิ�ฟ>า LIGHTGREEN 10 สิ�เขี�ยวอ!อน

GREEN 2 สิ�เขี�ยว LIGHTCYAN 11 สิ�น/8าเง�นอ!อน

CYAN 3 สิ�น/8าเง�น LIGHTRED 12 สิ�แดงอ!อน

RED 4 สิ�แดง LIGHTMAGENTA 13 สิ�ม!วงอ!อน

MAGENTA 5 สิ�ม!วง YELLOW 14 สิ�เหล์'อง

BROWN 6 สิ�น/8าตาล์ WHITE 15 สิ�ขีาว

LIGHTGRAY 7 สิ�เทาอ!อน BLINK 128 ก/าหนดให%กระพร�บ

DARKGRAY 8 สิ�เทาเขี%ม      

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

รห�สิสิ�การใชิ%รห�สิสิ�เชิ!น

textcolor(1);

textbackground(10);cprintf(“ I Love

Teacher\n ”);cprintf(“ Really?? \

n\n“);cprintf(“ Ha..Haa

“);22

ผล์ล์�พธิ์�I Love Teacher

Really ??

Ha..Haa

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ร3ปแบบฟ0งก�ชิ�,นgotoxy(คอลั มน(,บื้รรที่ ด้);เชิ!น

gotoxy(15,5);printf(“C Language“);

23

การก/าหนด้ต้/าแหน�งที่�"จำะแสด้งขี�อความ

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ต�วอย!างการใชิ%ค/าสิ�,ง GOTOXY( ); #include"stdio.h"

#include"conio.h"

void main()

{

clrscr();

gotoxy(40,5);printf("BB Company");

gotoxy(40,6);printf("Report Tax");

gotoxy(25,7);printf("=========================================");

gotoxy(30,8);printf("No. :");

gotoxy(30,9);printf("Name :");

gotoxy(30,10);printf("Salary :");

gotoxy(25,11);printf("=========================================");

gotoxy(30,12);printf("Tax :");

gotoxy(30,13);printf("Netpay :");

gotoxy(25,14);printf("=========================================");

getch();

}

24

การก/าหนด้ต้/าแหน�งที่�"จำะแสด้งขี�อความ3

20

4-2

00

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

.ชิ�นะสิ�ทธิ์�� มณี

�เบญจร�ตน�

ฟั'งก(ช้ น scanf()เป4นฟ0งก�ชิ�นท�,ใชิ%ในการร�บค!าจากค�ย�บอร�ดเขี%าไปเก5บไว%ในต�วแปรท�,

ก/าหนด โดยม�ร3ปแบบด�งน�8

Control String เป4นสิ!วนท�,ใชิ%บอกว!าจะเก5บขี%อม3ล์ในล์�กษณีะใดVariable List เป4นสิ!วนขีองต�วแปรเคร',องหมาย & เป4นการชิ�8ไปท�,แอดเดรสิหน!วยความจ/าขีองต�วแปร

การร�บค!าขี%อม3ล์

scanf(“%d”,&num)Control

StringVariable List

25

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

3204-

2008 การ

เขี�ยนโปรแกรมภาษาซี� อ.ช้�นะ

ส�ที่ธิ�5 มณี�เบื้ญจำร ต้น(

26

3204-

2008 การ

เขี�ยนโปรแกรมภาษาซี� อ.ช้�นะ

ส�ที่ธิ�5 มณี�เบื้ญจำร ต้น(

27

28

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

29

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

30

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

31

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

32

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

33

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

34

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

35

การประกาศึต�วแปรต�วแปรท+กต�วจะต%องม�การประกาศึด%วยชิน�ดขีองขี%อม3ล์

เพ',อบอกให%เคร',องทราบว!า ต�วแปรน�8นม�ล์�กษณีะการเก5บขี%อม3ล์แบบใด แล์ะจะต%องจองเน'8อท�,ในหน!วยความจ/าขีนาดเท!าใด ซี6,งภาษา C ม�ชิน�ดขี%อม3ล์ท�,ใชิ%บ!อย ได%แก!ช้น�ด้ขี�อม�ลั ลั กษณีะขี�อม�ลั ช้�วงขี�อม�ลั

char ต�วอ�กษร 1 ต�ว -128 ถู6ง 127

int จ/านวนเต5ม -32768 ถู6ง 32767

long int จ/านวนเต5ม(ใชิ%พ'8นท�,ในการจ�ดเก5บเป4น 2 เท!า

ขีอง Integer)

-2,147,482,648 ถู6ง 2,147,482,647

float เล์ขีทศึน�ยม 3.4*10-38 ถู6ง 3.4*1038

double เล์ขีทศึน�ยม(ใชิ%พ'8นท�,ในการจ�ดเก5บเป4น 2 เท!า

ขีอง Float)

1.7*10-308 ถู6ง 1.7*10308

36

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การประกาศึต�วแปร#include “stdio.h”#include “conio.h”void main(){

clrscr();int year,age;year=2525;age=2555-year;printf(“I am %d year old”,age);getch();

}

ผล์ล์�พธิ์�I am 30 year old 37 3

20

4-2

00

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

.ชิ�นะสิ�ทธิ์�� มณี

�เบญจร�ตน�

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

int year,age;year=2525;age=2555-year;printf(“Year of Birth is %d”,year);printf(“Now,I am %d year old”,age);

int year,age;year=2525;age=2555-year;printf(“Year of Birth is %d\n\n”,year);printf(“Now,I am %d year old”,age);

ขี68นบรรท�ดใหม!

ผล์ล์�พธิ์�Year of Birth is

2525Now,I am 30 year old

ผล์ล์�พธิ์�Year of Birth is 2525Now,I am 25 year old

38 32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

โปรแกรมคอมพ�วเตอร�ท�,ม�การตอบสินองการท/างานภายหล์�งท�,ผ3%ใชิ%ท/าการป>อนค!าอ�นพ+ตเขี%าไป จะเร�ยกว!า โปรแกรมอ�นเตอร�แอกท�ฟ (interactive program)

ต�วอย!างเขี�ยนโปรแกรมร�บค!าป@ท�,เก�ด แล์ะให%โปรแกรมค/านวณีหาว!าป@น�8

เราอาย+เท!าไหร! ?

การร�บแล์ะพ�มพ�ขี%อม3ล์

39

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การร�บแล์ะพ�มพ�ขี%อม3ล์#include "stdio.h"#include "conio.h"void main(){

int year,age;clrscr();printf("Enter of year: ");scanf("%d",&year);age=2555-year;printf("This year, i am %d year old",age);getch();

}40

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ต�วอย!างเขี�ยนโปรแกรมเพ',อค/านวณีรายร�บหล์�งห�กภาษ�ขีองพน�กงาน โดยท/าการร�บค!า ล์/าด�บท�, ชิ',อพน�กงาน เง�นเด'อน แล์ะท/าการค�ดภาษ�ห�ก ณี ท�,จ!าย 5% ขีองเง�นเด'อน#include"stdio.h"

#include"conio.h"void main(){ clrscr();

float netpay,salary,tax; int no; char name[20];gotoxy(40,8);scanf(“%d”,&no);gotoxy(40,9);scanf(“%s“,&name);gotoxy(40,10);scanf(“%f“,&salary);tax = salary*0.05;gotoxy(40,12);printf(“%.2f“,tax);netpay = salary –tax;gotoxy(40,13);printf(“%.2f”,netpay);getch();

}

41

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ใบงานท�, 1 ฝึBกเขี�ยนโปรแกรมด�งน�8

42

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การร�บแล์ะพ�มพ�ขี%อม3ล์โปรแกรมคอมพ�วเตอร�ท�,ม�การตอบสินองการท/างานภายหล์�ง

ท�,ผ3%ใชิ%ท/าการป>อนค!าอ�นพ+ตเขี%าไป จะเร�ยกว!า โปรแกรมอ�นเตอร�แอกท�ฟ (interactive program)

ต�วอย!างเขี�ยนโปรแกรมร�บค!าป@ท�,เก�ด แล์ะให%โปรแกรมค/านวณีหาว!าป@น�8

เราอาย+เท!าไหร! ?

43

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การร�บแล์ะพ�มพ�ขี%อม3ล์#include "stdio.h"#include "conio.h"void main(){

int year,age;clrscr();printf("Enter of year: ");scanf("%d",&year);age=2550-year;printf("This year, i am %d year old",age);getch();

}44

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ต�วอย!างเขี�ยนโปรแกรมเพ',อค/านวณีรายร�บหล์�งห�กภาษ�ขีองพน�กงาน โดยท/าการร�บค!า ล์/าด�บท�, ชิ',อพน�กงาน เง�นเด'อน แล์ะท/าการค�ดภาษ�ห�ก ณี ท�,จ!าย 5% ขีองเง�นเด'อน

45

#include"stdio.h"#include"conio.h"void main(){ clrscr();

float netpay,salary,tax; int no; char name[20];gotoxy(40,8);scanf(“%d”,&no);gotoxy(40,9);scanf(“%s“,&name);gotoxy(40,10);scanf(“%f“,&salary);tax = salary*0.05;gotoxy(40,12);printf(“%.2f“,tax);netpay = salary –tax;gotoxy(40,13);printf(“%.2f”,netpay);getch();

}

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การเขี�ยนค/าส "งควบื้ค%มแบื้บื้ม�ที่างเลั�อก

46

ค/าส "งควบื้ค%มแบื้บื้ม�ที่างเลั�อกลั กษณีะ if

ค/าส "งควบื้ค%มแบื้บื้ม�ที่างเลั�อก ลั กษณีะ switch

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�นะสิ�ทธิ์��

มณี�เบญ

จร�ตน�

ต�วด/าเน�นการเปร�ยบเท�ยบโปรแกรมจะน/าขี%อม3ล์ขีองท�8งสิองค!ามาเปร�ยบเท�ยบก�น โดย

ขี%อม3ล์ท�8งสิองค!าจะต%องเป4นขี%อม3ล์ประเภทเด�ยวก�น แล์ะผล์ล์�พธิ์�ท�,ได%จะเป4นค!าทางล์อจ�ก ค'อ จร�งหร'อเท5จ เท!าน�8น

ต้ วด้/าเน�นการ กระบื้วนการ== เท!าก�บ!= ไม!เท!าก�บ<= น%อยกว!าหร'อเท!าก�บ>= มากกว!าหร'อเท!าก�บ> มากกว!า< น%อยกว!า

47

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ความแตกต!างระหว!าง = แล์ะ ==

c=a+bsum=sum+1avg=(num1+num2+num3)/3เป4นการน/าค!าท�,ค/านวณีได%ทางด%านขีวาม'อมาเก5บไว%ท�,ต�วแปรด%าน

ซี%ายม'อแต้�...If(sum==ans)

printf(“Right !”);เป4นการเปร�ยบเท�ยบค!าท�,อย3!ในต�วแปรสิองต�วว!าเท!าก�นหร'อไม!

48

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ค/าสิ�,งควบค+มแบบม�ทางเล์'อก ล์�กษณีะ IF

ม� 3 ล์�กษณีะ ค'อร�ปแบื้บื้ที่�" 1 : กรณี�หล์�งเง',อนไขี if ม� 1 ค/าสิ�,ง

if (เง',อนไขี)ค/าสิ�,ง ; (กรณี�เง',อนไขีเป4นจร�ง)

ค/าสิ�,งชิ+ดต!อไป ; (กรณี�เง',อนไขีเป4นเท5จ)เชิ!น

if(y > 0)z = x/y;

49

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ค/าสิ�,งควบค+มแบบม�ทางเล์'อก ล์�กษณีะ IF

ร�ปแบื้บื้ที่�" 2 : การใชิ%ค/าสิ�,ง if แบบ 2 ทางเล์'อก if (เง',อนไขี)

ค/าสิ�,งชิ+ดท�, 1 ; (กรณี�เง',อนไขีเป4นจร�ง)else

ค/าสิ�,งชิ+ดท�, 2 ; (กรณี�เง',อนไขีเป4นเท5จ)เชิ!น

if(y > 0)z = x/y;

elsez = x+y;

50

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ค/าสิ�,งควบค+มแบบม�ทางเล์'อก ล์�กษณีะ IF

ร�ปแบื้บื้ที่�" 3 : การใชิ%ค/าสิ�,ง if แบบม�ทางเล์'อกมากกว!า 2 ทางเล์'อก if (เง',อนไขีประโยคท�, 1)

ค/าสิ�,งชิ+ดท�, 1 ; (กรณี�เง',อนไขีประโยคท�, 1 เป4นจร�ง)else if (เง',อนไขีประโยคท�, 2)

ค/าสิ�,งชิ+ดท�, 2 ; (กรณี�เง',อนไขีประโยคท�, 2 เป4นจร�ง)..............else

ค/าสิ�,งชิ+ดท�, n ; (นอกเหน'อจากประโยคเง',อนไขีขี%างต%น)

51

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

โปรแกรมค/านวณีราคาต%นท+นสิ�นค%า โดยม�เง',อนไขีว!า- ถู%าหากผล์�ตต�8งแต! 20 ชิ�8น จะราคาชิ�8นล์ะ 6 บาท- ถู%าหากผล์�ต 10-19 ชิ�8น จะราคาชิ�8นล์ะ 8 บาท- แต!ถู%าผล์�ตต/,ากว!า 10 ชิ�8น จะราคาชิ�8นล์ะ 10 บาท

โปรแกรมprintf(“Enter number : “);scanf(“%d”,&num);if(num>=20)

cost=num*6;else if(num>=10)

cost=num*8;else

cost=num*10;printf(“Cost = %d”,cost);

52

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ค/าสิ�,งควบค+มแบบม�ทางเล์'อก ล์�กษณีะ SWITCH

การเขี�ยนโปรแกรมท�,ต%องม�การเล์'อกท/าหล์ายทางเราสิามารถูน/าประโยคค/าสิ�,ง if - else มาซี%อนก�นได% แต!ถู%าเง',อนไขีท�,ต%องต�ดสิ�นใจขี68นอย3!ก�บต�วแปรต�วเด�ยวเราสิามารถูใชิ%ค/าสิ�,ง switch แทนได%ร�ปแบื้บื้

switch (var / expression){

case ค!าท�, 1 : ค/าสิ�,งชิ+ดท�, 1; break;case ค!าท�, 2 : ค/าสิ�,งชิ+ดท�, 2; break;case ค!าท�, n : ค/าสิ�,งชิ+ดท�, n; break;default : ค/าสิ�,ง;

}

53

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ค/าสิ�,งควบค+มแบบม�ทางเล์'อก ล์�กษณีะ SWITCH

ต้ วอย�าง เขี�ยนโปรแกรมเป4นล์�กษณีะเมน3ด�งต!อไปน�8

54

Menu

1. Red

2. White

3. Green

4. Black

Please! Select color…

Menu

1. Red

2. White

3. Green

4. Black

Please! Select color…

แล์ะให%ผ3%ใชิ%เล์'อกสิ�โดยการป>อนค!าอ�นพ+ตเขี%าไป เราสิามารถูเขี�ยนโปรแกรมโดยน/าค!าอ�นพ+ตท�,ร �บเขี%าไปเก5บไว%ในต�วแปรต�วหน6,ง แล์ะใชิ%ค/าสิ�,ง switch เล์'อกว!าม�ค!าเท!าก�บเท!าใด (1,2,3,4) จากน�8นให%ไปท/างานตามท�,เล์'อก

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

โปรแกรมเล์'อกสิ�int i ;printf(“ Please Select Color :

”); i = getche();switch(i){

case 1:printf("Your color is : Red");

break;case 2:printf("Your

color is : White");break;case 3:printf("Your

color is : Green");break;case 4:printf("Your

color is : Black");break;

default:printf("Unknown! Your select");

}getch();

int i ;printf(“ Please Select Color :

”); i = getche();switch(i){

case 1:printf("Your color is : Red");

break;case 2:printf("Your

color is : White");break;case 3:printf("Your

color is : Green");break;case 4:printf("Your

color is : Black");break;

default:printf("Unknown! Your select");

}getch();

55

ถู%าค!าท�,ร �บเขี%าไป (ค!า i) ไปตรงก�บค!าคงท�,ต�วใดหล์�ง case โปรแกรมจะไปท/า statement หล์�งค!าคงท�,ต�วน�8นแต!ถู%าไม!เท!าก�บค!าคงท�,ต�วใดเล์ย โปรแกรมจะไปท/า statement หล์�ง default

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

การที่/าซี/�า(REPETITIVE)

56

ม�อย3! 3 ร3ปแบบ For Loops While

Loops Do While ??

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�นะสิ�ทธิ์��

มณี�เบญ

จร�ตน�

ต�วด/าเน�นการเพ�,มแล์ะล์ดค!า

ต้ วด้/าเน�นการ

ความหมาย

+ + การเพ�,มค!าขี68นอ�ก 1 (Increment)

- - การล์ดค!าล์งอ�ก 1 (Decrement)

57

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ล์3ป FORเป4นการสิ�,งให%โปรแกรมท/าซี/8า โดยม�จ/านวนคร�8งท/าซี/8าท�,แน!นอนเชิ!น

for(i=1;i<5;i++)printf(“%d”,i);

สิ!วนท�, 1 เป4นการก/าหนดค!าเร�,มต%นให%ก�บต�วแปรสิ!วนท�, 2 ก/าหนดเง',อนไขีสิ!วนท�, 3 เพ�,มหร'อล์ดค!าให%ก�บต�วแปร

58

1 2 3 32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

หล์�กการท/างาน

int i;for( i=1 ; i<5 ; i+

+ )

printf(“%d”,i);ในขี�8นตอนท�, 2 ถู%าเง',อนไขีเป4นจร�ง ก5จะไปท/าขี�8นตอนท�, 3 แต!ถู%า...เง',อนไขีเป4นเท5จ จะหล์+ดออกจากล์3ป for ท�นท�

59

1

3

2 4

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ต�วอย!าง

for(int c=10;c>=5;c--)

printf(“%d “ , c);

60

for(int c=1;c<=5;c++)

printf(“%d”, c);

ผล์ล์�พธิ์�ค'อ

ผล์ล์�พธิ์�ค'อ

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

(ไม!ใชิ% FOR)EX โปรแกรมร�บค!าต�วเล์ขีเขี%ามา 5 จ/านวน แล์%วแสิดงผล์รวม

int sum,num1,num2,num3,num4,num5;

printf("Enter number 1 : ");scanf("%d",&num1);printf("Enter number 2 : ");scanf("%d",&num2);printf("Enter number 3 : ");scanf("%d",&num3);printf("Enter number 4 : ");scanf("%d",&num4);printf("Enter number 5 : ");scanf("%d",&num5);sum=num1+num2+num3+num4+num5;printf("Sum of number = %d",sum);

61

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

(ใชิ% FOR)EX โปรแกรมร�บค!าต�วเล์ขีเขี%ามา 5 จ/านวน แล์%วแสิดงผล์รวม

clrscr();int sum,num,i;sum=0;for(i=1;i<=5;i++)

{printf("Enter number %d : ",i);scanf("%d",&num);sum=sum+num;

}printf("Sum of number = %d",sum);getch();

62

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ล์3ป WHILEประโยคค/าสิ�,งล์3ปแบบ while จะใชิ%สิ/าหร�บให%โปรแกรม

ท/างานซี/8าโดยตรวจสิอบเง',อนไขีก!อน ถ้�าเง�"อนไขีเป4นจำร�งจำะที่/าซี/�าแลัะจำะวนรอบื้จำนกว�าเง�"อนไขีจำะเป4นเที่-จำล์3ปแบบน�8จะต!างจากล์3ปแบบ for เพราะ

- ล์3ป for จะทราบจ/านวนคร�8งท�,ท/าซี/8า เพราะม�การก/าหนดค!าเร�,มต%นแล์ะค!าสิ�8นสิ+ดให%ก�บต�วแปร

- ล์3ป while จ/านวนคร�8งท�,ท/าซี/8าจะไม!แน!นอน ขี68นอย3!ก�บเง',อนไขี

63

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ร3ปแบบขีองค/าสิ�,ง

while (test condition)

statement;

while (test condition)

statement;

64

ตรวจสิอบเง',อนไขี

สิเตตเมนต�

yes

no

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ต�วอย!างการใชิ%งาน

s=10;While(s>=0){

printf(“%d”,s);s=s-2;

}

s=10;While(s>=0){

printf(“%d”,s);s=s-2;

}

65

ผล์ล์�พธิ์� :ผล์ล์�พธิ์� :

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ล์3ป DO..WHILEการที่/างานขีอง do..while

จะท/าการตรวจสิอบเง',อนไขีภายหล์�งการท/างานในล์3ป โดยถู%าเง',อนไขีเป4นจร�งโปรแกรมจะท/าล์3ปซี/8าไปเร',อยๆ จนกระท�,งเง',อนไขีเป4นเท5จจ6งจะหย+ดท/า

เน',องจากล์3ปแบบน�8จะตรวจสิอบเง',อนไขีหล์�งจากท/าล์3ป จ6งท/าให%ประโยคในล์3ปถู3กท/าหน6,งคร�8งเสิมอ ซี6,งต!างจากล์3ปแบบอ',นๆ

66

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�

ต�วอย!างการใชิ%งาน

s=10;do{

printf(“%d”,s);s=s-2;

} While(s>=0)

s=10;do{

printf(“%d”,s);s=s-2;

} While(s>=0)

67

ผล์ล์�พธิ์� :ผล์ล์�พธิ์� :

32

04

-20

08

การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�

นะสิ�ทธิ์�� มณี�เบญ

จร�ตน�