เขียนโปรแกรมภาษา C แบบพื้นฐาน
บทความน้ี ผมคดั ลอกมาจากบลอ็ กเก่า ที่ผมเขียนไวส้ มยั เรียนตอนเรียนภาษา 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จะไดห้ นา้ เปล่าๆข้ึนมา สาหรับเขียน code
ใหท้ าการ save ก่อน สงั เกตวา่ นามสกลุ จะมีใหเ้ ลือก คือ .c หรือ.cpp.c คือ สาหรับภาษา C.cpp คือ สาหรับ ภาษา C++ และเราสามารถใช้ C++ เขียน C ได้.h คือ สกลุ ของไลบรารี่ใหเ้ ลือก .c แลว้ กด save
การ Compile & Run กด F11 หรือกดป่ ุมดงั รูปCompile คือ แปลง code ท่ีเราเขียนเป็น ภาษาโปรแกรมท่ีcomputer เขา้ ใจCompiler คือ ตวั ท่ีทาหนา้ ที่ compileRun คือ การเปิ ดโปรแกรมท่ี compile แลว้ ข้ึนมา
เรื่องสำคญั ทต่ี ้องรู้Syntaxทุกคาสง่ั การทางานจะตอ้ งปิ ดทา้ ยดว้ ย ; (Semi-colon) เช่น12 age = 23;3
Notation and Commentเครื่องหมาย = คือ การกาหนดค่า เช่น การกาหนดให้ a มีค่าเป็น 2012 a = 20; // assign 20 to a.3นอกน้นั ก็ + , – , * , / ไดต้ ามสมการปกติ ใชว้ งเลบ็ ได้ ( )เช่น สมการ (10+5)/512 answer = (10+5)/5;3บางทีเราตอ้ งการลบโคด้ ส่วนน้นั ออกชว่ั คราว เรียกวา่ การคอมเมน้ คือ การเขียนเพ่ือระบุวา่ ตรงน้ี Compiler จะไม่นาไปประมวลผล อาจจะทาเพอื่ อธิบายคนอ่าน หรือ เพอื่ ลบโคด้ ส่วนน้นั ชว่ั คราว จะใช้
// เพอ่ื คอมเมน้ 1 บรรทดั และ/* */ แทนหลายๆบรรทดั เช่น12 // This comment single line.34 /* This .5 comment6 multi7 line.8 */9
Case sensitiveคือ ช่ือ abc จะไม่เท่ากบั ABC หรือ aBcData Typeชนิดของขอ้ มูลพ้นื ฐาน ท่ีควรรู้ คือchar = ตวั หนงั สือint = ตวั เลข จานวนเตม็ -1 -2 0 1 2 3 4 ….long = เลขจานวนเตม็ เยอะๆfloat = ตวั เลขทศนิยม เช่น 1.5double = ตวั เลขทศนิยมท่ีมีจานวนมากๆและถา้ เป็น char จะตอ้ งมี ‘ (single quote) ปิ ดหนา้ หลงั เสมอ
12 char grade = 'A';3 int age = 23;4 float grade = 3.8;5 double money = 1556.3204843;6มีอีกหลายตวั สามารถไปศึกษาเพิ่มเติมได้Variable name and Reserve wordการต้งั ชื่อ ตวั แปรต่างๆในโปรแกรมมีกฏอยเู่ ลก็ นอ้ ย เช่น หา้ มมีเลขข้ึนตน้ หา้ มมีอกั ษรพเิ ศษ และหา้ มเป็นช่ือเฉพาะage_city2 แบบน้ี ถูกตอ้ ง2age_city แบบน้ี ผดิ เพราะ ตวั เลขข้ึนตน้ ไม่ได้
age฿city แบบน้ี ผดิ เพราะ มีอกั ขระพิเศษmain แบบน้ี ผดิ เพราะ เป็น key word หรือช่ือเฉพาะคาสงวนท่ีหา้ มใชต้ ้งั ชื่ออยู่ เพราะระบบใชไ้ ปแลว้ เด๋ียวจะงงยกตวั อยา่ งบางคานะครับ เพราะมีค่อนขา้ งเยอะchardoubleforifintreturnvoidwhileจบคอร์สแบบรวบรัดสุดๆ พ้ืนฐานขา้ งบนตอ้ งจาใหไ้ ด้
รู้จกั กบั #include#include คือการระบุวา่ เราจะนา library หรือ code ที่มีคนเขียนไว้แลว้ มาใชใ้ นโปรแกรมเรา ซ่ึงเจา้ น่ีจะมีนามสกลุ .h เช่น เราตอ้ งการแสดงขอ้ มูลบนหนา้ จอ กต็ อ้ งอนั เชิญ stdio.h (StandardInput/Ouput) เขา้ มาในโปรแกรมก่อน โดยจะเขียนไวด้ า้ นบนสุดของไฟล์12 #include<stdio.h>3รู้จกั กบั ฟังชันก์ mainmain คือชื่อฟังกช์ นั ที่เป็นจุดเร่ิมทางานของโปรแกรม พดู ง่ายๆคือเปิ ดโปรแกรมข้ึนมา มนั จะมาทางานที่น่ี โดยจะทางานต้งั แต่ { ปี กกาเปิ ด ถึง } ปี กกาปิ ด จึงเขียนไดว้ า่
12 main()3{4 // do some thing5}6รู้จกั ฟังชันก์ printf()printf คือ ฟังชนั ก์ ใน stdio.h ดงั น้นั ก่อนใชต้ อ้ งอญั เชิญ stdio.h มาก่อนนะ ความสามารถของมนั คือ ปริ้นขอ้ ความ เช่น
12 #include <stdio.h>34 main(){5 printf(\"Hello World\");6}7เราจะไดข้ อ้ ความ “Hello world”ถา้ เป็นขอ้ ความยาวๆ เราจะใช้ ” (double quote)
รู้จกั กบั กำรสร้ำงตวั แปรการสร้างตวั แปร โดยทว่ั ไปในทางการเขียนโปรแกรม จะเรียกวา่การประกาศ (Declaration)ตวั แปร (variable) คือ ตวั ที่เกบ็ ขอ้ มูลของเราไว้ โดยจะตอ้ งระบุประเภทข้ึนตน้ ก่อน เช่น ตอ้ งการบอกวา่ ตอนน้ี มีเงินอยู่ 100 บาทกแ็ ค่สร้างตวั แปร money ข้ึนมา แลว้ ระบุดา้ นหนา้ money วา่ เป็นint นะ
12 int money = 100;3เปล่ียนค่ามนั กส็ ามารถกาหนดอีกคร้ังแต่ไม่ตอ้ งมี ประเภท12 int money = 100;3 printf(\"money = %d\",money);4 money = 22;5 printf(\" , new money = %d\",money);6แลว้ ลอง run
ขนึ้ บรรทดั ใหม่และกำรแท็บบางทีเราจะปริ้นขอ้ ความอะไรมนั กจ็ ะติดกนั ยาว ทาใหไ้ ม่สวยงามซ่ึงใน printf สามารถใชอ้ กั ษณะพเิ ศษไดด้ งั น้ี\n คือ ข้ึนบรรทดั ใหม่\t คือ แทบ็
นำตวั แปรมำใช้กบั printfบางทีเรากต็ อ้ งการแสดงค่าจาก ตวั แปร กส็ ามารถทาได้ แต่เราตอ้ งรู้ก่อนวา่ มนั ทางานยงั ไง12 int money = 100;3 printf(\"Money = %d\",money);4แบบน้ีคือแสดง ขอ้ ความ “Money = 100” สงั เกตวา่ 100 จะมาแทน%d นน่ั เอง โดย 100 มาจาก money อีกทีแลว้ ถา้ มีตวั แปรมากกวา่ 1 ตวั ล่ะกใ็ ชร้ ูปแบบเดิม
12 int money = 100;3 char grade = 'B';4 printf(\"Money = %d and Grade = %c\",money,grade);5ลองรันเพื่อดูผล
สงั เกตวา่ money จะไปแทน %d และ grade จะไปแทน %c ถา้ มี 34 5 ตวั หรือมากกวา่ น้ี กใ็ ชห้ ลกั การน้ีซ่ึงต่าง data type กนั กใ็ ช้ % ต่างกนั ไป เพ่ือแสดงผลint = %dfloat = %fdouble = %lflong = %ldchar = %cรู้จกั กบั Asciiacii คือ ค่าตวั เลขท่ีแทนอกั ขระ เพอื่ ใหเ้ ห็นภาพ ลองดู codeดา้ นล่างเราประกาศตวั แปร alphabet_A , alphabet_B , alphabet_C วา่ เป็น
ชนิด charแต่ตอนเรา printf เราสงั่ %d ท่ีเป็นสาหรับ int12 #include <stdio.h>3 main(){4 char alphabet_A = 'A';5 char alphabet_B = 'B';6 char alphabet_C = 'C';78 printf(\"\n A = %d\",alphabet_A);9 printf(\"\n B = %d\",alphabet_B);10 printf(\"\n C = %d\",alphabet_C);11 }
12ลองรันดูมนั กแ็ สดงผลออกมาเป็นเลข เลขในท่ีน้ีกค็ ือ ค่าของ ascii อกั ขระตวั น้นั นน่ั เอง‘A’ = 65‘B’ = 66‘C’ = 67ในทางกลบั กนั ลองกาหนดค่า int แลว้ ไปแสดงเป็น char ดูบา้ ง
12 #include <stdio.h>3 main(){4 int value_A = 65;5 int value_B = 66;6 int value_C = 67;78 printf(\"\n 65 = %c\",value_A);9 printf(\"\n 66 = %c\",value_B);10 printf(\"\n 67 = %c\",value_C);11 }12
ดงั น้นั อกั ขระทุกตวั จะมีค่า ascii ของตวั เอง และสงั เกตวา่ A B Cจะมีค่า ascii เรียงกนั ไปอีกท้งั มนั มีค่าเป็นตวั เลข เราจึงสามารถเอามา + – กนั ไดด้ ว้ ย เช่น12 #include <stdio.h>3 main(){4 int value_A = 65;5 int value_Z = value_A + 25;6 printf(\"\n A+25 = %c\",value_Z);7}
8ตอนน้ีคงเขา้ ใจแลว้ วา่ Ascii คืออะไร และสามารถดูค่า อื่นๆจากตาราง Ascii ได้http://www.asciitable.com/รู้จกั ฟังชันก์กบั scanfก่อนหนา้ น้ีเราทาไดแ้ ค่แสดงผล แต่ไม่สามารถทาใหโ้ ปรแกรมรับค่าไดจ้ ากคีบอร์ดฟังชนั กร์ ับค่า ใน ภาษา C คือ scanf
วธิ ีการคือ เราตอ้ งประกาศตวั แปรก่อนจากน้นั เรียกใชฟ้ ังชนั ก์ scanfพารามิเตอร์แรกคือ รูปแบบ ตาม type ของตวั แปร เช่น %dพารามิเตอร์ตวั ที่สองคือ ตวั แปรท่ีตอ้ งเอาไปเกบ็ ค่า เช่น &dataอยา่ ลืม ใส่ & (ampersand) ไวห้ นา้ ตวั แปรที่ตอ้ งใส่ & ไปที่หนา้ ตวั แปรดว้ ย คือ การบ่งบอกวา่ เราจะรับค่าไปเกบ็ ที่ address ใน memory ของตวั แปรน้นั (อยา่ พ่งึ งง)ใช่แลว้ ครับ & หมายถึง address ใน memory ถา้ เราไม่ใส่ สมมุติวา่ตวั แปร data มีค่า 20 ซ่ึง address 20 ใน memory อาจจะไม่มีกไ็ ด้ทาใหโ้ ปรแกรมพงั เร่ืองน้ีเด๋ียวอธิบายเพม่ิ เติมในบทความต่อไปลองทากนั ดีกวา่ เราจะทาโปรแกรม ใหผ้ ใู้ ชใ้ ส่เลขลงไป แลว้โปรแกรมจะแสดงผลเป็นเลขน้นั ยกกาลงั สอง
12 #include <stdio.h>3 main(){4 int data = 0;5 printf(\"Input integer = \");6 scanf(\"%d\",&data);78 data = data * data;9 printf(\"\nvalue power 2 = %d\",data);10 }11 ลองรัน ใส่เลขลงไป แลว้ กดป่ ุม ENTER
เท่าน้ีแหละ การใช้ scanf แบบพ้นื ฐาน การรับ char , float กใ็ ช้หลกั การเดียวกนั
Search
Read the Text Version
- 1 - 28
Pages: