Transcript 03_2.pptx
ประเภทของข้อมู ลและตัว
ดาเนิ นการ
อาจารย ์ พิศษ
ิ ฐ ์ นาค
ใจ
• การประกาศตัวแปรมี 2 ลักษณะได้ แก่ตวั แปรโกบอล และ ตัวแปรโล
คอล ซึง่ มีรูปแบบการประกาศตัวแปรที่เหมือนกัน แต่จะมีคณ
ุ สมบัติ
ต่างกัน
Global variable
local variable
local variable
Main function
Other Function
3.1 ประเภทของข้ อมูล
• เป็ นพารามิเตอร์ ที่ใช้ งานในภาษาซี เพื่อกาหนดลักษณะฟั งก์ชนั ต้ นแบบ
และ ตัวแปรที่ใช้ งานในโปรแกรม มี 4 ชนิด
void ข้ อมูลชนิดว่างเปล่า
int ข้ อมูลชนิดจานวนเต็ม
floatข้ อมูลชนิดจานวนทศนิยม
char ข้ อมูลชนิดอักขระ
3.1.1 ข้ อมูลชนิดว่างเปล่า / void
void เป็ นพารามิเตอร์ ที่ใช้ งานในส่วนของ ฟั งก์ชนั โพรโทรไทพ์ การสร้ าง
และใช้ งานฟั งก์ชนั เพื่อแสดงให้ ร้ ูวา่ ฟั งก์ชนั ที่สร้ างขึ ้นมาไม่มีการส่ง หรื อรับ
ค่าจากการเรี ยกใช้ งานฟั งก์ชนั เช่น
void Calculate(void);
void Summary(int x,int y);
int Diff(void);
4
3.1.2 ข้ อมูลชนิดจานวนเต็ม / integer
int เป็ นพารามิเตอร์ หลักที่ใช้ กบั ข้ อมูลชนิดจานวนเต็ม โดยมีการใช้ งาน
5 รูปแบบดังนี ้
unsigned intข้ อมูลชนิดจานวนเต็มไม่คดิ เครื่ องหมายขนาด 2
bytes
short int
ข้ อมูลชนิดจานวนเต็มขนาด 2 bytes
int
ข้ อมูลชนิดจานวนเต็มขนาด 2 bytes หรื อ 4 byte
(ในคอมไพเลอร์ 32 bit ตัวแปร int มีขนาด 4 byte แต่ในคอมไพเลอร์
16 bit ตัวแปร int มีขนาด 2 byte)
unsigned long
ข้ อมูลชนิดจานวนเต็มไม่คิดเครื่ องหมายขนาด
5
3.1.3 ข้ อมูลชนิดจานวนทศนิยม / float
float เป็ นพารามิเตอร์ หลักที่ใช้ กบั ข้ อมูลชนิดจานวนทศนิยมโดยมีการใช้
งาน 3 รูปแบบดังนี ้
float
ข้ อมูลชนิดจานวนทศนิยมขนาด 4 byte
double
ข้ อมูลชนิดจานวนทศนิยมขนาด 8 byte
long double ข้ อมูลชนิดจานวนทศนิยมขนาด 10 byte
6
3.1.4 ข้ อมูลชนิดอักขระ / character
char เป็ นพารามิเตอร์ ที่ใช้ งานเกี่ยวกับตัวอักษร และข้ อความในภาษาซี
โดยมีการกาหนดค่าอักขระโดยให้ อยู่ในเครื่ อ งหมาย single quote
('...') เช่น 'C', 'o', 'm', '1'
อักขระพิเศษบางตัวไม่สามารถกาหนดค่าให้ ได้ โดยตรง แต่ใช้ ค่ารหัส
ASCII เช่นอักขระควบคุมการแสดงผลการขึ ้นต้ น บรรทัดใหม่ใช้ '\n'
เป็ นต้ น โดยมีรูปแบบการใช้ งาน 2 รูปแบบ
unsigned char
ข้ อมูลชนิดอักขระไม่คิด
เครื่ องหมาย
char
ข้ อมูลชนิดอักขระปกติ
7
3.1.5 ตารางแสดงขนาดและขอบเขตชนิดของข้ อมูล
ชนิดของตัวแปร
ขนาด
ค่ าตา่ สุ ด
ค่ าสู งสุ ด
unsigned char
8 bit
0
255
char
8 bit
-128
127
unsigned int
16 bit
32 bit
0
0
65,535
4,294,967,295
short int
16 bit
-32,768
32,767
int
16 bit
32 bit
-32,768
-2,147,483,648
32,767
2,147,483,647
unsigned long
32 bit
0
4,294,967,295
long
32 bit
-2,147,483,648
2,147,483,647
float
32 bit
3.410-38
3.4 1038
double
64 bit
1.7 10-308
1.710308
long double
80 bit
3.4 10-4932
3.4104932 8
3.2 รูปแบบการประกาศตัวแปรในภาษาซี
3.2.1 การประกาศตัวแปรแบบไม่กาหนดค่าเริ่ มต้ น
type var1;
type var1, var2, … , varN;
type
คือ ชนิดของข้ อมูลที่จะกาหนดให้ กบั ตัวแปร
varX
คือ ชื่อของตัวแปรที่จะตัง้
9
ตัวอย่างการประกาศตัวแปร
int
number;
int
a, b, c;
float
real;
float
point1, point2;
char
choice;
char
ch1,ch2;
10
3.2.2 รูปแบบการประกาศและกาหนดค่าตัวแปรในภาษ
ซี
type var1 = value1;
type var1=value1, varN=valueN;
คือ ชนิดของข้ อมูลที่จะกาหนดให้ กบั ตัวแปร
varX
คือ ชื่อของตัวแปรที่จะตัง้
valueX คือ ค่าของตัวแปรที่ต้องการกาหนดให้
type
11
ตัวอย่างการประกาศและกาหนดค่าตัวแปร
int
number = 25;
int
a = 1, b = 2, c = 3;
float
real = 99.99;
float
point1 = 45.2, point2 = 30;
char
choice = 'a';
char
ch1 = 'o', ch2 = 'z';
12
3.2.3 หลักการตังชื
้ ่อตัวแปรในภาษาซี
• ขึ ้นต้ นด้ วยอักษร A-Z, a-z หรื อ เครื่ องหมาย o_o เท่านัน้
• ภายในตัวแปร ห้ ามมี ช่องว่าง
• ภายในตัวแปรประกอบด้ วยอักขระ A-Z, a-z, ตัวเลข 0-9 หรื อ
เครื่ องหมายo_o เท่านัน้
• การใช้ อกั ษรตัวใหญ่และตัวเล็ก มีความแตกต่างกัน
• ห้ าม ใช้ คาสงวนเป็ นชื่อตัวแปร
• ควรตังชื
้ ่อตัวแปรให้ สมั พันธ์กบั ค่าที่ใช้ เก็บ
13
คาสงวน (Reserved word) ในภาษาซี
auto
break
case
char
const
continue
default
do
double
else
enum
extern
float
for
goto
if
int
long
register
return
short
singned
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while
14
ตัวอย่างการตังชื
้ ่อตัวแปร
//ตังชื
้ ่อตัวแปรถูกต้ อง
int _money;
float salary_ot;
char M11223_223;
double
GOTO_data;
//ตังชื
้ ่อตัวแปรผิด
int $money;
float static;
char 1M1223_223;
double GOTOdata;
15
3.3 ตัวแปรชนิดข้ อความ
• ในภาษาซี จ ะไม่ มี ข้ อ มู ล ชนิ ดข้ อ ความโดยเฉพาะ ซึ่ ง ในการเขี ย น
โปรแกรมส่วนใหญ่จาเป็ นต้ องมีการรับข้ อมูล ที่เป็ นข้ อความ เราสามารถใช้
ตัว แปรข้ อ มูลชนิดอัก ขระหลายๆ ตัว มาใช้ ง านได้ ในระดับหนึ่ง แต่ยังไม่
สะดวกเมื่อข้ อความมีความยาวมาก
ตัวอย่าง เช่น ต้ องการใช้ ข้อความว่า Hello สามารถใช้ ตวั แปรชนิด
อักขระ 5 ตัวแทน
char
ch1='H',ch2='e',ch3='l',
ch4='l',ch5='o';
16
หน้ าที่ของตัวแปล
ตัวแปร เสมือน ภาชนะที่ใช้ สาหรับเก็บข้ อมูล ภาชนะมี ด้ วยกัน
หลายชนิด ซึง่ มีคณ
ุ สมบัตกิ ารเก็บข้ อมูลที่แตกต่างกันไป และภาชนะที่
เป็ นชนิดเดียวกันอาจจะมีความจุ ที่แตกต่างกันไปอีกด้ วย
หน้ าที่ของตัวแปรทาหน้ าที่ เก็บข้ อมูลให้ อยูใ่ นหน่วยความจาและ
ทาหน้ าที่กาหนดชื่อแทนตาแหน่งที่ของหน่วยความจาที่เก็บข้ อมูลนันๆ
้
ไว้
ตัวอย่างเช่น
สร้ างตัวแปรชื่อว่า name เก็บค่าตัวเลข 100 เมื่อเวลา
ภาษาซี เรี ยกใช้ ตวั แปรชื่อว่า name จะได้ คา่ ตัวเลข 100 ที่ทาการ
เก็บไว้
การประกาศตัวแปรและค่าคงที่
• การประกาศค่าคงที่ (แบบที่ 1)
const
ประเภทข้ อมูล ชื่อค่าคงที่ = ค่าข้ อมูล
ตัวอย่าง
const int number = 100;
const char nameChar = ‘C’;
const char
ตัวแปรชนิดข้ อความ
• ตัวแปรชนิดข้ อความในภาษาซี คือ การนาอักษรมาเรี ยงต่อกัน ดังนัน้
สามารถสร้ างตัวแปรชนิดอักขระเรี ยงต่อกันหลาย ๆ ตัวให้ เป็ นตัวแปรชนิด
แถวลาดับ ทาให้ สามารถใช้ เก็บข้ อมูลชนิดข้ อความได้
• โดยตัวแปรชนิดข้ อความในภาษาซีจะอยูใ่ นเครื่ องหมาย Double
quote " "
19
3.3.1 รูปแบบการประกาศตัวแปรชนิดข้ อความ
char var1[M1];
char var1[M1], var2[M2];
varX
คือ ชื่อตัวแปร
MX
คือ จานวนของอักขระที่จะใช้ เก็บบวกด้ วย 1
การใช้ ตวั แปรแถวลาดับชนิดอักขระเป็ นตัวแปรข้ อความ ในภาษาซีกาหนด
ไว้ วา่ ตัวสุดท้ ายของตัวแปรแถวลาดับคือ \0
\0 Null character
20
ตัวอย่างการประกาศและกาหนดค่าตัวแปร
char
char
str[15];
first[20],last[20];
str[15]
first[20]
last[20]
21
3.3.2 รูปแบบการประกาศตัวแปรและกาหนดค่า
char var[M] = "??...?";
char var[M] = {'?','?',...,'?'};
char var[] = "??...? ";
var
M
?
คือ ชื่อตัวแปร
คือ จานวนของอักขระที่จะใช้ เก็บบวกด้ วย 1
คือ อักษรที่จะกาหนดค่าให้ ข้อความ จานวน m-1 ตัว
22
ตัวอย่างการประกาศและกาหนดค่าตัวแปร
char subject[12] = "Programming";
char nick[4] = "Com";
char nick_1[4] = {'C','o','m','\0'};
char name[] = "Jirasak";
subject[12]
P
r
o
g
r
a
m
m
i
n
g
\0
C
o
m
\0
nick_1[4]
name[]
J
i
nick[4]
r
a
s
a
k
\0
C
o
m
\0
23
3.3.3 รูปแบบการอ้ างอิงอักษรในตัวแปรข้ อความ
variable[N]
variable
N
คือชื่อตัวแปร
คือลาดับอักษรที่จะอ้ างอิงในตัวแปรข้ อความ
เริ่มนับอักษรตัวแรกเป็ นตำแหน่ งที่ 0
24
ตัวอย่างการอ้ างอิงอักษรในตัวแปรข้ อความ
char subject[12] = "Programming";
subject[12]
P
r
o
g
r
a
m
m
i
n
g
\0
[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
subject[0]
subject[1]
subject[2]
subject[10]
'P'
'r'
'o'
'g'
25
3.4 การใช้ งานตัวแปรร่วมกับคาสัง่ printf
• ในคาสัง่ printf มีสว่ นแสดงชนิดข้ อมูล ซึง่ ตัวแปรที่ใช้ งานก็เป็ นส่วนย่อยของ
ข้ อมูลชนิดต่าง ๆ
printf (format-string, data-list);
• จึงสามารถใช้ ตวั แปรแทนในส่วนของ data-list ได้ เช่น
#include<stdio.h>
int main()
{
printf("GPA : %.2f",3.5);
return 0;
}
#include<stdio.h>
int main()
{
float g = 3.5;
printf ("GPA : %.2f",g);
return 0;
}
26
3.5 การรับค่าด้ วยคาสัง่ scanf
• โปรแกรมโดยทัว่ ไปต้ องมีการรับค่าข้ อมูลจากผู้ใช้ โปรแกรม เพื่ อนามาหา
ผลลัพธ์ ตามกระบวนการทางานของโปรแกรม หรื อตามความต้ องการของ
ผู้ใช้ งาน
• คาสัง่ ที่ใช้ สาหรับการรับค่าในภาษาซีมีหลายคาสัง่ แต่ที่ สามารถใช้ งานได้
ครอบคลุมและนิยมใช้ กนั คือ คาสัง่ scanf
27
3.5.1 รูปแบบของคาสัง่ scanf
scanf (format-string, address-list);
format-string
address-list
คล้ ายในคาสัง่ printf แต่จะมีเฉพาะส่วนแสดงชนิด
ข้ อมูล และอยูใ่ นเครื่ องหมาย " "
คือ ตาแหน่งของตัวแปรที่ต้องการเก็บข้ อมูลไว้ (การใช้
งานตาแหน่งของตัวแปรจะใช้ เครื่ องหมาย & นาหน้ าชื่อ
ตัวแปร ยกเว้ นตัวแปรชนิดข้ อความ)
หมำยเหตุ คำสั่ง scanf ต้ องเรี ยกใช้ Preprocessor Directive #include<stdio.h>
28
ตัวอย่างการใช้ คาสัง่ scanf
#include<stdio.h>
int main()
{
float point;
char name[20];
printf ("Enter your name : ");
scanf ("%s",name);
printf ("Enter your point : ");
scanf ("%f",&point);
return 0;
}
ตัวแปรข้ อควำม
ไม่ ต้องมี & หน้ ำตัว
แปร
ตัวแปรทศนิยม
ต้ องมี & หน้ ำตัวแปร
29
ตัวอย่างการใช้ คาสัง่ printf และ scanf
#include<stdio.h>
int main()
{
char first[20],last[20];
printf ("Enter your name and surname : ");
scanf ("%s %s",first,last);
กำรรับตัวแปรมำกกว่ ำ 1 ตัวในคำสั่งเดียว
ต้ องป้ อนข้ อมูลให้ มีรูปแบบเหมือนกัน
printf ("Hi %s %s\nHow are you?",first,last);
return 0;
}
Enter your name and surname : Jirasak Sittigorn
Hi Jirasak Sittigorn
How are you?
30
โจทย์ : โปรแกรมแสดงข้ อความตามที่กาหนด
ต้ องการเขียนโปรแกรมแสดงข้ อความตามที่ผ้ ใู ช้ กาหนด
จอคอมพิวเตอร์ โดยใช้ ตวั แปรข้ อความ
ตัวอย่างการรันโปรแกรม
Enter String : programming
programming
programming
programming
programming
programming
5 บรรทัดที่
Enter String : URU
URU
URU
URU
URU
URU
หมำยเหตุ: อักษรที่ขีดเส้ นใต้ คืออักษรที่ผ้ ใู ช้ ปอ้ นให้ แก่โปรแกรม
31
แสดงวิธีทา
แบบฝึ กหัด
• ให้ นิสติ เขียนโปรแกรมดังนี ้
#include<stdio.h>
int main()
{
char name[20];
printf ("Enter your name and surname : ");
scanf ("%s",name);
printf ("Hi %s \nHow are you?",name);
return 0;
}
ให้ นิสิตใส่ Input เป็ นชื่อ
อภิปรายผล
นิสิต เว้ นวรรค นามสกุล
3.5.2 การใช้ คาสัง่ scanf รับข้ อความที่มีการเว้ น (spacebar)
• คาสัง่ scanf ไม่สามารถใช้ รับข้ อความที่มีการเว้ นเพื่อเก็บในตัวแปร
ข้ อความตัวเดียวได้ (เมื่อใช้ %s)
• เราสามารถใช้ คาสัง่ scanf เพื่อให้ รับข้ อความที่มีการเว้ นไปเก็บในตัวแปร
ชนิดข้ อความได้ ดงั นี ้
scanf ("%[^\n]", string);
แต่โปรแกรมอาจเกิดปั ญหาเรื่ อง buffer อาจใช้ คาสัง่ ลบ buffer
34
ตัวอย่างการใช้ คาสัง่ printf และ scanf
#include<stdio.h>
int main()
{
char name[40];
printf ("Enter your name : ");
scanf ("%[^\n]",name);
printf (“Your name %s “,name);
return 0;
}
35
ตัวอย่างการใช้ คาสัง่ printf และ scanf
#include<stdio.h>
int main()
{
char name[40]; int date, month, year;
printf ("Enter your name & surname : ");
scanf("%[^\n]",name);
printf ("Enter your Birthday [d/m/y] : ");
scanf("%d/%d/%d",date,month,year);
printf ("%s birthday is %d %d %d",name,date,month,year);
return 0;
}
ทาการเขียนโปรแกรมต่อไปนี ้ และแก้ ไขให้ ถกู ต้ อง
36
3.6 เครื่ องหมายคานวณทางคณิตศาสตร์
เครื่องหมำ
มำย
+
*
/
%
กำรทำงำน
บวก
ลบ
คูณ
หำร
โมดูลัส (modulo)
ตัวอย่ ำง
ans = a + b;
ans = a - b;
ans = a * b;
ans = a / b;
ans = a % b;
37
การกาหนดค่าให้ ตวั แปร
• การกาหนดค่าให้ กบั ตัวแปรในภาษาซีใช้ เครื่ องหมาย = โดยการทางานจะ
นาค่าที่อยูท่ างขวามือ (จานวน อักขระ ข้ อความ ค่าจากตัวแปร หรื อผลลัพธ์
จากฟั งก์ชนั ) ให้ กบั ตัวแปรที่อยูท่ างซ้ ายมือ
variable = value;
num1 = 99;
n = num%10;
point = mid+final;
ch = '9';
ans = pow(x,y);
str = "Com";
38
3.6.1 การเพิ่มลดค่าตัวแปร
เครื่ องหมำย
ำย
กำรทำงำน
ทำงำน
ตัวอย่ ำง
x++; ++x;
++
เพิ่มค่ ำทีละ 1
ละ 1
y = ++x;
(Increment)
y = x++;
x--; --x;
--
ลดค่ ำทีละ 1
ละ 1
y = --x;
(Decrement)
ขัน้ ตอนกำรทำงำน
เพิ่มค่ ำ x ขึน้ 1
เพิ่มค่ ำ x ขึน้ 1 กำหนดค่ ำให้
ขึน้ 1
ำให้ y
กำหนดค่ ำให้ y เพิ่มค่ ำ x ขึน้
ขึน้ 1
ลดค่ ำ x ลง 1
ลดค่ ำ x ลง 1
ลง 1
กำหนดค่ ำให้
39
ำให้ y
โปรแกรม 3.4 เพิ่ม/ลดค่าตัวแปร
#include <stdio.h>
ทาการเขียนโปรแกรมต่อไปนี ้ และให้ คาตอบว่า a มี
int main()
ค่าเท่าใด 1 คะแนน สาหรับ 2 คนแรก
{
int a;
a = 10;
printf(“ %d ”,a++);
printf(“ %d ”,++a);
printf(“ %d ”,a+2);
printf(“ %d ”,++a); //สังเกตผลลัพธ์
return 0;
}
40
3.6.2 เครื่ องหมายแบบลดรูป
เครื่ องหมำย
ำย
ตัวอย่ ำงกำรใช้ งำน
ตัวอย่ ำงรู ปแบบเต็ม
+=
y += x;
y = y + x;
-=
y -= x;
y = y - x;
*=
y *= x;
y = y * x;
/=
y /= x;
y = y / x;
%=
y %= x;
y = y % x;
41
โปรแกรม 3.5 เพิ่ม/ลดค่าตัวแปร
#include <stdio.h>
int main()
ทาการเขียนโปรแกรมต่อไปนี ้ และให้ คาตอบว่า a มี
{
ค่าเท่าใด 1 คะแนน สาหรับ 2 คนแรก
int a;
a = 10;
printf(“ %d ”,a++);
printf(“ %d ”,++a);
printf(“ %d ”,a+=2);
printf(“ %d ”,++a); //สังเกตผลลัพธ ์
return 0;
}
42
3.6.3 ตัวดาเนินการ & ตัวถูกดาเนินการ
Type Operat Type Resu
1
or
2
t
int
int
float
float
int
+,-,*,/
+,-,*,/
+,-,*,/
+,-,*,/
%
int
float
int
float
int
int
float
float
float
int
Exam
3*3
9
19/2
9
3*3.0
9.000000
19/2.0
9.500000
3.0*3
9.000000
19.0/2
9.500000
3.0*3.0
9.000000
19.0/2.0
9.500000
7%4
3
8%4
0
43
3.6.4 นิพจน์ในภาษาซี
ลาดับความสาคัญ
1
2
3
4
5
6
7
8
9
เครื่ องหมาย
()
!, ++, --, (type)
*, /, %
+, -
<, <=, >, >=
==, !=
&&
||
*=, /=, %=, +=, -=
หมายเหตุ: ไม่ควรใช้ == หรื อ != กับข้ อมูลประเภททศนิยม float double
44
ตัวอย่างลาดับการคานวน
•
•
•
•
•
(3+4)*5
=
3+4*5
=
(2+7)*4/10
2+7*4/10
10+2*8/4*3-5=
=
=
โปรแกรม 3.6 แสดงลาดับความสาคัญสัญลักษณ์ทางคณิตศาสตร์
#include <stdio.h>
int main()
{
int a = 10;
printf(“ %d ”, 10*2*3-10/7+a);
printf(“ %d ”, 10*2*(3-10/a)/7);
printf(“ %d ”, 10*2/2+3*a);
printf(“ %d ”, 10*(2-2+3)+a);
return 0;
}
ทาการเขียนโปรแกรมต่อไปนี ้ แต่ละบรรทัดมีค่า
เท่าใด 1 คะแนนพิเศษ สาหรับ 2 คนแรก
46
3.6.4 การเปลี่ยนชนิดของข้ อมูล
• ในภาษาซีมีบางคาสัง่ ที่ใช้ งานได้ กบั เฉพาะข้ อมูลบางชนิดเท่านัน้ เช่น
modulo จะใช้ งานได้ เฉพาะข้ อมูลชนิดจานวนเต็ม แต่ไม่สามารถใช้ กบั
ข้ อมูลชนิดจานวนทศนิยมได้
• รูปแบบการเปลี่ยนชนิดข้ อมูล
(type) variable;
type
variable
คือ ชนิดของข้ อมูลที่ต้องการ
คือ ชื่อของตัวแปรที่ต้องการนาค่ามาใช้
หมำยเหตุ ไม่ ได้ ทำกำรเปลี่ยนตัวแปรเป็ นชนิดอื่น แต่ เปลี่ยนชนิดข้ อมูลเพื่อนำไปใช้ งำน
47
ตัวอย่างการเปลี่ยนชนิดของข้ อมูล
float gpa = 3.9; int
num = 3;
printf ("gpa(f) :%-10f num(d) :%-10d\n",gpa,num);
printf ("gpa(d) :%-10d num(f) :%-10f\n",gpa,num);
printf ("(int)gpa(d) :%-10d", (int)gpa);
printf ("(float)num(f) :%-10f", (float)num);
48
3.7 คาสัง่ แสดงผล และรับข้ อมูลอื่นๆ
putchar(ch);
puts(str);
ch = getchar();
ch = getch();
gets(str);
49
รูปแบบและการใช้ คาสัง่ putchar
• เป็ นคาสัง่ ที่ใช้ แสดงผลข้ อมูลชนิดอักขระทีละตัว โดยมีรูปแบบการใช้ งาน
คาสัง่ ดังนี ้
putchar(ch);
ch คือตัวแปรชนิดอักขระที่ต้องการแสดงผล
หมำยเหตุ คำสั่ง putchar ต้ องเรี ยกใช้ Preprocessor Directive #include<stdio.h>
50
รูปแบบและการใช้ คาสัง่ puts
• เป็ นคาสัง่ ที่ใช้ แสดงผลข้ อมูลชนิดข้ อความ โดยมีรูปแบบการใช้ งานคาสัง่
ดังนี ้
puts(str);
str คือตัวแปรชนิดข้ อความที่ต้องการแสดงผล
หมำยเหตุ คำสั่ง puts ต้ องเรี ยกใช้ Preprocessor Directive #include<stdio.h>
51
ตัวอย่างคาสัง่ แสดงผล และรับข้ อมูล
char ch = 'A', str[] = "Computer";
putchar (ch);
putchar (' ');
putchar (str[1]);
putchar ('\n');
puts (str);
Ao
Computer
52
รูปแบบและการใช้ คาสัง่ getchar
• เป็ นคาสัง่ ที่ใช้ รับข้ อมูลชนิดอักขระจากผู้ใช้ งานเพียงตัวเดียว โดยเมื่อป้อน
ข้ อมูลแล้ วต้ องกด Enter
• คาสัง่ getchar มีรูปแบบการใช้ งานคาสัง่ ดังนี ้
ch = getchar();
ch คือตัวแปรชนิดข้ อความที่ต้องการเก็บข้ อมูลไว้
หมำยเหตุ คำสั่ง getchar ต้ องเรี ยกใช้ Preprocessor Directive #include<stdio.h>
53
รูปแบบและการใช้ คาสัง่ getch
• เป็ นคาสัง่ ที่ใช้ รับข้ อมูลชนิดอักขระจากผู้ใช้ งานเพียงตัวเดียว โดยเมื่อป้อน
ข้ อมูลแล้ วโปรแกรมจะทางานคาสัง่ ต่อไปทันที และจะไม่ แสดงอักขระที่
พิมพ์ ไป
• คาสัง่ getch มีรูปแบบการใช้ งานคาสัง่ ดังนี ้
ch = getch();
ch คือตัวแปรชนิดข้ อความที่ต้องการเก็บข้ อมูลไว้
หมำยเหตุ คำสั่ง getch ต้ องเรี ยกใช้ Preprocessor Directive #include<conio.h>
54
รูปแบบและการใช้ คาสัง่ gets
• เป็ นคาสัง่ ที่ใช้ รับข้ อมูลชนิดข้ อความจากผู้ใช้ งาน โดยสามารถใส่ข้อมูลที่มี
การเว้ นช่องว่างภายในได้
• คาสัง่ gets มีรูปแบบการใช้ งานคาสัง่ ดังนี ้
gets(str);
str คือตัวแปรชนิดข้ อความที่ต้องการแสดงผล
หมำยเหตุ คำสั่ง gets ต้ องเรี ยกใช้ Preprocessor Directive #include<stdio.h>
55
ตัวอย่างคาสัง่ แสดงผล และรับข้ อมูล
char ch1,ch2;
printf ("Enter Character 1 : ");
ch1 = getchar();
printf ("Enter Character 2 : ");
ch2 = getch();
puts ("\n**** Output ****");
printf ("Char 1 = %c\nChar 2 = %c", ch1,ch2);
Enter Character 1 : J
Enter Character 2 :
**** Output ****
Char 1 = J
Char 2 = O
พิมพ์ O แต่ ไม่ แสดงออกมำ
56
คาถาม
1.
2.
ชนิดข้ อมูลแบบข้ อความเหมือนหรื อแตกต่างจากชนิดข้ อมูลแบบอักขระอย่างไร
จากตัวอย่างโปรแกรมต่อไปนี ้
#include <stdio.h>
int main() {
char name[20];
int age;
printf("Enter your name: "); scanf("%s",name);
printf("Enter your age "); scanf("%d",age);
printf("Your name is : %s\n Your age is : %d",name,age);
return 0;
}
เมื่อ Run แล้ วจะได้ ผลอย่างไร (ตรวจหน้ าจอและถามคาถามทีละคน)