วันพฤหัสบดีที่ 29 สิงหาคม พ.ศ. 2556

โครงสร้างโปรแกรมภาษา

โครงสร้างโปรแกรมภาษา
ภาษา Pascal
ภาษาปาสคาลเป็นภาษาคอมพิวเตอร์ชั้นสูงที่พัฒนาขึ้นโดย Nicklaus Wirth และได้ตั้งชื่อว่าปาสคาล (Pascal) เพื่อให้เกียรติแก่นักวิทยาศาสตร์ชาวฝรั่งเศส ชื่อ Blaise Pascal ภาษาปาสคาล พัฒนามาจากภาษา Algol โดยพัฒนาให้เป็นภาษาสำหรับฝึกหัดเขียนโปรแกรมคอมพิวเตอร์ ภาษาปาสคาลจะมีลักษณะเป็นภาษาคอมพิวเตอร์แบบประมวลความหรือคอมไพเลอร์ (Compiler) เมื่อเทียบกับภาษาคอมพิวเตอร์ชั้นสูงอื่น ๆ จะพบว่าภาษาปาสคาลเป็นภาษาที่มีการวางระบบและจัดรูปแบบที่มีโครงสร้างแน่นอนตายตัว จึงทำให้ภาษาปาสคาลเป็นภาษาที่เหมาะสำหรับการเขียนโปรแกรมโครงสร้าง (Structured Program) มากกว่าภาษาอื่น ๆ ที่ใช้กันอยู่จึงทำให้ได้รับความนิยมและนำมาประยุกต์ใช้งานต่าง ๆ อย่างแพร่หลาย
1.1 โครงสร้างของโปรแกรมภาษาปาสคาล
โปรแกรมในภาษาปาสคาล แบ่งเป็น 3 ส่วนคือ
1. ส่วนหัว (Heading) เป็นการประกาศชื่อของโปรแกรม ขึ้นต้นด้วยคำว่า PROGRAM ตามด้วยชื่อของโปรแกรม และจบบรรทัดด้วย;
รูปแบบ

PROGRAM ชื่อโปรแกรม (รายชื่ออุปกรณ์);
ข้อสังเกต ชื่ออุปกรณ์ คือ INPUT, OUTPUT หรือชื่อของไฟล์ที่เกี่ยวข้องภายในโปรแกรมถ้าไม่ระบุจะถือว่า INPUT เข้าทาง keyboard และ OUTPUT ออกทางจอภาพ
2. ส่วนข้อกำหนด (Declaration part) คือส่วนตั้งแต่ส่วนหัวไปจนถึงคำว่า BEGIN ของโปรแกรมหลัก และเป็นส่วนที่เรากำหนดค่าต่าง ๆ ดังนี้
2.1 VAR เป็นการกำหนดแบบของข้อมูลให้แก่ตัวแปร
รูปแบบ

VAR รายชื่อตัวแปร : ประเภทของข้อมูล;
รูปแบบ
TYPE ชื่อของแบบ = ประเภทหรือค่าของข้อมูล;
3. ส่วนคำสั่งต่าง ๆ (Statement Part) เป็นส่วนสุดท้ายของโปรแกรม ขึ้นต้นด้วย “BEGIN” และปิดท้ายด้วย “END.”
ตัวอย่าง
BEGIN
Statement หรือคำสั่งต่าง ๆ;
END.
1.2 ชื่อ (Identifier)
ชื่อ คือคำที่ตั้งขึ้นเพื่อกำหนดใช้เป็นชื่อของโปรแกรม โปรแกรมย่อย ตัวแปร แบบของตัวแปร และค่าคงที่
การตั้งชื่อ
1. ตัวอักขระ (Character) ที่นำมาใช้ คือ ตัวอักษร ตัวเลข และ (_) Underline
2. จะนำเครื่องหมายใด ๆ มาใช้เป็นชื่อไม่ได้
3. ขึ้นต้นด้วยตัวอักษร หรือขีดล่าง
4. ความยาวของชื่อไม่เกิน 30 ตัว แต่จะมีความหมายเพียง 8 ตัวแรกเท่านั้น
1.3 คำ (Word)
คำในภาษาปาสคาล แบ่งออกเป็น 2 พวก คือ
1. พวกที่เกี่ยวข้องกับข้อมูล ได้แก่ แบบของข้อมูล ตัวแปร และค่าคงที่
2. พวกที่เกี่ยวกับคำสั่ง ได้แก่ คำสงวน (Reserved word) คำมาตรฐาน (Standard word) คำใหม่ (User defined word)
1.4 ข้อมูล (Data)
ภาษาปาสคาล แบ่งประเภทของข้อมูลเป็น 4 แบบ คือ แบบมาตรฐาน แบบผู้เขียนโปรแกรมกำหนด แบบโครงสร้าง และแบบพอยน์เตอร์
แบบมาตรฐาน เป็นข้อมูลพื้นฐานที่ใช้ในโปรแกรมทั่ว ๆ ไป เป็นข้อมูลที่มีค่าเป็นลำดับที่มีค่ามากน้อยตามลำดับ แบ่งเป็น 5 ประเภท
1. Integer เป็นข้อมูลเลขจำนวนเต็ม
2. Real เป็นข้อมูลเลขจำนวนจริงมีทศนิยม
3. Character เป็นข้อมูลตัวอักษร
4. String เป็นข้อมูลของชุดตัวอักษร เช่น String [30] เป็นการะบุค่าของสตริงว่ามีขนาด 30 ตัวอักษร
5. Boolean เป็นข้อมูลที่มีค่าเป็นไปได้ 2 ค่า คือ เป็นจริง (true), เป็นเท็จ (false) ตัวดำเนินการ (operators) ที่ใช้ในภาษาปาสคาล ได้แก่
NOT ให้กลับค่าทางคณิตศาสตร์ของ Boolean เช่น Not true เป็น false
ให้คูณเลขทางซ้ายกับเลขทางขวา
ให้หารโดยเลขทางซ้ายเป็นตัวตั้ง เลขทางขวาเป็นตัวหาร
DIV ให้หารแบบตัดเศษทิ้ง ใช้ได้เฉพาะเลขจำนวนเต็มคู่
MOD ให้หาเศษของการหาร ใช้ได้เฉพาะเลขจำนวนเต็มคู่
AND ให้ความเป็นจริง เมื่อทั้ง 2 กรณีเป็นจริงทั้งคู่
OR ให้ความเป็นจริง เมื่อกรณีใดกรณีหนึ่งเป็นจริง เช่น (X MOD Y = 0) 0R (x-y = 0) ข้อความนี้เป็นจริงเมื่อ X หารด้วย Y ลงตัว หรือเมื่อ X-Y เป็นศูนย์อย่างใดอย่างหนึ่ง หรือทั้ง 2 อย่าง
XOR ให้ความเป็นจริง เมื่อกรณีใดกรณีหนึ่งเป็นจริงเท่านั้น เช่น (X MOD Y Y= 0) XOR(X-Y=0) ข้อความนี้เป็นจริงเมื่อ X หารด้วย Y ลงตัว หรือเมื่อ X-Y เป็น 0 อย่างใดอย่างหนึ่งแต่ไม่ใช่ทั้ง 2 อย่างพร้อมกัน

     แบบผู้เขียนโปรแกรมกำหนดขึ้น ภาษาปาสคาลอนุญาตให้ผู้เขียนโปรแกรมกำหนดรูปแบบของข้อมูลขึ้นมาใช้งานเฉพาะภายในโปรแกรมได้เอง โดยการประกาศไว้ในคำสั่ง VAR หรือ TYPE แบ่งเป็น 2 แบบ
1. กำหนดแบบใหม่ เป็นการกำหนดรูปแบบใหม่ ๆ เพื่อใช้เฉพาะโปรแกรมนั้น ๆ
2. กำหนดช่วงของค่าข้อมูล เป็นการกำหนดช่วงของค่าของข้อมูลเฉพาะตัวแปรใดตัวแปรหนึ่งที่ใช้ภายในโปรแกรม
     แบบโครงสร้าง เป็นการนำเอาข้อมูลแบบมาตรฐานหรือข้อมูลที่ผู้เขียนโปรแกรมกำหนดขึ้นมาจัดให้มีระบบ มีโครงสร้างเพื่อใช้งานโดยเฉพาะ การจัดข้อมูลโครงสร้าง แบ่งเป็น 4 ประเภท คือ ข้อมูล Array, set, record และ file
     แบบพอยน์เตอร์ เป็นข้อมูลที่เป็นดัชนีสำหรับระบุข้อมูลอื่น ๆ อีกครั้งหนึ่ง ข้อมูลแบบนี้จะซับซ้อน ค่าของข้อมูลแบบพอยน์เตอร์จะไม่เป็นตัวเลข, ตัวอักษร แต่จะมีค่าเป็น address ในหน่วยความจำ RAM ที่ข้อมูลถูกเก็บอยู่

ภาษา C
โครงสร้างของโปรแกรมภาษาซีแบ่งออกเป็น 3 ส่วน
1. ส่วนหัวของโปรแกรม
ส่วนหัวของโปรแกรมนี้เรียกว่า Preprocessing Directive ใช้ระบุเพื่อบอกให้คอมไพเลอร์กระทำการ ใด ๆ ก่อนการแปลผลโปรแกรม ในที่นี่คำสั่ง #include <stdio.h> ใช้บอกกับคอมไพเลอร์ให้นำเฮดเดอร์ไฟล์ที่ระบุ คือ stdio.h เข้าร่วมในการแปลโปรแกรมด้วย โดยการกำหนด preprocessing directives นี้จะต้องขึ้นต้นด้วยเครื่องหมาย # เสมอ
คำสั่งที่ใช้ระบุให้คอมไพเลอร์นำเฮดเดอร์ไฟล์เข้าร่วมในการแปลโปรแกรม สามารถเขียนได้ 2 รูปแบบ คือ
- #include <ชื่อเฮดเดอร์ไฟล์> คอมไพเลอร์จะทำการค้นหาเฮดเดอร์ไฟล์ที่ระบุจากไดเรกทอรีที่ใช้สำหรับเก็บเฮดเดอร์ไฟล์โดยเฉพาะ (ปกติคือไดเร็คทอรีชื่อ include)
- #include “ชื่อเฮดเดอร์ไฟล์คอมไพเลอร์จะทำการค้นหาเฮดเดอร์ไฟที่ระบุ จากไดเร็คทอรีเดียวกันกับไฟล์ source code นั้น แต้ถ้าไม่พบก็จะไปค้นหาไดเร็คทอรีที่ใช้เก็บเฮดเดอร์ไฟล์โดยเฉพาะ

2. ส่วนของฟังก์ชั่นหลัก
ฟังก์ชั่นหลักของภาษาซี คือ ฟังก์ชั่น main() ซึ่งโปรแกรมภาษาซีทุกโปรแกรมจะต้องมีฟังก์ชั่นนี้อยู่ในโปรแกรมเสมอ จะเห็นได้จากชื่อฟังก์ชั่นคือ main แปลว่า หลักดังนั้น การเขียนโปรแกรมภาษซีจึงขาดฟังก์ชั่นนี้ไปไม่ได้ โดยขอบเขตของฟังก์ชั่นจะถูกกำหนดด้วยเครื่องหมาย { และ } กล่าวคือ การทำงานของฟังก์ชั่นจะเริ่มต้นที่เครื่องหมาย { และจะสิ้นสุดที่เครื่องหมาย } ฟังก์ชั่น main() สามารถเขียนในรูปแบบของ void main(void) ก็ได้ มีความหมายเหมือนกัน คือ หมายความว่า ฟังก์ชั่น main() จะไม่มีอาร์กิวเมนต์ (argument) คือไม่มีการรับค่าใด ๆ เข้ามาประมวลผลภายในฟังก์ชั่น และจะไม่มีการคืนค่าใด ๆ กลับออกไปจากฟังก์ชั่นด้วย
 3. ส่วนรายละเอียดของโปรแกรม
เป็นส่วนของการเขียนคำสั่ง เพื่อให้โปรแกรมทำงานตามที่ได้ออกแบบไว้
คอมเมนต์ในภาษาซี
       คอมเมนต์ (comment) คือส่วนที่เป็นหมายเหตุของโปรแกรม มีไว้เพื่อให้ผู้เขียนโปรแกรมใส่ข้อความอธิบายกำกับลงไปใน source code ซึ่งคอมไพเลอร์จะข้ามาการแปลผลในส่วนที่เป็นคอมเมนต์นี้ คอมเมนต์ในภาษาซีมี 2 แบบคือ
¨ คอมเมนต์แบบบรรทัดเดียว ใช้เครื่องหมาย //
¨ คอมเมนต์แบบหลายบรรทัด ใช้เครื่องหมาย /* และ */

ภาษา Basic
ภาษาเบสิก (BASIC programming language) เป็นภาษาโปรแกรมที่ออกแบบมาให้ใช้งานได้ง่าย และยังได้รับความนิยมมาจนถึงทุกวันนี้ เบสิกออกแบบมาให้ใช้กับคอมพิวเตอร์ตามบ้าน ชื่อภาษาเบสิก หรือ BASIC ย่อมาจาก Beginner's All-purpose Symbolic Instruction Code ต้องเขียนด้วยตัวพิพม์ใหญ่เสมอ 
บริษัทไมโครซอฟท์ได้นำภาษาเบสิกมาปรับปรุงให้ทันสมัย และพัฒนาเครื่องมือพัฒนาโปรแกรม Visual Basicทำให้เบสิกได้รับความนิยมในการพัฒนาโปรแกรมยุคใหม่ รุ่นล่าสุดของวิชาเบสิกเรียกว่า VB.NET 
ประวัติของภาษา Basic 
ภาษา Basic ตัวแรก ถูกคิดค้นเมื่อปี 1963 โดย นาย John Kemery และ นาย Thomas Kurtz Dartmouth College และบรรดานักเรียนนักศึกษาในความดูแลของพวกเขา ซึ่งหลายปีต่อมา ภาษา Basic ฉบับนี้ได้ชื่อเรียกอีกอย่างหนึ่งว่า Dartmouth BASIC. 
ท่านสามารถดูการพัฒนา จาก Basic สู่ VB.NET 
ภาษา Basic พื้นฐาน 
ภาษา Basic นั้นเป็นโปรแกรมที่เป็นพื้นฐานสำหรับหัดเขียนโปรแกรมก็ว่าได้ เนื่องจากเป็นภาษาที่เป็นคำพูดของคนเราทั่วไป เช่น ดังนี้ 
การใช้คำสั่ง Print 
ประเภทของค่าในภาษา Basic 
! : Single-precision
# : Double-precision
$ : String
% : Integer
& : Long 

เครื่องหมายทางคณิตศาสตร์ 
* : เครื่องหมายคูณ
- : เครื่องหมายลบ
= : เครื่องหมายแสดงความเท่ากันหรือตั่งค่า
> : เครื่องหมายมากกว่า
+ : เครื่องหมายบวก
. : จุดทศนิยม
<: เครื่องหมายน้อยกว่า
\: เครื่องหมายหารเต็มจำนวน
^: เครื่องหมายยกกำลัง


ภาษาแอสแซมบลี



คำสั่งในภาษาแอสแซมบลี แบ่งออกเป็น 2 ส่วน ส่วนแรกกำหนดการทำงาน เรียกว่า OP-CODE (Operation Code) ส่วนที่สองเรียกว่า Operand มีหน้าที่กำหนดเกี่ยวกับข้อมูล 
OP-CODE อยู่ในไบท์แรกของคำสั่งภาษาแอสแซมบลีแทนด้วยตัวอักษร ส่วนภาษาเครื่องแทนด้วยเลขฐาน 2 สองบิทแรก ในไบท์นี้เป็นตัวกำหนดความยาวของคำสั่งนั้นด้วย 
เมื่อดูเฉพาะบิทที่ 0 และ 1 จะบอกความยาวของคำสั่งนั้น ๆ ได้ดังนี้ 
บิท 0 1 ความยาว ชนิด 0 0
0 1
1 0
1 11 HW
2 HW
2 HW
3 HWRR
RX
RS / SI / S / RX
SS วิธีช่วยจำ 
- เอาเลขในบิทที่ 0 และ 1 รวมกันแล้วบวกอีก 1 จะเป็นความยาวของคำสั่งนั้น ๆ มีหน่วยเป็น HW ดังนี้ 
0 + 0 + 1 = 1 HW
0 + 1 + 1 = 2 HW
1 + 0 + 1 = 2 HW
1 + 1 + 1 = 3 HW
Operand เป็นตัวกำหนดเกี่ยวกับข้อมูล อาจจะเป็นข้อมูลเอง (Immediate Operand) หรือ อาจจะกำหนดตำแหน่งของข้อมูลด้วยหมายเลขรีจิสเตอร์ หรือกำหนดตำแหน่งของข้อมูลในหน่วยความจำของระบบ จากลักษณะของ Operand นี้ แบ่งชนิดของคำสั่งได้เป็น 6 ประเภท คือ 
1. RR (Register to Register) Operand ทั้งสองเป็นรีจิสเตอร์ 
2. RX (Register to Index Storage) Operand ตัวแรกอยู่ในรีจิสเตอร์ ตัวที่สองอยู่ในหน่วยความจำของระบบ กำหนดตำแหน่งโดยใช้ Base register บวก Index Register บวกกับ displacement
3. SS (Storage to Storage) Operand ทั้งสองอยู่ในหน่วยความจำของระบบ กำหนดตำแหน่งโดยใช้ Base register บวกกับ displacement
4. SI (Storage and Immediate) Operand ตัวแรกอยู่ในหน่วยความจำของระบบ ตัวที่สอบเป็นข้อมูลโดยตรง (Immediate) ซึ่งยาว 1 ไบท์ และเก็บอยู่ภายในตัวคำสั่งนั้นเลย 
5. RS (Register to Storage) Operand สองตัวแรกอยู่ในรีจิสเตอร์ ตัวหลังสุดอยู่ในหน่วยความจำของระบบ 
6. S (Storage) Operand มีอยู่ตัวเดียวอยู่ในหน่วยความจำของระบบ การกำหนดตำแหน่งของข้อมูล
การกำหนดตำแหน่งของข้อมูล เพื่อเรียกข้อมูลออกมาใช้นั้น ถ้าข้อมูลอยู่ในรีจิสเตอร์ กำหนดด้วยหมายเลของรีจิสเตอร์ รีจิสเตอร์ที่เก็บข้อมูลไว้ได้แก่ รีจิสเตอร์สำหรับใช้งานทั่วไป (หมายเลข 0 – 15 ) รีจิสเตอร์สำหรับควบคุม (หมายเลข 0 – 15) รีจิสเตอร์สำหรับเลขทศนิยม (หมายเลข 0, 2, 4 และ 6)
โปรแกรม จะถูกเก็บไว้ในหน่วยความจำ ซึ่งอยู่ในรูปแบบของเลขไบนารี่ที่เรียกว่าภาษา Machine ซึ่งเป็นภาษาที่สามารถ ติดต่อให้คอมพิวเตอร์ เข้าใจได้ ภาษา Machine นี้จะจัดให้อยู่ในรูปแบบที่เป็นเลขฐานสิบหก (HEX) เช่น คำสั่ง 8 บิต 11101011B (B-ไบนารี่) เขียนได้เป็น 0EBH(H-ฐานสิบหก) แต่ก็เป็นการที่จะเข้าใจความหมาย ได้ยากในการใช้งาน การที่จะทำความเข้าใจภาษา Machine จะมีการใช้สัญลักษณ์ (Symbols) ที่เรียกว่า Mnemonics เพื่อแทนความหมายของคำสั่ง เช่น MOV A,#67H หมายความว่านำข้อมูลค่าคงที่ 67H ไปเก็บไว้ใน reg. A) โปรแกรมที่เขียนด้วยรหัส Mnemonics เรียกว่า ภาษา Assembly และก่อนที่จะให้ CPU ทำงานตามโปรแกรมที่เขียนด้วยภาษา Assembly ได้ แต่ต้องเปลี่ยนให้เป็นภาษา Machine ก่อน โดยใช้ โปรแกรมแอสเซมเบลอร์ 
Flowchart โฟว์ชาร์ต 
โฟว์ชาร์ตใช้แสดงลักษณะและอัลกอริทึมของโปรแกรมในรูปแบบผังกราฟที่เหมาะสม เป็นการลำดับงานแบบเป็นขั้นตอน โฟว์ชาร์ต มีความสำคัญมากในการทำ Program-Debugging ซึ่งสามารถใช้ทำความเข้าใจอัลกอริทึมที่แท้จริงของผู้เขียนโปรแกรม สำหรับผู้อื่นได้ดี และไม่เกิดการซ้ำซ้อนในการเขียนโปรแกรม เช่น 
ถ้าข้อมูลอยู่ในหน่วยความจำของระบบ การกำหนดตำแหน่งของข้อมูลเพื่อเรียกข้อมูลออกมานั้นทำได้โดยใช้รีจิสเตอร์ สำหรับใช้งานทั่วไปเข้าช่วยเก็บค่าต่าง ๆ ที่จะคำนวณตำแหน่งที่แท้จริงของข้อมูลค่าต่าง ๆ ที่เก็บไว้ได้แก่
1. Base Address เก็บไว้ใน 24 บิทของรีจิสเตอร์ กำหนดหมายเลขด้วย B Field (4 บิท) ในคำสั่ง เป็นตำแหน่งที่กำหนดจุดเริ่มต้นของโปรแกรม จะต้องกำหนดค่าให้ก่อนที่จะ Execute ซึ่งขึ้นอยู่กับที่ว่างในหน่วยความจำขณะนั้น 
2. Displacement เก็บไว้ใน 12 บิทของคำสั่ง หรือ D Field จะกำหนดตำแหน่งของคำสั่งอ้างอิงกับจุดเริ่มต้นของโปรแกรม กำหนดได้ถึง 4095 ไบท์ ( 2 กำลัง 12 - 1 ซึ่ง 12 ก็คือจำนวนบิทของเลขฐาน 2) จึงใช้ชี้ตำแหน่งได้ 4096 ไบท์ คือ displace จาก Base 0 – 4095 ไบท์ 
ตำแหน่งที่แท้จริง = ค่าใน Base Register + Displacement

เหตุผลที่ต้องกำหนดตำแหน่งที่ในหน่วยความจำของระบบด้วย Base & Displacement ก็เพราะคอมพิวเตอร์ทำงานในสภาพ Multiprogramming จะมีโปรแกรมหลายโปรแกรมอยู่ในหน่วยความจำพร้อม ๆ กัน โปรกแรกมที่จะนำเข้ามาในระบบจะต้องสามารถย้ายตำแหน่งไปมาได้ (Relocate) โปรแกรมที่เข้ามาจะกำหนดตำแหน่งใหม่ได้เสมอ และคำสั่งที่ใช้วิธีนี้ความยาวของคำสั่งจะสั้นกว่าการกำหนดตำแหน่งโดยตรง 



ภาษา Java               
โครงสร้าง ภาษา Java (Java Structure)
1. เครื่องหมาย ในการควบคุม Structure
1.1 Comment
 คือข้อความที่แทรกเข้าไปในโปรแกรม แต่ไม่มีผลต่อการทำงานของโปรแกรม เช่นในกรณีที่เราต้องการอธิบาย Source code ไว้ใน โปรแกรม วิธีการคือ
- comment ทีละ บรรทัด ใช้เครื่องหมาย // ตามด้วยข้อความที่ต้องการ comment เช่น
//comment comment
- comment แบบครอบทั้งข้อความ ใช้เครื่องหมาย /* ข้อความที่ต้องการ comment */ เช่น
/*
Comment
Comment
*/
1.2 Keyword คือคำที่ถูกกำหนดไว้ใช้เองแล้วในภาษา Java ไม่สามารถนำมาใช้ในการตั้งชื่อภายใน โปรแกรมได้ ตัวอย่างเช่น class,boolean,char เป็นต้น

1.3 Identifiers คือชื่อที่ผู้เขียนตั้งขึ้นมา เพื่อใช้แทนอะไรก็ได้ไม่ว่าจะเป็น method ,ตัวแปร หรือ class ชื่อที่ถูกต้องควรประกอบด้วย ตัวอักษร ,ตัวเลข ,_,$ และจะต้องขึ้นต้นด้วย ตัวอักษรเท่านั้น

1.4 Separators คือ อักษร หรือ เครื่องหมายที่ใช้แบ่งแยกคำในภาษา มีดังต่อไปนี้
- เครื่องหมาย () ใช้สำหรับ
1. ต่อท้ายชื่อ Method ไว้ให้ใส่ parameter
เช่น private void hello( );
2. ระบุเงื่อนไขของ if ,while, for ,do
เช่น if ( I = 0 )
3. ระบุชื่อชนิดข้อมูลในการ ทำ casting
เช่น String a=( String )x;
- เครื่องหมาย{ }ใช้สำหรับ
กำหนดขอบเขตของ method แล class
เช่น class A{
}
Private void hello(){
} 
2. กำหนดค่าเริ่มต้นให้ กับตัวแปร Array
เช่น String a[]={"A","B","C"};
- เครื่องหมาย [ ] ใช้สำหรับ
1. กำหนดตัวแปรแบบ Array
เช่น String a[ ];
2. กำหนดค่า Index ของตัวแปร array
เช่น a [0] =10;
- เครื่องหมาย; ใช้เพื่อปิดประโยค
เช่น String a;
- เครื่องหมาย, ใช้สำหรับ
1. แยกชื่อตัวแปรในประโยค
เช่น String a, b, c;
- เครื่อง หมาย. ใช้สำหรับ
1. แยกชื่อ package, subpackage และชื่อ class
เช่น package com.test.Test1;
2. ใช้เพื่อเรียกใช้ ตัวแปร หรือ Method ของ Object

เช่น object. Hello ();      

ภาษา Cobol

ภาษาโคบอล (COBOL programming language) เป็นภาษาโปรแกรมระดับสูงภาษาหนึ่งที่อยู่มาอย่างยาวนาน COBOL ย่อมาจาก Common Business Oriented Language เป็นภาษาที่นิยมนำไปใช้ทางธุรกิจ ถูกพัฒนาขึ้นเมื่อ ค.ศ. 1959 โดยนักคอมพิวเตอร์กลุ่มหนึ่งที่เรียกตัวเองว่า Conference on Data Systems Languages (CODASYL) และตั้งแต่ปี ค.ศ. 1959 ภาษาโคบอลมีการแก้ไขและปรับปรุงอยู่ตลอด ดังนั้น เพื่อขจัดปัญหาความแตกต่างของตัวภาษาโคบอลในแต่ละเวอร์ชัน สถาบันมาตรฐานแห่งชาติอเมริกัน (ANSI) จึงได้พัฒนามาตรฐานกลางขึ้นมาในปี ค.ศ. 1968 เป็นที่รู้จักกันในนามของ ANS COBOL ต่อมาเมื่อ ปี ค.ศ. 1974 ทาง ANSI ได้นำเสนอ ANS COBOL รุ่นใหม่ที่มีคุณสมบัติที่ดีกว่ารุ่น 1968 และในปี ค.ศ. 1985 ANSI ก็นำเสนออีกรุ่นหนึ่งที่มีคุณสมบัติมากกว่ารุ่นปี 1974 
รูปแบบภาษาโคบอลแบ่งออกเป็น 4 ดิวิชั่น คือ

1. Identification division การกำหนดชื่อโปรแกรมและชื่อผู้เขียน
2. Environment division การอธิบายเกี่ยวกับคอมพิวเตอร์
3. Data division การอธิบายเกี่ยวกับการประมวลผลข้อมูล
4. Procedure division การอธิบายเกี่ยวกับขั้นตอนการประมวลผล










วันพฤหัสบดีที่ 15 สิงหาคม พ.ศ. 2556

ระบบเลขฐาน


1.ตารางเลขฐาน
ฐานสิบ
ฐานสอง
ฐานแปด
ฐานสิบหก
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0000 0000
0000 0001
0000 0010
0000 0011
0000 0100
0000 0101
0000 0110
0000 0111
0000 1000
0000 1001
0000 1010
0000 1011
0000 1100
0000 1101
0000 1110
0000 1111
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F


2.การแปลงเลขฐานอื่นๆ เป็น ฐาน 10
1111001012 = 511
2FBC16 = 12043

2868 = 192


3.เลขฐานสิบเป็นรหัสนักศึกษาสองตัวท้าย
13 = 11012
13=1916
                13= 118

วันพุธที่ 31 กรกฎาคม พ.ศ. 2556

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

2.            จงเปรียบเทียบการอินเตอร์รัปต์ กับการดำเนินชีวิตของมนุษย์โดยทั่วไป ว่ามีความเกี่ยวข้องกันอย่างไร

3.            สาเหตุที่การป้องฮาร์ดแวร์ มีบทบาทสำคัญต่อระบบปฏิบัติการที่รองรับหลายๆ งาน อยากทราบว่าเป็นเพราะอะไร จงอธิบาย
เพราะ  ข้อผิดพลาดหลายอย่างมักจะตรวจสอบได้โดยฮาร์ดแวร์ ซึ่งสามารถควบคุมได้โดยระบบปฏิบัติการ ซึ่งจะทำการจัดการข้อผิดพลาดนั้นไปเลย

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

5.            ระบบปฏิบัติการจะมีการป้องกันอินพุต และเอาท์พุตอย่างไร จงอธิบาย
IOCS ต้องอาศัยรูทีนบางอย่างทั้งจากเคอร์เนล และผู้จัดการหน่วยความจำในการทำงานของมันอีกด้วย
เคอร์เนลจัดหา  รูทีนที่เหมาะสมกับการเกิดอินเตอร์รัพต์จากอุปกรณ์อินพุต-เอาต์พุต ให้ IOCS ทำงานหรือ IOCS เรียกใช้รูทีนผู้จัดการหน่วยความจำให้ช่วยหาเนื้อที่ในหน่วยความจำเพื่อใช้ทำบัฟเฟอร์ของอุปกรณ์ต่างๆ

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

7.            ระบบปฏิบัติการจะมีการป้องกันซีพียูอย่างไร จงอธิบาย
ซีพียู (cpu Scheduling) เป็นหลักการทำงานหนึ่งของระบบปฏิบัติการที่ทำให้คอมพิวเตอร์มีความสามารถในการรันโปรแกรมหลายๆ โปรแกรมในเวลาเดียวกัน ซึ่งการแบ่งเวลาการเข้าใช้ซีพียูให้กับโปรเซสที่อาจถูกส่งมาหลายๆ โปรเซสพร้อมๆกัน ในขณะที่ซีพียูอาจมีจำนวนน้อยกว่าโปรเซส หรืออาจมีซีพียูเพียงตัวเดียว จะทำให้คอมพิวเตอร์สามารถทำงานได้ปริมาณงานที่มากขึ้นกว่าการที่ให้ซีพียูทำงานให้เสร็จทีละโปรเซส ในบทนี้ เราจะมาพูดถึงอัลกอริทึมพื้นฐานของการจัดเวลาซีพียูนี้ โดยจะพูดถึงวิธีการหลักๆ ที่แต่ละอัลกอริทึมมีแตกต่างกัน ข้อดีข้อเสีย และความเหมาะสมต่อระบบงานแบบต่างๆ เพื่อการเลือกใช้อย่างถูกต้อง

8.            โครงสร้างของระบบปฏิบัติการประกอบด้วยกี่ส่วน อะไรบ้าง
ตัวส่ง (dispatcher) มีหน้าที่จัดการส่งโปรเซสเข้าไปให้ซีพียู
ตัวจัดการอินเตอร์รัพต์ขั้นแรก (first-level interrupt handler) มีหน้าที่วิเคราะห์การอินเตอร์รัพต์ที่ เกิดขึ้น และเลือกใช้รูทีนที่เหมาะสมกับอินเตอร์รัพต์นั้นๆ
ตัวควบคุมมอนิเตอร์ (monitor control) มีหน้าที่ควบคุมดูแลการเข้าถึงมอนิเตอร์ต่าง ๆ ของระบบ

9.            ในการจัดการกับโปรเซส ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
ระบบปฏิบัติการบางระบบ   เช่น ระบบปฏิบัติการดอสหรือเอ็มเอสดอล (MS-DOS)มีการจัดการโปรเซสที่ค่อนข้างง่าย เนื่องจากจัดการโปรเซสแบบผู้ใช้คนเดียว (Sing User)ทำให้การใช้งานซีพียูอาจไม่ได้รับความคุ้มค่านัก แต่ก็เป็นระบบปฏิบัติการที่ออกแบบง่ายเพราะไม่ค่อยมีความสลับซับซ้อน   อีกทั้งยังใช้ทรัพยากรค่อนข้างน้อย
แต่ในระบบปฏิบัติการที่ออกแบบมาใช้งานกับระบบใหญ่ ๆ นั้นจะถูกออกแบบมาเพื่อรองรับการใช้งานหลายๆ คน ( Multiuser)  ซึ่งอาจมีซีพียูหนึ่งตัวหรือมากกว่า ( Multiprocessor) ก็เป็นได้  ดังนั้นระบบปฏิบัติการที่ใช้กับระบบคอมพิงเตอร์ดังกล่าว  จำเป็นต้องได้รับการออกแบบที่ดี  และที่สำคัญย่อมมีความสลับซับซ้อนยิ่งขึ้นด้วย
สำหรับระบบคอมพิวเตอร์ที่ส่วนใหญ่มักมีเพียงซีพียูเดียว  และใช้ระบบปฏิบัติการที่รองรับการใช้งานหลายๆโปรแกรมนั้น   ในความเป็นจริง ซีพียูจะทำงานได้ทีละงานเท่านั้นซึ่งเป็นลักษณะแบบ  Sequential  Execution  ดังที่นอยมานน์ได้กล่าวไว้   แต่เนื่องด้วยการทำงานของซีพียูมีความรวดเร็วมาก  เกิดสายตามนุษย์ที่จะจับผิดว่าซีพียูทำงานที่ละงานอยู่   ดังนั้นจึงดูเหมือนว่าซีพียูสามารถทำงานได้หลายๆ งานในขณะเดียวกัน งานที่ส่งไปประมวลผลในซีพียู  จะเรียกว่าโปรเซส  โดยโปรเซสคือโปรแกรมที่กำลังถูกประมวลหรือถูกเอ็กซคิวต์ หรือ อาจกล่าวอีกนัยหนึ่งว่า โปรแกรมนั้นทำการครอบครองซีพียูในขณะนั้นอยู่  ซึ่งกระบวนการดังกล่าว  ซีพียูก็ต้องมีการบวนการจัดการโปรเซสที่ครอบครองรวมถึงการจัดการกับโปรเซสอื่น ๆ ที่ต้องการขอใช้บริการซีพียู

10.    ในการจัดการกับหน่วยความจำ ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ

การจัดสรรหน่วยความจำ

การจัดการอุปกรณ์

การจัดการข้อมูล


11.    ในการจัดการกับแฟ้มข้อมูล ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
การสร้างแฟ้มข้อมูล (file creating) คือ การสร้างแฟ้มข้อมูลเพื่อนำมาใช้ในการประมวลผล ส่วนใหญ่จะสร้างจากเอกสารเบื้องต้น (source document) การสร้างแฟ้มข้อมูลจะต้องเริ่มจากการพิจารณากำหนดสื่อข้อมูลการออกแบบฟอร์มของระเบียน การกำหนดโครงสร้างการจัดเก็บแฟ้มข้อมูล (file organization) บนสื่ออุปกรณ์
การปรับปรุงรักษาแฟ้มข้อมูลแบ่งออกได้ 2 ประเภท คือ
1) การค้นคืนระเบียนในแฟ้มข้อมูล (retrieving) คือ การค้นหาข้อมูลที่ต้องการหรือเลือกข้อมูลบางระเบียนมาใช้เพื่องานใดงานหนึ่ง การค้นหาระเบียนจะทำได้ ด้วยการเลือกคีย์ฟิลด์ เป็นตัวกำหนดเพื่อที่จะนำไปค้นหาระเบียนที่ต้องการในแฟ้มข้อมูล ซึ่งอาจจะมีการกำหนเงื่อนไขของการค้นหา เช่น ต้องการหาว่า พนักงานที่ชื่อสมชายมีอยู่กี่คน
2) การปรับเปลี่ยนข้อมูล (updating) เมื่อมีแฟ้มข้อมูลที่จะนำมาใช้ในการประมวลผลก็จำเป็นที่จะต้องทำหรือรักษาแฟ้มข้อมูลนั้นให้ทันสมัยอยู่เสมอ อาจจะต้องมีการเพิ่มบางระเบียนเข้าไป (adding) แก้ไขเปลี่ยนแปลงค่าฟิลด์ใดฟิลด์หนึ่ง (changing) หรือลบบางระเบียนออกไป (deleting)

12.    ในการจัดการกับอุปกรณ์อินพุต/เอาต์พุต ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
ติดตามสถานะของอุปกรณ์ทุกชิ้น
กำหนดอุปกรณ์ให้ใช้งาน
การยกให้ (Dedicated Device)
การแบ่งปัน (Shared Device)
การจำลอง (Virtual Device)
การจัดสรรอุปกรณ์ (Allocate)
การเรียกคืน (Deallocate)
13.    ในการจัดการกับหน่วยความจำสำรอง เช่น ดิสก์ ระบบปฏิบัติการจะมีกิจกรรมใดบ้างที่ต้องรับผิดชอบ
การจัดการหน่วยความจำจัดเป็นหน้าที่หนึ่งของระบบปฏิบัติการ หน่วยความจำนี้เป็นองค์ประกอบหนึ่งในการพิจารณาขีดความสามารถของเครื่องคอมพิวเตอร์ด้วย กล่าวคือถ้าหากคอมพิวเตอร์มีหน่วยความจำมาก นั่นหมายถึง ขีดความสามารถในการทำงานก็จะเพิ่มขึ้นโปรแกรมที่มีความสลับซับซ้อนและมีสมรรถนะสูง มักเป็นโปรแกรมที่ ต้องการหน่วยความจำสูง แต่ก็เป็นที่ทราบแล้วว่าหน่วยความจำมีราคาที่แพง (เปรียบเทียบราคาฮาร์ดดิสก์ประมาณ 5,000 บาท สามารถได้ความจุถึง 10 CB ขึ้งไป แต่ถ้าเป็นแรมได้ความจุเพียงหน่วย MB เท่า) ดังนั้นระบบปฏิบัติการที่ ดีจะต้องมีการจัดการหน่วยความจำที่มีจำกัด ให้สามารถรองรับงานต่างๆ ที่จำเป็นต้องใช้หน่วยความจำจำนวนมากได้

14.    จงสรุปงานบริการของระบบปฏิบัติการมาพอเข้าใจ
- การให้โปรแกรมทำงาน (Program Execution)
- การรับส่งข้อมูล ( I / O Operation)
- การใช้งานระบบแฟ้มข้อมูล ( File – System Manipulation)
- การติดต่อสื่อสาร ( Communications)
- การตรวจสอบข้อผิดพลาด (Error Detection)
นอกจากระบบปฏิบัติการจะมีหน้าที่อำนวยความสะดวกให้แก่ผู้ใช้งานแล้ว ยังต้องประกันประสิทธิภาพในการปฏิบัติการของระบบเองอีกด้วย ในระบบผู้ใช้หลายคนนั้น เราสามารถเพิ่มประสิทธิภาพได้โดยใช้ทรัพยากรร่วมกัน
1. การจัดสรรทรัพยากร ( Resource Allocation )
2. การทำบัญชี ( Accounting )
3. การป้องกัน ( Protection )
การเรียกระบบ (System Call)
แยกต่างประเภทของคำสั่งเรียกระบบ (Type of System Calls)
1. การควบคุมกระบวนการ ( Process Control )
2. การใช้งานแฟ้มข้อมูล ( File Manipulation )
3. การใช้งานอุปกรณ์ ( Device Manipulation)
4. การใช้งานข้อมูลของระบบ ( Information Maintenance )
5. การสื่อสาร ( Communication )
โปรแกรมระบบ (System Programs)
โปรแกรมระบบช่วยให้การพัฒนาและการทำงานของโปรแกรมอื่นๆ ง่ายและสะดวก เราสามารถแบ่งได้หลายประเภท ดังนี้
การใช้งานแฟ้มข้อมูล ( File Manipulation )
- ข้อมูลสถานะของระบบ ( Status information )
- การแก้ไขแฟ้มข้อมูล ( File Modification )
- ตัวแปลภาษา ( Programming – Language Support )
- ตัวนำโปรแกรมลงหน่วยความจำและการทำงาน ( Program loading and Execution )
- การสื่อสาร ( Communication )

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