วันศุกร์ที่ 8 พฤษภาคม พ.ศ. 2558

จัดทำโดย

จัดทำโดย
นายรณกร  มาลินันท์ รหัสนิสิต 57670008


MATLAB เบื้องต้น

MATLAB เบื้องต้น

MATLAB เป็นภาษาที่มีประสิทธิภาพสูงใช้สำหรับคำนวณทางด้านเทคนิค ตัวโปรแกรม ได้รวมเอาความสามารถในการคำนวณ, การดูและติดตามข้อมูลต่างๆ รวมทั้งการเขียนโปรแกรม ไว้ในรูปแบบที่ง่ายต่อการใช้งาน โดยที่ปัญหาและวิธีการหาคำตอบ จะแสดงโดยใช้สัญลักษณ์ทางคณิตศาสตร์ที่ใช้ตามปกติ การใช้งานทั่วๆไปก็มีตามนี้ครับ
  • คำนวณทางคณิิตศาสตร์
  • พัฒนาอัลกอริธึม (Algorithm)
  • สร้างแบบจำลอง (Modeling), จำลองการทำงาน(simulation), และ สร้างตัวต้นแบบ (prototyping)
  • วิเคราะห์ข้อมูล, ตรวจค้นข้อมูล, และ แสดงผลข้อมูลในรูปแบบต่างๆ
  • แสดงภาำพกราฟิคต่างๆ ทางวิทยาศาสตร์และวิศวกรรมศาสตร์
  • พัฒนาโปรแกรมใช้งานต่างๆ อันนี้รวมถึงการสร้าง Graphical User Interface (GUI) ด้วย
MATLAB เป็นระบบการทำงาน แบบปฏิสัมพันธ์ (interaction)มีองค์ประกอบพื้นฐานของข้อมูลเป็น อาร์เรย์ (array) ที่ไม่ต้องมีการกำหนดมิติ ด้วยหลักการนี้ทำให้เราสามารถใช้ MATLAB แก้ปัญหาการคำนวณทางเทคนิึคได้หลากหลายและรวดเร็ว โดยเฉพาะสูตรที่แสดงโดยใช้ เมทริกซ์ (matrix) และ เวคเตอร์ (vector) ถ้าหากใช้โปรแกรมจำพวก C หรือ Fortran ที่ทำงานเป็นแบบ สเกลาร์ (scalar) ก็จะใช้เวลานานกว่า ชื่อ MATLAB ย่อมาจาก matrix laboratory ตอนแรกนั้น MATLAB ถูกเขียนขึ้นเำื่พื่อให้การเข้าถึงข้อมูลใน เมทริกซ์ซอฟท์แวร์ พัฒนาโื่ดยโครงการ LINPACK และ EISPACK ทำได้ง่าย โครงการทั้งสองเป็นเหมือนกับ state-of-the-art ของซอฟท์แวร์สำหรับการคำนวณทางเมทริกซ์
MATLAB ถูกพัฒนาอย่างต่อเนื่องตามความต้องการของผู้ใช้ที่หลากหลาย ในส่วนของมหาวิทยาลัย ตัวโปรแกรมได้ถูกใช้เป็นซอฟท์แวร์มาตรฐานช่วยในการสอนทั้งในหลักสูตรเบื้องต้นและชั้นสูงทางคณิตศาสตร์, วิศวกรรมศาสตร์ และ วิทยาศาสตร์ ทางด้านอุตสาหกรรม MATLAB ก็ถูกใช้เป็นเครื่องมือที่ช่วยในการทำวิจัย. พัฒนา และวิเคราะห์ต่างๆ ที่ต้องการประสิืทธิผลที่สูง MATLAB ยังมีส่วนที่ของโปรแกรมที่ช่วยแก้ปํญหาเฉพาะทาง เรืยกว่า ทูลบ็อกซ์(toolbox) ที่สำคัญสำหรับผู้ใช้ MATLAB ก็คือ ทูลบ็อกซ์ เหล่านี้ี่ยังช่วยในการเรียนรู้ และนำไปใช้กับเทคนิค เฉพาะทางได้อีกด้วย ทูลบ็อกซ์ คือการจัดรวมกลุ่มของ MATLAB ฟังก์ชั่น (M-files) ที่ขยายขอบเขตการใช้งานของ MATLAB เพื่อแก้ปัญหาในกลุ่มนั้นๆโดยเฉพาะ MATLAB มี ทูลบ็อกซ์ ให้เลือกใช้หลากหลาย เช่น signal processing, control system, neural networks, fuzzy logic, wavelets, simulation และอีกมากมาย
ระบบของ MATLAB
ระบบของ MATLAB ประกอบด้วย 5 ส่วนหลักๆ คือ:

ภาษา MATLAB

เป็นภาษาเมทริกซ์/อาร์เรย์ ชั้นสูง พร้อมด้วย control flow statements, functions, data structures, input/output, และ object-oriented programming เราสามารถโปรแกรมได้ทั้งแบบ “programming in the small” ซึ่งเป็นแบบที่เขียนขึ้นอย่างไม่พิถีำพิถันเำพื่อใช้ชั่วคราว หริอแบบ “programming in the large” ที่สร้างโปรแกรมใช้งานขนาดใหญ่ที่ซับซ้อน

พื้นที่ทำงานของ MATLAB

เป็นที่รวมกลุ่มของ เครึ่องมีอและสี่งอำนวยความสะดวกเมื่อทำงานกับ MATLAB ไม่ว่าจะเป็นแบบผู้ใช้งานทั่วไป หรือนักเขียนโปรแกรม ส่วนนี้จะรวมเครื่องมือช่วยเหลือสำหรับจัดการตัวแปรต่างๆ ในพื้นที่ทำงาน รวมทั้วการนำเข้า (import)และส่งออก(export)ข้อมูล นอกจากนี้ยังมีเครืองมือสำหรับพัฒนา, จัดการ, หาข้อผิดพลาด(debug), และ วินิจฉัย(profile) M-files และ โปรแกรมใช้งานต่างๆของ MATLAB อีกด้วย

การจัดการด้าน Graphics (Handle Graphics)

ส่วนนี้เป็นระบบกราฟิค ของ MATLAB ในส่วนนี้จะรวมคำสั่งชั้นสูงสำหรับแสดงผลข้อมูล(data visualization), image processing, ภาำพเคลื่อนไหว(animation), และ กราฟิคที่ใช้ในการนำเสนอ นอกจากนั้นก็ยังมีคำสั่งพื้นฐาน ที่ยินยอมให้ผู้ใช้สามารถปรับแต่งคุณลักษณะของกราฟิคได้ทั้งหมด รวมทั้งยังสามารถสร้าง GUI ได้อย่างสมบูรณ์บน MATLAB อีกด้วย

ห้องสมุดฟังก์ชั่นทางคณิตศาสตร์ (MATLAB mathematical function library)

ส่วนนี้เป็นที่รวมอัลกอริธึมที่ใช้ในการคำนวณ ตั้งแต่ฟังก์ชั่นพื้นฐานอย่างเช่น sum, sine, cosine, อัลกอริธึมที่ ซับซ้อน ไปจนกระทั่งถึง ฟังก์ชั่นที่ซับซ้อนมากๆ อย่างเช่น matrix inverse, matrix eigenvalues, Bessel functions และ fast Fourier transforms

MATLAB Application Program Interface (API).

ส่วนนี้เป็นห้องสมุด(library) ที่ยินยอมให้ผู้ใช้เขียนโปรแกรมภาษา C และ Fortran ที่ทำงานร่วมกับ MATLAB ได้ อันนี้รวมถึงเครื่องมืออำนวยความสะดวกในการเรียก routine ต่างๆจาก MATLAB(dynamic link) เรียกใช้ MATLAB เหมือนเป็นเครื่องช่วยคำนวณ รวมทั้งอ่านและเขียน MAT-files

LABภาษาซี

LABภาษาซี
เริ่มโปรแกรม C









































วันพฤหัสบดีที่ 7 พฤษภาคม พ.ศ. 2558

ตัวดำเนินการทางคณิตศาสตร์

        ตัวดำเนินการทางคณิตศาสตร์
 ในโปรแกรมภาษาซีจะใช้ตัวดำเนินการทางคณิตศาสตร์เป็นตัวเชื่อมในการเขียนโปรแกรม เพื่อหาผลลัพธ์จากการคำนวณ
ซึ่งสามารถกระทำกับข้อมูลได้หลายรูปแบบ เช่น บวก ลบ คูณ หาร เปอร์เซ็นต์ ดังตัวอย่างในตารางข้างล่างนี้

ตัวดำเนินการ 
ความหมาย
ตัวอย่าง
บวก (Addition)
X + y
ลบ (Subtraction)
X – y
คูณ (Multiplication)
X * y
หาร (Division)
X / y
++ 
เพิ่มค่าครั้งละ 1(Increment)
X++
--
ลดค่าครั้งละ 1(Decrement)
X--
หารเอาผลลัพธ์เฉพาะเศษ (Modulus)
X % y

           ตัวดำเนินการเปรียบเทียบในโปรแกรมภาษาซีคือเครื่องหมายที่ใช้ในการเปรียบเทียบในทางคณิตศาสตร์
ผลลัพธ์จะมี 2 กรณีคือ ถ้าผลลัพธ์ถูกต้องหรือเป็นจริงจะมีค่าเป็น 1 ถ้าผลลัพธ์ผิดหรือเป็นเท็จจะมีค่าเป็น 0 ผลลัพธ์ของการเปรียบเทียบมีชื่อเรียกอีกอย่างหนึ่งว่าค่าคงที่บูลีน (Boolean Constant) ดังนี้

8 > 5
ผลลัพธ์เป็นจริง
ค่าคงที่บูลีนเป็น 1
0 = 10
ผลลัพธ์เป็นเท็จ
ค่าคงที่บูลีนเป็น 0
X > x 
ผลลัพธ์เป็นจริง
ค่าคงที่บูลีนเป็น 1(เปรียบเทียบค่าตามรหัสแอสกี)
A > B
ผลลัพธ์เป็นจริง
ค่าคงที่บูลีนเป็น 1(เปรียบเทียบค่าตามรหัสแอสกี)

ตัวดำเนินการ
ความหมาย
ตัวอย่าง
>
มากกว่า (Greather Than)
X > y
<
น้อยกว่า (Less Than)
X < y
>=
มากกว่าหรือเท่ากับ (Greather Than or Equal)
X >= y
<=
น้อยกว่าหรือเท่ากับ (Less Than or Equal)
X <= y
==
เท่ากับ (Equal)
X == y
!=
ไม่เท่ากับ (Not Equal)
X != y
          ตัวดำเนินการทางตรรกะในโปรแกรมภาษาซี คือเครื่องหมายที่ใช้เชื่อมเงื่อนไข 2 เงื่อนไข หรือมากกว่า 2 เงื่อนไข
เพื่อให้การเปรียบเทียบมีความละเอียดมากขึ้น ใช้สัญลักษณ์แทนในแต่ละเครื่องหมาย ดังตารางข้างล่างนี้

&&
จะให้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขทั้งสองเป็นจริง แต่ถ้าเงื่อนไขใดเป็นเท็จ หรือทั้งสองเงื่อนไขเป็นเท็จจะทำให้ผลลัพธ์เป็นเท็จ
||
จะให้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง หรือเป็นจริงทั้งสองเงื่อนไข แต่ถ้าเป็นเท็จทั้งสองเงื่อนไขจะทำให้ผลลัพธ์เป็นเท็จ
!
จะให้ผลลัพธ์เป็นจริงเมื่อเงื่อนไขหลัง not เป็นเท็จ แต่ถ้าเงื่อนไขหลัง not เป็นจริงจะทำให้ผลลัพธ์เป็นเท็จ ตัวดำเนินการ ความหมาย ตัวอย่าง
&& และ (and) Mark>=80&&mark<=100
|| หรือ (or)
Score<0||score>100
!
ไม่ (not) !x&&!y
นิพจน์คณิตศาสตร์ในโปรแกรมภาษาซี คือการนำค่าคงที่หรือตัวแปรมาเชื่อมต่อกัน ด้วยเครื่องหมายทางคณิตศาสตร์ นิพจน์คณิตศาสตร์จะมีลักษณะคล้ายกับสมการทางคณิตศาสตร์ ดังนี้
c = a * b
(10 + 5 ) * 10 % 9 = 15
(8 * a + 2 * b)/c
5 + (5 – 1 ) * 4 = 21
ลำดับการประมวลผลของนิพจน์
               ลำดับการประมวลผลของนิพจน์คณิตศาสตร์จะทำการประมวลผลในส่วนของวงเล็บก่อนในกรณีที่มีวงเล็บ จากนั้นจะคำนวณไปตามลำดับของการประมวลดังตารางข้างล่างนี้ และหากมีเครื่องหมายที่อยู่ในลำดับการประมวลผล
เดียวกันจะทำการคำนวณจากด้านซ้ายไปด้านขวา

เครื่องหมาย
ลำดับการประมวลผล
( )
1
++,--
2
* / %
3
+ -
4

ตัวอย่าง 1   (10 -34) * 5 = 35ลำดับการประมวลผล
10 - 3 = 7 แล้วคูณกับ 5 ได้ผลลัพธ์ 35
ตัวอย่าง 2   5 + 10 *2 = 25ลำดับการประมวลผล
10 * 2 = 20 แล้วบวกดับ 5 ได้ผลลัพธ์ 25
ตัวอย่าง 3   (2 + 7) * 4 % 10 = 6
ลำดับการประมวลผล2 + 7 = 9 แล้วคูณกับ 4 ได้ 36 หารแบบเอาเศษด้วย 10 ได้ 6
ตัวอย่าง 4   2 + 7 * 4 % 10 = 10ลำดับการประมวลผล
7 * 4 = 28 แล้วหารแบบเอาเศษด้วย 10 ได้ 8 บวกกับ 2 เป็น 10
ตัวอย่าง 5   10 + 2 * 8 / 4 * 3 – 5 = 17



ลำดับการประมวลผล
1. 2 * 8 = 16
2. 16 / 4 = 4
3. 4 * 3 = 12
4. 12 + 10 = 22
5. 22 – 5 = 17
ที่มา http://www.lks.ac.th/anchalee/c_operate_5.htm

หลักการเขียนโปรแกรม

หลักการเขียนโปรแกรม
ในการเขียนโปรแกรมคอมพิวเตอร์ ้เขียนโปรแกรมจะต้องเข้าใจหลักเกณฑ์ของภาษา
โปรแกรม และระบบการทำงานของคอมพิวเตอร์ ว่ามีโครงสร้างและวิธีการใช้คำสั่งอย่างไร ซึ่งในการเขียนโปรแกรมคอมพิวเตอร์ มีหลักเกณฑ์การเขียนโปรแกรม ประกอบด้วย 5 ขั้นตอนดังนี้คือ
                         1. ทำความเข้าใจและวิเคราะห์ปัญหา
                         2. กำหนดแผนในการแก้ปัญหา
                         3. เขียนโปรแกรมตามแผนที่กำหนด
                         4. ทดสอบและตรวจสอบความถูกต้องของโปรแกรม
                         5. นำโปรแกรมที่ผ่านการทดสอบไปใช้งาน
ทำความเข้าใจและวิเคราะห์ปัญหา
           ผู้เขียนโปรแกรมจะต้องทำความเข้าใจและทำการวิเคราะห์ปัญหาเปํนลำดับแรก เพราะการทำความเข้าใจและวิเคราะห์ปัญหาเป็นสิ่งที่สำคัญโดยที่ผู้เขียนโปรแกรมจะต้อง
วิเคราะห์ปัญหาร่วมกับนักวิเคราะห์ระบบว่าโจทย์ต้องการผลลัพธ์อะไร และการให้ได้มาซึ่งผลลัพธ์นั้น ต้องป้อนข้อมูลอะไรบ้าง และเมื่อป้อนข้อมูลเข้าไปแล้ว
จะทำการประมวลผลอย่างไร สิ่งหล่านี้ผู้เขียนโปรแกรมจะต้องทำความเข้าใจให้ถูกต้อง เพราะถ้าผู้เขียนโปรแกรมวิเคราะห์ปัญหาไม่ถูกต้อง ผลลัพธ์ที่ได้ออกมาก็อาจจะไม่ตรงกับ
ความต้องการของโจทย์ได้

กำหนดแผนในการแก้ปัญหา            หลังจากทำความเข้าใจและวิเคราะห์ปัญหาโจทย์จนได้ข้อสรปุว่าโจทย์ต้องการอะไรแล้ว
ผู้เขียนโปรแกรมก็จะทำการกำหนดแผนในการแก้ไขปัญหาโดยการเขียนผังงาน (Flowchart) ซึ่งการเขียนผังงานคือการเขียนแผนภาพที่เป็นลำดับ เพื่อแสดงขั้นตอนการทำงาน
ของโปรแกรมเพื่อให้ง่ายต่อการทำความเข้าใจ การเขียนผังงานมี 3 แบบคือ แบบเรียงลำดับ(Sequential) แบบมีการกำหนดเงื่อนไข(Condition) และแบบมีการทำงานวนรอบ(Looping)  ซึ่งสัญลักษณ์ของผังงาน(Flowchart Symbol)
มีดังนี้คือ
สัญลักษณ์
ความหมาย
เริ่มต้นทำงาน
กำหนดค่าหรือประมวลผล
รับข้อมูลและแสดงผลข้อมูล
รับข้อมูลทางแป้นพิมพ์
การตัดสินใจ
ใช้แสดงผลข้อมูลทางจอภาพ
ใช้แสดงผลข้อมูลออกทางเอกสาร
ทิศทางการดำเนินงาน
ตัวเชื่อมต่อภายในหน้าเดียวกัน
ตัวเชื่อมต่อไปหน้าอื่น
                           รูปแสดงสัญลักษณ์ที่ใช้ในการเขียนผังงาน

ตัวอย่าง การเขียนผังงานแบบเรียงลำดับ

รูป แสดงผังงานการบวกเลข 2 จำนวน

รูป แสดงการทำงานของผังงานการบวกเลข 2 จำนวน
อธิบายผังงานการบวกเลข 2 จำนวน
         1. Start เริ่มต้นการทำงาน
         2. x=5 และ y=3 กำหนดค่าให้ตัวแปร x มีค่าเท่ากับ 5 ตัวแปร y มีค่าเท่ากับ 3
         3. z=x+y เมื่อ x+y ได้ค่าเท่าไรให้นำไปเก็บไว้ยังตัวแปร z
         4. แสดงค่าที่เก็บไว้ในตัวแปร z
         5. Stop จบการทำงาน


ตัวอย่าง  
การเขียนผังงานแบบมีการกำหนดเงื่อนไขโดยรับค่าความสูง 1-150  ซม. แสดงว่า เตี้ย แต่ถ้าเกินแสดงว่าสูง
อธิบายผังงานรับค่าอายุ
         1. Start เริ่มต้นการทำงาน
         2. รับค่าความสูงมาเก็บไว้ในตัวแปร  tall
         3. ตรวจสอบเงื่อนไขว่าความสูงุอยู่ในช่วง 1 ถึง  150  ซม. หรือไม่
         4. ถ้าใช่แสดงข้อความ You are  short ถ้าไม่ใช่ให้พิมพ์ You are tall
         5. Stop จบการทำงาน
เขียนโปรแกรมตามแผนที่กำหนด          เมื่อผู้เขียนโปรแกรมเขียนผังงานเสร็จเรียบร้อยแล้ว ขั้นตอนต่อไปคือ
การเขียนโปรแกรมตามผังงาน ที่ได้กำหนดเอาไว้ ในกรณีที่เขียนด้วยภาษาซี
การเขียนโปรแกรมก็ต้องเป็นไปตามกฎเกณฑ์และโครงสร้างของภาษาซี เท่านั้น 

ทดสอบและตรวจสอบความถูกต้อง 
         หลังจากขียนโปรแกรมเสร็จแล้วให้ทดลองคอมไพล์โปรแกรมว่ามีจุดผิดพลาดที่ใดบ้าง ในภาษาซีการคอมไพล์ โปรแกรมจะใช้วิธีการกดปุ่ม Alt + F9 ในกรณีที่ มีข้อผิดพลาด
จะแสดงในช่องด้านล่างของหน้าจอเอดิเตอร์ ในส่วนของกรอบ message ให้อ่านทำความเข้าใจ และแก้ไขตามที่โปรแกรมแจ้งข้อมูลผิดพลาด เมื่อเสร็จแล้วให้ทดลองรันโปรแกรม

นำโปรแกรมที่ผ่านการทดสอบไปใช้งาน 
         ถ้าหากรันโปรแกรมแล้วใช้งานได้แสดงว่าจะได้ไฟล์ที่มีส่วนขยายเป็น EXE เพื่อนำไปทดสอบ้งานในที่ต่างๆ และถ้านำไปใช้งานแล้วมีปัญหาก็ให้ทำการแก้ไขโปรแกรมอีกครั้ง แต่ถ้ารันโปรแกรมแล้วไม่มีปัญหาใดๆ แสดงว่าโปรแกรมนี้ใช้งานได้อย่างสมบูรณ์ จากนั้นผู้เขียนโปรแกรม ก็ต้องจัดทำคู่มือประกอบการใช้งานและนำไปเผยแพร่ต่อไป