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

Computer programming

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


นาย วิศรุต สามารถ

57670136 3301



 ภาษาซี (C Programming Language) คือ ภาษาคอมพิวเตอร์ใช้สำหรับพัฒนาโปรแกรมทั่วไป ถูกพัฒนาครั้งแรกเพื่อใช้เป็นภาษาสำหรับพัฒนาระบบปฏิบัติการยูนิกซ์ ( Unix Opearating System) แทนภาษาแอสเซมบลี ซึ่งเป็นภาษาระดับต่ำที่สามารถกระทำในระบบฮาร์ดแวร์ได้ด้วยความรวดเร็ว แต่จุดอ่อนของภาษาแอซเซมบลีก็คือความยุ่งยากในการโปรแกรม ความเป็นเฉพาะตัว และความแตกต่างกันไปในแต่ละเครื่อง เดนนิส ริตชี (Dennis Ritchie) จึงได้คิดค้นพัฒนาภาษาใหม่นี้ขึ้นมาเมื่อประมาณต้นปี ค.ศ. 1970 โดยการรวบรวมเอาจุดเด่นของแต่ละภาษาระดับสูงผนวกเข้ากับภาษาระดับต่ำ เรียกชื่อว่า ภาษาซี คลิปลับ VDO งานเสริมทำออนไลด์ผ่าน net สร้างรายได้ 5 หมื่น บ/ด ขั้นต่ำ 
          เมื่อภาษาซี ได้รับความนิยมมากขึ้น จึงมีผู้ผลิต compiler ภาษาซีออกมาแข่งขันกันมากมาย ทำให้เริ่มมีการใส่ลูกเล่นต่างๆ เพื่อดึงดูดใจผู้ซื้อ ทาง American National Standard Institute (ANSI) จึงตั้งข้อกำหนดมาตรฐานของภาษาซีขึ้น เรียกว่า ANSI C เพื่อคงมาตรฐานของภาษาไว้ไม่ให้เปลี่ยนแปลงไป
โครงสร้างของโปรแกรมภาษาซี และตัวอย่าง
          โปรแกรมในภาษาซีทุกโปรแกรมจะประกอบด้วยฟังก์ชันอย่างน้อย หนึ่งฟังก์ชัน คือ ฟังก์ชัน main โดยโปรแกรมภาษาซีจะเริ่มทำงานที่ฟังก์ชัน main ก่อน ในแต่ละฟังก์ชันจะประกอบด้วย
          1. Function Heading ประกอบด้วยชื่อฟังก์ชัน และอาจมีรายการของ argument (บางคนเรียก parameter) อยู่ในวงเล็บ
          2. Variable Declaration ส่วนประกาศตัวแปร สำหรับภาษาซี ตัวแปรหรือค่าคงที่ทุกตัว ที่ใช้ในโปรแกรมจะต้องมีการประกาศก่อนว่าจะใช้งานอย่างไร จะเก็บค่าในรูปแบบใดเช่น interger หรือ real number
          3. Compound Statements ส่วนของประโยคคำสั่งต่างๆ ซึ่งแบ่งเป็นประโยคเชิงซ้อน (compound statement) กับ ประโยคนิพจน์ (expression statment) โดยประโยคเชิงซ้อนจะอยู่ภายในวงเล็บปีกกาคู่หนึ่ง { และ } โดยในหนึ่งประโยคเชิงซ้อน จะมีประโยคนิพจน์ที่แยกจากกันด้วยเครื่องหมาย semicolon (;) หลายๆ ประโยครวมกัน และ อาจมีวงเล็บปีกกาใส่ประโยคเชิงซ้อนย่อยเข้าไปอีกได้

โครงสร้างภาษา C



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



ตัวอย่างการเขียนโปรแกรมอย่างง่าย

1.การเก็บค่า A  
1)

2)

2.การกำหนดขอบเขต
1)

2)

3.การเก็บค่าขนาด ไซส์
1)

2)

4.การกำหนดขอบเขตและเก็บค่าในแต่ละตัวแปรโดยมีการกำหนดค่าพารามิเตอร์
1)



2)

5.การกำหนดให้แสดงประโยคที่ต้องการ
1)

2)

6.การนับจำนวน
1)

2)

7.การถามข้อมูลโดยมีการโต้ตอบ
1)

2)

8.ถามอายุ มีเงื่อนไขการโต้ตอบกับผู้ใช้โปรแกรม
1)



2)

9.โปรแกรมตัดเกรด
1)

2)

10. ถามเพศ
1)


2)

11.การทำสูตรคูณ
1)

2)

12.การทำซ้ำโดยใช้คำสั่ง For
1)

2)

13.การใช้ wile
1)

2)

14.การใช้ wile , switch
1)

2)


*************************
MATLAB คืออะไร 
MATLAB เป็นภาษาคอมพิวเตอร์ชั้นสูง (High-level Language) สำหรับการคำนวณทางเทคนิคที่ประกอบด้วยการคำนวณเชิงตัวเลข กราฟิกที่ซับซ้อน และการจำลองแบบเพื่อให้มองเห็นภาพพจน์ได้ง่ายและชัดเจนชื่อของ MATLAB ย่อมาจาก matrix laboratory เดิมโปรแกรม MATLAB ได้เขียนขึ้นเพื่อใช้ในการคำนวณทาง matrix หรือเป็น matrix software ที่พัฒนาจากโพรเจ็กที่ชื่อ LINKPACK และ EISPACK

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

โปรแกรม MATLAB จะมีกล่องเครื่องมือที่ใช้ในการหาคำตอบเรียกว่า Toolbox โดยโปรแกรม MATLAB จะมี toolbox ในแต่ละสาขา เช่น การประมวลผลสัญญาณ (Signal processing toolbox) การประมวลผลภาพ (image processing toolbox) ระบบควบคุม (control system toolbox) โครงข่ายประสาท (neural networks toolbox) ฟัซซี่ลอจิก (fuzzy logic toolbox) เวฟเลท (wavelet toolbox) การติดต่อสื่อสาร (communication toolbox) สถิติ (Statistics toolbox) และสาขาอื่นๆ มากมาย ภายใน toolbox แต่ละสาขาก็จะมีฟังก์ชันต่างๆ ที่เกี่ยวข้องกับการแก้ปัญหาในสาขานั้นๆ ให้เลือกประยุกต์ใช้งานเป็นจำนวนมาก 

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



  • มีฟังก์ชันคณิตศาสตร์ให้เลือกใช้ในการคำนวณมากมายตลอดจนเราสามารถสร้างฟังก์ชันขึ้นมาใช้งานได้เองในสาขาที่ต้องการ โดยฟังก์ชันที่สร้างขึ้น (M-File) จะมีนามสกุลเป็น .M
  • Algorithm พัฒนาได้ง่ายไม่ยุ่งยาก สามารถแก้ไขปัญหาทางด้วนคณิตศาสตร์ที่มีความซับซ้อนได้ง่าย และรวดเร็วกว่าโปรแกรมภาษาอื่นๆ เช่น C Fortran Basic เป็นต้น
  • มีโครงสร้างแบบจำลอง (Simulink) ซึ่งเป็น Package ที่เรานำไปสร้างบล็อกไดอะแกรมเพื่อใช้ทดสอบ และประเมินผลระบบ Dynamic ต่างๆ ก่อนนำไปใช้งานจริง
  • สามารถวิเคราะห์และตรวจสอบข้อมูลได้ง่ายและรวดเร็ว
  • นำไปใช้งานในทางด้วนกราฟิกได้เป็นอย่างดีทั้งในด้านการแสดงภาพตั้งแต่สองมิติที่เป็น rectangular polar stair bar รวมทั้งภาพสมมิติในรูปแบบพื้นผิว (surface) และระดับสูงต่ำ (contour) ตลอดจนสามารถนำภาพมาต่อกัน และเก็บไว้เพื่อที่จะสร้างเป็นภาพเคลื่อนไหวได้อีกด้วย
  • ประยุกต์ใช้ในการสร้างรูปแบบ Graphical User Interface ได้โดยการเลือกใช้ object และเมนูต่างๆ โดยโปรแกรม MATLAB จะมีเครื่องมือให้เลือกใช้ เช่น เมนู รายการ ปุ่มกด และ fields object ต่างๆ เพื่อให้ผู้ใช้สามารถเลือกนำไปใช้ในการทำงานปฏิสัมพันธ์กันระหว่างผู้ใช้กับเครื่องคอมพิวเตอร์ได้
  • ทำการประมวลผลร่วมกับโปรแกรมอื่นได้ เช่น Fortran, Borland C/C++, Microsoft Visual C++ และ Watcom C/C++ ด้วยการเขียนฟังก์ชันที่เป็น mex ไฟล์โดยโปรแกรม MATLABจะเรียกใช้รูทีนจากโปรแกรมภาษา C และ Fortran
  • โปรแกรม MATLAB เป็นระบบ interactive ซึ่งส่วนของข้อมูลพื้นฐานเป็นอาร์เรย์ที่ไม่ต้องการมิติ ทำให้โปรแกรม MATLAB สามารถทำการแก้ปัญหาทางเทคนิคต่างๆ ได้มากใช้เวลาในการประมวลผลน้อย และดีกว่าโปรแกรมภาษา C และ Fortran    
  •                              
                                                        โครงสร้างของ MATLAB

    โครงสร้างของโปรแกรม MATLAB ประกอบด้วย 5 ส่วนใหญ่ คือ
    1. ภาษาโปรแกรม MATLAB (The MATLAB language)
      MATLAB เป็นโปรแกรมภาษาชั้นสูงที่ใช้ควบคุม flow statement ฟังก์ชัน โครงสร้างข้อมูลอินพุท/เอาท์พุท และลักษณะโปรแกรม Object-Oriented Programming ทำให้การเขียนโปรแกรมไม่ยุ่งยากเมื่อเทียบกับการเขียนโปรแกรมด้วยภาษาอื่นๆ เช่น C, Fortran, Basic เป็นต้น
    2. สถาปัตยกรรมในการทำงานของ MATLAB (The MATLAB working environment)
      MATLAB จะมีกลุ่มของเครื่องมือที่เป็นประโยชน์สำหรับการทำงานของผู้ใช้โปรแกรม หรือโปรแกรมเมอร์ประโยชน์ที่กล่าวนี้ก็คือการจัดการตัวแปรใน workspace การนำข้อมูลหรือการผ่านค่าตัวแปรเข้า/ออกและกลุ่มของเครื่องมือต่างๆ นี้ก็จะใช้สำหรับพัฒนา จัดการ ตรวจสอบความผิดพลาดของโปรแกรม (debugging) ที่ได้เขียนขึ้น
    3. ฟังก์ชันในการคำนวณทางคณิตศาสตร์ (The MATLAB mathematical function library)
      MATLAB จะมีไลบรารีทั่วไปที่ใช้ในการคำนวณอย่างกว้าง เช่น sine, cosine และพีชคณิตเชิงซ้อนโดยสามารถนำไปประยุกต์ใช้เป็นฟังก์ชันหรือไลบรารีเพิ่มเติมขึ้นจากไลบรารีที่ใช้กันโดยทั่วไป เช่น ฟังก์ชันในการหา eigenvalues และ eigenvectors การแยกตัวประกอบและส่วนประกอบของเมตริกซ์ด้วยวิธีต่างๆ การวิเคราะห์ข้อมูล การหาความน่าจะเป็น และการแก้ปัญหาระบบของสมการเชิงเส้นที่เป็นพื้นฐานของสาขาวิชาต่างๆ เป็นต้น ทำให้โปรแกรม MATLAB มีฟังก์ชันสำหรับใช้งานค่อนข้างมากและครอบคลุมในรายละเอียดของการคำนวณสาขาต่างๆ ได้มากขึ้น
    4. Handle Graphics
      ระบบกราฟิกของ MATLAB จะประกอบด้วยคำสั่งชั้นสูงสำหรับการพล็อตกราฟโดยมีพื้นฐานอยู่บนแนวความคิดที่ว่าทุกๆ สิ่งบนหน้าต่างรูปภาพของโปรแกรม MATLAB จะเป็นวัตถุ (Object) ซึ่งมีเอกลักษณ์เฉพาะตัว Handle Graphics ประกอบด้วยคำสั่งชั้นสูงให้คุณได้เลือกใช้ในการสร้าง Graphic User Interface บนพื้นฐานการประยุกต์ใช้งานของคุณ นอกจากนี้โปรแกรม MATLAB ยังมีฟังก์ชันที่ใช้สำหรับการแสดงภาพสองมิติ ภาพสามมิติ และการสร้างภาพเคลื่อนไหว
    5. The MATLAB Application Program Interface (API)
      API จะใช้เพื่อสนับสนุนการติดต่อจากภายนอกโดยใช้โปรแกรมที่เป็น mex ไฟล์ซึ่งเป็นไฟล์ซึ่งเป็นไฟล์ที่เขียนขึ้นโดยใช้ mex ฟังก์ชันใน MATLAB ซึ่งจะเรียกใช้รูทีนจากโปรแกรมภาษา C และ Fortran หรืออาจกล่าวได้ว่า API เป็นไลบรารีที่เขียนด้วยโปรแกรมภาษา C และ Fortran ที่มีการเชื่อมต่อกับโปรแกรม MATLAB ด้วยไฟล์ที่เป็น mex ฟังก์ชันอีกทั้ง MATLAB API นี้ยังมีความสามารถสำหรับการเรียก routine จาก MATLAB (dynamic linking) ก็ได้
                         คำสั่งโปรแกรม MATLAB รูปแบบการแสดงค่า ตัวอย่างค่า Pi
    format short การแสดงตัวเลข 5 ตำแหน่ง 3.1416
    format short e การแสดงตัวเลข 5 ตำแหน่งพร้อมเลข Exp 3.1416e+00
    format short g การแสดงตัวเลขที่ดีที่สุดระหว่างในรูปแบบสั้นๆ หรือในรูปแบบเลข Exp แล้วแต่ความเหมาะสม 3.1416
    format long การแสดงตัวเลข 16 ตำแหน่ง 3.14159265358979
    format long e การแสดงตัวเลข 16 ตำแหน่งพร้อมเลข Exp 3.14159265358979e+00
    format long g การแสดงตัวเลขแบบยาว 3.14159265358979
    format hex การแสดงตัวเลขแบบฐาน 16 คือ 1..9 และ A..F 400921fb54442d18
    format bank การแสดงตัวเลขแบบธนาคาร คือทศนิยม 2 ตำแหน่ง 3.14
    format + การแสดงค่าตัวเลขว่าเป็น บวก ลบ หรือ ศูนย์ +
    format rat การแสดงอัตราส่วนโดยประมาณ 355/113

    ตัวดำเนินการเครื่องหมายพิเศษและตัวดำเนินการเปรียบเทียบและตรรกะ
    ลักษณะการดำเนินการตัวดำเนินการรูปแบบทางคณิตศาสตร์รูปแบบทาง MATLAB
    การบวก
    การลบ
    การคูณ
    การคูณเชิงสมาชิก
    การหารทางขวา
    การหารทางซ้าย
    การหารเชิงสมาชิก
    การยกกำลัง
    การยกกำลังเชิงสมาชิก
    +
    -
    *
    .*
    /
    \
    ./
    Ab
    A.b
    a+b
    a-b
    axb
    -
    a/b
    b/a
    -
    ab
    -
    a+b
    a-b
    a*b
    a.*b
    a/b
    a\b
    a./b
    a^b
    a.^b

    ในทาง MATLAB คือการนำเอา Matrix a และ Matrix bมา Operate กัน เช่น + ,-,*,/,หรือยกกำลังกัน เพราะฉะนั้นเงื่อนไขการ Operate ต่างๆ จึงเป็นวิธีการทาง Matrix ส่วนเครื่องหมายที่มีจุด (.) แสดงว่าจะกระทำเฉพาะแถวกับหลักเดียวกัน เช่น
    a = 1 2 3
        4 5 6
    b = 2 2 2
        2 2 2
    a.^b = 1  4  9
          16 25 36
    
    
    
    ตัวดำเนินการเปรียบเทียบและตรรกะ
    ลักษณะดำเนินการ ตัวดำเนินการเปรียบเทียบและตรรกะ ตัวอย่าง
    
    ลักษณะดำเนินการตัวดำเนินการเปรียบเทียบและตรรกะตัวอย่าง
    น้อยกว่า น้อยกว่าหรือเท่ากับ มากกว่า มากกว่าหรือเท่ากับ เท่ากับ ไม่เท่ากับ และ หรือ ไม่< <= > >= == ~= & | ~x<10 x<=10 x>10 x>=10 x==1 x~=5 x>2 & y<1 x>2 | y<1 ~x
    ฟังก์ชั่นที่ใช้ในการหาค่าทางตรีโกณมิติ
    
    
    คำสั่งรายละเอียด
    sin(x)  sinh(x)  asin(x) asinh(x)ใช้คำนวณหาค่า Sine ของ x ใช้คำนวณหาค่า Hyperbolic sine.ของ x ใช้คำนวณหาค่า Inverse sine. ของ x ใช้คำนวณหาค่า Inverse hyperbolic sine. ของ x
    cos(x)  cosh(x)  acos(x)  acosh(x)ใช้คำนวณหาค่า cos ของ x ใช้คำนวณหาค่า Hyperbolic cos.ของ x ใช้คำนวณหาค่า Inverse cos ของ x ใช้คำนวณหาค่า Inverse hyperbolic cos. ของ x
    tan(x)  tanh(x)  atan(x)  atan2(x)  atanh(x)ใช้คำนวณหาค่า Tangent ของ x ใช้คำนวณหาค่า Hyperbolic Tangent.ของ x ใช้คำนวณหาค่า Inverse Tangent. ของ x ใช้คำนวณหาค่าFour quadrant inverse tangent ของ x ใช้คำนวณหาค่า Inverse hyperbolic Tangent ของ x
    sec(x)  sech(x)  asec(x)  asech (x)ใช้คำนวณหาค่า Secant. ของ x ใช้คำนวณหาค่า Hyperbolic Secant.ของ x ใช้คำนวณหาค่า Inverse Secant. ของ x ใช้คำนวณหาค่า Inverse hyperbolic Secant. ของ x
    csc(x)  csch(x)  acsc(x)  acsch(x) ใช้คำนวณหาค่า Cosecant ของ x ใช้คำนวณหาค่า Hyperbolic Cosecant.ของ x ใช้คำนวณหาค่า Inverse Cosecant. ของ x ใช้คำนวณหาค่า Inverse hyperbolic Cosecant ของ x
    cot(x)  coth(x)  acot (x)  acoth(x)ใช้คำนวณหาค่า Cotangent ของ x ใช้คำนวณหาค่า Hyperbolic Cotangent.ของ x ใช้คำนวณหาค่า Inverse Cotangent. ของ x ใช้คำนวณหาค่า Inverse hyperbolic Cotangent ของ x

    รูปแบบเวกเตอร์
    row Vecter และ colum


    การ plot กราฟ


    1) กำหนด X = [ 4 8 3 1 2 0 6 2 1 5 7 0 1 2] จากนั้นกดEnter ป้อนคำสั่ง plot (x)




    การเขียนชื่อกราฟ
    2) พิมพ์คำสั่ง title ('ชื่อที่ต้องการ')



    การสร้างเครื่องคิดเลข

    1) ใช้ฟังก์ชั่น guide โดยไปที่ guide >>Enter จากนั้นเลือก panalออกแบบตามต้องการ
    เลือกเครื่องมือ startic text สร้างกล่องรับค่าและแสดงผลลัพธ์ เลือกpush button เพื่อสร้างปุ่ม
    การใส่ชื่อปุ่มให้ดับเบิลคลิกที่ปุ่มที่ต้องการเลือก string เป็น 0 tagเป็น zero ทำเช่นเดียวกันกับปุ่มอื่น


    2) แก้ไขโค้ดเพื่อเป็นการเชื่อมปุ่ม


    3)


    การปรับภาพสีเป็นภาพขาวดำ


    1) Browse for folder เลือกโฟล์เดอร์ที่ต้องการ Enter ตั้งชื่อตัวแปร ตามด้วยชื่อภาพที่เลือก Enter


    2) ใช้ whos picture เพื่อตรวจสอบขนาดของภาพ


    3) เรียกไฟล์ภาพมาดูด้วยคำสั่ง figure , imshow(picture)


    4) เปลี่ยนสีภาพเป็นสี โทน เกว์สเกล   ด้วยคำสั่ง grey1=rgb2greyแสดงผล figure , imshow(grey1)


    5) เรียกดูค่าการสะท้อนด้วยคำสั่ง figure , imshist(grey1)


    6) ทำภาพเป็นขาวดำ




    แลปการทำภาพสามมิติ







    ************







                                                                         

    ไม่มีความคิดเห็น:

    แสดงความคิดเห็น