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

posted on 09 Aug 2011 10:01 by riskyyy
    
                                         ฝึกฝนและพัฒนาการเขียนโปรแกรมภาษา 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]... );

Comment

Comment:

Tweet

I much like the precious information you provide you with as part of your articles.Ill bookmark your weblog and take a look at once again below continually.Im quite guaranteed Ill learn considerably of new things suitable here! Great luck to the next!

#364 By bottes fille geox (202.105.61.227) on 2013-11-02 08:28

/topic.php?p=*

#363 By completini da calcio a poco prezzo (14.150.73.132) on 2013-09-30 18:43

webboard/index.php?topic=

#362 By chanel sunglasses online store (202.105.90.18) on 2013-09-14 00:13

webboard/index.php?topic=

#361 By modele sac louis vuitton prix (202.103.132.158) on 2013-09-13 09:22

phpbb/viewtopic

#360 By louis vuitton online shop suisse (202.105.60.226) on 2013-09-12 23:09

Hello! Want to exchange the trackbacks? I have posted to my blog, you can check! Thanks. :) ))…

#359 By http://www.fetang.com/ (120.43.29.84) on 2013-08-07 07:04

?p=*#comment-

#358 By http://maillotmanchesterunited.wehaay.com/ (113.119.55.235) on 2013-07-31 18:12

index.php?act=ST&f=

#357 By http://maillotmonaco.wehaay.com/ (116.21.64.219) on 2013-07-27 05:25

/forum/user/

#356 By http://maillotallemagne.wehaay.com (116.21.64.219) on 2013-07-26 17:24

イトをご利用いただけます。を <a href="http://www.achetermaillotdefoot.com" title="maillot de foot">maillot de foot</a>

#355 By http://www.achetermaillotdefoot.com (116.21.64.35) on 2013-07-23 12:07

index.php/index.php/topic

#354 By maillot de foot 2013-2014 (103.7.57.18|14.150.73.115) on 2013-07-10 13:49

I really enjoy my firefall gold thanks to you!!

#353 By firefall gold (103.7.57.18|142.4.117.124) on 2013-07-07 21:09

My buddy second hand the lake facts vaporisateur cooked by firefall gold and so her own bailey link chestnut's continues to be colored. She always detests how this leads on top of the option fall down below.

#352 By firefall gold (103.7.57.18|142.4.117.124) on 2013-07-07 19:20

Awesome firefall gold, very tasteful and furthermore relaxing.

#351 By firefall gold (103.7.57.18|142.4.117.124) on 2013-07-07 17:56

I've always beloved firefall gold, these are typically surely my preferred a person. style and good as always though, but I think I may well stick along with the basic ones from now on.

#350 By firefall gold (103.7.57.18|142.4.117.124) on 2013-07-07 14:46

Adore firefall very much . Strongly recommend.

#349 By firefall (103.7.57.18|142.4.117.124) on 2013-07-07 13:36

I’ll apply this idea…… It can be fun!

#348 By gifts for women (103.7.57.18|14.147.204.249) on 2013-07-01 06:06

I really enjoy the blog.Much thanks again. Great.

#347 By maillot de foot pas cher (103.7.57.18|14.147.204.249) on 2013-07-01 01:49

I do agree with all the ideas you have presented in your post. Thanks for the post.

#346 By maillot de foot (103.7.57.18|14.121.29.100) on 2013-06-27 11:12

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

#345 By Free Run Nike (103.7.57.18|183.62.141.10) on 2013-06-15 06:08

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

#344 By PRADA WALLET (103.7.57.18|183.62.141.10) on 2013-06-15 06:08

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

#343 By hermes birkin (103.7.57.18|183.62.141.10) on 2013-06-15 06:08

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

#342 By herve leger bandage dresses (103.7.57.18|183.62.141.10) on 2013-06-15 06:08

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

#341 By Hermes Purses (103.7.57.18|183.62.141.10) on 2013-06-15 06:08

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

#340 By nike free mens (::|183.62.141.10) on 2013-06-15 06:07

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

#339 By Nike 5.0 Free (103.7.57.18|183.62.141.10) on 2013-06-15 06:07

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

#338 By Monster Beats (103.7.57.18|183.62.141.10) on 2013-06-15 06:07

I think this is a real great article post.Much thanks again. Want more. ralph lauren femme http://poloralphlaurenhomme.blog.com

#337 By ralph lauren femme (103.7.57.18|202.105.62.240) on 2013-06-14 08:46

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

#336 By Chanel Bags (103.7.57.18|114.47.19.67) on 2013-06-13 04:32

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

#335 By Herve Leger Clothes (103.7.57.18|114.47.19.67) on 2013-06-13 04:32

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

#334 By polo ralph lauren outlet (103.7.57.18|114.47.19.67) on 2013-06-13 04:32

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

#333 By Cheap MacBook Air (103.7.57.18|109.103.218.222) on 2013-06-11 19:40

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

#332 By HERMES KELLY HANDBAG (103.7.57.18|109.103.218.222) on 2013-06-11 19:40

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

#331 By Discount Ipad Mini (103.7.57.18|101.26.103.229) on 2013-06-11 06:56

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

#330 By cheap mulberry handbags (103.7.57.18|101.26.103.229) on 2013-06-11 06:56

Marvel Heroes Gs convention parfaite. agile ensuite s¨¦rieux. emballage soign¨¦.

#329 By Marvel Heroes Gs (103.7.57.18|142.4.117.121) on 2013-06-09 11:17

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

#328 By CHEAP CHRISTIAN LOUBOUTIN (103.7.57.18|113.162.237.24) on 2013-06-09 06:47

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

#327 By oakley sunglasses sale (103.7.57.18|182.180.83.47) on 2013-06-05 17:28

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

#326 By CHEAP MULBERRY BAGS (103.7.57.18|189.82.202.170) on 2013-06-05 04:29

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

#325 By replica oakley sunglasses (103.7.57.18|189.82.202.170) on 2013-06-05 04:29

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

#324 By Ralph Lauren (103.7.57.18|189.82.202.170) on 2013-06-05 04:29

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

#323 By WOW GOLD (103.7.57.18|189.82.202.170) on 2013-06-05 04:29

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

#322 By Louis Vuitton (103.7.57.18|27.32.78.159) on 2013-06-05 04:28

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

#321 By cheap oakley sunglasses (103.7.57.18|27.32.78.159) on 2013-06-05 04:28

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

#320 By IPHONE 5 PRICE (103.7.57.18|27.32.78.159) on 2013-06-05 04:27

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

#319 By Cheap Mulberry Bags (103.7.57.18|27.32.78.159) on 2013-06-05 04:27

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

#318 By WEDDING DRESSES 2013 (103.7.57.18|27.32.78.159) on 2013-06-05 04:27

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

#317 By buy wow gold (103.7.57.18|111.255.66.223) on 2013-06-04 01:29

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

#316 By cheap oakley sunglasses (103.7.57.18|111.255.66.223) on 2013-06-04 01:29

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

#315 By LOUIS VUITTON (103.7.57.18|111.255.66.223) on 2013-06-04 01:29