วันอาทิตย์ที่ 17 เมษายน พ.ศ. 2559

โปรแกรมภาษาซี

ประวัติความเป็นมาภาษาซี
ภาษาซีเกิดขึ้นในปี ค.ศ. 1972 ผู้คิดค้นคือ Dennis Ritchie โดยพัฒนามาจากภาษาB และ ภาษา BCPL  ในปี 1988 Ritchie ได้กำหนดมาตรฐานของภาษาซีเรียกว่า ANSI C เพื่อใช้เป็นตัวกำหนดมาตรฐานในการสร้างภาษาซีรุ่นต่อไป

1. โครงสร้างของโปรแกรมภาษาซี
    1.1 ข้อความสั่งตัวประมวลผลก่อน (preprocessor statements)ข้อความสั่งตัวประมวลผลก่อนขึ้นต้นด้วยเครื่องหมาย # เช่น #include<stdio.h> หมายความว่าให้ตัวประมวลผลก่อนไปอ่านข้อมูลจากแฟ้ม stdio.h ซึ่งเป็นแฟ้มที่มีอยู่ในคลัง เมื่อโปรแกรมมีการใช้ข้อความสั่งอ่านและบันทึก ข้อความสั่งตัวประมวลผลก่อนจะต้องเขียนไว้ตอนต้นขอโปรแกรม
     1.2 รหัสต้นฉบับ (source code) รหัสต้นฉบับ หมายถึง ตัวโปรแกรมที่ประกอบด้วยข้อความสั่งและตัวฟังก์ชั่นต่างๆ
     1.3 ข้อความสั่งประกาศครอบคลุม (global declaration statements)ข้อความสั่งประกาศครอบคลุมใช้ประกาศตัวแปรส่วนกลาง โดยที่ตัวแปรส่วนกลางนั้นจะสามารถถูกเรียกใช้จากทุกส่วนของโปรแกรม
   1.4 ต้นแบบฟังก์ชัน (function prototype)ต้นแบบฟังก์ชันใช้ประกาศฟังก์ชัน เพื่อบอกให้ตัวแปลโปรแกรมทราบถึงชนิดของค่าที่ส่งกลับและชนิดของค่าต่างๆ ที่ส่งไปกระทำการในฟังก์ชัน
    1.5 ฟังก์ชันหลัก (main function) เมื่อสั่งให้กระทำการโปรแกรม ฟังก์ชันหลักจะเป็นจุดเริ่มต้นของการกระทำการ ภายในฟังก์ชันหลักจะประกอบด้วยข้อความสั่งและข้อความสั่งที่เรียกใช้ฟังก์ชั่น
     1.6 ฟังก์ชัน (function) ฟังก์ชัน หมายถึง กลุ่มของข้อความสั่งที่ทำงานใดงานหนึ่งโดยเป็นอิสระจากฟังก์ชันหลัก แต่อาจมีการรับส่งค่าระหว่างฟังก์ชันและฟังก์ชันหลัก
    1.7 ข้อความสั่งประกาศตัวแปรเฉพาะที่ (local declaration statements) ข้อความสั่งประกาศตัวแปรเฉพาะที่ ใช้ประกาศตัวแปรเฉพาะที่ โดยที่ตัวแปรเฉพาะที่จะสามารถถูกเรียกใช้เฉพาะภายในฟังก์ชันนั้น
    1.8 การแปลและกระทำการโปรแกรม (program compilation and execution) เมื่อได้เขียนและป้อนข้อความสั่งตัวประมวลผลก่อนและรหัสต้นฉบับลงในโปรแกรมอิดิเตอร์เสร็จแล้วจะต้องเรียกตัวแปรโปรแกรมมาเพื่อให้แปลภาษาซีให้เป็นภาษาเครื่อง หากโปรแกรมนั้นเขียนได้ถูกต้องตรงตามกฎของภาษาซี ตัวแปรโปรแกรมจะแปลโปรแกรมภาษาซีให้เป็นภาษาเครื่อง แล้วนำไปเก็บไว้ในแฟ้มชื่อเดียวกันแต่มีนามสกุลเป็น .obj จากนั้นตัวเชื่อมโยง (linker) จะต้องนำฟังก์ชันจากคลัง (library function) ต่างๆที่โปรแกรมได้เรียกใช้มารวมเข้ากับแฟ้ม .obj แล้วนำไปเก็บไว้ในแฟ้มชื่อเดิม แต่มีนามสกุลไฟล์เป็น .exe เมื่อต้องการกระทำการโปรแกรมก็สามารถป้อนข้อมูลเข้า (input data) ให้กับโปรแกรม ซึ่งจะได้ผลการกระทำ (output)
โครงสร้างพื้นฐานของภาษา C
    โครงสร้างพื้นฐานของโปรแกรมภาษา C ประกอบไปด้วยโปรแกรมย่อย หรือเรียกว่าฟังก์ชัน (function) อย่างน้อย 1 ฟังก์ชัน คือ ฟังก์ชัน main() ซึ่งมีรูปแบบดังนี้


ฟังก์ชัน main() ประกอบด้วย 3 ส่วนหลัก คือ
1. ส่วนหัวของฟังก์ชัน ประกอบด้วย ชนิดข้อมูล void ชื่อฟังก์ชัน main ตามด้วยเครื่องหมาย () ตามลำดับ
2. ส่วนการประกาศตัวแปร ใช้สำหรับประกาศตัวแปรชนิดต่างๆ เพื่อเก็บข้อมูลระหว่างการประมวลผล
3. ส่วนคำสั่ง ประกอบด้วยคำสั่งที่เกี่ยวข้องกับการรับเข้าและการแสดงผลข้อมูล และคำสั่งประมวลผลอื่นๆ
ส่วนการประกาศตัวแปรและคำสั่งจะต้องเขียนอยู่ระหว่างเครื่องหมาย { และ } เสมอ ทั้งสองส่วนนี้ใช้สำหรับการนิยามการทำงานของฟังก์ชัน main() หรือเป็นการนิยามการทำงานของโปรแกรม และคำสั่งทุกคำสั่งในภาษาซี จะต้องปิดท้ายด้วยเครื่องหมาย ; เสมอ
การแสดงผลลัพธ์เบื้องต้น
คำสั่งที่ใช้สำหรับแสดงผลคือ คำสั่ง printf ()
            โปรแกรมพิมพ์ข้อความออกทางจอภาพ
ผลลัพธ์คือ
          the first output from C
บรรทัดที่ 1 เป็นการใช้คำสั่งของตัวประมวลผลก่อนซีที่มีชื่อว่า include ซึ่งขึ้นต้อนด้วยอักขระ # ในที่นี้คำสั่ง #include จะมีผลให้แฟ้มชื่อ stdio.h ซึ่งเป็นแฟ้มส่วนหัวที่ใช้เก็บรวบรวมคำสั่งที่เกี่ยวข้องกับการรับ และการแสดงผลข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลร่วมกับโปรแกรม output1.c
เครื่องหมาย < > ล้อมรอบชื่อแฟ้ม stdio.h ใช้บอกตำแหน่งของแฟ้มในเครื่องคอมพิวเตอร์ซึ่งในที่นี้คือในสาระบบ (directory) include
บรรทัดที่ 4 เรียกใช้คำสั่ง printf () ซึ่งเป็นเพียงคำสั่งเดียวของโปรแกรม output1.c การทำงานของโปรแกรม printf () ได้ถูกนิยามในแฟ้มส่วนหัว stdio.h ตามมาตรฐาน ANSI C และด้วยเหตุนี้โปรแกรม output1.c จึงต้องมีคำสั่ง #include <stdio.h> เพื่อให้สามารถประมวลผลคำสั่ง printf () ได้ถูกต้อง
จะเห็นได้ว่าขุดอักขระ \n ที่ปรากฏเป็นส่วนหนึ่งของสายอักขระในบรรทัดที่4 ไม่ได้แสดงผลออกทางจอภาพ เหตุที่เป็นเช่นนี้เนื่องจากว่าอักขระ \ ซึ่งเรียกว่า อักขระหลีก (escape character) มีผลให้อักขระ 1 ตัวที่ตามมา(ในที่นี้คือ n) มีความหมายเปลี่ยนไปจากปกติ สำหรับชุดอักขระ \n คอมไพเลอร์ภาษาซีได้ กำหนดให้มีความหมายเป็น ขึ้นบรรทัดใหม่ และนอกจาก \n แล้วยังมีชุดอักขระของอักขระหลีกอื่นที่มีความหมายแตกต่างกันออกไป เช่น

เครื่องหมายและการดำเนินการในภาษา C
     การดำเนินการในการเขียนโปรแกรมภาษา C มีอยู่ 3 ประเภท  คือ  การคำนวณทางคณิตศาสตร์  การดำเนินการทางตรรกศาสตร์  และการเปรียบเทียบ  ซึ่งการดำเนินการแต่ละประเภทจะมีเครื่องหมายที่ต้องใช้เพื่อเขียนคำสั่งสำหรับการดำเนินการประเภทนั้น ๆ ดังรายละเอียด
เครื่องหมายการคำนวณทางคณิตศาสตร์
เครื่องหมายที่ใช้สำหรับการคำนวณทางคณิตศาสตร์ใช้ภาษา สรุปดังนี้
เครื่องหมาย
ความหมาย
ตัวอย่าง
+
บวก
3+2  การบวกเลข 3 บวกกับ 2 ได้ผลลัพธ์คือ 5
-
ลบ
3 - 2 การลบเลข 3 ลบกับ 2 ได้ผลลัพธ์คือ 1
*
คูณ
2*3   การคูณเลข 3 บวกกับ 2 ได้ผลลัพธ์คือ 6
/
หาร
15/2  การหาร 15 หารกับ 2 ได้ผลลัพธ์คือ 7
%
หารเอาเศษ
15%2การหารเอาเศษ 15 หารกับ 2 ได้ผลลัพธ์คือ 1
++
เพิ่มค่าขึ้น 1 โดย
a++ จะนำค่าของ a ไปใช้ก่อนแล้วจึงเพิ่มค่าของ a ขึ้น 1



++a จะเพิ่มค่าของ a ขึ้น 1 ก่อนแล้วจึงนำค่าของ a ไปใช้
b=a++;
จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้
b=a;
a=a+1;

b=++a;
จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้
a=a+1;
b=a;
--
ลดค่า 1 โดย
a-- จะนำค่าของ a ไปใช้ก่อน แล้วจึงลดค่าของ a ลง 1



--a จะลดค่าของ a ลง 1 ก่อน แล้วจึงนำค่าของ a ไปใช้
b=a--;
จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้
b=a;
a=a-1;

b=--a;
จะมีความหมายเทียบเท่ากับ 2 บรรทัดต่อไปนี้
a=a-1;
b=a;

ตัวดำเนินการเปรียบเทียบ
ใช้เปรียบเทียบค่า 2 ค่าเพื่อแสดงการเลือก ซึ่งโปรแกรมโดยทั่วไปใช้ในการทดสอบเงื่อนไขตามที่กำหนด
การเปรียบเทียบโดยการเท่ากันของ 2 ค่าจะใช้เครื่องหมาย ==
เครื่องหมาย
ความหมาย
ตัวอย่าง
> 
มากกว่า
a > b   a มากกว่า b
>==
มากกว่าหรือเท่ากับ
a >= b a มากกว่าหรือเท่ากับ b
< 
น้อยกว่า
a < b   a น้อยกว่า b
<==
น้อยกว่าหรือเท่ากับ
a <= b a น้อยกว่าหรือเท่ากับ b
==
เท่ากับ
a == b a เท่ากับ b
!==
ไม่เท่ากับ
a != b  a ไม่เท่ากับ b

ตัวดำเนินการตรรกะ
การดำเนินการเปรียบเทียบค่าทางตรรกะ( และ หรือ ไม่)
เครื่องหมาย
ความหมาย
ตัวอย่าง
&&
และ
x < 60 && x > 50   กำหนดให้ x มีค่าในช่วง 50 ถึง 60
||
หรือ
x == 10 || x == 15     กำหนดให้ x มีค่าเท่ากับตัวเลข 2 ค่า คือ 10 หรือ 15
!
ไม่ใช่
x = 10  !x  กำหนดให้ x ไม่เท่ากับ 10

การเขียนนิพจน์ในภาษา C
นิพจน์ในภาษา C ก็คือ การนำข้อมูลและตัวแปรในภาษา C มาดำเนินการด้วยเครื่องหมายทางคณิตศาสตร์  ตรรกศาสตร์  หรือเครื่องหมายเปรียบเทียบในภาษา C เป็นตัวสั่งงาน  ดังตัวอย่าง
เครื่องหมาย
นิพจน์ทางคณิตศาสตร์ในภาษา C
+
a + b + c
-
A – b – c
*
2 * a * b
/
A / B

ลำดับความสำคัญของเครื่องหมาย
ส่วนใหญ่นิพจน์ที่เขียนขึ้นในโปรแกรมมักจะซับซ้อน  มีการดำเนินการหลายอย่างปะปนอยู่ภายในนิพจน์เดียวกัน
ลำดับความสำคัญ
ลำดับความสำคัญจากสูงไปต่ำ
1
( )
2
!, ++, - -
3
*, /, %
4
+, -
5
<, <=, >, >=
6
= =, !=
7
&&
8
||
9
*=, /=, %=, += ,-=
คำสั่งเบื้องต้นของภาษา C
ฟังก์ชันรับข้อมูล  (input functions)
ในเนื้อหาฟังก์ชันการับข้อมูลของภาษา  มีฟังก์ชันที่ใช้ในการรับข้อมูลจากคีย์บอร์ด  อยู่หลายฟังก์ชันที่จะกล่าวถึง  ดังนี้คือ ฟังก์ชัน  scanf( ), ฟังก์ชัน  getchar( ), ฟังก์ชัน  getch( ), ฟังก์ชัน  getche( )  และฟังก์ชัน  gets( )  ซึ่งแต่ละฟังก์ชันมีรายละเอียดของการใช้งานดังนี้

ฟังก์ชัน scanf( )
เป็นฟังก์ชันที่ใช้ในการรับข้อมูล จากคีย์บอร์ดเข้าไปเก็บไว้ในตัวแปรที่กำหนดไว้โดยสามารถรับข้อมูลที่เป็นตัวเลขจำนวนเต็ม ตัวเลขทศนิยม ตัวอักขระตัวเดียว หรือข้อความก็ได้
รูปแบบการใช้งานฟังก์ชัน
scanf(control string, argument list);

โดยที่
control  string  คือ  รหัสรูปแบบข้อมูล (format code)  โดยจะต้องเขียนอยู่ภายใต้เครื่องหมาย  “……..”  (double  quotation)
argument list คือ  ชื่อตัวแปรที่ใช้เก็บข้อมูลโดยจะต้องใช้เครื่องหมาย  &  (ampersand)  นำหน้าชื่อตัวแปร  ยกเว้นตัวแปรชนิด  string  ไม่ต้องมีเครื่องหมาย  นำหน้าชื่อ  ถ้ามีตัวแปรมากกว่า  ตัวแปร  ให้ใช้เครื่องหมาย  ,  (comma)  คั่นระหว่างตัวแปรแต่ละตัว

ตาราง แสดงรหัสรูปแบบข้อมูลที่สามารถใช้ในฟังก์ชัน printf()

รหัสรูปแบบ
(format code)
ความหมาย
%c
ใช้กับข้อมูลชนิดตัวอักขระตัวเดียว  (single  character :  char)
%d
ใช้กับข้อมูลชนิดตัวเลขจำนวนเต็ม (integer : int)  โดยสามารถใช้กับตัวเลขฐาน  10  เท่านั้น
%e
ใช้กับข้อมูลชนิดตัวเลขจุดทศนิยม  (floating  point : float)
%f,%lf
ใช้กับข้อมูลชนิด  float  และ  double  ตามลำดับ
%g
ใช้กับข้อมูลชนิด  float
%h
ใช้กับข้อมูลชนิด  short  integer
%l
ใช้กับข้อมูลชนิด  int  โดยใช้กับตัวเลขฐาน 8, ฐาน 10 และฐาน 16
%o
ใช้กับข้อมูลชนิด  int  โดยสามารถใช้กับตัวเลขฐาน  เท่านั้น
%u
ใช้กับข้อมูลชนิด  unsigned  int  โดยใช้กับตัวเลขฐาน  10  เท่านั้น
%x
ใช้กับข้อมูลชนิด  int  โดยสามารถใช้กับตัวเลขฐาน  16  เท่านั้น
%s
ใช้แสดงข้อมูลชนิด  string
%p
ใช้แสดงค่า  address  ของตัวแปรพอยเตอร์

ตัวอย่างโปรแกรม
#include<stdio.h>                                                  
void main(void)                                                      
{                                                                          
      int  a;                                                                
      scanf("%d", &a);                                            
}   

ฟังก์ชัน  getchar( )
เป็นฟังก์ชันที่ใช้รับข้อมูลจากคีย์บอร์ดเพียง  1  ตัวอักขระ  โดยการรับข้อมูลของฟังก์ชันนี้จะต้องกดแป้น  enter  ทุกครั้งที่ป้อนข้อมูลเสร็จ  จึงทำให้เห็นข้อมูลที่ป้อนปรากฏบนจอภาพด้วย  ถ้าต้องการนำข้อมูลที่ป้อนผ่านทางคีย์บอร์ดไปใช้งาน  จะต้องกำหนดตัวแปรชนิด  single  character  (char)  ขึ้นมา  1  ตัว  เพื่อเก็บค่าข้อมูลที่รับผ่านทางคีย์บอร์ด  ในทางตรงกันข้ามถ้าไม่ต้องการใช้ข้อมูลที่ป้อนผ่านทางคีย์บอร์ดก็ไม่ต้องกำหนดตัวแปรชนิด  char  ขึ้นมา   
รูปแบบการใช้งานฟังก์ชัน
getchar( );
หรือ  char_var = getchar( );
โดยที่
getchar( )  คือ  ฟังก์ชันที่ใช้รับข้อมูลเพียง  1  ตัวอักขระจากคีย์บอร์ด  โดยฟังก์ชันนี้จะไม่มี  argument ซึ่งอาจจะใช้ getchar(void) แทนคำว่า getchar( ) ก็ได้ แต่นิยมใช้ getchar( ) มากกว่า 
char_var  คือ  ตัวแปรชนิด  char  ซึ่งจะเก็บข้อมูล  ตัวอักขระที่ป้อนผ่านทางคีย์บอร์ด

ตัวอย่างโปรแกรม
 /*          getchar1.c          */
#include<stdio.h>                                                                        
#include<conio.h>                                                                      
void main(void)                                                                             
{                                                                                                  
      char  cha;                                                                             
      clrscr( );                                                                                 
      printf("Enter a single character : ");                                 
      cha = getchar( );                                                                
      printf("You type a character is ...%c \n",cha);

ฟังก์ชัน  getch( )
เป็นฟังก์ชันที่ใช้รับข้อมูลเพียง  1 ตัวอักขระเหมือนกับฟังก์ชัน getchar( )  แตกต่างกันตรงที่เมื่อใช้ฟังก์ชันนี้รับข้อมูล  ข้อมูลที่ป้อนเข้าไปจะไม่ปรากฏให้เห็นบนจอภาพและไม่ต้องกดแป้น  enter  ตาม    

รูปแบบการใช้งานฟังก์ชัน
getch( );
หรือ  char_var = getch( );      
โดยที่
getch( )  คือ ฟังก์ชันที่ใช้รับข้อมูลเพียง  1  ตัวอักขระจากคีย์บอร์ด  โดยฟังก์ชันนี้จะไม่มี  argument  ดังนั้นอาจจะใช้  getch(void)  แทนคำว่า  getch( )  ก็ได้  แต่นิยมใช้  getch( )  มากกว่า
char_var  คือ  ตัวแปรชนิด  char  ซึ่งจะเก็บข้อมูล  ตัวอักขระที่ป้อนผ่านทางคีย์บอร์ด

โปรแกรมตัวอย่าง แสดงโปรแกรมการใช้ฟังก์ชัน  getch( )
 /*          getch1.c            */
#include<stdio.h>                                                                          
#include<conio.h>                                                                          
void main(void)                                                                              
{                                                                                                    
      char  ch;                                                                               
      clrscr( );                                                                                
      printf("Enter a single character : ");                                  
      ch = getch( );                                                                     
      printf("\nYou type a character is ...%c \n",ch);               
      getch( );                                                                             
}

ฟังก์ชัน  gets( )
เป็นฟังก์ชันที่ใช้รับข้อมูลชนิดข้อความ  (string)  จากคีย์บอร์ด  จากนั้นนำข้อมูลที่รับเข้าไปเก็บไว้ในตัวแปรสตริง  (string  variables)  ที่กำหนดไว้

รูปแบบการใช้งานฟังก์ชัน
 gets(string_var);
โดย
string_var  คือ  ตัวแปรสตริง  ซึ่งจะใช้เก็บข้อมูลชนิดข้อความ  (string  constant)
gets( )       คือ  ฟังก์ชันที่ใช้รับข้อความจากคีย์บอร์ด  แล้วไปเก็บไว้ในตัวแปรสตริง

โปรแกรมตัวอย่าง แสดงโปรแกรมการใช้ฟังก์ชัน  gets( )
/*          gets1.c              /
#include<stdio.h>                                                                      
#include<conio.h>                                                                         
void main(void)                                                                               
{                                                                                                   
      char pro[50];                                                                       
      clrscr( );                                                                                
      printf("Enter your province : ");                                      
      gets(pro);                                                                            
      printf("Your province is ...%s\n", pro);                             
      getch( );                                                                              
}

สรุปข้อแนะนำการใช้ฟังก์ชันรับข้อมูล  (input  functions)
- เมื่อต้องการรับค่าข้อมูล  string  ควรใช้ฟังก์ชัน  gets( )  หรือ  scanf( )
- เมื่อต้องการรับตัวเลขหรือตัวอักษรเพียง  1  ตัว  ที่ไม่ต้องการเห็นบนจอภาพ  และไม่ต้องกดแป้น  enter  ควรใช้ฟังก์ชัน  getch( ) แต่ถ้าต้องการเห็นบนจอภาพด้วยควรใช้ฟังก์ชัน  getche( )
- เมื่อต้องการรับข้อมูลตัวเลขที่มากกว่า  1  ตัว  เช่น  ตัวเลขจำนวนเต็มหรือตัวเลขทศนิยม  ควรใช้ฟังก์ชัน  scanf( )
- กรณีที่ใช้ฟังก์ชัน  scanf( )  รับข้อมูลติดต่อกันมากกว่า  ครั้ง  อาจเกิดความผิดพลาดในการรับข้อมูล  ดังนั้นจึงควรใช้คำสั่ง  ch = getchar( );  คั่นก่อนที่จะรับข้อมูลครั้งที่  โดยจะต้องมีคำสั่งประกาศตัวแปร  char  ch;  ไว้ด้วย         

ที่มา : http://wmcclaguage.blogspot.com/p/4.html     

แสดงผลให้เป็นระเบียบด้วยอักขระควบคุมการแสดงผล นอกจากนี้เรายังสามารถจัดรูปแบบการแสดงผลให้ดูเป็นระเบียบมากขึ้น เช่น การขึ้นบรรทัดใหม่หลังแสดงข้อความ หรือเว้นระยะแท็บระหว่างข้อความ โดยใช้อักขระควบคุมการแสดงผลร่วมกับคำสั่ง printf ในภาษาซีมี อักขระควบคุมการแสดงผลหลายรูปแบบด้วยกัน ดังแสดงต่อไปนี้

อักขระควบคุมการแสดงผล
ความหมาย
\n
ขึ้นบรรทัดใหม่
\t
เว้นช่องว่างเป็นระยะ 1 แท็บ (6 ตัวอักษร)
\r
กำหนดให้เคอร์เซอร์ไปอยู่ต้นบรรทัด
\f
เว้นช่องว่างเป็นระยะ 1 หน้าจอ
\b
ลบอักขระสุดท้ายออก 1 ตัว
ตัวแปร (variables)
คอมพิวเตอร์มีส่วนประกอบที่สำคัญส่วนหนึ่งคือ หน่วยความจำ ซึ่งเปรียบได้กับสมองของมนุษย์ทำหน้าที่เก็บข้อมูลในขณะที่ประมวลผล ในการประมวลผลแต่ละครั้งมักต้องใช้ข้อมูลจำนวนมาก ซึ่งจำเป็นจะต้องเก็บไว้ในหน่วยความจำ เป็นเก็บแล้วจะต้องทราบตำแหน่งที่นำข้อมูลเข้าไปเก็บไว้ภายในของหน่วยความจำด้วย เพื่อให้สามารถนำข้อมูลเหล่านั้นกลับมาประมวลผลได้ ดังนั้นตัวแปรจึงมีหน้าที่สำคัญที่ช่วยในการเก็บข้อมูลแต่ละประเภทที่ผู้ใช้ป้อนเข้าสู่โปรแกรม

ชนิดข้อมูล (data types)
        ข้อมูลที่ใช้ในโปรแกรมมีหลายชนิด ซึ่งนักเขียนโปรแกรมต้องเลือกใช้ตามความเหมาะสมกับการใช้งาน ข้อมูลมีขนาดที่แตกต่างกันไปตามชนิดข้อมูล นอกจากนี้แล้ว ชนิดข้อมูลยังอาจมีขนาดที่แตกต่างกันโดยขึ้นกับเครื่องคอมพิวเตอร์และตัวแปลโปรแกรมที่ใช้ในการประมวลผล แต่โดยทั่วไปแล้วในไมโครคอมพิวเตอร์ ชนิดข้อมูลมีการใช้ในโปรแกรมและขนาดดังนี้


หลักการตั้งชื่อตัวแปร
          1. ต้องขึ้นต้นด้วยตัวอักษร A-Z หรือ a-z หรือเครื่องหมาย _ (Underscore) เท่านั้น
          2. ภายในชื่อตัวแปรสามารถใช้ตัวอักษร A-Z หรือ a-z หรือตัวเลข 0 - 9 หรือเครื่องหมาย _
          3. ภายในชื่อห้ามเว้นช่องว่าง หรือใช้สัญลักษณ์นอกเหนือจากข้อ 2
          4. ตัวอักษรเล็กหรือใหญ่มีความหมายแตกต่างกัน
          5. ห้ามตั้งชื่อซ้ำกับคำสงวน (Reserved Word)


 ตัวอย่างการตั้งชื่อตัวแปรในภาษา C ทั้งที่ถูกต้องและไม่ถูกต้องตามหลักการ แสดงดังนี้