web analytics

C Programming : เขียนโปรแกรมภาษา C แบบพื้นฐาน ตอนที่ 1 – Basic

cover

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

ทำไมต้องเริ่มที่ภาษา C

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

 

รู้จักโปรแกรม Dev Cpp

โปรแกรมที่ใช้เขียนมีหลายตัวให้เลือก แต่ที่ผมชอบคือ Dev C++ อีกตัวที่นิยมคือ Code Block ในบทความนี้จะใช้ Dev c++

ดาวน์โหลด
https://sourceforge.net/projects/orwelldevcpp/

ถ้าใช้ Windows 8 หรือใหม่กว่า แนะนำให้โหลดเวอชัน 5.0 ขึ้นไป

ติดตั้งโปรแกรมให้เสร็จ
สร้างไฟล์ ไปที่  New > Source File

2

 

จะได้หน้าเปล่าๆขึ้นมา สำหรับเขียน code

1

 

ให้ทำการ save ก่อน สังเกตว่า นามสกุลจะมีให้เลือก คือ .c หรือ .cpp
.c คือ สำหรับภาษา C
.cpp คือ สำหรับ ภาษา C++ และเราสามารถใช้ C++ เขียน C ได้
.h คือ สกุลของไลบรารี่
ให้เลือก .c แล้วกด save

3

 

การ Compile & Run กด F11 หรือกดปุ่มดังรูป
Compile คือ แปลง code ที่เราเขียนเป็น ภาษาโปรแกรมที่ computer เข้าใจ
Compiler คือ ตัวที่ทำหน้าที่ compile
Run คือ การเปิดโปรแกรมที่ compile แล้วขึ้นมา

5

 

เรื่องสำคัญที่ต้องรู้

Syntax

ทุกคำสั่งการทำงานจะต้องปิดท้ายด้วย ; (Semi-colon) เช่น

 

Notation and Comment

เครื่องหมาย = คือ การกำหนดค่า เช่น การกำหนดให้ a มีค่าเป็น 20

นอกนั้นก็ + , – , * , / ได้ตามสมการปกติ ใช้วงเล็บได้ ( )
เช่น สมการ (10+5)/5

บางทีเราต้องการลบโค้ดส่วนนั้นออกชั่วคราว เรียกว่า การคอมเม้น คือ การเขียนเพื่อระบุว่า ตรงนี้ Compiler จะไม่นำไปประมวลผล อาจจะทำเพื่อ อธิบายคนอ่าน หรือ เพื่อลบโค้ดส่วนนั้นชั่วคราว จะใช้
// เพื่อคอมเม้น 1 บรรทัด และ
/*  */ แทนหลายๆบรรทัด เช่น

 

 

Case sensitive

คือ ชื่อ abc จะไม่เท่ากับ ABC หรือ aBc

 

Data Type

ชนิดของข้อมูลพื้นฐาน ที่ควรรู้ คือ

char  = ตัวหนังสือ
int = ตัวเลข จำนวนเต็ม -1 -2 0 1 2 3 4 ….
long = เลขจำนวนเต็มเยอะๆ
float = ตัวเลขทศนิยม เช่น 1.5
double = ตัวเลขทศนิยมที่มีจำนวนมากๆ

และถ้าเป็น char จะต้องมี ‘ (single quote) ปิดหน้าหลังเสมอ

มีอีกหลายตัว สามารถไปศึกษาเพิ่มเติมได้

 

Variable name and Reserve word

การตั้งชื่อ ตัวแปรต่างๆในโปรแกรมมีกฏอยู่เล็กน้อย เช่น ห้ามมีเลขขึ้นต้น ห้ามมีอักษรพิเศษ และห้ามเป็นชื่อเฉพาะ
age_city2      แบบนี้ ถูกต้อง
2age_city     แบบนี้ ผิด เพราะ ตัวเลขขึ้นต้นไม่ได้
age฿city       แบบนี้ ผิด เพราะ มีอักขระพิเศษ
main             แบบนี้ ผิด เพราะ เป็น key word หรือชื่อเฉพาะ

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

char
double
for
if
int
return
void
while

 

จบคอร์สแบบรวบรัดสุดๆ พื้นฐานข้างบนต้องจำให้ได้


 

รู้จักกับ #include

#include คือการระบุว่า เราจะนำ library หรือ code ที่มีคนเขียนไว้แล้วมาใช้ในโปรแกรมเรา ซึ่งเจ้านี่จะมีนามสกุล .h เช่น เราต้องการแสดงข้อมูลบนหน้าจอ ก็ต้องอันเชิญ stdio.h (Standard Input/Ouput) เข้ามาในโปรแกรมก่อน โดยจะเขียนไว้ด้านบนสุดของไฟล์

 

รู้จักกับฟังชันก์ main

main คือชื่อฟังก์ชันที่เป็นจุดเริ่มทำงานของโปรแกรม พูดง่ายๆคือเปิดโปรแกรมขึ้นมา มันจะมาทำงานที่นี่ โดยจะทำงานตั้งแต่ { ปีกกาเปิด ถึง } ปีกกาปิด จึงเขียนได้ว่า

 

รู้จักฟังชันก์ printf()

printf คือ ฟังชันก์ ใน stdio.h ดังนั้นก่อนใช้ต้องอัญเชิญ stdio.h มาก่อนนะ ความสามารถของมันคือ ปริ้นข้อความ เช่น

เราจะได้ข้อความ “Hello world”
ถ้าเป็นข้อความยาวๆ เราจะใช้ ” (double quote) 

4

 

รู้จักกับการสร้างตัวแปร

การสร้างตัวแปร โดยทั่วไปในทางการเขียนโปรแกรม จะเรียกว่าการประกาศ (Declaration)
ตัวแปร (variable) คือ ตัวที่เก็บข้อมูลของเราไว้ โดยจะต้องระบุ ประเภทขึ้นต้นก่อน เช่น ต้องการบอกว่า ตอนนี้ มีเงินอยู่ 100 บาท ก็แค่สร้างตัวแปร money ขึ้นมา แล้วระบุด้านหน้า money ว่าเป็น int นะ

เปลี่ยนค่ามันก็สามารถกำหนดอีกครั้งแต่ไม่ต้องมี ประเภท

แล้วลอง run

8

 

ขึ้นบรรทัดใหม่และการแท็บ

บางทีเราจะปริ้นข้อความอะไรมันก็จะติดกันยาว ทำให้ไม่สวยงาม ซึ่งใน printf สามารถใช้อักษณะพิเศษได้ดังนี้
\n คือ ขึ้นบรรทัดใหม่
\t คือ แท็บ

7

 

นำตัวแปรมาใช้กับ printf

บางทีเราก็ต้องการแสดงค่าจาก ตัวแปร ก็สามารถทำได้ แต่เราต้องรู้ก่อนว่ามันทำงานยังไง

แบบนี้คือแสดง ข้อความ “Money = 100” สังเกตว่า 100 จะมาแทน %d นั่นเอง โดย 100 มาจาก money อีกที
แล้วถ้ามีตัวแปรมากกว่า 1 ตัวล่ะ

ก็ใช้รูปแบบเดิม

ลองรันเพื่อดูผล

6

สังเกตว่า money จะไปแทน %d  และ grade จะไปแทน %c ถ้ามี 3 4 5 ตัวหรือมากกว่านี้ ก็ใช้หลักการนี้

9

ซึ่งต่าง data type กันก็ใช้ % ต่างกันไป เพื่อแสดงผล

int = %d
float = %f
double = %lf
long = %ld
char = %c

 

รู้จักกับ Ascii

acii คือ ค่าตัวเลขที่แทนอักขระ เพื่อให้เห็นภาพ ลองดู code ด้านล่าง
เราประกาศตัวแปร alphabet_A , alphabet_B , alphabet_C ว่าเป็นชนิด char
แต่ตอนเรา printf เราสั่ง %d ที่เป็นสำหรับ int

ลองรันดู

10

มันก็แสดงผลออกมาเป็นเลข เลขในที่นี้ก็คือ ค่าของ ascii อักขระตัวนั้นนั่นเอง

‘A’ = 65
‘B’ = 66
‘C’ = 67

ในทางกลับกัน ลองกำหนดค่า int แล้วไปแสดงเป็น char ดูบ้าง

11

ดังนั้นอักขระทุกตัวจะมีค่า ascii ของตัวเอง และสังเกตว่า A B C จะมีค่า ascii เรียงกันไป
อีกทั้งมันมีค่าเป็นตัวเลข เราจึงสามารถเอามา + – กันได้ด้วย เช่น

12
ตอนนี้คงเข้าใจแล้วว่า Ascii คืออะไร  และสามารถดูค่า อื่นๆจาก ตาราง Ascii ได้
http://www.asciitable.com/

 

รู้จักฟังชันก์กับ scanf

ก่อนหน้านี้เราทำได้แค่แสดงผล แต่ไม่สามารถทำให้โปรแกรมรับค่าได้จากคีบอร์ด
ฟังชันก์รับค่า ใน ภาษา C คือ scanf

วิธีการคือ เราต้องประกาศตัวแปรก่อน
จากนั้นเรียกใช้ฟังชันก์ scanf
พารามิเตอร์แรกคือ รูปแบบ ตาม type ของตัวแปร เช่น %d
พารามิเตอร์ตัวที่สองคือ ตัวแปรที่ต้องเอาไปเก็บค่า เช่น &data
อย่าลืม ใส่ & (ampersand) ไว้หน้าตัวแปร

13

ที่ต้องใส่ & ไปที่หน้าตัวแปรด้วย คือ การบ่งบอกว่า เราจะรับค่าไปเก็บที่ address ใน memory ของตัวแปรนั้น (อย่าพึ่งงง)
ใช่แล้วครับ & หมายถึง address ใน memory ถ้าเราไม่ใส่ สมมุติว่าตัวแปร data มีค่า 20 ซึ่ง address 20 ใน memory อาจจะไม่มีก็ได้ทำให้โปรแกรมพัง เรื่องนี้เดี๋ยวอธิบายเพิ่มเติมในบทความต่อไป

ลองทำกันดีกว่า เราจะทำโปรแกรม ให้ผู้ใช้ใส่เลขลงไป แล้วโปรแกรมจะแสดงผลเป็นเลขนั้นยกกำลังสอง

ลองรัน
ใส่เลขลงไป แล้วกดปุ่ม ENTER

a1

เท่านี้แหละ การใช้ scanf แบบพื้นฐาน การรับ char , float ก็ใช้หลักการเดียวกัน

 

 

บทความนี้เป็นพื้นฐานมากๆในการรู้จักกับ ภาษา C
อ่านต่อใน บทความตอนที่ 2 ครับ

C Programming : การเขียนโปรแกรมภาษา C แบบพื้นฐาน ตอนที่ 2

(: