เว็บเพื่อการเรียนรู้ดีเด่น 2547 (สมาคมผู้ดูแลเว็บไทย) | เว็บสื่อวิทย์ฯ ดีเด่น 2549(กระทรวงวิทย์) | เว็บการศึกษายอดผู้ชมสูงสุด 2549-2551(TrueHits)
คุณสามารถแสดงบทความนี้  บนเว็บไซท์ของคุณ หรือที่ไหนก็ได้ โดยตัดโค๊ดนี้ไปแปะไว้
<script language="JavaScript" src="http://www.vcharkarn.com/vlesson/javafeed.php?lessonid=1" type="text/javascript"></script>

54682
การเขียนโปรแกรมภาษา C เบื้องต้น (Introduction to C Programming)
    บทเรียนอย่างง่าย เพื่อเพิ่มความรู้และความเข้าใจ ที่จำเป็นต่อการเป็นโปรแกรมเมอร์มืออาชีพในอนาคต คนที่จะมีใจรัก ที่จะก้าวไปบนถนนแห่งการพัฒนาฝีมือและฝึกฝนการเขียนโปรแกรมด้วยตัวเอง
อยู่ในส่วน คอมพิวเตอร์
ระดับของบทเรียน ปริญญาตรี
ปรับปรุงล่าสุด 20 พ.ย. 2550 (00:21)
เข้าชมแล้ว 355082 ครั้ง (รวมทุกหน้า)
[Vote : 342 | Rating : 4.86]
หน้าที่ 1 - พื้นฐานโปรแกรมภาษา C

ดร. จันทร์จิรา สินทนะโยธิน, วิศรุต พลสิทธิ
สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ (สวทช)


ฝึกฝนและพัฒนาการเขียนโปรแกรมภาษา C
Introduction to C Programming


การพัฒนาโปรแกรมคอมพิวเตอร์ บางคนก็ว่ายาก บางคนก็ว่าเป็นเรื่องสนุก หลายคนบอกว่า ขอเป็นแค่ผู้ใช้สนุกที่สุด แต่จะมีซักกี่คนที่จะมีใจรักที่จะก้าวไปบนถนนแห่งการพัฒนาฝีมือและฝึกฝนการเขียนโปรแกรมด้วยตัวเอง เพื่อให้มีผู้ที่สนใจนำไปใช้งาน และเพิ่มประสิทธิ์ภาพในการทำงาน และ ความสะดวกสบายๆ ต่างๆมากขึ้น ว่าไปแล้วนักโปรแกรมเมอร์เหล่านี้ ก็ไม่แตกต่างจากผู้ที่ปิดทองหลังพระมากนัก เพราะหลายๆ โปรแกรมที่มีให้ใช้งานกันในปัจจุบัน จะมีใครทราบบ้างไหมว่า ผู้เขียนโปรแกรมเหล่านั้นมีใครกันบ้าง ดังนั้น ผู้ที่คิดจะก้าวมาเป็นนักพัฒนาโปรแกรมมืออาชีพ คงต้องอาศัยใจรักที่จะอยากจะพัฒนา และฝึกฝนฝืมือในการเป็นโปรแกมเมอร์มืออาชีพมาเป็นอันดับหนึ่ง สำหรับบทความนี้จะเริ่มต้นด้วยการสอนให้เข้าใจในหลักการพื้นฐานของการการพัฒนาโปรแกรมในภาษา C ความรู้และความเข้าใจที่จำเป็นต่อการเป็นโปรแกรมเมอร์มืออาชีพในอนาคต เราลองเริ่มมาเรียนรู้กันอย่างคร่าวๆ กันเลยล่ะกัน โดยผู้เขียนจะอธิบายเป็นตอนๆ ทั้งหมด 8 ตอนด้วยกันได้แก่

1. พื้นฐานโปรแกรมภาษา C (Introduction to C Programming)
2. การเขียนโปรแกรมทางเลือก (Selection Structures)
3. การเขียนโปรแกรมแบบ วนซ้ำ (Repetition & Loop)
4. ฟังก์ชัน และการเขียนโปรแกรมแยกเป็นโมดูล (Functions & Modular Programming)
5. ตารางอาเรย์ (Arrays)
6. ตัวแปรพอยเตอร์ (Pointers)
7. ตัวแปรสตริง (String)
8. โครงสร้างสตักเจอร์ (Structure)


1. พื้นฐานโปรแกรมภาษา C (Introduction to C Programming)

ก่อนอื่นของแนะนำพื้นฐานเกี่ยวกับคอมพิวเตอร์กันซักนิด ก่อนที่จะเริ่มเรียนรู้ภาษา C กัน หน่วยสำคัญที่สุดของคอมพิวเตอร์ก็คือ หน่วยประมวลผลหรือที่เรียกกันว่า CPU โดยปกติ CPU จะมีภาษาของตัวเองที่เรียกว่า ภาษาเครื่อง (Machine Language) ซึ่งจะเป็นภาษาที่ประกอบไปด้วยเลขฐานสองมากมาย ดังนั้นการที่จะเขียนโปรแกรมควบคุมการทำงานของคอมพิวเตอร์ โดยใช้ภาษาเครื่องโดยตรงนั้นจึงทำได้ยาก จึงได้มีการพัฒนาตัวแปรภาษาเครื่องที่เรียกว่า โปรแกรมภาษาระดับสูงขึ้นมา หรือที่เรียกว่า High Level Languages โดยภาษาในระดับสูงเหล่านี้ จะมีลักษณะรูปแบบการเขียน (Syntax) ที่ทำให้เข้าใจได้ง่ายต่อการสื่อสารกับผู้พัฒนา และถูกออกแบบมาให้ง่ายต่อการใช้งาน และจะเปลี่ยนคำสั่งจากผู้ใช้งาน ไปเป็นเป็นภาษาเครื่อง เพื่อที่จะควบคุมการทำงานของคอมพิวเตอร์ต่อไป ตัวอย่างของโปรแกรมภาษาระดับสูง ได้แก่ COBOL ใช้กันมากสำหรับโปรแกรมทางด้านธุรกิจ, Fortran ใช้กันมากสำหรับการพัฒนาโปรแกรมด้านวิทยาศาสตร์และวิศวกรรมศาสตร์ เพราะง่ายต่อการคำนวณ, Pascal มีใช้กันทั่วไป แต่เน้นสำหรับการพัฒนาเครื่องมือสำหรับการเรียนการสอน, C & C++ ใช้ทั่วไป ปัจจุบันมีผู้เลือกที่จะใช้กันอย่างแพร่หลาย, PROLOG เน้นหนักไปทางด้านงานประเภท AI และ JAVA ใช้ได้ทั่วไป ปัจจุบันเริ่มมีผู้หันมาสนใจกันมากและเพิ่มขึ้นอย่างรวดเร็ว
คราวนี้เราลองมาเตรียมตัวกันซักนิก ก่อนที่จะลงมือพัฒนาโปรแกรมคอมพิวเตอร์ ขั้นแรก เราต้องศึกษารูปแบบความต้องการของโปรแกรมที่จะพัฒนา จากนั้นก็วิเคราะห์ถึงปัญหาตลอดจนวิธีการแก้ปัญหา จากนั้นจึงนำเอาความคิดในการแก้ปัญหาอย่างเป็นขั้นตอน ไปเขียนในรูปแบบของโปรแกรมภาษาในระดับสูง ซึ่งจะอยู่ในรูปแบบของ Source Program หรือ Source Code จากนั้นเราก็จะใช้ Complier ของภาษาที่เราเลือก มาทำการ Compile Source code หรือกล่าวง่ายๆ คือแปลง Source code ของเราให้เป็นภาษาเครื่องนั่นเอง ซึ่งในขั้นตอนนี้ ผลที่ได้ เราจะเรียกว่า Object code จากนั้น Complier ก็จะทำการ Link หรือเชื่อม Object code เข้ากับฟังก์ชันการทำงานใน Libraries ต่างๆ ที่จำเป็นต่อการใช้งาน แล้วนำไปไว้ในหน่วยความจำ แล้วเราก็จะสามารถ Run เพื่อดูผลของการทำงานโปรแกรมได้ หากโปรแกรมมีข้อผิดพลาด เราก็จะทำการแก้ หรือที่เรียกกันในภาษาคอมพิวเตอร์ว่า การ Debug นั่นเอง
ภาษา C เป็นโปรแกรมภาษาระดับสูง ถูกพัฒนาขึ้นในปี 1972 ที่ AT&T Bell Lab เราสามารถใช้ภาษา C มาเขียนเป็นคำสั่งต่างๆ ที่คอมพิวเตอร์สามารถเข้าใจได้ และกลุ่มของคำสั่งเหล่านี้ เราก็เรียกกันว่า อัลกอริธึม ได้มีผู้ให้คำจำกัดความของคำว่า อัลกอริธึม ว่าเป็น “A precise description of a step-by-step process that is guaranteed to terminate after a finite number of steps with a correct answer for every particular instance of an algorithmic problem that may occur.” สำหรับ Compiler ภาษา C ที่มีในปัจจุบัน มี 2 ค่ายใหญ่ๆ ที่มีผู้คนสนใจใช้กันมากได้แก่ Microsoft และ Borland การใช้งาน Compiler ทั้งสองตัวนี้ สามารถเรียนรู้ได้ไม่ยากนัก เราจึงจะมาเริ่มต้นที่การเขียนโปรแกรมในภาษา C กันเลย เราลองมาเริ่มจากตัวอย่างการเขียน ภาษา C แบบ ง่ายๆ กันก่อนกับโปรแกรม Hello World

#include
main()
{
printf("Hello World !! ");
}

บรรทัดแรก #include เป็นการบอกว่าให้ทำการรวม Header file ที่ชื่อว่า stdio.h (.h = header) ซึ่งเป็น header ที่เกี่ยวข้องกับการรับและให้ข้อมูล (Standard Input Output) นอกจาก stdio.h แล้ว ก็ยังมี Header อื่นๆ ที่ผู้พัฒนาสามารถที่จะเรียกใช้งาน Function ที่จำเป็นจาก Header นั้นๆ ได้ อาทิเช่น

5519


รู้จัก Header File กันไปล่ะ คราวนี้ เราลองมาดูบรรทัดถัดไปกัน ก็คือ ฟังก์ชัน main() จะเป็นจุดเริ่มต้นของโปรแกรม และโปรแกรมทุกโปรแกรมในภาษา C จะต้องมี Function main() นี้ โดยส่วนมาก เราจะใช้ Function main() ในการกำหนดค่าเริ่มต้นต่างๆ ของโปรแกรม จากนั้นจึงเข้าสู่ Function ต่างๆ ที่ผู้พัฒนา ได้กำหนดขึ้นไว้

บรรทัดถัดมาจะเป็นเครื่องหมาย { ซึ่งเป็นเครื่องหมายบ่งบอกขอบเขตของ Function โดยขอบเขตของฟังก์ชัน จะเปิดและปิดโดยใช้เครื่องหมายเปิด { และเครื่องหมายปิด } ตามลำดับ ภายใน Function main() จะมีคำสั่ง (Statement) printf("Hello World !! "); ซึ่ง printf เป็น Function ในภาษา C ทำหน้าที่ให้โปรแกรม ทำการแสดงผลออกทางหน้าจอว่า Hello World !! และทุกครั้ง ผู้พัฒนาจะต้องทำการจบคำสั่งหรือ Statement ด้วยเครื่องหมาย semi-colon ;

ดังนั้นรูปแบบของการเขียนโปรแกรม จึงเขียนออกมาในรูปแบบดังนี้

// ข้อความที่อยู่ข้างหลังเครื่องหมาย // จะเป็นคำอธิบายโปรแกรม
#include
void main()
{
constant declarations; // การกำหนดค่าคงที่ต่างๆ
variable declarations; // การกำหนดตัวแปรต่างๆ
executable statements; // คำสั่งการทำงานของโปรแกรม
}

การอ่านข้อมูลและการแสดงผล (Input & Output)

รูปแบบการใช้งานฟังก์ชัน printf จะทำการพิมพ์ในรูปแบบที่ เริ่มต้นด้วย Format ที่ต้องการจะพิมพ์ และตามด้วยตัวแปรที่ต้องการพิมพ์ ดังนี้

printf( const char *format [, argument]... );

สำหรับการนำข้อมูลเข้าก็เช่นกัน จะใช้ฟังก์ชัน scanf ซึ่งจะเป็นฟังก์ชันสำหรับอ่านข้อมูลจากคีย์บอร์ด และจะนำข้อมูลที่ User ทำการพิมพ์ไปเก็บไว้ใน argument โดยแต่ละ argument จะต้องเป็นตัวแปรที่เรียกว่า pointer (รายละเอียดจะได้กล่าวต่อไป) และมีชนิดที่ตัวแปรที่สัมพันธ์กับที่ได้กำหนดไว้ใน Format รูปแบบการใช้งานของฟังก์ชัน scanf สามารถเขียนได้ดังนี้

scanf( const char *format [,argument]... );

หน้าที่ -1- 2- 3- 4- 5- 6- 7- 8- 9- 10- 11- 12- 13- 14- 15- 16- 17-

ความคิดเห็นที่ 200 6 มี.ค. 2553 (05:57)
ขอบคุณครับ

โดย daanaina

ความคิดเห็นที่ 199 6 มี.ค. 2553 (05:53)
thank

โดย daanaina

ความคิดเห็นที่ 198 25 ก.พ. 2553 (14:32)
very very good

โดย sonthi

ความคิดเห็นที่ 197 25 ก.พ. 2553 (02:57)
แวะไป ฟังเพลง [url=http://www.mp3zeed.com]โหลดเพลง[/url] ฟังเพลงไทย โปรแกรมตัดต่อเพลง หาโค้ดเพลง MV มิวสิควีดีโอ เพลงประกอบละคร [url=http://www.mp3zeed.com]ฟังเพลงไทย[/url] Code ลง Hi5 เพลงลูกทุ่ง เพลงเพื่อชีวิต โหลดเพลงฟรี เพลงใหม่ ฟังเพลงใหม่ เพลงฮิต ฟังเพลงสากล

โดย mp3zeed

ความคิดเห็นที่ 196 15 ก.พ. 2553 (14:02)
กำลังสำรวจบทเรียน น้องใหม่ค่ะ

โดย siriyong

ความคิดเห็นที่ 195 2 ก.พ. 2553 (22:44)
เขียนโปรแกรมเพื่อรับข้อมูลเป็นคะแนนสอบของนักเรียน แล้วแสดงระดับคะแนนของนักเรียน ตามเกณฑ์ต่อไปนี้
ตั้งแต่ 90 คะแนนขึ้นไป ให้ระดับคะแนน A
80-89 คะแนน ให้ระดับคะแนน B
70 -79 คะแนน ให้ระดับคะแนน C
60-69 คะแนน ให้ระดับคะแนน D
50 คะแนนลงมา ให้ระดับคะแนน f
ช่วยหน่อยนะครับ

โดย mmmloveu

ความคิดเห็นที่ 194 29 ม.ค. 2553 (12:54)
[url=http://www.musicheyha.com/" target="_blank" title="ดาวน์โหลดเพลงฟรี"]ดาวน์โหลดเพลงฟรี[/url] [url=http://mp3.musicheyha.com/" target="_blank" title="mp3"]mp3[/url]
[url=http://codehi5.musicheyha.com/" target="_blank" title="โค้ดเพลงhi5"]โค้ดเพลงhi5[/url] [url=http://www.musicheyha.com/" target="_blank" title="โหลดเพลงฟรี"]โหลดเพลงฟรี[/url]
[url=http://www.songded.com/" target="_blank" title="โค้ดเพลงลงhi5"]โค้ดเพลงลงhi5[/url] [url=http://www.musicded.com/" target="_blank" title="เพลงฟรี"]เพลงฟรี[/url]
[url=http://www.music-dd.com/" target="_blank" title="เพลงใหม่ล่าสุด"]เพลงใหม่ล่าสุด[/url]

โดย

ความคิดเห็นที่ 193 22 ม.ค. 2553 (15:06)
มี กลอนพอเพียง มาฝากค่ะ
อ่านแล้วกำลังใจเพียบค่ะ สู้ๆนะค้าาา

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

หนูชอบเพลงรักๆใครชอบแนวรักๆลองไปที่นี่ดูค่ะ
ฟังเพลงเพลินๆคลายเครียดดีกว่าค่ะ
[url=http://www.xn--72cza4b7ack6a2d6hsa.com]เพลงmp3[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]เพลงใหม่[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดเพลงmp3ฟรี[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดเพลงฟรี[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดเพลงใหม่ฟรี[/url]
[url=http://www.108mp3.com]โหลดเพลง[/url] [url=http://www.108mp3.com]โหลดเพลงmp3[/url] [url=http://www.108mp3.com]ฟังเพลง[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดเพลง[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดเพลงใหม่[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]ดาวน์โหลดเพลงฟรี[/url]
[url=http://www.songyim.com]โหลดเพลงฟรี[/url] [url=http://www.songyim.com]โหลดเพลงmp3ฟรี[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดmp3[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดเพลงmp3[/url]



โดย susanleky

ความคิดเห็นที่ 192 22 ม.ค. 2553 (15:04)
มี กลอนพอเพียง มาฝากค่ะ
อ่านแล้วกำลังใจเพียบค่ะ สู้ๆนะค้าาา

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

หนูชอบเพลงรักๆใครชอบแนวรักๆลองไปที่นี่ดูค่ะ
ฟังเพลงเพลินๆคลายเครียดดีกว่าค่ะ
[url=http://www.xn--72cza4b7ack6a2d6hsa.com]เพลงmp3[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]เพลงใหม่[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดเพลงmp3ฟรี[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดเพลงฟรี[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดเพลงใหม่ฟรี[/url]
[url=http://www.108mp3.com]โหลดเพลง[/url] [url=http://www.108mp3.com]โหลดเพลงmp3[/url] [url=http://www.108mp3.com]ฟังเพลง[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดเพลง[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดเพลงใหม่[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]ดาวน์โหลดเพลงฟรี[/url]
[url=http://www.songyim.com]โหลดเพลงฟรี[/url] [url=http://www.songyim.com]โหลดเพลงmp3ฟรี[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดmp3[/url] [url=http://www.xn--72cza4b7ack6a2d6hsa.com]โหลดเพลงmp3[/url]



โดย susanleky

ความคิดเห็นที่ 191 20 ม.ค. 2553 (18:24)
[url= http://www.deesong.com ]download เพลง ฟรี[/url]
[url= http://www.mefasol.com ]ดาวน์โหลด เพลง mp3[/url]
[url= http://www.xn--72cze8a7ac2b3a8czgsa.com ]โหลดเพลงฮิต[/url]
[url= http://www.xn--72cz4afjnic4cf7iofwav1f.com ]โหลดเพลงใหม่ฟรี[/url]
[url= http://www.bestsongmp3.com ]โหลดเพลงmp3ฟรี[/url]
[url= http://www.xn--72cz4anqc2bf9pqas6d.com ]โหลดเพลงใหม่[/url]
[url= http://www.topsonghit.com ]โหลดเพลงฟรี[/url]
[url= http://www.pi-singsong.com ]โหลดฟรี mp3[/url]



โดย

ขอโทษครับ กรุณา login ก่อนถึงจะสามารถแสดงความคิดเห็นได้ครับ

ล๊อกอินถาวร | Login: Password: สมัครสมาชิกใหม่ | ลืม password

ขอบคุณผู้สนับสนุน




Google  
องค์ความรู้ พัทธมิตร
  • thaigoodview
  • ติดต่อเรา ข้อมูลทั่วไป
    ผู้สนับสนุน คลิีกดูสถิติ
    อีเมล : smile@vcharkarn.com
    โทรศัพท์ : 02-5820595
    Creative Commons License สงวนสิทธิ์บางประการภายใต้สัญญาอนุญาต ครีเอทีฟคอมมอนส์ แสดงที่มา-ไม่ใช้เพื่อการค้า-ไม่ดัดแปลง 3.0 ประเทศไทย.
    ท่านสามารถนำเนื้อหาในส่วนบทความไปใช้ แสดง เผยแพร่ โดยต้องอ้างอิงที่มา ห้ามใช้เพื่อการค้าและห้ามดัดแปลง
    Page generated in0.6459 seconds !