ความรู้เบื้องต้นเกี่ยวกับภาษาคอมพิวเตอร์

 

ภาษาคอมพิวเตอร์

                ภาษาคอมพิวเตอร์ คือ ชุดคำสั่งที่เขียนตามรูปแบบหรือกฏเกณฑ์ที่กำหนดไว้ เพื่อสั่งให้เครื่องคอมพิวเตอร์ทำงาน  แบ่งได้เป็น 3 ระดับ ดังนี้

                1.ภาษาระดับต่ำ   (Low Level Language)  เป็นภาษาที่ใช้ตัวอักษรแทนตัวเลขล้วนๆ  แต่เป็นคำสั่งสั้นๆ เมื่อจะนำไปใช้ต้องผ่านการแปลคำสั่งให้เป็นภาษาเครื่องก่อนนำไปใช้งาน เช่น  ภาษาแอสเซมบลี (Assembly Language)  ตัวอย่างคำสั่งภาษาแอสเซมบลี

                mov ax,200h

                mov bx,1

                int 20h

                ret

                2.ภาษาระดับกลาง (Middle Level Language) เป็นภาษาที่เป็นโครงสร้าง และใช้คำสั่งที่มนุษย์สามารถเข้าใจได้ แต่มีการทำงานที่รวดเร็วเหมือนกับภาษาระดับต่ำ สามารถทำงานบนเครื่องคอมพิวเตอร์ที่มีความแตกต่างกันได้เป็นอย่างดี โดยไม่อิงกับฮาร์ดแวร์ เช่น  ภาษาซี (C) ตัวอย่างโปรแกรมภาษาซี

                #include <studio.h>

                int a =2;

                int b=4;

                int c;

                main()

                {

                                c=a+b;

                                printf (“answer =%d\n”,c);

                }

                3.ภาษาระดับสูง (High Level Language) เป็นภาษาที่เป็นโครงสร้าง และใช้คำสั่งที่มนุษย์สามารถเข้าใจได้ แต่ต้องมีการแปลคำสั่งก่อนการใช้งาน เช่น Fortran, Cobol, Pascal, Visual Basic, Java เป็นต้น

 

ตัวแปลภาษา  (Compiler) 

                ในภาษาคอมพิวเตอร์ทุกภาษาจะมีตัวแปลภาษาที่เขียนขึ้นให้เป็นภาษาเครื่องเพื่อสั่งให้คอมพิวเตอร์ทำงาน จำแนกได้เป็น  2  ประเภท  คือ อินเตอร์พรีเตอร์  และ คอมไพเลอร์

                อินเตอร์พรีเตอร์  (Interpreter)  เป็นตัวแปลภาษาที่ทำการแปลทีละคำสั่ง เมื่อพบข้อผิดพลาด  (error)  จะแจ้งให้ทราบและหยุดการทำงานในบรรทัดนั้น ข้อดีทำให้ง่ายต่อการตรวจสอบแก้ไขคำสั่ง  ข้อเสีย ทุกครั้งที่สั่งให้ทำงานจะมีการแปลคำสั่งเดิมอีกทุกครั้ง ทำให้ใช้เวลาค่อนข้างมาก ได้แก่

 ภาษาเบสิก

                คอมไพเลอร์  (Compiler)  เป็นตัวแปลภาษาที่ทำการแปลโปรแกรมทั้งหมดก่อนที่จะทำงาน ถ้าพบส่วนที่ผิดพลาด (error) เครื่องจะรายงานข้อผิดพลาดต่าง ๆให้ทราบทั้งหมด  ข้อดี โปรแกรมที่ผ่านการแปลภาษาแล้ว สามารถสั่งให้ทำงานได้ทันที โดยไม่ต้องแปลคำสั่งใหม่  มีการทำงานที่ไวขึ้น สำหรับข้อเสีย ถ้าพบข้อผิดพลาดเพียงบางส่วนก็จะไม่สามารถสั่งให้โปรแกรมทำงานได้ ต้องแก้ไขข้อผิดพลาดให้ครบก่อนสั่งให้ทำงาน ได้แก่  ภาษาซี, ภาษาฟอร์แทรน , ภาษาปาสคาล,  ภาษาโคบอล  เป็นต้น

 

ขั้นตอนการแปลคำสั่ง และ Run  โปรแกรมของคอมไพเลอร์

                เริ่มจากการแปลคำสั่งภาษาต่างๆ (source code) ให้เป็นออบเจ็กต์โค้ด (objects code) ได้ไฟล์ที่มีชนิดของไฟล์เป็น .obj ต่อจากนั้นจึงทำการเชื่อมโยงไฟล์ที่เกี่ยวข้องกับโปรแกรมหลักเข้าด้วยกัน(link) จนเกิดเป็นไฟล์  .EXE   ที่สามารถนำไป run ได้ต่อไป

 

 

 

 

 


ความรู้พื้นฐานเกี่ยวกับภาษาซี

 

ประวัติภาษาซี

                ภาษาซีพัฒนาขึ้นเป็นครั้งแรกโดยนายเดนนิส ริทชี่ (Dennis Ritchie) ที่ห้องปฏิบัติการเบล (Bell Labs) เมื่อปี ค.ศ 1972   โดยได้แนวคิดมาจากภาษา BCPL ของนายมาร์ติน ริชาร์ด (Martin Richards)

เดนนิส ริทชี่ ผู้พัฒนาภาษาซี

                ความสามารถของภาษาซี มีดังนี้

                                -ภาษาซีสามารถนำไปใช้งานในระบบปฏิบัติที่แตกต่างกันได้เป็นอย่างดี

                                -ภาษาซีสามารถนำไปใช้งานกับเครื่องคอมพิวเตอร์ทุกรุ่น

                                -โปรแกรมภาษาซีเป็นภาษาที่มีโครงสร้าง มีขนาดเล็กและทำงานได้รวดเร็ว

                                -ภาษาซีสามารถนำไปใช้ควบคุมการทำงานของอุปกรณ์อิเล็กทรอนิกส์บางอย่างได้

                                -ภาษาซีมีฟังก์ชันมากมาย และสามารถเขียนขึ้นเองได้

                ในปัจจุบันมีผู้ผลิตโปรแกรมภาษาซีออกมาหลากหลายโดยใช้ชื่อเรียกแตกต่างกันดังนี้

                                -Turbo C /Turbo C++/Borland C++ เป็นของบริษัทบอร์แลนด์

                                -Microsoft C/C++ เป็นของบริษัทไมโครซอฟท์

 

 

 

โครงสร้างของโปรแกรมภาษาซี

                โปรแกรมภาษาซีแบ่งโครงสร้างออกเป็น 2 ส่วนคือ

1.ส่วนหัวของโปรแกรม (Head)  

                จะเริ่มต้นตั้งแต่บรรทัดแรกสุดของโปรแกรมไปจนถึงบรรทัดก่อนคำว่า main() ภายในส่วนหัวของโปรแกรมยังแบ่ง 2 ส่วนคือ

                1.1.พรีโปรเซสเซอร์ไดเร็คทีฟ (Preprocessor directive)

                                เป็นคำสั่งที่ขึ้นต้นด้วยเครื่องหมาย # คำสั่งนี้จะถูกแปลคำสั่งก่อนคำสั่งอื่นๆ

                                ตัวอย่างเช่น

                                #include เป็นคำสั่งที่บอกให้ตัวแปลภาษานำคำสั่งในไฟล์ที่ระบุไว้มารวม

                                                                กับโปรแกรมปัจจุบัน

                                                                ตัวอย่างเช่น #include <stdio.h> หรือ #include “stdio.h”

                                #define                  เป็นคำสั่งที่ใช้มาโครและกำหนดค่าให้กับมาโคร

                                                                ตัวอย่างเช่น #define ADD(a,b)  a+b

                                นอกจากนี้ยังมี #error, #if, #endif, #elif, #else, #ifdef, #undef, #line, #pragma

                1.2.ส่วนกำหนดข้อมูล

                                ส่วนนี้จะประกาศตัวแปร(Variable Declaration) สำหรับเก็บข้อมูลไว้ใช้ในตัวโปรแกรมต่อไป ตัวอย่างเช่น                 int a=2;        float b=4; char c=’*’; char d[] = “computer”;

 

2.ส่วนตัวของโปรแกรม (Body)

                จะเริ่มตั้งแต่คำสั่ง main() ไปจนถึงคำสั่งบรรทัดท้ายสุดของโปรแกรม เป็นที่รวมของคำสั่ง หรือฟังก์ชันต่างๆ ตัวแปรที่ใช้ในส่วนตัวของโปรแกรมจะต้องประกาศไว้ในส่วนหัวของโปรแกรมมาก่อนเสมอ

ตัวอย่างเช่น

#include <studio.h>

int a =2;

int b=4;

int c;

ส่วนหัวโปรแกรม

main()

{

  c=a+b;

  printf (“answer =%d\n”,c);

}

ส่วนตัวโปรแกรม

 

 

 รูปแบบการเขียนโปรแกรมภาษาซี

                1.ในคำสั่ง #include <ชื่อไฟล์>  จะกำหนดให้ตัวแปลภาษาซีเริ่มค้นหาไฟล์จากไดเร็คทอรีที่กำหนดไว้ก่อน ถ้าค้นหาไม่พบจะกลับมาค้นหาที่ไดเร็คทอรีปัจจุบัน (ห้องเดียวกันกับไฟล์โปรแกรม)

                2.ในคำสั่ง #include “ชื่อไฟล์”  จะกำหนดให้ตัวแปลภาษาซีเริ่มค้นหาไฟล์จากไดเร็คทอรีปัจจุบันก่อน ถ้าค้นหาไม่พบจะไปค้นหาในไดเร็คทอรีที่กำหนดไว้

                3.คำสั่งภาษาซีต้องใช้ตัวอักษรตัวพิมพ์เล็กเท่านั้น

                4.ชื่อตัวแปรหรือชื่อมาโคร ที่ใช้ตัวอักษรภาษาอังกฤษตัวเดียวกัน แต่ต่างกันที่ตัวพิมพ์เล็กกับตัวพิมพ์ใหญ่ให้ถือว่าเป็นคนละตัวกัน เช่น int  a=2; int A=3;

                5.ทุกคำสั่งต้องจบด้วยเครื่องหมายเซมิโคลอน (;)

                6.สามารถเขียนคำสั่งในแนวตั้งหรือเขียนคำสั่งติดต่อกันไปในแนวนอนก็ได้

                7.การย่อหน้าหรือเว้นวรรค ไม่มีผลต่อการทำงานของโปรแกรม

                8.คำอธิบายหรือหมายเหตุจะต้องเขียนไว้ภายในเครื่องหมาย /* ....... */ ข้อความยาวเกินกว่า

                  1 บรรทัดได้

                9.เครื่องหมาย ‘ ’ (Single quote)ใช้กับข้อมูล 1 ตัวอักษรเท่านั้น

                10.เครื่องหมาย “ ” (Double quote) ใช้กับกลุ่มของตัวอักษร

                11.เครื่องหมาย = ใช้สำหรับกำหนดค่า

                12.เครื่องหมาย == ใช้สำหรับเปรียบเทียบค่า

 

ชนิดของข้อมูลในภาษาซี

                ในโปรแกรมภาษาซีสามารถกำหนดชนิดของข้อมูลได้ 6 ชนิดดังนี้

                1.เลขจำนวนเต็ม (Integer)  

                                เป็นเลขที่ไม่มีทศนิยม อาจจะเป็นจำนวนเต็มบวก,จำนวนเต็มศูนย์ หรือจำนวนเต็มลบก็ได้ ตัวเลขชนิดนี้สามารถนำไปคำนวณได้

                2.เลขจำนวนจริง (Float)

                                เป็นเลขที่มีทศนิยม อาจจะมีทศนิยมเป็นเลขศูนย์ เช่น 2.00 ,เลขทศนิยมแบบคงที่ เช่น 2.25,เลขทศนิยมแบบไม่รู้จบ เช่น 1.333333333333..... หรือเลขทศนิยมที่อยู่ในรูปของ E,e ยกกำลัง เช่น 1.6E10

                3.เลขฐานแปด (Octal)

                                การกำหนดชนิดข้อมูลเลขฐานแปดจะใช้เลขศูนย์นำหน้าตัวเลข เช่น 012,05 เป็นต้น

                4.เลขฐานสิบหก (Headecimal)

                                การกำหนดชนิดข้อมูลเลขฐานสิบหกจะใช้เลขศูนย์+ตัว x นำหน้าตัวเลข เช่น 0x12,0x4 เป็นต้น

                5.ตัวอักขระ (Character)

                                ประกอบด้วยตัวเลข ,ตัวอักษร หรือสัญลักษณ์ต่าง ๆก็ได้ เพียง 1 ตัวอักษรเท่านั้น และตัวเลขไม่สามารถนำไปคำนวณได้ ข้อมูลชนิดนี้จะเขียนอยู่ภายใต้เครื่องหมาย ‘’ (Single quote) เช่น ‘A’

,‘a’

                6.ข้อความ (String)

                                ประกอบด้วยกลุ่มของตัวเลข ,ตัวอักษร หรือสัญลักษณ์ต่าง ๆ ตั้งแต่ 1 ตัวอักษรขึ้นไปเรียงต่อๆกัน ซึ่งตัวเลขไม่สามารถนำไปคำนวณได้ ข้อมูลชนิดนี้จะเขียนอยู่ภายใต้เครื่องหมาย “” (Double quote) เช่น “Computer/52”, “คอมพิวเตอร์/52”

 

การประกาศตัวแปรและการตั้งชื่อ

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

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

 

 

 

 

 

 

ชนิดของตัวแปรพื้นฐานในภาษาซีตามมาตรฐาน ANSI

 

ชนิดตัวแปร

ขนาด

(Bits)

ขอบเขต

จำนวน (Byte)

ความหมาย

int

16

-32,768 ถึง 32,767

2

เก็บเลขจำนวนเต็มปกติ แบบมีเครื่องหมายลบ

unsigned int

16

0 ถึง 65,535

2

เก็บเลขจำนวนเต็มปกติ แบบไม่มีเครื่องหมายลบ

short

8

-128 ถึง 127

1

เก็บเลขจำนวนเต็มแบบสั้น มีเครื่องหมายลบ

unsigned short

8

0 ถึง 255

1

เก็บเลขจำนวนเต็มแบบสั้น ไม่มีเครื่องหมายลบ

Long

32

-2,147,483,648 ถึง

2,147,483,649

4

เก็บเลขจำนวนเต็มแบบยาว มีเครื่องหมายลบ

unsigned long

32

0 ถึง 4,294,967,296

4

เก็บเลขจำนวนเต็มแบบยาว ไม่มีเครื่องหมายลบ

float

32

3.4*10-38 ถึง 3.4*1038

4

เก็บข้อมูลชนิดตัวเลขทศนิยม (มีทศนิยม 6 ตัว)

double

64

3.4*10-308 ถึง 3.4*10308

8

เก็บข้อมูลชนิดตัวเลขทศนิยม (มีทศนิยม 12 ตัว)

long double

128

3.4*10-4032 ถึง 3.4*104032

16

เก็บข้อมูลชนิดตัวเลขทศนิยม (มีทศนิยม 24 ตัว)

char

8

-128 ถึง 127

1

เก็บตัวอักขระเพียง 1 ตัว

 

การตั้งชื่อตัวแปร

1.ต้องขึ้นต้นด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์(A-Z)หรือตัวพิมพ์เล็ก(a-z)เท่านั้น

2.ห้ามใช้ตัวเลขนำหน้าตัวแปร

3.สามารถใช้เครื่องหมายขีดล่างได้ (_) เพียง 1 ตัว ต่อการเชื่อมตัวอักษรแต่ละครั้ง เช่น com_it ,_nnn

4.ตัวอักษรตัวที่ 2 เป็นต้นไปสามารถใช้ตัวเลขได้ เช่น m2m , score100

5.การตั้งชื่อตัวแปรที่เหมือนกัน แต่ต่างกันที่ตัวอักษรตัวพิมพ์ใหญ่กับตัวพิมพ์เล็ก จะถือว่าเป็นตัวแปรคนละตัวกัน เช่น Name, name, nAme,namE

6.ห้ามตั้งชื่อตัวแปรซ้ำกับคำสงวน (Reserved word) เช่น

auto

default

float

register

Struct

Break

do

for

return

switch

Case

double

goto

short

typedef

Char

else

if

signed

unsigned

Const

enum

int

sizeof

void

Continue

extern

long

static

while

7.ชื่อตัวแปรสามารถตั้งชื่อได้ไม่จำกัด แต่จะมีค่าเฉพาะ 32 ตัวอักษรแรกเท่านั้น ทั้งนี้อยู่กับตัวแปลภาษาที่ท่านเลือกใช้งาน

8.ห้ามเว้นช่องว่างภายในตัวแปร ให้ใช้เครื่องหมายขีดล่างแทน

 

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

             ชนิดของตัวแปร  ชื่อตัวแปร [= ข้อมูลเริ่มต้น] [,ชื่อตัวแปร [= ข้อมูลเริ่มต้น]];

ตัวอย่างเช่น

                int a=2;                  ตัวแปร a เก็บเลขจำนวนเต็ม 2 เป็นค่าเริ่มต้น

                float b=4.00;        ตัวแปร b เก็บเลขจำนวนเต็ม 4.00 เป็นค่าเริ่มต้น

                int c;                       ตัวแปร c เป็นตัวแปรเก็บเลขจำนวนเต็มใดๆ

                int d,e,f=0;            ตัวแปร d, e, f  เก็บเลขจำนวนเต็มใด ๆ โดยตัวแปร f มีค่าเริ่มต้นเป็น 0

                char[] name,address;          ตัวแปร name,address เก็บกลุ่มของตัวอักขระ แบบไม่จำกัดจำนวน

                char status= ‘*’;                  ตัวแปร status เก็บตัวอักษรเพียง 1 ตัวมีค่าเริ่มต้นเป็น *

 

ตัวดำเนินการและนิพจน์

                เป็นเครื่องหมายที่สั่งให้คอมพิวเตอร์ทำงานตามหน้าที่ที่กำหนดไว้ ซึ่งสามารถแบ่งออกได้เป็นหลายแบบดังนี้

1.