พื้นฐานโปรแกรมภาษา C
ดร. จันทร์จิรา สินทนะโยธิน, วิศรุต พลสิทธิ สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ (สวทช) ฝึกฝนและพัฒนาการเขียนโปรแกรมภาษา 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 "hello world"
ตัวแปร (Variables) ตัวแปรจะเป็นชื่อที่ใช้ในการบอกจำนวนหรือปริมาณ ซึ่งสามารถที่จะทำการเปลี่ยนแปลงจำนวนได้ด้วยโปรแกรมคอมพิวเตอร์ การตั้งชื่อตัวแปร จะต้องตั้งชื่อให้แตกต่างไปจากชื่อของตัวแปรอื่นๆ ยกตัวอย่างชื่อของตัวแปร เช่น
มาถึงตอนนี้ เราก็จะสามารถปรับปรุงการเขียนโปรแกรมแบบง่ายๆ ได้ดังนี้
int i, j, count;
float sum, product;
char ch;
bool passed_exam;
#include
Main()
{
int its_price;
printf("How much is that ? ");
scanf("%d", &its_price);
printf("oh! %d ?, hmmm...., too expensivenn",its_price);
}
printf("C=%f, F=%f",cel,fah);
printf("He wants to score %d goals today",9);
ตัวอย่างที่ 2 "การคำนวณจำนวนตัวเลข"
จากตัวอย่างการเขียนโปรแกรมข้างต้น จะเห็นว่ามีการคำนวณทางคณิตศาสตร์เข้ามาเกี่ยวข้อง คราวนี้เราลองมาดู การคำนวณในภาษา C
กันว่าจะเขียนกันได้อย่างไรบ้าง
การเปรียบเทียบ แบบมีทางเลือก (Selection Structures)
2.การเขียนโปรแกรมแบบมีทางเลือก (Selection Structures) การเขียนโปรแกรมแบบมีทางเลือก จะสามารถทำให้โปรแกรมสามารถตัดสินใจหรือเปรียบเทียบ จากนั้นก็จะเลือกดำเนินการไปในทิศทางหนึ่งจากสองทิศทาง ขึ้นอยู่กับผลที่ได้จากการเปรียบเทียบนั้น เงื่อนไข (Condition)- เป็นตัวกำหนดเงื่อนไขที่ผู้พัฒนาโปรแกรมได้สร้างขึ้นมา - ผลลัพธ์ที่ได้จากเงื่อนไข จะมีค่า จริงหรือ เท็จ โครงสร้างของเงื่อนไข (Condition Control Structures) ประโยคเงื่อนไขสามารถที่จะเขียนให้อยู่ในรูปภาษา C จะเขียนได้ดังนี้ if condition then A else B ซึ่งหมายความว่า ถ้าเงื่อนไข (condition) มีค่าเป็นจริง ก็จะดำเนินการทำคำสั่ง A มิเช่นนั้นก็จะทำคำสั่ง B ตัวอย่างของการเขียนโครงสร้างทางเลือกในภาษา C สามารถเขียนได้ดังนี้
if(x < y)
a = x*2;
else
a = x + y;
ความหมายของ code ดังกล่าว หมายความว่า ถ้า ค่า x มีค่าน้อยกว่า y แล้ว a = x*2 แต่ถ้า x มีค่ามากกว่าหรือเท่ากับ y แล้ว a = x+y นั่นเอง รูปแบบของเงื่อนไข ส่วนใหญ่จะอยู่ในรูป ตัวแปร โอเปอเรเตอร์ ตัวแปร โอเปอเรเตอร์ที่กล่าวถึงนี้จะมีอยู่ 2 แบบ ด้วยกันคือ โอเปอเรเตอร์สัมพันธ์ (Relational Operator) และ โอเปอเรเตอร์ลอจิก (Logical Operator) โอเปอเรเตอร์สัมพันธ์ที่ใช้ในภาษา C มีดังต่อไปนี้
ตัวอย่างที่ 3 "if"
ตัวอย่างที่ 4 "if else"
ตัวอย่างที่ 6 "grade"
1. ทดลองใช้คำสั่งบวกเลขสองจำนวนดังนี้
» 3 + 4 ans =7โอเปอเรชั่นทางคณิตศาสตร์อื่นๆ ที่ใช้ในการคำนวณมีดังนี้
- บวก สัญลักษณ์ + ตัวอย่าง5+3
- ลบ สัญลักษณ์ - ตัวอย่าง5-3
- คูณ สัญลักษณ์ * ตัวอย่าง5*3
- หาร สัญลักษณ์ / ตัวอย่าง5/3
-ยกกำลัง สัญลักษณ์ ตัวอย่าง5^3 (หมายถึง 5 ยกกำลัง 3 = 125)
2. Math build-in function
3. การกำหนดค่าให้กับตัวแปรใช้เครื่องหมาย = โดยมีรูปแบบท่ั่วไปดังนี้
ชื่อตัวแปร = ตัวเลขหรือนิพจน์ทางคณิตศาสตร์
ตัวอย่าง
» x = [1 2 3 4 5]
x =
1 2 3 4 5
» y = [6;7;8;9;10]
y =
6
7
8
9
10
» y = [6,7,8,9,10]
y =
6 7 8 9 10
» y' (Transpose vector)
ans =
กราฟแสดงสีของภาพ
การพัฒนาโปรแกรมต่างๆ โดยใช้ MATLAB นั้น ช่วงแรกๆ มองว่ามันใช้ค่อนข้างยาก เพราะจะฉีกจากกฎเกณฑ์เดิมๆ ของการเขียนโปรแกรมด้วยภาษาอื่นๆ ไม่ว่าจะเป็น C, Pascal, java ฯลฯ ส่วนใหญ่ MATLAB จะยุ่งอยู่กับ Vector และ Matrix เป็นส่วนใหญ่ ซึ่งคนที่เรียนคณิตศาสตร์มาคงไม่ยากสำหรับเจ้าโปรแกรมนี้ ส่วนคนที่ไม่ได้เรียน แล้วอยากที่จะสัมผัสก็คงต้องใช้เวลากับมันมากสักหน่อย เพราะโดยส่วนใหญ่จะเป็นเรื่องของการคำนวณล้วนๆ แต่ก็ไม่ต้องกลัวไป เพราะ MATLAB เองมีฟังก์ชั่นเกี่ยวกับการคำนวณเอาไว้ให้เราเรียกใช้มากมายอยู่แล้ว เพียงแต่เราต้องรู้ความหมาย และประโยชน์ของแต่ละฟังชั่นก์ที่ต้องการใช้งานเท่านั้นเอง
การเขียนโปรแกรมด้วย MATLAB นั้นมีความง่ายและเร็วกว่าภาษาอื่นๆ เป็นอย่างมาก เพราะมีไลบรารี (ฟังก์ชั่น) จำนวนมากรองรับ รวมถึงเจ้า Simulink ที่ใช้สำหรับจำลองการทำงานของระบบหรือการทดสอบกระบวนการขั้นตอนต่างๆ โดยที่เราแทบไม่ต้องพิมพ์คำสั่งให้ยุ่งยาก อีกทั้ง MATLAB เก่งมากในเรื่องของการทำงานกับ “เมทริกซ์” ซึ่งทำให้เราสามารถจัดการกับอาร์เรย์ได้อย่างง่่ายดาย อีกทั้งโค้ดโปรแกรมที่สั้นและกระทัดรัด รองรับการทำงานกับ Graphic รวมถึง GUI ได้เป็นอย่างดีและสะดวกในการป้อนค่าต่างๆ เข้าไปเพื่อแสดงผล นอกจากนั้น ยังสามารถเขียนโปรแกรมติดต่อในระดับฮาร์ดแวร์ และเชื่อมต่อกับโปรแกรมภาษาอื่นๆ ได้อีกด้วย
สุดท้ายนี้ โปรแกรม MATLAB นั้นไม่ได้เพียงแค่ถูกออกแบบมาเพื่อใช้ในการวิศวกรรม วิทยาศาสตร์ หรืองานวิจัยเท่านั้น ถ้าเรารู้จักนำไปประยุกต์ใช้ในด้านอื่นๆ ซึ่งในบทความต่อๆ ไป คงจะได้ค่อยๆ ทยอยขึ้นมาไว้ในบล็อกนี้ หวังว่าคงจะเป็นประโยชน์สำหรับน้องๆ หรือคนที่สนใจนะคะ ^^
ไม่มีความคิดเห็น:
แสดงความคิดเห็น