Transcript Chapter3

ตัวแปรกับชนิดของข้อมูล
(Variables and Data Type)
ตัวแปร

ตัวแปร หมายถึง เนื้อที่ในหน่วยความจาหลักที่คอมไพลเลอร์จองไว้
โดยกาหนดด้วยชื่อ เราสามารถกาหนดค่าให้แก่ตวั แปรด้วยการใช้
เครื่ องหมาย “=”

ชื่อที่กาหนดขึ้นเพื่อใช้ในการเก็บข้อมูลซึ่งการประกาศตัวแปรจะ
เป็ นไปตามกฏการใช้งานบทที่ 1
การแสดงผล


Printf() เป็ นฟังก์ชนั มาตรฐาน ซึ่งใช้สาหรับแสดงผลลัพธ์แบบกาหนด
รู ปแบบชนิดข้อมูล ได้แก่ จอภาพ
Scanf() เป็ นฟังก์ชนั มาตรฐาน ซึ่งใช้สาหรับข้อมูลแบบกาหนดรู ปแบบ
ชนิดข้อมูล โดยรับข้อมูลจากแป้ นพิมพ์
ตารางแสดงสัญลักษณ์แสดงผล
สั ญลักษณ์
%d
%s
%f
%c
%o
%x
ใช้ สำหรับ
แสดงค่ ำที่เป็ นเลขจำนวนเต็ม
แสดงค่ ำที่เป็ นสตริง
แสดงค่ ำที่เป็ นเลขทศนิยม
แสดงค่ ำที่เป็ นตัวอักษร 1 ตัว
แสดงค่ ำของตัวเลขในรู ปฐำนแปด
แสดงค่ ำของตัวเลขในรู ปฐำนสิ บหก
ชนิดของข้อมูล




แบบ Void
แบบตัวอักษร
แบบเลขจานวนเต็ม
แบบเลขทศนิยม
ชนิดข้อมูลแบบ Void (0 byte)



เป็ นชนิดข้อมูลที่ไม่มีค่า
ไม่ใช้กาหนดค่าให้ตวั แปร
ใช้กาหนดไว้ที่ฟังชัน่ ในกรณี ที่ไม่มีการรับหรื อส่ งค่า
ชนิดข้อมูลแบบตัวอักษร(Character)



เป็ นตัวแปรที่เก็บได้ 1 ตัวอักษร
เป็ นตัวอักษรตัวเดียว ภายในเครื่ องหมาย ‘ ’
โดยไม่ได้เก็บตัวอักษรไว้ สิ่ งที่เก็บคือรหัสแอสกีที่ตรงกับค่าของตัวอักษร เช่น
เช่น ‘A’
0
1
1
0
0
0
0
1
การกระทาทางคณิ ตศาสตร์ของตัวอักษร
ตัวอักษรสามารถนามาบวก และ ลบ ด้วยตัวเลขได้ ดังนี้
#include <stdio.h>
Main(){
char A=‘a’;
printf(“Variable A is %c\n”,A);
A = A + 10;
Printf(“After plus variable A with 10, variable A is now %c\n”,A);
Variable A is a
}

After plus variable A with 10, variable A is now k
การเก็บข้อมูลมากกว่า 1 ตัวอักษร





เรี ยกว่า String
โดยนาชนิดข้อมูลแบบตัวอักษรมากาหนดให้อยูใ่ นรู ปของ Array
เป็ นแถวลาดับของตัวอักษรตั้งแต่ 1 ตัวขึ้นไป ภายในเครื่ องหมาย “ ”
สาหรับ String ภาษา C จะเติมอักษร Null เป็ นตัวอักษรสุ ดท้ายของแถว
ลาดับ เพื่อบอกจุดสิ้ นสุ ดของ String
รู ปแบบ


char ชื่อตัวแปร[ขนาดข้อมูล];
char data[9] = “computer”;
ชนิดข้อมูลแบบเลขจานวนเต็ม (Integer)




แบ่งออกเป็ น 2 ประเภท คือ
int หรื อ short เก็บเลขจานวนเต็มตั้งแต่ -32,768 ถึง 32,767
Long เก็บเลขจานวนเต็มตั้งแต่ -2,147,483,648 ถึง 2,147,483,647
วิธีการใช้คือถ้าต้องการตัวเลขจานวนเต็มมากกว่า 32,767 เราจะต้อง
ประกาศตัวแปรแบบ long ถ้าน้อยกว่าก็ประกาศแบบ int ดังตัวอย่าง





int a,b,c;
int age;
int height;
long salary,money;
เราประกาศตัวแปร a,b,c age height แบบ int เนื่องจาก
ต้องการให้เก็บค่าที่อยูร่ ะหว่าง -32,768 ถึง 32,767 เท่านั้น แต่
salary และ money มีโอกาสจะมีค่ามากกว่า นั้นดังนั้นจึงต้อง
ประกาศเป็ น long
ชนิดข้อมูลแบบเลขทศนิยม (floating-point)




แบ่งออกเป็ น 3 ประเภท คือ
Float เก็บทศนิยมได้ 3.4E+/-38 (ทศนิยม 6 ตาแหน่ง)
Double เก็บทศนิยมได้ 1.7E+/-308 (ทศนิยม 12 ตาแหน่ง)
Long Double เก็บทศนิยมได้ 1.2E+/-4932 (ทศนิยม 24 ตาแหน่ง)
float grade;
double rate;
long double longrate;
#include<stdio.h>
void main()
{
You are malee
You are f
You are 20 years old
Your grade is 3.140000
int age = 20;
char sex = ‘f’;
float grade = 3.14;
char name[10] = “malee”;
printf(“You are %s\n”,name);
printf(“You are %c\n”,sex);
printf(“You are %d years old\n”,age);
printf(“You grade is %f\n”,grade);
}
ประเภทตัวแปร

Global variable


เป็ นตัวแปรทีเ่ มื่อประกำศแล้วจะสำมำรถใช้ ตวั แปร นั้นได้
ตลอดทั้งโปรแกรม โดยไม่ ต้องประกำศซ้ำ แม้ จะอยู่ใน
ฟังก์ชันย่ อย
Local variable

เป็ นตัวแปรที่ใช้ เฉพำะส่ วนของโปรแกรม
ค่ ำคงที่ในภำษำซี



ค่าคงที่จะต่างจากตัวแปรที่ค่าคงที่จะเก็บค่าเอาไว้เพียงค่าเดียว
ตลอดทั้งโปรแกรม โดยที่เราสร้างค่าคงที่แล้วจะไม่สามารถ
เปลี่ยนแปลงค่าของมันได้
การตั้งชื่อค่าคงที่จะใช้กฎเดียวกันกับการตั้งชื่อตัวแปร แต่
นิยมตั้งชื่อค่าคงที่ให้เป็ นตัวอักษรพิมพ์ใหญ่ท้ งั หมด เพื่อให้
เกิดความแตกต่างระหว่างชื่อตัวแปรกับชื่อค่าคงที่
ค่าคงที่ในภาษาซี มี 2 คาสัง่ คือ


คาสั่ง const
และ #define
กำรใช้ คำสั่ ง const สร้ ำงค่ ำคงที่
ตัวอย่ ำงโปรแกรม const1.c
#include<stdio.h>
void main()
{
const double pi=3.14;
const float K=4;
const char ch= ‘A’;
const char company[10]=“INTER”;
printf(“pi = %d\n”,pi);
printf(“K = %f\n”,K);
printf(“ch = %d\n”,ch);
printf(“company name = %s”,company);
}
กำรใช้ คำสั่ ง #define สร้ ำงค่ ำคงที่
ตัวอย่ำงโปรแกรม define1.c
#include<stdio.h>
#define PI 3.14
#define NAME “SASALAK”
#define CH ‘a’
void main()
{
printf(“PI = %f\n”,PI);
printf(“NAME = %s\n”,NAME);
printf(“PI = %c\n”,CH);
}
กำรใช้ คำสั่ ง #define สร้ ำงค่ ำคงที่
ตัวอย่ำงโปรแกรม define2.c
#include<stdio.h>
#define PI 3.14
#define AREA(x) PI*x*x
void main()
{
int r;
printf(“R = ?”);
scanf(“%d”, &r);
printf(“Area = %f”,AREA(r) );
}
กำรใช้ คำสั่ ง #Scanf()
ตัวอย่ ำงโปรแกรม Scanf.c
#include<stdio.h>
main()
{
int day, month, year;
printf(“Enter date dd/mm/yy”);
scanf(“%d / %d / %d”, &day, &month, &year);
printf(“It is %2d / %2d / %2d today”, day, month, year );
}