# data[].attributes.headline
การใช้ ฟังก์ชั่น คำสั่ง printf และ scanf

# data[].attributes.subject
การใช้ ฟังก์ชั่น คำสั่ง printf และ scanf

# data[].attributes.body
อธิบายการใช้คำสั่งแสดงผลและรับค่าตัวแปร

# data[].attributes.attachment_link.description
อธิบายโปรแกรม จากตัวอย่างมีการประกาศตัวแปร คือ a เป็นตัวแปรชนิด int ถัดมาเป็นการแสดงคำพูด Enter number : ที่หน้าจอ จากนั้นฟังก์ชัน scanf() จะทำงานโดยการรอรับข้อมูลจากผู้ใช้ให้เราพิมพ์ตัวเลขจำนวนเต็มใส่ลงไป ตัวเลขที่เราพิมพ์ลงไปนั้นจะถูกเก็บไว้ที่ตัวแปร a แล้วจึงแสดงผลลัพธ์ของตัวเลขนั้นอีกครั้งที่จอภาพ

# data[].attributes.headline
ภาษา ซี เบื้องต้น

# data[].attributes.subject
ภาษา ซี เบื้องต้น

# data[].attributes.headline
วีดีโอ บรรยาย การใช้ ภาษา ซี

# data[].attributes.subject
วีดีโอ บรรยาย การใช้ ภาษา ซี

# data[].attributes.attachment_link.title
สอนการเขียนภาษาซีพื้นฐาน โดยใช้ โปรแกรม Dev C++

# data[].attributes.body
ตอน 3

# data[].attributes.headline
การตัดสินใจ และ วน L

# data[].attributes.body
การตัดสินใจ และ วน Loop

# data[].attributes.attachment_link.readable_text
บทความตอนที่ 1 เราได้เรียนรู้พื้นฐาน พวกการตั้งชื่อต่างๆ แล้วก็ ประกาศตัวแปร การรับค่า ปริ้นค่า บทความนี้จะมาต่อเรื่องพื้นฐานที่สำคัญอีกหนึ่งเรื่อง คือ Operator และ loop

ตอนที่ 1

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

รู้จักกับ Operator

operator คือ สัญลักษณ์พิเศษ ที่ compiler จะนำไปประมวลผล มีหลายตัว แต่ผมจะขอยกตัวที่สำคัญๆ
ยกตัวอย่างก็ บวกลบคูณหาร + - * / = ไง อันนี้เราเข้าใจ ง่ายๆ ซึ่งมีตัวอื่นๆอีก

Increment and decrement
++ เพิ่มค่าขึ้น 1
- ลดค่าลง 1
Compare
== เท่ากับกันมัย
!= ไม่เท่ากัน
< , <= , > , >= มากกว่า น้อยกว่า มากกว่าหรือเท่ากับ พวกนี้คงไม่มีอะไรมาก
มักจะใช้เริ่มกับคำสั่ง if

Modulo

% คือ หารเอาเศษ เช่นโปรแกรม ตรวจสอบเลขคู่เลขคี่

ถ้า เป็นเลขคู่ นำค่าที่ต้องการมาหาร 2 ถ้าลงตัว มันคือเลขคู่
การหารลงตัวในที่นี้ก็คือ เศษเป็น 0
Assignment
ดังนั้น - * / ก็ใช้หลักการเดียวกัน
Logical
&& คือ และ
|| คือ หรือ

ใช้ในการทำเงื่อนไข เช่น ถ้า อายุมากกว่า 20 และ มีเงินมากกว่า 1 ล้าน บอกว่าคนนี้รวย

เงื่อนไข และ หรือ ก็ทำงานตามตรรกศาสตร์เลย

รู้จักกับ if-else

ในโปรแกรมแน่นอนมันต้องมีการสร้างเงื่อนไขขึ้น เช่น ถ้าเป็นอันนี้ให้ทำอย่างนี้นะ

ใช้คำสั่ง

ถ้าเงื่อนไขเป็นจริง ก็จะทำงานในกรอบ { }
กรณีที่ไม่ใช่ตามเงื่อนไข ก็ทำที่ { } ของ else
ลองทำเลยนะ ถ้าอายุมากกว่าหรือเท่ากับ 18 ให้เข้าผับได้
และลองนำมาใช้กับ scanf ด้วยก็ได้
ให้ผู้ใช้ป้อนอายุเข้าไป ถ้าอายุมากกว่าหรือเท่ากับ 18 ก็ ให้เข้าผับได้

ถ้ามี กรณีมากกว่านี้ละ ก็ใช้ else if() เช่น
ถ้าอายุ 25 ปีขึ้นไป เข้าผับแล้ว ก็ยังสามารถเข้า ผับ zone พิเศษได้

โปรดระวังเรื่อง ลำดับ เงื่อนไขของ if ให้ดีๆ
ถ้าเขียนแบบ code ด้านล่างนี้ แม้ใส่อายุมาเกิน 25 มันก็จะแสดง "welcome to pub" เพราะเงื่อนไขแรก >= 18 เป็นจริง ทำให้มันไม่ทำในเงื่อนไขถัดไป

หรือจะเขียนแยก if ออกมาเป็นตัวใหม่ก็ทำได้ แล้วแต่กระบวนการทำงาน

รู้จักกับ for loop

บางทีมีงานบางงานที่ต้องทำซ้ำๆ รู้จำนวนรอบแน่นอน การทำงานแบบวนรอบจึงเดินขึ้น

for( กำหนดค่าเริ่มต้น ; เงื่อนไข ; เปลี่ยนแลงค่า ){
// do something
}

เช่น ผมต้องการปริ้น Hello world 10 บรรทัด อาจเขียนแบบนี้

แบบ code ด้านบน ก็ทำได้เช่นกัน แต่ถ้าวันนึง อยากจะเปลี่ยนเป็นคำว่า Good bye ละ ต้องเปลี่ยน 10 ที่ หรือไม่ก็ต้องเปลี่ยนตัวนึง แล้วก็อปวางอีกหลายรอบ นี่ 10 ตัว ยังพอไหว แต่ถ้า 100 หรือ 1000 ละ โอยๆๆ

จึงเกิด for loop ขึ้น หลักการคือ กำหนดค่า ตัวนับค่าให้มันก่อน สมมุติ คือ ตัวแปร i ให้เป็น 0
จากนั้นให้มันทำไปทีละรอบ ก็เพิ่มค่าทีละ 1 โดยใช้ i++
แต่ละรอบก็ตรวจสอบว่ามันครบรึยัง โดยเงื่อนไข i < 10 รึปล่าว
ถ้ามันครบ 10 รอบ มันก็จะออกจาก for loop นั่นเอง

อันนี้เป็นเพียงตัวอย่างง่ายๆ

เราสามารถนำ ตัวแปรที่วนลูปมาใช้ได้ด้วย เช่น ทำสูตรคูณแม่ 2

แบบนี้สูตรคูณแม่อะไร จะเอาถึงเท่าไหร่ก็สามารถทำได้ในไม่กี่บบรรทัด

Loop ซ้อน Loop

หรือเรียกว่า Nested loop มันก็การนำ loop ไปไว้ใน loop อีกที เช่น
ปริ้น hello world 16 รอบ เขียนแบบ loop ซ้อน 2 ชั้นก็ได้
loop นึงปริ้น 4 อัน อีก loop ทำอีก 4 ครั้ง เป็น 16 รอบพอดี

รู้จักกับ While loop

loop อีกแบบคือ ทำวนรอบแต่ไม่รู้จำนวนรอบที่แน่นอน อาจทำเพื่อคำนวณอะไรบางอย่าง

ถ้าเงื่อนไขเป็นจริงก็จะทำใน { } ไปเรื่อยๆ ดังนั้น อย่าลืมเปลี่ยนแปลงค่าใน การเช็คเงื่อนไขด้วย จะทำจนกว่าเงื่อนไขเป็นเท็จ

อีกแบบคือ do while ที่จะทำอย่างน้อย 1 รอบก่อน แล้วค่อยเช็คเงื่อนไข

ซึ่งก็แล้วแต่การประยุกต์ และการนำไปใช้อีกทีครับ

การบ้าน

ลองทำ ปริ้น สามเหลี่ยม 4 แบบข้างล่างดู โจทย์คลาสสิคมากๆ กำหนดให้มี 10 แถว
เพื่อแสดงว่าเข้าใจเรื่อง for loop ต้องทำให้ได้นะ ทำได้แล้วคอมเม้นไว้ให้ด้วยนะ

"จงฝึกฝน และจงฝึกฝน ขั้นตอนที่สำคัญที่สุดที่จะเข้าใจคือการลงมือทำ"

จบบทความนี้แล้ว อ่านต่อในตอนที่ 3 นะครับ

(:

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

# data[].attributes.attachment_link.title
C Programming : เขียนโปรแกรมภาษา C แบบพื้นฐาน ตอนที่ 2 - If-else & Loop - benzneststudios

# data[].attributes.attachment_link.description
บทความตอนที่ 1 เราได้เรียนรู้พื้นฐาน พวกการตั้งชื่อต่างๆ แล้วก็ ประกาศตัวแปร การรับค่า ปริ้นค่า บทความนี้จะมาต่อเรื่องพื้นฐานที่สำคัญอีกหนึ่งเรื่อง คือ Operator และ loop C Programming : การเขียนโปรแกรมภาษา C แบบพื้นฐาน ตอนที่ 1 operator คือ สัญลักษณ์พิเศษ ที่ compiler จะนำไปประมวลผล มีหลายตัว แต่ผมจะขอยกตัวที่สำคัญๆ ยกตัวอย่างก็ บวกลบคูณหาร + - * / = ไง อันนี้เราเข้าใจ ง่ายๆ ซึ่งมีตัวอื่นๆอีก Increment and decrement ++ เพิ่มค่าขึ้น 1 - ลดค่าลง 1 Compare

# data[].attributes.headline
การใช้งานเบื้องต้น

# data[].attributes.body
การใช้งานเบื้องต้น

# data[].attributes.attachment_link.readable_text
บทความนี้ ผมคัดลอกมาจากบล็อกเก่า ที่ผมเขียนไว้สมัยเรียนตอนเรียนภาษา 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 คือ ตัวที่ทำหน้าที่ compile
Run คือ การเปิดโปรแกรมที่ compile แล้วขึ้นมา

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

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 หรือชื่อเฉพาะ

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

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

รู้จักกับ #include

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

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

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

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

printf คือ ฟังชันก์ ใน stdio.h ดังนั้นก่อนใช้ต้องอัญเชิญ stdio.h มาก่อนนะ ความสามารถของมันคือ ปริ้นข้อความ เช่น
เราจะได้ข้อความ "Hello world"
ถ้าเป็นข้อความยาวๆ เราจะใช้ " (double quote)
รู้จักกับการสร้างตัวแปร

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

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

แล้วลอง run

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

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

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

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

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

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

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

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

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

รู้จักกับ Ascii

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

ลองรันดู

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

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

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

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

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

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

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

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

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

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

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

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

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

(:

# data[].attributes.attachment_link.title
C Programming : เขียนโปรแกรมภาษา C แบบพื้นฐาน ตอนที่ 1 - Basic - benzneststudios

# data[].attributes.attachment_link.description
บทความนี้ ผมคัดลอกมาจากบล็อกเก่า ที่ผมเขียนไว้สมัยเรียนตอนเรียนภาษา C ตอนนั้นเรียนอะไรก็มาเขียนไว้ วันนี้เลยตั้งใจนำมาปรับปรุงใหม่ให้มีแต่เนื้อๆ โดยบทความนี้จะนำเสนอตั้งแต่พื้นฐานแบบ zero มาเลย และอาจจะค่อนข้างรวบรัดนิดนึง ขอแบ่งเป็นตอนๆ เพราะแม้จะพื้นฐานแต่ก็เยอะมาก หนังสือที่ขายกันก็เล่มหนาๆทั้งนั้น ภาษา C เป็นรากฐานของหลายๆภาษาในเชิงโปรแกรมมิ่ง ตัวผมเองก็เริ่มจากภาษา C นี่แหละ จากนั้นก็ขยับไป C++ Java C# รูปการเขียนก็ง่าย ไม่ซับซ้อน แต่ทั้งนี้ทั้งนั้นไม่จำเป็นต้องเริ่มที่ภาษา C ก็ได้ แต่ถ้าใครจะเริ่มหัดเขียนโปรแกรม ผมก็แนะนำให้เริ่มรู้จักที่ภาษา C ก่อน โปรแกรมที่ใช้เขียนมีหลายตัวให้เลือก แต่ที่ผมชอบคือ Dev C++ อีกตัวที่นิยมคือ Code Block ในบทความนี้จะใช้ Dev c++ ดาวน์โหลด https://sourceforge.net/projects/orwelldevcpp/ ถ้าใช้ Windows 8 หรือใหม่กว่า แนะนำให้โหลดเวอชัน 5.0