C Language 101 - "Hello World"
Category : C Language 101

คำเตือน Tutorial นี้เหมาะสำหรับผู้ที่ต้องการที่จะหัดเขียนโปรแกรมแบบเริ่มต้นสุดๆ ขอไม่กี่อย่าง นั่นคือ เปิดคอมเป็น และรู้ภาษาอังกฤษพื้นฐานนิดหน่อย Dogๆ Catๆ อะไรก็ได้เอาเถอะ

C Language 101 – Preprocessor Directives (EP.11)

Posted by arnondora on June 19th, 2015

และแล้วก็มาถึงเรื่องสุดท้ายแล้ว แต่เรื่องนี้โดยส่วนตัวผมก็ไม่ค่อยได้ใช้เลยนะ นั่นคือเรื่องของ Preprocessor Directives นั่นเอง Preprocessor Directives คืออะไร ? Preprocessor Directives เป็นส่วนที่ใช้ประกาศไว้บนสุดของตัวโปรแกรมเรา เพื่อให้ Compiler ทำงานตามที่เรากำหนด ก่อนที่มันจะแปล (Compile) โปรแกรมของเรา ซึ่งแน่นอนว่า เราก็เคยใช้ Preprocessor Directives มาแล้ว ตอนที่เรา #include <stdio.h> เข้ามาในโปรแกรมเรา ลองดูถ้าเราไม่เติมบรรทัดนั้นเข้าไป คำสั่งหลาย ๆ ตัว ถ้าเราไปเรียกมัน เวลา Compile มันจะขึ้น Error ขึ้นมาเพราะว่า ตัวภาษา C มันไม่รู้จักคำสั่งนี้ ทีนี้เราลองมาดูว่า นอกจาก #include แล้วมันจะมีอะไรอีก มาที่อันแรกกันเลยนั่นคือ #define ตัวนี้มันเอาไว้ประกาศค่า อารมณ์เหมือนเราสร้างตัวแปรขึ้นมาเก็บค่า แต่ค่านี้เราจะมาสามารถที่จะเปลี่ยนในโค๊ตโปรแกรมเราได้ (ค่าคงที่นั่นแหละ) #define PI = 3.14 อย่างในตัวอย่างเราก็บอกว่า ให้มันสร้างค่าคงที่ชื่อ […]

C Language 101 – File I/O (EP.10)

Posted by arnondora on June 15th, 2015

ในที่สุดเราก็มาถึงเรื่องเกือบสุดท้ายกันแล้ว นั่นคือ File I/O หรือ การอ่านเขียนไฟล์นั่นเอง !! คำเตือน ในเรื่องนี้ จะมีเรื่อง Pointer และ Structure เข้ามาเกี่ยวข้องฉะนั้น ถ้ายังไม่เข้าใจเรื่อง Pointer และ Structure ให้ย้อนกลับไปอ่านเรื่อง Pointer และ Structure ให้เข้าใจซะก่อน แล้วค่อยมาอ่านเรื่องนี้ การเปิดและปิดไฟล์ ในการอ่านเขียนไฟล์ในภาษา C เราจะต้องเรียกผ่าน Structure ที่ชื่อ FILE เท่านั้น (ตัวใหญ่หมดจริง ๆ นะ) ซึ่งเราก็ต้องประกาศเป็น Pointer ด้วย FILE *a; สังเกตได้ว่ามันจะมี parameter 2 ตัว ตัวแรกคือที่อยู่ไฟล์ แต่ในกรณีนี้คือไฟล์ที่ต้องการเปิดอยู่ที่เดียวกับที่ที่เราเรียกโปรแกรมเลยเขียนแค่ชื่อกับสกุลไฟล์ ส่วนอีกอันคือ mode ของการเปิด ซึ่ง mode ของการเปิดนั้นจะมีหลาย mode แต่ mode […]

C Language 101 – Structure โครงสร้าง ฮ่ะ ? (EP.9)

Posted by arnondora on June 14th, 2015

ก่อนจะเริ่มเนื้อหาของเรื่องนี้ ก็ต้องขอบคุณก่อนเลยครับ ที่อ่านมาเรื่อย ๆ จนถึงตอนนี้ ตอนนี้เราก็เดินทางกันมาจนจะจบแล้ว ขอบคุณมากจริง ๆ ครับ เรามาเริ่มเรื่องของเราในวันนี้กันเลย วันนี้เราจะพูดถึง Structure หรือถ้าเอาภาษาไทยก็คือ โครงสร้าง ก่อนอื่นก็ต้องของเกริ่นก่อน Structure คืออะไร ? Structure คือโครงสร้างข้อมูลแบบนึง ที่เอาข้อมูลที่มีชนิดต่างกัน มาเก็บไว้ในโครงสร้างเดียวกัน แตกต่างจาก Array ที่เราเคยพูดกันไป เพราะว่าใน 1 Array จะเก็บข้อมูลได้แบบเดียวเท่านั้น เช่นเราบอกว่าให้ Array นี้เป็น int Member ทั้งหมดของ Array ก็จะต้องเป็น int หมด แต่กลับกัน Structure เราสามารถบอกว่า ให้ตัวนี้เป็น char ให้อันนี้เป็น int ได้ แล้วแต่เราเลย แล้ว Structure เอามาทำอะไร ?  เมื่อกี้เรารู้กันไปแล้วว่า Structure นั้นคืออะไร […]

C Language 101 – Pointer ชี้กันอยู่นั่นแหละ !! (EP.8)

Posted by arnondora on June 13th, 2015

จากเมื่อตอนที่แล้ว เราก็ได้เรียนเรื่อง Function กันไปแล้ว แต่วันนี้ของจริงเลย เรื่องนี้อาจจะค่อนข้างเข้าใจยากนิดหน่อย พยายามอ่านกันหน่อยนะ !!! วันนี้เราจะมาพูดถึงเรื่อง Pointer Pointer คืออะไร ? Pointer มันก็คือรูปแบบของตัวแปรแบบนึง เมื่อหลาย ๆ ตอนที่ผ่านมาเราสร้างตัวแปรเพื่อเก็บค่าอะไรก็ตามที่เราต้องการ ถ้าจะเก็บจำนวนเต็ม ก็ต้องใช้ int อะไรแบบนี้ Pointer ก็เหมือนกัน แต่ Pointer ไม่ได้เก็บตัวเลขจำนวนเต็มหรือ ทศนิยมอะไรเลย มันมีหน้าที่เก็บ Address  งงกันล่ะสิ !! ถ้าจะให้หาย งง เราจะต้องมาดูกันก่อนว่า ตัวแปรเราหน้าตาเป็นยังไง ประกอบด้วยอะไรบ้าง ที่อยู่ หรือ Address ของตัวแปร ถ้าให้เปรียบก็น่าจะเหมือนกับ ที่อยู่บ้านของเราอะครับ แต่นี่เป็นที่อยู่ใน Memory ของเครื่อง วิธีเรียก Address นั่นก็คือใช้ Address Operator (&) ที่เราได้ใช้ไปแล้วตอน scanf() นั่นเอง ค่า […]

C Language 101 – Function (EP.7)

Posted by arnondora on June 12th, 2015

จากตอนที่แล้ว เราก็ได้เรียนเรื่อง การรับข้อมูลเข้าหรือ Input กันไปแล้ว วันนี้เรามาเปลี่ยนเรื่องกันบ้างดีกว่า ก่อนอื่นอยากถามว่า คุณเคยประสบปัญหาแบบนี้มั้ย ? เราจะต้องเขียนโปรแกรมที่มีโค๊ตซ้ำ ๆ กัน แต่ Loop ก็ช่วยไม่ได้หมด เพราะเราต้องเรียกมันขึ้นมาเป็นระยะ ๆ เจ้า Function จะเข้ามาช่วยเราแก้ปัญหานี้เอง Function ก็คือกล่องของชุดคำสั่งที่เราเขียนขึ้นมาเพื่อให้ทำงาน หรือ เพื่อให้ได้ Output ตามที่เราต้องการ อย่าง scanf(); ที่เราใช้ไปเมื่อตอนที่แล้ว นั่นก็คือ function นึงเหมือนกัน แต่เป็น function ที่ตัวภาษา C สร้างไว้ให้แล้ว แต่ในตอนนี้ เราจะมาสร้าง function ใช้เองกันบ้าง วิธีสร้างคือ return_type function_name (parameter_list) { //do sth } เราลองมาดูกันทีล่ะส่วนกันเลยดีกว่า ก่อนอื่น ก็ต้อง Return Type มันจะเป็นตัวกำหนดว่า […]

C Language 101 – นานาสาระกับการ Input (EP.6)

Posted by arnondora on June 9th, 2015

จากรอบที่แล้วนะครับ ที่เราได้เรียนรู้เรื่องของ ตัวแปร การเก็บค่า Output อะไรกันไปแล้ว วันนี้เราจะมาเรียนอีกเรื่องนึง ที่ผมลืมพูดไปเลย นั่นคือเรื่องของ Input คำสั่งที่เราใช้ในการ Input ค่าเข้าโปรแกรมเราหลัก ๆ ก็มีหลายคำสั่งนะ แต่ก่อนอื่นเรามาลองอันที่ง่ายที่สุดก่อน นั่นคือ scanf(); Syntax ของมันคือ scanf(“String_Format”,Variable_Address_List); อย่างที่เขียนด้านบนครับ ก่อนอื่นเราก็ต้องมี String Format ก่อน เช่นพวก %d %f อะไรแบบนี้ เวลาใส่เรียง เราก็ต้องเรียงตามรูปแบบ Input ที่เราต้องการ เช่น ถ้าเราต้องการ Input เป็น 1 2 3 เพราะฉะนั้น String Format ของเราก็ควรจะเป็น %d %d %d อะไรแบบนี้ (เหมือนตอน printf เลย ! ) เสร็จก็ใส่ […]

C Language 101 – Arrays! (EP.5)

Posted by arnondora on May 24th, 2015

หายหน้าหายตากันไปนานเลยกับ Tutorial นี้ ตอนนี้ปิดเทอมแล้ว ทำอะไรๆได้มากขึ้น แฮะๆๆ เที่ยวแน่นอน! เข้าเรื่องเลยดีกว่า วันนี้เราจะมาพูดถึง Array สำหรับคนที่เคยเรียนเขียนโปรแกรมภาษาอื่นมาแล้ว หรือเคยอ่านเรื่อง Data Structure ก็ข้ามๆตรงนี้ไปดูตรง Syntax ได้เลยนะฮ่ะ Arrays คืออะไร? ถ้าจำได้ ตอนก่อนๆเราเคยเรียนเรื่องการเก็บข้อมูลลงตัวแปรใช่มั้ยครับ ง่ายๆเลยคือ Array คือเซ็ตของตัวแปร (ที่เป็นประเภทเดียวกัน) มาแพครวมกัน เราจะเข้าถึงตัวไหนก็ได้ใน Array ข้อมูลใน Array แต่ล่ะตัว เราจะเรียกว่า Member หรือสมาชิก เวลาเราเรียก เราจะต้องใช้เลข Index เรียกมันขึ้นมา (ถ้ายังนึกภาพไม่ออก เดี๋ยวรอดูตรง Syntax) โดยเลข Index จะเริ่มจาก 0 ถึง n-1 เสมอ โอเคนะ How to implement? ถ้าใครที่เคยเรียน Data Structure มาก็จะรู้ว่า […]

C Language 101 – What the f__k is Repetition? (EP.4)

Posted by arnondora on April 28th, 2015

กลับมาแล้ว ผิดสัญญาไปหน่อย บอกว่าจะเว้นแปบเดียว นี่เว้นนานเลย ก็ช่วงนี้มันงานยุ่งจริงๆ แถมใกล้สอบ Final แล้วอีก ร่างจะแตกและ วันนี้ (เหมือนจะ) ว่างเลยจะเขียนต่อซะเลย เข้าเรื่องกันเลยดีกว่า วันนี้เราจะมาพูดถึงเรื่อง Repetition หรือการ “วน” เช่นยังไง เราจะเขียนโปรแกรมให้มันพิมพ์ตัวเลข 1-3 ออกมาทางหน้าจอ ถ้าไม่มี Repetition เราก็ต้องสั่งทีล่ะบรรทัด printf(“1\n”); printf(“2\n”); printf(“3\n”); มันก็เหนื่อยอยู่นะ (ไม่มีอะไรหรอก เพราะขี้เกียจล้วนๆ) ลองคิดเล่นๆสิครับ ถ้าเราต้องให้มันพิมพ์ถึงสัก 1 ล้าน เราคงไม่มานั่งพิมพ์ทีล่ะบรรทัดแบบนี้หรอก ฉะนั้น เราจึงต้องมีการวนลูปในโปรแกรมขึ้นมา ซึ่งใน C ถ้าไม่เอาเทคนิคอะไรยุ่งยากก็มี 3 แบบ แต่วันนี้ขอ 2 ล่ะกันนะ อีกอันไว้พูดตอนเรื่อง Function ใน EP. หน้าๆเลย For-Loop อันนี้จะเป็น Loop ง่ายๆที่เรา มีค่าตัวนึงเป็นตัวนับ […]

C Language 101 – If-Else Statement (EP.3)

Posted by arnondora on April 18th, 2015

สวัสดีครับ หายไปนานเลย นึกว่าจะไม่เขียนแล้วล่ะซี้!! แฮร่~~ ช่วงนี้กำลังย้ายเว็บ กับติดงานและเกมหลายๆอย่างอยู่ เลยไม่เป็นอันเขียน วันนี้ตัดสินใจแน่วแน่แล้วว่าจะ เขียน ให้ได้ มาเข้าเรื่องของวันนี้กันเลย วันนี้จะว่าด้วยเรื่องของ If-Else Statement กันครับ ถ้าใครเคยเรียนภาษาอังกฤษมา มันก็คือประโยคเงื่อนไข นั่นเอง ในโปรแกรมมิ่งก็เช่นเดียวกันครับ เราสามารถที่จะเลือกให้ทำแบบนี้แบบนั้นได้ ถ้า… เช่นกัน รูปแบบคือ if (condition) {//do sth} ถ้า… แล้วข้างในเป็นเงื่อนไข อะไรก็ว่ากันไปเช่น a == 2 เป็นต้นอะไรแบบนี้ (ในการเปรียบเทียบต้องใช้ == (เท่ากับ 2 ตัว ไม่ใช่ = ตัวเดียว) เท่ากับตัวเดียวคือการ Assign ค่าให้ตัวแปรไม่ใช่ การเปรียบเทียบ ถ้าเงื่อนไขตรงก็ทำใน do sth เลย แล้วถ้าไม่ตรงล่ะก็ จะมีอีกคำสั่งนึงเข้ามานั่นคือ else if (condition) […]

C Language 101 – All About Variable & Basic Operation (EP.2)

Posted by arnondora on April 10th, 2015

สวัสดีฮ่ะ! นี่ก็ตอนที่ 2 แล้วหลังจากที่เขียนตอนที่แล้ว แล้วหายไปหลายวันอยู่ วันนี้กลับมาแล้ว กับตอนที่ 2 เย้ๆๆ อ่อ ลืม สวัสดีปีใหม่ไทยล่วงหน้านะครับ มาเข้าเนื้อหากันเลย วันนี้เราจะมาพูดถึงเรื่อง ตัวแปร หรือ Variable มันเอามาทำอะไร? จากตอนแรกที่เราเขียนกันเมื่อ EP. ที่แล้ว เราก็ได้แค่ส่งข้อมูลออกทางหน้าจอ แต่ข้อมูลนั้นก็ตายตัว ตายคาที่อยู่ตรงนั้น แต่ตัวแปรจะเป็นตัวเก็บค่าอะไรก็ได้ตามที่เราต้องการ งงล่ะสิ!! เอางี้มาลองดู กันก่อน เราจะมาลองเขียนโปรแกรมบวกเลขง่ายๆกัน (ใครบวกเลขไม่เป็นไปหัดมาก่อนนะ) #include <stdio.h> int main () { int a; a=5; printf(“%d”,a+1); return 0; } ก่อนอื่นเราก็เขียน include กับ main function ตามปกติ เหมือนตอนที่แล้วเลย แต่สังเกตมั้ยครับมันอะไรงอกออกมา นั่นคือ int a; บรรทัด int […]