ความรู้เบื้องต้น
เกี่ยวกับภาษาซี
เครื่องคอมพิวเตอร์
(Hardware)
หน่วยรับ
ข้อมูล
หน่วย
ประมวลผล
หน่วย
แสดงผล
ส่วนประกอบของ
เครื่องคอมพิวเตอร์
ซอฟต์แวร์ (Software)
• ซอฟต์แวร์ (Software) หรือ
โปรแกรมคอมพิวเตอร์
(Computer Program) คือ
โปรแกรมที่ถูกเขียนขึ้นมาจาก
ภาษาคอมพิวเตอร์และถูกแปลง
ให้เป็นภาษาเครื่องเพื่อให้
คอมพิวเตอร์ทางานอย่างใด
อย่างหนึ่งตามที่เราต้องการ
• แบ่งออกเป็น 2 ประเภทใหญ่ๆ
คือ
• System software
• Application software
System Software
• เป็นโปรแกรมที่ทางาน
เกี่ยวกับระบบคอมพิวเตอร์
มีหน้าที่ในการควบคุม
อุปกรณ์ฮาร์ดแวร์ทุกชนิด
และจัดตารางการทางานทั้ง
ฮาร์ดแวร์และซอฟต์แวร์
ที่ทางานกับฮาร์ดแวร์ทุกตัว
ซึ่งก็คือระบบปฏิบัติการ
(Operating System : OS)
นั่นเอง
ได้แก่ DOS, Windows,
Linux, Mac OS, OS/2
Application Software
• เป็นโปรแกรมที่ถูกสร้างขึ้นเพื่อทางานด้าน
ต่างๆ ซึ่งก็ถูกเขียนขึ้นจากโปรแกรมภาษา
ต่างๆ เช่น PowerDVD, Windows Media
Player, Winamp, Word, Calculator, SPSS
• สามารถแบ่งออกได้หลายประเภท เช่น
• โปรแกรมพิมพ์งาน
• โปรแกรมเกม
• โปรแกรมยูทิลิตี้
• โปรแกรมมัลติมีเดีย
• โปรแกรมสาหรับระบบ
• โปรแกรมภาษาสาหรับพัฒนา
ซอฟต์แวร์
ภาษาคอมพิวเตอร์
• แบ่งออกเป็น 2 ประเภทใหญ่ๆ คือ
• ภาษาระดับต่า ได้แก่ ภาษาเครื่อง
และภาษา Assembly
• ภาษาระดับสูง ได้แก่ Basic, Pascal,
Ada, C, Cobol, Fortran และอื่นๆ
• ความแตกต่างระหว่างภาษาระดับสูง
และระดับต่าคือ ภาษาระดับต่า ควบคุม
อุปกรณ์ฮาร์ดแวร์คอมพิวเตอร์ได้
ดีกว่า แต่เขียนยาก และยาวมาก
• ส่วนภาษาระดับสูงเขียนง่าย
เข้าใจง่ายกว่า เพราะใกล้เคียงภาษา
มนุษย์ แต่มีข้อจากัดในการควบคุม
ฮาร์ดแวร์
โปรแกรมที่เขียนขึ้น
ทางานได้อย่างไร ?
• โปรแกรมที่เขียนขึ้นมา ไม่ว่าจะเขียน
โดยใช้อิดิเตอร์(editor) ใดก็ตาม
จะได้ซอร์สโค้ด(source code) ซึ่งจะ
เก็บในรูปแฟ้มข้อมูล ซึ่งจะมี
นามสกุลแตกต่างกันไป เช่น
ภาษา นามสกุล ตัวอย่าง
C++
C
Pascal
Perl
PHP
Java
.c
.cpp
.pas
.pl
.php
.java
hello.c
hello.cpp
hello.pas
hello.pl
hello.php
hello.java
กระบวนการแปลโปรแกรม
--
--
--
--
--
--
ซอร์สโค้ด
กระบวนการ
แปลโปรแกรม
โปรแกรมที่สามารถ
ทางานได้
โดยไม่ต้องมี
source code
ตัวแปลภาษา
• คอมไพเลอร์(compiler)
• คอมไพเลอร์จะอ่าน
โปรแกรมทั้งหมดก่อน
เมื่อเจอข้อผิดพลาดก็
จะแจ้งให้แก้ไข
• แต่ถ้าไม่พบข้อผิดพลาด
ใดๆ ในโปรแกรม
ก็จะแปลให้เป็นโปรแกรม
ที่พร้อมจะทางาน
ตัวแปลภาษา
ขอตรวจสอบ
ดูก่อน
Main()
{
printf(“X
X”);
printf(“Y
Y”);
}
ซอร์สโค้ด
กระบวนการแปลโปรแกรม
มีข้อผิดพลาด
ไปแก้ไขมาใหม่
ถูกต้อง
ผ่านได้
ตัวแปลภาษา
• อินเตอร์พรีเตอร์(interpreter)
• อินเตอร์พรีเตอร์ จะอ่าน
โปรแกรมมาทีละบรรทัดและ
ทาตามคาสั่งแบบบรรทัดต่อ
บรรทัด ถ้าเจอข้อผิดพลาด
โปรแกรมจะหยุดและแจ้งให้
ทราบว่าผิดพลาด
• ตัวอย่างเช่น การแปลภาษา
HTML
ไฟล์โปรแกรมที่ได้จากการ
แปลภาษา
• เมื่อเขียนโปรแกรมเสร็จ ผ่านการ
แปลภาษาแล้วผลที่ได้ก็จะเป็นไฟล์
โปรแกรมที่สามารถนาไปใช้ได้เลย
โดยอาจก๊อปปี้ลงดิสก์ไปเปิดที่
เครื่องอื่นๆ ได้ ซึ่งจะเป็นไฟล์
โปรแกรมแยกจากตัว
ซอร์สโค้ดที่เราเขียน
• ไฟล์โปรแกรมที่ได้นั้นเป็นไฟล์แบบ
เลขฐานสอง หรือ
ไบนารีไฟล์(.exe)
เรียกว่าเอ็กซีคิวเทเบิ้ลไฟล์
(executable file)
สรุป
Editor
Preproc
essor
Compile
r
Linker
Loader
Memory
การเตรียม
โปรแกรม
ภาษาซีต้นฉบับ
การ
ประมวลผล
ก่อน
การคอมไพล์
การเชื่อมโยง
โปรแกรม
การบรรจุ
โปรแกรม
โครงสร้างพื้นฐานของภาษาซี
โครงสร้างพื้นฐานของโปรแกรมภาษาซีจะต้อง
ประกอบด้วยโปรแกรมย่อย (function)
อย่างน้อย 1 ฟังก์ชัน มีรูปแบบดังนี้
void main ( )
// ส่วนหัวของฟังก์ชัน
{
การประกาศตัวแปรท้องถิ่น;
// ส่วนการประกาศตัวแปร
คาสั่งต่างๆ;
// ส่วนคาสั่ง
}
ฟังก์ชัน main มีประกอบด้วย 3 ส่วนหลัก คือ
1. ส่วนหัวของฟังก์ชัน ประกอบด้วย ชนิดข้อมูล void
ชื่อฟังก์ชัน main ตามด้วยเครื่องหมาย ()
2. ส่วนการประกาศตัวแปร ใช้สาหรับประกาศตัวแปร
ชนิดต่างๆ เพื่อเก็บข้อมูล
3. ส่วนคาสั่ง ประกอบด้วยคาสั่งที่เกี่ยวข้องกับการ
รับเข้าและการแสดงผลข้อมูลและคาสั่งประมวลผลอื่นๆ
สรุปโครงสร้างโปรแกรม
Preprocessor
directive
void main()
{
}
statement
Local
definitions
global
definitions
ทุกโปรแกรม
ต้องมี
ใช้เรียกไฟล์ที่
ต้องการก่อน
คอมไพล์
โปรแกรมที่พบได้แก่
#include, #define
เป็นต้น
ใช้ประกาศตัวแปร
หรือฟังก์ชัน
ที่สามารถเรียกใช้ได้
ทุกส่วน
ตัวแปรและคาสั่งต่าง
ๆ ที่ใช้ใน
โปรแกรม
โครงสร้างพื้นฐานของ
ภาษาซี
จุดผิดพลาดของโปรแกรม
เรียกว่าบัก (bug)
ส่วนการแก้ไขข้อผิดพลาด
ให้ถูกต้องเรียกว่า (debug)
จุดบกพร่องของโปรแกรม
จะมี 2 ประเภท
Syntax error หรือ
coding error
Logic error
ตัวอย่างโปรแกรม :
ส่วนประกอบของภาษาซี
ส่วนประกอบของภาษาซีสามารถแบ่ง
ออกได้เป็น2ส่วนใหญ่ๆ คือไฟล์หัวโปรแกรม
(Header files) และส่วนของตัวโปรแกรม
ดูตัวอย่าง
/*Example Program
*/
#include <stdio.h>
main()
{
clrscr();
printf("************
*********n");
printf("Example
Programn");
printf("************
*********n");
}
ส่วนของคาอธิบายไม่มี
ผลต่อการคอมไพล์
ไฟล์ส่วนหัวโปรแกรม
ฟังก์ชันหลักของโปรแกรม
ปีกกาเปิดเริ่มต้นการ
เขียนโปรแกรม
ตัวโปรแกรมภาษาซี
ปีกกาปิด จบโปรแกรม
ไฟล์ .h ที่ตามหลัง include
ไฟล์นามสกุล .h เป็น Header file
หรือไฟล์ส่วนหัวที่รวบรวมคาสั่งต่าง ๆ
ของภาษาซีเอาไว้ เพื่อให้ผู้เขียน
สามารถใช้ฟังก์ชันได้ มีอยู่หลายไฟล์
เช่น
 stdio.h เก็บฟังก์ชันที่ใช้งานทั่วไป เช่น
printf , scanf โปรแกรมส่วนมากจะใช้
ไฟล์นี้
 conio.h เก็บฟังก์ชันควบคุมการ
แสดงผลต่าง ๆ
 string.h เก็บฟังก์ชันที่ใช้ในการ
ประมวลผลกับข้อความ
 math.h เก็บฟังก์ชันที่ใช้ในการคานวณ
ทางคณิตศาสตร์ เช่น sin,cos,log
printf()
control : เป็นส่วนควบคุมการ
แสดงผล ประกอบด้วย
ข้อความ รหัสควบคุม
(เช่น %d %f) และอักขระควบคุม
การแสดงผล(n)
value : ได้แก่ค่าตัวแปร นิพจน์
ที่ต้องการแสดงผล ถ้าหากมี
มากกว่าหนึ่งตัวให้ใช้ comma
คั่นระหว่างแต่ละตัว
printf (“ control “,value);
ตัวอย่าง : รหัสรูปแบบ
(Format Code)
• %d แสดงเลขจานวนเต็ม
(int,short,unsigned ,….)
• %f แสดงเลขทศนิยม
(float,double,…)
• %c แสดงตัวอักขระหนึ่งตัว
• %s แสดงผลเป็นข้อความ
• %p แสดงผลเป็นตัวชี้
ตาแหน่ง (pointer)
ตัวอย่าง : รหัสควบคุมการ
แสดงผล
• n ขึ้นบรรทัดใหม่
• t เว้นช่องว่างเป็นระยะ 1
tab หรือหกตัวอักขระ
• r ให้เคอร์เซอร์ขึ้นบรรทัด
ใหม่
• f เว้นช่องว่างเป็นระยะหนึ่ง
หน้าจอ
• aส่งเสียง beep
ตัวแปร (variables)
ตัวแปร เป็นชื่อของหน่วยความจา
ที่ตาแหน่งต่าง ๆ ที่ผู้เขียนโปรแกรม
กาหนด มีไว้สาหรับเก็บข้อมูลต่าง ๆ
ระหว่าง
การทาโปรแกรม แบ่งตามประเภทได้
ดังนี้
• ตัวแปรเก็บข้อมูลชนิดจานวนเต็ม
• ตัวแปรเก็บข้อมูลชนิดจานวนจริง
• ตัวแปรเก็บข้อมูลชนิดตัวอักขระ
• ตัวแปรเก็บข้อมูลชนิดสายอักขระ
(สตริง)
กฎการตั้งชื่อตัวแปร
• กฎข้อที่1 ชื่อตัวแปรต้องไม่มีตัวอักษรพิเศษ เช่น
! @ # $ % ^ & * (
• กฎข้อที่2 สามารถใช้เครื่องหมาย Underscore
( _ ) ได้
• กฎข้อที่3 ชื่อตัวแปรจะมีตัวเลขก็ได้ แต่ต้องไม่ขึ้นต้น
ด้วยตัวเลข
• กฎข้อที่4 ห้ามมีช่องว่าง (Space)
• กฎข้อที่5 สามารถใช้ตัวอักษรตัวเล็ก(a,b,…) และ
ตัวอักษรตัวใหญ่ (A,B,…)
• กฎข้อที่6 ชื่อตัวแปรที่สะกดเหมือนกัน แต่ใช้
ตัวอักษรเล็ก-ใหญ่ต่างกัน ถือว่าเป็นตัวแปรคนละ
ตัวกัน
• กฎข้อที่7 ห้ามตั้งชื่อตัวแปรซ้ากับคาสงวนหรือ
คาสั่งในภาษา C เช่น char, int, long, main เป็นต้น
คาสงวน (Reserved Words)
: ANSI C
auto extern sizeof break
float static case for
struct char goto switch
const if typedef continue
int union default long
unsigned do register void
double return volatile else
short while enum signed
asm _cs _ds _es
_ss cdecl far huge
interrupt near pascal
_export
กฎการตั้งชื่อตัวแปร
• อย่าเอาตัวเลขนาหน้า
• อย่าให้มาตรงกับคาสงวน
• อย่าให้มีเครื่องหมายใด
ไม่ควรมีช่องว่างใดๆ เลย
ชนิดข้อมูล (data type)
ชนิดข้อมูล การประกาศ ขนาด (Byte) ช่วงของข้อมูล
ตัวอักขระ char 1 -128 ถึง 127
unsigned char 1 0 ถึง 255
signed char 1 -128 ถึง 127
เลขจานวนเต็ม int 2 -32,768 ถึง 32,767
unsigned int 2 0 ถึง 65,535
เลขจานวนเต็ม long 4 -2,147,483 ถึง
2,147,483,647
เลขทศนิยม float 4 3.4 x 10-38
ถึง 3.4 x 1038
เลขทศนิยม double 8 1.7 x 10-308 ถึง
1.7x10 +308
เลขทศนิยม long double 10 3.4 x 10-4032 ถึง
3.4 x 104032
ตัวดาเนินการทางคณิตศาสตร์
การคานวณ ตัวดาเนินการ ตัวอย่าง การทางาน
บวก + c = a + b; นา a บวก b
ผลลัพธ์เก็บใน c
ลบ - c = a - b; นา a ลบ b แล้ว
เก็บใน c
คูณ * c = a * b; นา a คูณ b แล้ว
เก็บใน c
หาร / c = a / b; การหาร (ระวัง
ขึ้นกับประเภท
ของข้อมูลด้วย)
มอดูลัส % c = a % b; เป็นการหารที่
เก็บเศษไว้ใน c
ตัวดำเนินกำรเอกภำค (unary
operator)
เป็นกำรใช้ตัวดำเนินกำรกับตัวแปรตัว
เดียว มีกำรใช้สองแบบคือ
1. ตัวดำเนินกำรเอกภำคเติมหลัง
(postfix mode)
EX: a++;
2. ตัวดำเนินกำรเอกภำคเติมหน้ำ (prefix
mode)
EX: ++a;
ตัวดาเนินการประกอบ
ตัวดาเนินการประกอบ ตัวอย่าง การทางาน
+= x += 5 x = x + 5
-= x -= 5 x = x - 5
*= x *= y x = x * y
/= x /= y x = x / y
%= x %= 5 x = x % 5
+= x += y/8 x = x + y / 8
เป็นการใช้ตัวดาเนินการหนึ่งตัวร่วมกับ
เครื่องหมายเท่ากับ
ลาดับในการดาเนินการ
ถ้าหากมีการใช้ตัวดาเนินการ
ประกอบและตัวดาเนินการเอกภาค
หลายตัว จะมีลาดับทางานดังนี้
1. ()
2. ++ --
3. * / %
4. + -
5. += *=
/= -= %=
ตัวอย่างการใช้งาน
คาสั่ง x y
int x = 10, y = 20; 10 20
++x; 11 20
y = - -x; 10 10
x = x-- +y; 19 10
y = x- ++x; 20 0
แหล่งที่มา
www.samsenwit.ac.th/e-
book/computer/prapakorn/c/document/c.pps

Introduction toc