โครงสร้างภาษาซีเบื้องต้น
DESCRIPTION
โครงสร้างภาษาซีเบื้องต้น. 3202-2008 การเขียนโปรแกรมภาษาซี. 1. 2. ส่วนประกอบในโครงสร้างภาษาซี. - PowerPoint PPT PresentationTRANSCRIPT
โครงสร�างภาษาซี�เบื้��องต้�น
3202-2008 การเขี�ยนโปรแกรมภาษาซี�
1
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
การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�
นะสิ�ทธิ์�� มณี�เบญ
จร�ตน�
การประกาศึต�วแปรต�วแปรท+กต�วจะต%องม�การประกาศึด%วยชิน�ดขีองขี%อม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
การเขี�ยนโปรแกรมภาษาซี� อ.ชิ�
นะสิ�ทธิ์�� มณี�เบญ
จร�ตน�