Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore เขียนโปรแกรมภาษา C แบบพื้นฐาน

เขียนโปรแกรมภาษา C แบบพื้นฐาน

Published by 945sce00460, 2021-01-30 05:15:49

Description: เขียนโปรแกรมภาษา C แบบพื้นฐาน

Search

Read the Text Version

เขียนโปรแกรมภาษา C แบบพื้นฐาน ทาไมตอ้ งเรมิ่ ที่ภาษา 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) เชน่ 1 2 age = 23; 3 Notation and Comment เครือ่ งหมาย = คือ การกาหนดคา่ เช่น การกาหนดให้ a มีค่าเป็น 20 1 2 a = 20; // assign 20 to a. 3 นอกน้ันก็ + , – , * , / ไดต้ ามสมการปกติ ใช้วงเล็บได้ ( ) เชน่ สมการ (10+5)/5 1 2 answer = (10+5)/5; 3

บางทีเราตอ้ งการลบโคด้ สว่ นนนั้ ออกช่ัวคราว เรียกว่า การคอมเม้น คือ การเขียนเพื่อระบวุ ่า ตรงน้ี Compiler จะไมน่ าไป ประมวลผล อาจจะทาเพ่อื อธิบายคนอ่าน หรอื เพอ่ื ลบโคด้ ส่วนนั้นชัว่ คราว จะใช้ // เพอ่ื คอมเม้น 1 บรรทัด และ /* */ แทนหลายๆบรรทดั เชน่ 1 2 // This comment single line. 3 4 /* This . 5 comment 6 multi 7 line. 8 */ 9 Case sensitive คอื ช่ือ abc จะไม่เทา่ กบั ABC หรอื aBc Data Type ชนดิ ของขอ้ มลู พน้ื ฐาน ท่ีควรรู้ คอื char = ตวั หนงั สือ int = ตัวเลข จานวนเตม็ -1 -2 0 1 2 3 4 …. long = เลขจานวนเต็มเยอะๆ float = ตัวเลขทศนยิ ม เชน่ 1.5 double = ตัวเลขทศนิยมทมี่ จี านวนมากๆ

และถา้ เป็น char จะตอ้ งมี ‘ (single quote) ปิดหนา้ หลังเสมอ 1 2 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 หรือชือ่ เฉพาะ คาสงวนท่หี ้ามใชต้ ง้ั ช่อื อยู่ เพราะระบบใชไ้ ปแลว้ เดีย๋ วจะงง ยกตวั อย่างบางคานะครับ เพราะมคี อ่ นขา้ งเยอะ char double for if int return void while

จบคอร์สแบบรวบรดั สดุ ๆ พน้ื ฐานขา้ งบนตอ้ งจาให้ได้ รจู้ กั กบั #include #include คอื การระบุวา่ เราจะนา library หรอื code ทีม่ ีคนเขยี นไว้แล้วมาใช้ในโปรแกรมเรา ซง่ึ เจา้ นจี่ ะมีนามสกลุ .h เช่น เราตอ้ งการแสดงข้อมูลบนหนา้ จอ กต็ อ้ งอันเชญิ stdio.h (Standard Input/Ouput) เข้ามาในโปรแกรมก่อน โดยจะ เขียนไว้ดา้ นบนสดุ ของไฟล์ 1 2 #include<stdio.h> 3 รูจ้ ักกบั ฟังชนั ก์ main main คือชื่อฟังกช์ นั ท่ีเปน็ จดุ เริ่มทางานของโปรแกรม พูดงา่ ยๆคือเปิดโปรแกรมข้นึ มา มนั จะมาทางานทน่ี ่ี โดยจะทางาน ตัง้ แต่ { ปีกกาเปิด ถึง } ปีกกาปดิ จึงเขยี นไดว้ า่ 1 2 main() 3{ 4 // do some thing 5} 6

รูจ้ กั ฟงั ชันก์ printf() printf คอื ฟงั ชันก์ ใน stdio.h ดังนน้ั กอ่ นใชต้ อ้ งอญั เชญิ stdio.h มากอ่ นนะ ความสามารถของมันคอื ปร้นิ ขอ้ ความ เชน่ 1 2 #include <stdio.h> 3 4 main(){ 5 printf(\"Hello World\"); 6} 7 เราจะได้ข้อความ “Hello world” ถา้ เป็นข้อความยาวๆ เราจะใช้ ” (double quote)

รู้จักกบั การสร้างตวั แปร การสรา้ งตวั แปร โดยท่วั ไปในทางการเขียนโปรแกรม จะเรยี กว่าการประกาศ (Declaration) ตวั แปร (variable) คือ ตวั ทีเ่ ก็บข้อมลู ของเราไว้ โดยจะตอ้ งระบุ ประเภทขน้ึ ตน้ ก่อน เชน่ ต้องการบอกว่า ตอนนี้ มเี งนิ อยู่ 100 บาท กแ็ คส่ รา้ งตัวแปร money ขน้ึ มา แลว้ ระบดุ า้ นหน้า money ว่าเปน็ int นะ 1 2 int money = 100; 3 เปลยี่ นคา่ มนั ก็สามารถกาหนดอกี ครัง้ แต่ไมต่ อ้ งมี ประเภท 1 2 int money = 100; 3 printf(\"money = %d\",money); 4 money = 22; 5 printf(\" , new money = %d\",money); 6 แล้วลอง run

ขึน้ บรรทดั ใหม่และการแท็บ บางทีเราจะปรนิ้ ขอ้ ความอะไรมนั ก็จะติดกันยาว ทาให้ไม่สวยงาม ซงึ่ ใน printf สามารถใช้อักษณะพิเศษไดด้ ังน้ี \\n คอื ขึ้นบรรทดั ใหม่ \\t คือ แทบ็ นาตวั แปรมาใช้กับ printf บางทเี รากต็ อ้ งการแสดงค่าจาก ตัวแปร ก็สามารถทาได้ แตเ่ ราต้องรู้กอ่ นว่ามันทางานยงั ไง 1 2 int money = 100; 3 printf(\"Money = %d\",money); 4 แบบน้ีคอื แสดง ข้อความ “Money = 100” สังเกตว่า 100 จะมาแทน %d นัน่ เอง โดย 100 มาจาก money อีกที แล้วถา้ มีตวั แปรมากกวา่ 1 ตัวละ่ กใ็ ช้รูปแบบเดิม

1 2 int money = 100; 3 char grade = 'B'; 4 printf(\"Money = %d and Grade = %c\",money,grade); 5 ลองรันเพ่อื ดผู ล สงั เกตวา่ money จะไปแทน %d และ grade จะไปแทน %c ถา้ มี 3 4 5 ตวั หรือมากกว่าน้ี ก็ใชห้ ลกั การน้ี ซ่ึงต่าง data type กนั ก็ใช้ % ต่างกนั ไป เพือ่ แสดงผล int = %d float = %f double = %lf

long = %ld char = %c รูจ้ ักกับ Ascii acii คือ ค่าตัวเลขทแ่ี ทนอกั ขระ เพื่อให้เห็นภาพ ลองดู code ดา้ นลา่ ง เราประกาศตวั แปร alphabet_A , alphabet_B , alphabet_C ว่าเป็นชนดิ char แต่ตอนเรา printf เราสั่ง %d ทีเ่ ป็นสาหรบั int 1 2 #include <stdio.h> 3 main(){ 4 char alphabet_A = 'A'; 5 char alphabet_B = 'B'; 6 char alphabet_C = 'C'; 7 8 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 ดบู า้ ง 1 2 #include <stdio.h> 3 main(){ 4 int value_A = 65; 5 int value_B = 66; 6 int value_C = 67; 7 8 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 เรียงกันไป อกี ทั้งมนั มีคา่ เป็นตวั เลข เราจึงสามารถเอามา + – กันได้ดว้ ย เช่น

1 2 #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 อาจจะไม่มีกไ็ ด้ทาให้โปรแกรมพงั เรอ่ื งน้เี ด๋ยี วอธิบายเพมิ่ เติมในบทความตอ่ ไป ลองทากันดีกวา่ เราจะทาโปรแกรม ให้ผู้ใช้ใส่เลขลงไป แลว้ โปรแกรมจะแสดงผลเปน็ เลขน้ันยกกาลังสอง 1 2 #include <stdio.h> 3 main(){ 4 int data = 0; 5 printf(\"Input integer = \"); 6 scanf(\"%d\",&data); 7 8 data = data * data; 9 printf(\"\\nvalue power 2 = %d\",data); 10 } 11 ลองรนั ใสเ่ ลขลงไป แล้วกดปมุ่ ENTER

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


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook