วันอังคารที่ 3 กันยายน พ.ศ. 2556

โปรแกรมภาษาแอสแซมบลี


ภาษาแอสเซมบลี (อังกฤษAssembly Language) หมายถึง ภาษาที่ใช้ในการเขียนโปรแกรมภาษาหนึ่งซึ่งจะทำงานโดยขึ้นกับรุ่นของไมโครโพรเซสเซอร์ หรือ "หน่วยประมวลผล" (CPU) ของเครื่องคอมพิวเตอร์
การใช้ภาษาแอสเซมบลีจำเป็นต้องผ่านการแปลภาษาด้วยคอมไพเลอร์เฉพาะเรียกว่า แอสเซมเบลอร์ (assembler) ให้อยู่ในรูปของรหัสคำสั่งก่อน (เช่น .OBJ) โดยปกติ ภาษานี้ค่อนข้างมีความยุ่งยากในการใช้งาน และการเขียนโปรแกรมเป็นจำนวนบรรทัดมากมากกว่า เมื่อเปรียบเทียบกับการใช้ภาษาระดับสูง เช่น ภาษา C หรือภาษา BASIC แต่จะทำให้ได้ผลลัพธ์การทำงานของโปรแกรมเร็วกว่า และขนาดของตัวโปรแกรมมีขนาดเนื้อที่น้อยกว่าโปรแกรมที่สร้างจากภาษาอื่นมาก จึงนิยมใช้ภาษานี้เมื่อต้องการประหยัดเวลาทำงานของเครื่องคอมพิวเตอร์ และเพิ่มประสิทธิภาพของโปรแกรม
เนื่องจากตัวคำสั่งภายในภาษาอ้างอิงเฉพาะกับรุ่นของหน่วยประมวลผล ดังนั้นถ้ามีการเปลี่ยนแปลงไปใช้กับหน่วยประมวลผลอื่นหรือระบบอื่น (เช่น หน่วยประมวลผล x86 ไม่เหมือนกับ z80) จะต้องมีการปรับแก้ตัวคำสั่งภายในซึ่งบางครั้งอาจไม่สามารถปรับปรุงแก้ไขได้อย่างสมบูรณ์

คำสั่งปฏิบัติการของภาษาแอสเซมบลี แบ่งออกเป็น 4 ชนิดคือ
1. Machine instruction เป็นคำสั่งที่ทำให้เกิดการปฏิบัติการ ( execution ) ชุดของคำสั่งอยู่ใน assembler's instruction
2. Assembler instruction เป็นคำสั่งที่บอกแอสเซมเบลร์ให้ทำการระหว่างการแอสเซมบลี source program.
3. Macro instruction เป็นคำสั่งที่บอกแอสสเซมเบลร์ให้ดำเนินการกับชุดของคำสั่งที่ได้บอกไว้ก่อนแล้ว ซึ่งจากชุดของคำสั่งนี้ แอสเซมเบลร์จะผลิตชุดของคำสั่งซึ่งต่อไปจะดำเนินการเหมือนหนึ่งว่าชุดของคำสั่งนี้เป็นส่วนหนึ่งของ source program แต่เริ่มแรก
4. Pseudo instruction เป็นคำสั่งที่บอกให้แอสเซมเบลร์รู้ว่า ควรปฏิบัติการเช่นไรกับข้อมูลการ branch อย่างมีข้อแม้ แมคโคและ listing ซึ่งปกติแล้วคำสั่งเหล่านี้จะไม่ผลิตคำสั่งภาษาเครื่องให้

วันอังคารที่ 6 สิงหาคม พ.ศ. 2556

โปรแกรมคอมพิวเตอร์


ความหมาย
กลุ่มชุดคำสั่งที่ใช้อธิบายชิ้นงาน หรือกลุ่มงานที่จะประมวลผลโดยคอมพิวเตอร์ โปรแกรมคอมพิวเตอร์อาจหมายถึง ซอฟต์แวร์ แอปพลิเคชัน หรือ โปรแกรม โปรแกรมคอมพิวเตอร์ส่วนใหญ่นั้นเป็นชุดคำสั่งที่ออกแบบตามขั้นตอนวิธี โดยปกติแล้วเขียนโดยโปรแกรมเมอร์ หรือไม่ก็สร้างโดยโปรแกรมอื่น โปรแกรมคอมพิวเตอร์ชุดหนึ่ง ๆ อาจเขียนขึ้นด้วยระบบรหัส หรือที่เรียกว่า ภาษาเครื่อง ซึ่งมักเขียนได้ยากและเหมาะกับช่างเทคนิคเฉพาะทาง ภายหลังจึงได้มีการสร้างภาษาโปรแกรมที่ใกล้เคียงภาษามนุษย์มากขึ้น เช่น ภาษาแอสเซมบลี (Assembly) ภาษาซี (C) ภาษาโคบอล (COBOL) ภาษาเบสิก (BASIC) ภาษา C# ภาษาจาวา เป็นต้น ผู้เขียนโปรแกรมคอมพิวเตอร์อาจเขียนโปรแกรมไว้ใช้ส่วนตัว หรือเพื่อให้ผู้อื่นใช้ต่อ ไม่ว่าจะเป็นโปรแกรมประยุกต์หรือไลบรารี เช่น โปรแกรมสำหรับวาดภาพ (graphics) โปรแกรมประมวลผลคำ (word processing) โปรแกรมตารางจัดการ (spread sheet) โปรแกรมระบบ (systems software) ซึ่งเป็นโปรแกรมที่ควบคุมการทำงานของเครื่องคอมพิวเตอร์ โดยมักติดตั้งมาจากโรงงานที่ผลิต และโปรแกรมระบบปฏิบัติการ (operating system) ที่จะทำหน้าที่เหมือนผู้จัดการคอยดูแลให้อุปกรณ์ต่าง ๆ ทำงานให้ประสานกัน ในการเขียนโปรแกรม ผู้เขียนจะต้องเข้าใจขั้นตอนวิธี (ขั้นตอนวิธี) และภาษาที่จะใช้เป็นอย่างดี จึงจะสามารถเขียนโปรแกรมเพื่อควบคุมเครื่องให้ทำงานได้ตามความต้องการ
ในภาษาไทยใช้คำว่า โปรแกรม แทนคำภาษาอังกฤษว่า Computer program และ software ทั้งนิยมเรียก 'การติดตั้งซอฟต์แวร์ ว่า 'การลงโปรแกรม ซึ่งไม่ตรงกับความหมายในภาษาอังกฤษที่ใช้กันในทุกวันนี้ ทำให้ผู้ใช้งานคอมพิวเตอณืในปัจจุบันเกิดความสับสน
ในยุคแรกของการใช้คอมพิวเตอร์ ผู้ใช้งานคอมพิวเตอร์จะต้องเขียนโปรแกรม เพื่อสั่งงานให้คอมพิวเตอร์ ทำงานตามที่สั่ง ตัวอย่างเช่น สั่งให้คอมพิวเตอร์แสดงตัวอักษรแบบต่างๆ แสดงประโยคที่ประกอบไปด้วยตัวอักษร สั่งให้พิมพ์ตัวอักษรออกไปยังเครื่องพิมพ์(Printer) โปรแกรมที่ได้รับความนิยมในสมัยนั้น ได้แก่ โปรแกรม CU Writer และ ราชวิถีเวิร์ดพีซี โดยใช้งานบนระบบปฏิบัติการดอส(DOS)
หลังจากนั้น Microsoft และ Apple ได้เปิดตัวระบบปฏิบัติการที่ทำงานบนหน้าจอ(GUI) การใช้งานคอมพิวเตอร์ก็ไม่ต้องเขียนชุดคำสั่งเช่นเดิมอีกต่อไป จึงได้มีการเปลี่ยนการเรียกเป็น แอปพลิเคชันซอฟแวร์(Application Software) แทนคำว่าโปรแกรม
แต่ผู้แปลคำศัพท์ภาษาไทยแปลคำว่า Application software ว่า โปรแกรมประยุกต์ อันที่จริงควรเรียกทับศัพท์ว่า ซอฟต์แวร์ประยุกต์ จะตรงตามความหมายที่สุด


ขั้นตอนการพัฒนาโปรแกรม
ขั้นตอนการพัฒนาโปรแกรมประกอบด้วย
  1. การวิเคราะห์ปัญหา
  2. การออกแบบโปรแกรม
  3. การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
  4. การทดสอบและแก้ไขโปรแกรม
  5. การทำเอกสารประกอบโปรแกรม
  6. การบำรุงรักษาโปรแกรม

การวิเคราะห์ปัญหา

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

การออกแบบโปรแกรม

การออกแบบขั้นตอนการทำงานของโปรแกรมเป็นขั้นตอนที่ใช้เป็นแนวทางในการลงรหัสโปรแกรม ผู้ออกแบบขั้นตอนการทำงานของโปรแกรมอาจใช้เครื่องมือต่างๆ ช่วยในการออกแบบ อาทิเช่น คำสั่งลำลอง (Pseudocode) หรือ ผังงาน (Flow chart) การออกแบบโปรแกรมนั้นไม่ต้องพะวงกับรูปแบบคำสั่งภาษาคอมพิวเตอร์ แต่ให้มุ่งความสนใจไปที่ลำดับขั้นตอนในการประมวลผลของโปรแกรมเท่านั้น

การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์

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

การทดสอบและแก้ไขโปรแกรม

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

การทำเอกสารประกอบโปรแกรม

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

การบำรุงรักษาโปรแกรม

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

วันอังคารที่ 9 กรกฎาคม พ.ศ. 2556

การถ่ายทอดความคิดในการแก้ปัญหาด้วยอัลกอรึทึม




 การเขียนรหัสจำลอง

             การเขียนรหัสจำลอง  (Pseudo  Code)      คือการเขียนอัลกอริทึมโดยใช้ประโยคภาษาอังกฤษที่สื่อความหมายง่าย ๆ  สามารถอ่านแล้วเข้าใจได้โดยทันที     แต่ก็สามารถใช้รูปแบบที่เป็นภาษาพูดด้วย
ภาษาไทยและภาษา
อังกฤษก็ได้

โครงสร้างของรหัสจำลองเริ่มต้นด้วยข้อความ Begin   แล้วอธิบายขั้นตอนการทำงานโดยใช้คำสั่งต่าง ๆ ที่ใกล้เคียงกับภาษาคอมพิวเตอร์ในการเขียนโปรแกรม เช่น

คำสั่ง  read    หมายถึง  การอ่านค่าหรือรับค่าข้อมูลตัวแปรตามที่กำหนดไว้

คำสั่ง  print    หมายถึง  การแสดงผลลัพธ์ที่ได้จากการคำนวณ

และพิมพ์ข้อความ End  เมื่อจบการทำงาน

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



ตัวอย่างการเขียน Pseudocode



1 : การเขียน Pseudocode ในการหาค่าผลบวกเลข 3 จำนวน ที่รับเข้ามาทางแป้นพิมพ์



Algorithm Summation



 1. SUM = 0



 2. INPUT (value1)



 3. INPUT (value2)



 4. INPUT (value3)



 5. SUM = value1 + value2 + value3



 6. OUTPUT (SUM)



 End.


2 : การเขียน Pseudocode ในการคำนวณหาพื้นที่สามเหลี่ยม



Algorithm Triangle area



 1. area = 0



 2. Read Base



 3. Read Height



 4. Compute area = 1/2 * Base * Height



 5. Point area



End.


3 : การหาค่าเฉลี่ย 



Algorithm Avarage_Sum



 1. count = 0



 2. sum =0



 3. INPUT (value)



 4. IF value > 0 THEN



         count = count+1



         sum = sum+value



         GOTO 3



         ELSE GOTO 5



 5. avarage = sum/count



 6. OUTPUT (avarage)



 7. END