วัตถุประสงค์เชิงพฤติกรรม (Behavioral Objectives)
หลังจากศึกษาจบบทเรียนนี้แล้ว นักศึกษาจะมีความสามารถดังนี้
(After studying this chapter, you will be able to)

          1. อธิบายโครงสร้างของภาษา C และยกตัวอย่าง

          2. บอกกฎเกณฑ์ในการตั้งชื่อและยกตัวอย่าง

          3. แบ่งชนิดข้อมูลในภาษา C และแสดงตาราง

          4. อธิบายตัวแปรและยกตัวอย่าง

          5. ยกตัวอย่างชนิดข้อมูลแบบค่าคงที่

          6. เขียนแผนภูมิแสดง Statements แบบต่าง ๆ ของภาษา C

          7. แสดงสัญลักษณ์ของผังงานมาตรฐาน (Flow Chart)

          8. แสดงการออกแบบผังงาน (แบบเรียงลำดับ แบบทางเลือก แบบการทำงานซ้ำ)

          9. จัดบอร์ดเชิงปฏิบ้ติการ “โครงสร้างของภาษา C”

        10. สนทนาเชิงปฏบัติการ “ชนิดข้อมูลแบบคงที่ (Constants)”

        11. อธิบายคำศัพท์ได้ 14 คำ



บทที่  2
โครงสร้างของภาษา C

                ภาษา C  เป็นภาษาคอมพิวเตอร์ที่ถูกคิดค้นขึ้นโดย Denis Ritchie ในปี ค.ศ.  1970โดยใช้ระบบปฏิบัติการของยูนิกซ์ (UNIX) นับจากนั้นมาก็ได้รับความนิยมเพิ่มขึ้นจนถึงปัจจุบันภาษา C สามารถติดต่อในระดับฮาร์ดแวร์ได้ดีกว่าภาษาระดับสูงอื่น ๆ ไม่ว่าจะเป็นภาษาเบสิกฟอร์แทน ขณะเดียวกันก็มีคุณสมบัติของภาษาระดับสูงอยู่ด้วย ด้วยเหตุผลดังกล่าวจึงจัดได้ว่าภาษา C เป็นภาษาระดับกลาง (Middle-lever Language)
ภาษา C เป็นภาษาคอมพิวเตอร์ชนิดคอมไพล์ (Compiled Language) ซึ่งมี
คอมไพลเลอร์ (Compiler) ทำหน้าที่ในการคอมไพล์ (Compile) หรือแปลงคำสั่งทั้งหมดในโปรแกรมให้เป็นภาษาเครื่อง (Machine Language) เพื่อให้เครื่องคอมพิวเตอร์นำคำสั่งเหล่านั้นไปทำงานต่อไป

โครงสร้างของภาษา C
            ทุกโปรแกรมของภาษา C มีโครงสร้างเป็นลักษณะ 


ส่วนเฮดเดอร์ไฟล์

ส่วนตัวแปรแบบ Global

int  main (void)
{
ส่วนตัวแปร Local
ตัวโปรแกรม
ค่าส่งกลับ
}

โครงสร้างหรือลักษณะของภาษา C

เฮดเดอร์ไฟล์ ( Header Files)
            เป็นส่วนที่เก็บไลบรารีมาตรฐานของภาษา C ซึ่งจะถูกดึงเข้ามารวมกับโปรแกรมในขณะที่กำลังทำการคอมไพล์ โดยใช้คำสั่ง
#include<ชื่อเฮดเดอร์ไฟล์> หรือ
#include “ชื่อเฮดเดอร์ไฟล์”

ตัวอย่าง

#include<stdio.h>

            เฮดเดอร์ไฟล์นี้จะมีส่วนขยายเป็น .h เสมอ และเฮดเดอร์ไผล์เป็นส่วนที่จำเป็นต้องมีอย่างน้อย 1 เฮดเดอร์ไฟล์ ก็คือ เฮดเดอร์ไฟล์ stsio.h ซึ่งจะเป็นที่เก็บไลบรารีมาตรฐานทีจัดการเกี่ยวกับ Input และ Output

ส่วนตัวแปรแบบ Global (Global Variables)
            เป็นส่วนที่ใช่ประกาศตัวแปรหรือค่าต่าง ๆ ที่ให้ใช้ได้ทั้งโปรแกรม ซึ่งในส่วนไม่จำเป็นต้องมีก็ได้

ฟังก์ชัน ( Functions)
เป็นส่วนที่เห็บคำสั่งต่าง ๆ ไว้ ซึ่งในภาาา C จะบังคับให้มีอย่างน้อย 1 ฟังก์ชันนั่นก็คือ ฟังก์ชัน Main( ) และในโปรแกรม 1 โปรแกรมสามารถมีฟังก์ชันได้มากกว่า 1 ฟังก์ชัน

ส่วนตัวแปรแบบ Local (Local Variables)
            เป็นส่วนที่ใช่สำหรับประกาศตัวแปรที่จะใช้ในเฉพาะฟังก์ชันของตนเอง ฟังก์ชันอื่นไม่สามารถเข้าถึงหรือใช้ได้ ซึ่งจะต้องทำหารประกาศตัวแปรก่อนการใช้งานเสมอ และจะต้องประกาศไว้ในส่วนนี้เท่านั้น

ตัวโปรแกรม ( Statements)
เป็นส่วนที่อยู่ถัดลงมาจากส่วนตัวแปรภายใน ซึ่งประกอบด้วยคำสั่งต่าง ๆ ของภาษา C และคำสั่งต่าง ๆ จะใช้เครื่องหมาย ว เพื่อเป็นการบอกให้รู้ว่าจบคำสั่งหนึ่ง ๆ แล้ว ส่วนใหญ่คำสั่งต่าง ๆ ของภาษา C เขียนด้วยตัวพิมพ์เล็ก เนื่องจากภาษา C จะแยกความแตกต่างของตัวพิมพ์เล็กและพิมพ์ใหญ่ หรือ Case Sensitive นั่นเอง ยกตัวอย่างใช้ Files, files หรือ FILES จะถือว่าเป็นตัวแปรคนละตัวกัน นอกจากนี้ภาษา C ยังไม่สนใจกับการขึ้บรรทัดใหม่ เพราะฉะนั้นผู้ใช้สามารถพิมพ์คำสั่งหลายคำสั่งในบรรทัดเดียวกันได้ โดยมีเครื่องหมาย ; เป็นตัวจบคำสั่ง

ค่าส่งกลับ (Return Value)
เป็นส่วนที่บอกให้รู้ว่า ฟังก์ชันนี้จะส่งค่าอะไรกลับไปให้กับฟังก์ชันที่เรียกฟังก์ชันนี้ ซึ่งเรื่องนี้ผู้เขียนจะยกไปกล่าวในเรื่องฟังก์ชันอย่างละเอียดอีกที

หมายเหตุ ( Comment )
เป็นส่วนที่ใช้สำหรับแสดงข้อความเพื่ออธิบายสิ่งที่ต้องการในโปรแกรม ซึ่งจะใช้เครื่องหมาย/* และ*/ ปิดหัวและปิดท้ายของข้อความที่ต้องการ

แสดงการเขียนหมายเหตุหรือ Comment ในลักษณะต่าง ๆ


/*นี้คือ Comment*/
/*ถ้ามี 2 บรรทัด
ให้ทำแบบนี้                  */
ถ้ามีหลายบรรทัดก็สามารถ
ทำแบบนี้ได้เช่นเดียวกัน
*/

โปรแกรมแรกสำหรับคุณ

         #include<stdio.h>   /*เฮดเดอร์ไฟล์*/
int main (void)       /*ชื่อฟังก์ชัน*/
{
printf(“Hello World\n”);      /*ตัวโปรแกรม*/
return 0;     /*ค่าที่ส่งกลับ*/
}     /*End main Function*/

         ผลการทำงาน:
Hello World

การตั้งชื่อ

            การตั้งชื่อ (Identifier) ให้กับตัวแปร ฟังก์ชันหรืออื่น ๆ มีกฎเกณฑ์ในการตั้งชื่อ ดังนี้

  1. ตัวแรกของชื่อจะต้องขึ้นด้วยตัวอักษาหรือเครื่องหมาย_เท่านั้น
  2. ตัวอักษรตั้งแต่ตัวที่ 2 สามารถเป็นตัวเลข หรือเครื่องหมาย_ก็ได้
  3. จะต้องไม่มีการเว้นวรรคภายในชื่อ แต่สามารถใช้เครื่องหมาย_คั่นได้
  4. สามารถตั้งชื่อได้ยาวไม่จำกัด แต่จะให้ตัวอักษรอ้างอิงแค่ 31 ตัวแรกในการอ้างอิง
  5. ชื่อที่ตั้งด้วยอักษรพิมพ์ใหญ่และพิมพ์เล็ก จะถือว่าเป็นคนละตัวกัน
  6. ห้ามตั้งชื่อซ้ำกับคำสงวนในภาษา C

ตัวอย่างการตั้งที่ถูกและผิด

แบบที่ถูก

แบบที่ผิด

A

$sum

Student_name

Student Name

_SystemName

2names

A1

int

ชนิดข้อมูล

                ในการเขียนโปรแกรมภาษา C นั้น ผู้ใช้จะต้องหำหนดชนิดให้กับตัวแปรนั้นก่อนที่จะนำไปใช้งาน โดยผู้ใช้จะต้องรูว่าในภาษา C นั้นจะมี 4 ชนิดข้อมูลมาตรฐาน คือ

ชนิดข้อมูลแบบไม่มีค่า หรือ Void Type (void)
                ข้อมูลชนิดนี้ จะไม่มีค่า และจะไม่ใช้ในการกำหนดชนิดของตัวแปร แต่ส่วนใหญ่จะใช้เกี่ยวกับฟังก์ชัน

ชนิดข้อมูลแบบจำนวนเต็ม หรือ Integer Type (int)
เป็นชนิดข้อมูลที่เป็นตัวเลขจำนวนเต็ม ไม่มีทศนิยม ซึ่งภาษา C จะแบ่งข้อมูลชนิดนี้ออกได้เป็น 3 ระดับ คือ short int, int และ long int ซึ่งแต่ละระดับนั้นจะมีขอบเขตการใช้งานที่แตกต่างกัน

แสดงรายละเอียดของชนิดข้อมูลแบบจำนวนเต็ม

ชนิดข้อมูล

คิดเรื่องหมาย

ขนาด(ไบต์)

จำนวนบิต

ค่าน้อยที่สุด

ค่ามากที่สุด

Short int

คิด
ไม่คิด

2

16

-32,768
0

32,768
65,535

int
(16บิต)

คิด
ไม่คิด

2

16

-32,768
0

32,768
65,535

int
(32บิต)

คิด
ไม่คิด

4

32

-2,147,486,643
0

2,147,486,643
4,294,967,295

long int

คิด
ไม่คิด

4

32

-2,147,486,643
0

2,147,486,643
4,294,967,295

ชนิดข้อมูลแบบตัวอักษร หรือ Character Type (char)
ข้อมูลชนิดนี้ก็คือ ตัวอักษรตั้งแต่ A-Z  เลข 0-9 และสัญลักษณ์ต่าง ๆ ตามมาตรฐาน ASCII (American Standard Code for Information Interchange) ซึ่งเมื่อกำหนอให้กับตัวแปรแล้วตัวแปรตัวนั้นจะรับค่าได้เพียง 1 ตัวอักษรเท่านั้น และสามารถรับข้อมูลจำนวนเต็มตั้งแต่ 128 ถึง 127 จะใช้ขนาดหน่วยความจำ 1 ไบต์หรือ 8 บิต

ชนิดข้อมูลแบบทศนิยม หรือ Floating Point Type (float)
เป็นข้อมูลชนิดตัวเลขที่มีจุดทศนิยม ซึ่งสามารถแบ่งออกเป็น 3 ระดับ คือ float, double c]t long double แต่ละระดับนั้นจะมีขอบเขตที่แตกต่างกันในการใช้งาน


ชนิดข้อมูล

ขนาด (ไบต์)

จำนวนบิต

ค่าน้อยที่สุด

Float

4

32

3.4*10-38ถึง3.4*1038

Double

8

64

1.7*10-308ถึง1.7*10308

Long double

10

80

3.4*10-4932ถึง1.2*104932

ตัวแปร

                ตัวแปร คือ ชื่อที่ใช้อ้างถึงตำแหน่งต่าง ๆ ในหน่วยความจำ ซึ่งใช้เก็บข้อมูลต่าง ๆ ด้วยขนาดตามชนิดของข้อมูล

การประกาศตัวแปร

                การประกาศตัวแปรในภาษา C นั้นสามารถทำได้ 2 ลักษณะ คือ การประกาศตัวแปรแบบเอกภาพ หรือการประกาศตัวแปรแบบ Global คือ ตัวแปรที่จะสามารถเรียกใช้ได้ทั้งโปรแกรม และแบบที่สองการประกาศตัวแปรแบบภายใน หรือการประกาศตัวแปรแบบ Local ซึ่งตัวแปรประเภทนั้นจะใช้ได้ในเฉพาะฟังก์ชันของตัวเองเท่านั้น

 

 

แสดงการประกาศตัวแปรแบบต่าง ๆ


#include<stdio.h>
int total; /* การประกาศตัวแปรแบบ Global*/
main( )
{
int price,money; /* การประกาศตัวแปรแบบ Local*/
...
}

การกำหนดค่าให้กับตัวแปร             

                การกำหนดค่าให้กับตัวแปรนั้น จะสามารถกำหนดได้ตั้แต่ตอนที่ประกาศตัวแปรเลยหรือจะกำหนดภายในโปรแกรมก็ได้ ซึ่งการกำหนดค่าจะใช้เครื่องหมาย = กั้นตรงกลาง
int total = 0;
ถ้ามีตัวแปรข้อมูลชนิดเดียวกัน ก็สามารถทำแบบนี้ได้
int total = 0,sum;
หรือ
int total =0,sum = 0;
ถ้าเป็นการกำหนดภายในโปรแกรม ซึ่งตังแปรนั้นได้ประกาศไว้แล้วสามารถทำแบบนี้ได้
total = 50;
หรือ
total = total+sum;
หรือกำหรดค่าจากการพิมพืข้อมูลเข้าทางคีย์บอร์ด
scanf(“%d”,&total);

 

 

 

การประกาศและการใช้ตัวแปร


#include<shdio.h>
/* การประกาศตัวแปรแบบ Global*/
int sum = 0;
int main(void)
{
/*การประกาศตัวแปรแบบ Local*/
int a;
int b;
int c;

                   /*คำสั่ง*/
printf(“\welcome. This Program adds\n”);
printf(“threenumbers. Enter three nomber\n”);
printf(“in the form nnn nnn nnn <return>\n”);
scanf(“%d %d%d”,&a,&b,&c);
/*ทำการบวกค่าระหว่าง a,bและc เข้าด้วยกันแล้วกำหนดค่าให้ sum*/
sum = a+b+c;
printf(“The total is: %d\n”,sum);
printf(“thank you. Have a good day. \n”);
return 0;
}

         ผลการทำงาน:
Welcome. This Program adds
Three numbers. Enter three number
In the form: nnn nnn nnn <return>
11 22 23
The total is: 56
Thank you. Have a good day.

 

กำหนดชนิดข้อมูลแบบชั่วคราว

                เมื่อผู้ใช้ได้กำหนดชนิดข้อมูลให้กับตัวแปรได ๆ ไปแล้ว ตัวแปรตัวนั้นจะมีชนิดข้อมูลเป็นแบบที่กำหนดให้ตลอดไป บางครั้งการเขียนโปรแกรมอาจจะต้องมรความจำเป็นต้องเปลี่ยนชนิดข้อมูลของตัวแปรตัวนั้น ซึ่งภาษา C ก็มีความสามารถที่จะทำเช่นนั้นได้
รูปแบบ
([ชนิดข้อมูล]) [ตัวแปร]
ตัวอย่าง
(float)a
(int)a
แสดงการใช้ตัวแปรแบบชั่วคราว


#include<stsio.h>
int main (void)
{
float a = 25.3658;
printf(“Value of a :%f\n”,a);
printf(“Value of a when set is integer:%d\n”,(int)a);
return 0;
}   

         ผลการทำงาน
Value of a : 25.365801
Value of a when change is integer : 25

ชนิดข้อมูลแบบค่าคงที่ (Constants)
            ชนิดข้อมูลประเภทนี้ เป็นชนิดแบบค่าคงที่ ซึ่งก็คือข้อมูลของตัวแปรประเภทที่เป็น Constants ผู้ใช้จะไม่สามารถเปลี่ยนแปลงค่าของตัวแปรนั้น ในขณะที่โปรแกรมทำงานอยู่
รูปแบบ
Const [ชนิดข้อมูล] [ตัวแปร] = [ค่า หรือ นิพจน์]
ตัวอย่าง
const float a = 5.23;
const int b = a%2;

การใช้ตัวแปรชนิดค่าคงที่

         #include<stsio.h>
int main (void)
{
const float pi = 3.14159;
float radius;
radius = 3;
printf(“Value of pi     :%f\n”pi);
printf(“Value of area :%f\n”pi*(radius*radius));
}

         ผลการทำงาน:
Value of pi      :3.141590
Value of  area : 28.274311

                Constant นั้นสามารถแบ่งออกได้ ดังนี้
Integer Constants เป็นค่าคงที่ชนิดข้อมูลแบบตัวเลขจำนวนเต็ม ไม่มีจุดทศนิยม
Const int a = 5;
Fioating-Pount Constants  เป็นค่าคงที่ชนิดข้อมูลแบบตังเลขที่มีจุดทศนิยม
Const float b = 5.6394;
Character Constants เป็นค่าคงที่ชนิดตัวอักษร ซึ่งจะต้องอยู่ภายในเครื่องหมายเท่านั้น
Const char b = ‘t’;
String Constants เป็นค่าคงที่เป็นข้อความ ซึ่งจะต้องอยู่ภายใต้เครื่องหมาย “”เท่านั้น  “”
“h”
“Hello world\n”
“HOW ARE YOU”
“Good Morning”

 

 

การใช้ตัวแปรชนิดข้อมูลแบบค่าคงที่แบบต่าง ๆ


#include<stdio.h>
int main (void)
{
const int a = 3; /*Integer Constants*/
const float b = 3.14159; /*Floating Point Constants*/
printf(“Value of a :%d\n”,a);
printf(“Value of b : %f\n”,b);
printf(“Value of c : %c\n”,c);
printf(“Good Bye”); /*String Constants*/
return 0;
}

         ผลการทำงาน :
Value of a : 3
Value of b : 3.141590
Value of c : P
Good Bye

Statements

                Statements ในภาษา C ก็คือ คำสั่งต่าง ๆ ที่ประกอยขึ้นจนเป็นตัวโปรแกรม ซึ่งในภาษา  C นั้นแบ่งออกเป็น 6 แบบ แต่จะพูดถึง 2 แบบแรกก่อน คือ Expression Statement และ Compound Statement

Statement แบบต่าง ๆ ของภาษา C


Statement

Expression Statement

Compound Statement

Labeled Statement

Selection Statement

Iterative Statement

Jump Statement

Expression Statement หรือเรียกอีกอย่างได้ว่า Single Statement : ซึ่ง Statement แบบนี้จะต้องมีเครื่องหมาย ; หลังจาก Statement เมื่อภาษา  พบเครื่องหมาย ; จะทำให้มันรู้ว่าจบชุดคำสั่งแล้ว แล้วจึงข้ามไปทำ Statementชุดต่อไป
A = 2;
หรือ
Printf(“x contains %d,y contains %d\n”,x,y);

                Compound Statement คือ ชุดคำสั่งที่มีคำสั่งต่าง ๆ รวมอยู่ด้านใน Block ซึ่งจะใช้เครื่องหมาย { เป็นการเปิดชุดคำสั่ง และใช้ } เป็นตัวปิดชุดคำสั่ง ตัวอย่างที่เห็นได้ชัดสำหรับ Statement แบบนี้ คือ ตัวฟังก์ชัน Main โดยทั่ว ๆ ไปในภาษา C Compound Statement จะเป็นตัวฟังก์ชัน



#include<stdio.h>
int main(void)
{
Expression Statement                                    printf(“Hello World\n”);
return 0;                Compound Statement
}

               
ผังงาน
ผังงาน (Flowchart) นั้นมีไว้เพื่อให้ผู้ใช้ออกแบบขั้นตอนการทำงานของโปรแกรมก่อนที่จะลงมือเขียนโปรแกรม ซึ่งจะช่วยให้ผู้ใช้เขีนยโปรแกรมได้งานยขึ้นและไม่สับสนซึ่งผังงานที่นิยมใช้มีมาตรฐามมากมายหลายแบบแต่ในที่นี้จะขออธิบายมาตรฐาน ANSI (American National Standard)

 

 

บทที่ 2