(ความรู้เบื้องต้น ) ( การเขียน Flowchart ) ( ความรู้เกี่ยวกับฐานข้อมูล ) ( การตรวจสอบข้อผิดพลาด ) ( โปรแกรมที่ดี ) |
ความรู้เบื้องต้นสำหรับการเขียนโปรแกรม
ชนิดของข้อมูลแยกตามวิธีการเก็บ
Bit คือหน่วยย่อยพื้นฐานของข้อมูลที่ประกอบด้วยเลข 0 กับ 1
Byte โดย 1 byte = 1 character = 8 bit
Word โดย 1 word = 4 byte
1. ตัวเลข Numeric ประกอบด้วย 0-9 สามารถนำไปคำนวณและเปรียบเทียบค่าได้
2. ตัวอักษร Alphabetic ประกอบด้วย A-Z สามารถเปรียบเทียบค่าได้อย่างเดียว
3. ตัวอักขระ Alphanumeric ประกอบด้วย 0-9,A-Z,เครื่องหมายอื่นๆ สามารถเปรียบเทียบค่าได้อย่างเดียว
ชนิดของข้อมูลแยกตามวิธีการใช้
หน่วยพื้นฐาน
1. จำนวนเต็ม หรือจำนวนนับ (Integer) ประกอบด้วยเลข 0 - 9
2. จำนวนจริง (Real Number) 2.1 Floating Point
2.2 Fixed Point
3. ตัวอักขระ (Character) ประกอบด้วย 3.1ตัวอักษร 3.2ตัวเลข 3.3 ตัวอักขระพิเศษ
4. ตัวแปรตรรกะ (Boolean, Logic, Flag) ประกอบด้วย 4.1 ค่าจริง(True) 4.2 ค่าเท็จ(False)
หน่วยรวม คือข้อมูลที่เกิดจากหน่วยพื้นฐาน หรือหน่วยรวมมารวมกัน
1. แถวลำดับ(Array) คือ แถวที่เก็บข้อมูลชนิดเดียวกัน
2. เรคคอร์ด(Record) คือ กลุ่มข้อมูลที่อาจจะเก็บข้อมูลชนิดเดียวกัน หรือต่างชนิดกัน ใช้แทนลักษณะของข้อมูลที่เก็บ
3. วลีอักขระ(String) คือ แถวลำดับของอักขระ
4. แฟ้มข้อมูล(File) คือกลุ่มของเรคคอร์ด
หน่วยข้อมูลเชิงนามธรรม(Abstract Data Type) คือข้อมูลที่ผู้ใช้สร้างเพื่อทำงานเฉพาะอย่างโดยผู้ใช้ ระบุที่เก็บและการทำงานของข้อมูลเอง
1. รายการโยง(Linklist) ข้อมูลที่เก็บข้อมูลและที่อยู่ของข้อมูลตัวถัดไป เพื่อ ลดการเคลื่อนย้ายข้อมูลให้น้อยที่สุด
2. แถวคอย(Queue) ข้อมูลที่เก็บโดยอาศัยแนวคิดว่า ข้อมูลใดที่เก็บไว้ก่อนจะถูกใช้งานก่อน First In First Out(FIFO)
3. กองซ้อน(Stack) ข้อมูลที่เก็บโดยอาศัยแนวคิดว่า ข้อมูลใดที่เก็บไว้หลังสุดจะถูกใช้งานก่อน Last In First Out(LIFO)
4. ต้นไม้(Tree) ข้อมูลที่เก็บที่อยู่ของข้อมูลตัวข้อมูลตัวซ้ายและตัวขวา เพื่อแสดงความสัมพันธ์ในระดับต่างๆของข้อมูล
เลขฐาน
เลขฐาน 2 binary ประกอบด้วยเลข 0 กับ 1 คือเลขฐานที่คอมพิวเตอร์ใช้
เลขฐาน 8 octal ประกอบด้วยเลข 0 ถึง 7
เลขฐาน 10 Decimal ประกอบด้วยเลข 0 ถึง 9 คือเลขฐานที่คนเราใช้
เลขฐาน 16 hexadecimal ประกอบด้วยเลข 0 ถึง 9 และ A แทน 10,B แทน 11,C แทน 12,D แทน 13,E แทน 14,F แทน 15
BCD(Binary Code Decimal)8421 ใช้ 4 หลักแทนเลข 1 ตัวในเลขฐาน 10 175 แทนด้วย 0001 0111 0101
ASCII(American Standard Code for Information Interchange) เป็นรหัส 8 Bitใช้ 8 หลักแทนอักขระ 1 ตัว
EBCDIC(Extended Binary Coded Decimal Interchange Code) เป็นรหัส 8 Bit
ตรรกะพื้นฐานสำหรับคอมพิวเตอร์
และ AND เงื่อนไขต้องเป็นจริงทั้งหมด จึงเป็นจริง |
หรือ OR เงื่อนไขต้องเป็นเท็จทั้งหมด จึงเป็นเท็จ |
ไม่ NOT เงื่อนไขเป็นเท็จ จึงเป็นจริง |
XOR เงื่อนไขต้องเป็นจริงหรือเท็จทั้งหมด จึงเป็นเท็จ |
Flow chart
เริ่มต้น/จบ start/end |
|
การทำงาน Process | |
อ่าน/เขียน read/write |
|
เงื่อนไข Branch เช่น ถ้าแล้ว if then else |
|
การวนรอบ Loop เช่น ขณะที่ while do, ทำจนกระทั่ง until do |
|
การเชื่อมโยง connection |
ฐานข้อมูลคือ การรวบรวมข้อมูลมาเก็บรักษาเพื่อลดการซ้ำซ้อนกันของข้อมูล และ สามารถเปลี่ยนแปลง แก้ไขข้อมูลที่เก็บไว้ได้ โดยจะเก็บข้อมูลในรูปของ Tables , Files , Data Groups มีการเชื่อมโยงระหว่าง Data Group โดยใช้ Key
key คือลักษณะที่บ่งบอกเอกลักษณ์ที่แตกต่างของสิ่งต่างๆที่อยู่ในกลุ่มเดียวกัน
primary key คือ key ที่เราเลือกมาใช้บ่งบอกเอกลักษณ์ของเรคคอร์ดที่อยู่ในแฟ้มข้อมูล
foreign key คือ key ที่อยู่ในแฟ้มข้อมูลที่อ้างอิงถึง primary key ของอีกแฟ้มข้อมูลหนึ่ง
relational database คือระบบฐานข้อมูลซึ่งมีโครงสร้างอยู่ในรูปแบบของตารางที่มีความสัมพันธ์กัน
SQL เป็นภาษาที่ใช้สืบค้นฐานข้อมูลเป็น 4GL
พจนานุกรมข้อมูล (data dictionary) เป็นเอกสารที่ใช้อ้างอิงถึงชื่อ, รูปแบบ, ชนิดและความหมายของแต่ละฟิลด์ในทุกแฟ้มข้อมูล เป็นระบบวิธีการในการเก็บรายละเอียดต่างๆ ของข้อมูลเพื่ออธิบายวิธีการใช้งานและ การเก็บข้อมูลในแฟ้มข้อมูล
รูปแบบ ของฐานข้อมูล เช่น เครือข่าย, ลำดับขั้น, ความสัมพันธ์
ขั้นตอนการออกแบบฐานข้อมูล
1. ออกแบบตัวอย่างของ เอกสาร, หน้าจอ, รายงาน ฯลฯ
นำรายการข้อมูลทั้งหมดจากแต่ละขั้นตอนการทำงาน มารวมกลุ่มเข้าด้วยกันโดยตัดกลุ่มที่ซ้ำซ้อนกันออก
เลือก Key ที่แสดงเอกลักษณ์ของข้อมูลที่อยู่ในกลุ่มนั้น เช่น I.D.CODE กำหนดความสัมพันธ์ระหว่าง Key กับ ข้อมูลในกลุ่มอื่นๆ เช่น ความสัมพันธ์ 1 to 1 HN , 1 to Many SN, Many to 1, Many to Many
2. ทำฐานข้อมูลให้เป็นรูปแบบมาตรฐาน( Normalization Form )
1NF ทุกๆ เรคคอร์ดในแฟ้มข้อมูล ต้องประกอบด้วยค่าเดี่ยว
2NF ทุกๆ ฟิลด์ที่ไม่ได้เป็น key ต้องขึ้นอยู่กับ key และต้องเป็น 1NF
3NF ทุกๆ ฟิลด์ที่ไม่ได้เป็น key ต้องไม่ขึ้นอยู่กับ key โดยการอ้างอิงแบบสืบทอด(transitive dependency)
และต้องเป็น 2NF
BCNF ทุกๆ ฟิลด์ที่เป็นฟิลด์ที่เป็นฟิลด์อ้างอิง(Determinant)ต้องเป็น key ของแฟ้มข้อมูล
1.3 Relational model
จะแสดงข้อมูลในรูปของตารางความสัมพันธ์ มี ตัวปฏิบัติการ 5 ตัว คือ
1. SEQUENCE จะเรียงลำดับข้อมูล
2. SELECT จะเลือกข้อมูลที่ตรงกับเงื่อนไขที่เรากำหนดไว้ ตรงกับคำสั่ง SQL คือ WHERE
3. PROJECT เลือกเฉพาะ Field ข้อมูลที่เรากำหนดไว้ ตรงกับคำสั่ง SQL คือ SELECT
4. UNION จะรวมตาราง 2 ตารางเข้าด้วยกัน
5. INNER JOINจะรวมตาราง 2 ตารางเข้าด้วยกัน เลือกเฉพาะที่มี Key เหมือนกัน
6. LEFT OUTER JOIN จะรวมตาราง 2 ตารางเข้าด้วยกัน เอาตารางแรกเป็นหลัก เลือกเฉพาะ Record ที่มี Key เหมือนกัน จากตารางที่ 2
เงื่อนไขที่ควบคุมความถูกต้องของฐานข้อมูล(Integrity Constraints)
1. Key Constraint ตรวจสอบว่า Key ต้องไม่ซ้ำกัน จึงจะบันทึกเก็บในฐานข้อมูลได้
2. Form of Relationship ตรวจสอบว่า เมื่อใส่ข้อมูลใหม่ลงไป ต้องมีรูปแบบความสัมพันธ์เหมือนเดิม
3. Domain Constraint3.1 Domain Type ตรวจสอบว่า จะใส่ข้อมูลใหม่ได้ ต้องเป็นชนิดเดียวกัน
3.2 Null Value ตรวจสอบว่า Primary Key ต้องมีข้อมูล ไม่ว่างเปล่า
4. Referential Integrity ตรวจสอบว่า เรคคอร์ดใหม่ มี Foreign Key ทั้งหมด ของแฟ้มข้อมูลที่อ้างอิงถึงกัน
5. Functional Dependency เงื่อนไขในการใช้งาน คือถ้าฟิลด์ 2 ฟิลด์หรือมากกว่าขึ้นอยู่กับฟิลด์ใด เมื่อ เรคคอร์ดของฟิลด์นั้นเหมือนกับ เรคคอร์ดอีกอันหนึ่งของฟิลด์เดียวกัน
ERROR
ประเภทของความผิดพลาด
1. ไวยากรณ์(ภาษา)ผิดพลาด (Syntax Error) คือ การเขียนโปรแกรมผิดกฏเกณฑ์ทางภาษา ตัวแปลภาษาจะตรวจพบ
และทำให้ไม่สามารถ Compile ได้
2. ความหมายผิดพลาด(Semantic Error) มี 2 แบบคือ
2.1 เงื่อนไขผิดพลาด(Logic Error) มักเกิดจากการเข้าใจผิดเกี่ยวกับขั้นตอนการทำงาน หรือสูตร และ อาจเกิดจากความพลั้งเผลอ
ตรวจพบได้ด้วยการอ่านทวน หรือใช้ข้อมูลทดสอบตรวจสอบ
2.2 การทำงานผิดพลาด(Runtime Error) เกิดขึ้นในบางกรณีของข้อมูล เช่นการหารด้วย 0, Y2K, ประมวลผลสิ้นปี,29 กุมภาพันธ์
ตรวจพบได้ด้วยใช้ข้อมูลทดสอบตรวจสอบ
การทดสอบโปรแกรม(Program Testing)
1 การตรวจสอบด้วยการอ่าน(Desk Checking) อาจทำโดยคนเดียวหรือทำเป็นทีม โดยยังไม่ได้ Run โปรแกรม
2 การทดสอบด้วยข้อมูล(Data Testing)ทดสอบตามข้อกำหนดของโปรแกรม โดย Run โปรแกรมกับข้อมูลทดสอบ
โดยทั่วไปการเลือกข้อมูลทดสอบจะต้องครอบคลุมข้อมูลปกติ, ข้อมูลไม่ปกติ และกรณีพิเศษ
2.1 Logic Driven Testing(Glass Box Testing) คือการทดสอบทุกเงื่อนไขของโครงสร้างของโปรแกรมอย่างน้อย 1 ครั้ง
2.2 Data Driven Testing(Black Box Testing) คือการทดสอบที่กำหนดข้อมูลทดสอบที่ครอบคลุมทุกเงื่อนไขที่เป็นไปได้ โดยไม่รู้โครงสร้างของโปรแกรม
3 การพิสูจน์ความถูกต้องของขั้นตอนการทำงานของโปรแกรม พิสูจน์ความถูกต้องตามข้อกำหนดโดยใช้วิธีทางตรรกะ และ
พิสูจน์สูตรการคำนวณที่ใช้ในโปรแกรม
หมายเหตุ เวลาทดสอบโปรแกรม การไม่พบที่ผิด ไม่ได้หมายความว่า ไม่มีที่ผิด เพียงแต่ไม่พบ
ความผิดพลาดที่มักจะพบในระบบทั่วไป(ERROR)
1. ไม่ได้กำหนดค่าเริ่มต้นให้กับตัวแปร
2. ไม่ได้ประกาศตัวแปร หรือสะกดชื่อ ตัวแปรผิด
3. ใช้ตัวแปรผิดเจตนา
4. ใช้การวนรอบผิด (Loop)
5. ใช้คำสั่งผิด
6. ใช้เงื่อนไขผิด ให้ระวังการใช้เงื่อนไขที่ซับซ้อน
1. ใช้ง่าย เข้าใจง่าย เรียนรู้ง่าย
2. รวดเร็ว
3. ถูกต้อง เชื่อถือได้ มีการตรวจสอบข้อผิดพลาดเสมอ ต้องมีการเตรียมรับความผิดพลาด เขียนให้ตรวจสอบได้ง่าย
4. ช่วยลดระยะเวลาการทำงานระบบเดิม(Manual)
5. แก้ไขปรับปรุงโปรแกรมได้ง่าย
6. คงทน คือ ไม่ Hang หรือ หลุดจากหน้าจอ หรือ Down ง่าย
7. ควรจะมีระบบรักษาความปลอดภัย(Password) และป้องกัน User จากการทำงานที่ไม่เหมาะสม
1. ตั้งชื่อข้อมูลให้สื่อความหมาย แสดงถึงหน้าที่และงานที่ต้องทำ
2. ข้อมูลที่ใช้ที่เดียวกัน ให้รวมกลุ่มไว้ใกล้ๆกัน
3. ต้องกำหนดค่าเริ่มต้นของตัวแปรไว้ในส่วนเริ่มต้น อย่าได้ละไว้
4. เขียนคำสั่งทีละบรรทัด เพื่อให้อ่านง่าย
5. ให้เว้นบรรทัด เพื่อแยกกลุ่มคำสั่งหรือโปรแกรมย่อย และย่อหน้า เพื่อแสดงโครงสร้างของ IF
6. ให้แทนค่าคงที่ด้วยชื่อเพื่อสะดวกในการแก้ไข
7. สร้างโปรแกรมจาก โปรแกรมย่อยหรือกลุ่มคำสั่ง มาประกอบกันโดยนำมาจากโปรแกรมเก่าที่ใช้งานได้ดี
8. ควรจะมีคำอธิบายการทำงานของโปรแกรมด้วย
9. โปรแกรมย่อยแต่ละโปรแกรมควรจะทำงานเพียงอย่างเดียว และมีขนาดเล็ก
10. เลือกแบบชนิดของข้อมูลที่เหมาะสมกับงาน ให้ใช้ชื่อตัวแปร แทนตัวแปรที่มีการระบุตำแหน่งของแถวลำดับ
11. ใช้วิธีทดสอบเงื่อนไขที่รวดเร็ว ให้ทดสอบเงื่อนไขที่เกิดขึ้นบ่อย ก่อนเงื่อนไขที่ไม่บ่อย
12. อย่านำงานที่ไม่จำเป็น ใส่ใน การวนรอบ(Loop)
13. ให้ User ใช้โปรแกรมได้ง่าย โดยใช้คำสั่งง่ายๆ เหมือนกันในทุกระบบ ทำให้หน้าจอ(Interface) คล้ายกันหรือเหมือนกัน
14. ใช้รูปแบบข้อมูลที่เป็นมาตรฐานทั่วไป
15. ให้ป้อนข้อมูลในลำดับหรือลักษณะเดียวกับแบบฟอร์มเดิมที่มีอยู่
16. ต้องให้ใส่ขอบเขตข้อมูลที่จะให้พิมพ์ ไม่ควรให้พิมพ์ทั้งหมดโดยไม่มีการตรวจสอบซ้ำอีกครั้ง
17. ไม่ควรให้เครื่องคอมพิวเตอร์พิมพ์ในบริเวณที่ไม่เปลี่ยนแปลง ให้พิมพ์เฉพาะข้อมูลที่จำเป็นต้องใช้
18. ควรจะมีชื่อรายงานทุกหน้า และมีหมายเลขหน้า กำกับ และมีการบอกจบรายงาน
ระบบประมวลผลข้อมูล มี 2 แบบ คือ 1 Batch 2 Real Time หรือ Interactive
Recursive การเรียกตัวเองขึ้นมาทำงาน
TopDown การออกแบบชนิดบนลงล่าง คือการกำหนดโครงหลักของงาน แล้วค่อยเพิ่มรายละเอียดเป็นขั้นๆไป
BottomUp การออกแบบชนิดล่างขึ้นบน คือ การสร้างโปรแกรมย่อยเพื่อทำงานในรายละเอียด
แล้วนำมารวมกันเป็นโปรแกรมเดียวกัน
การส่งข้อมูลระหว่างโปรแกรมย่อย โดยใช้ตัวแปรที่เรากำหนดไว้เรียกว่า parameter มีอยู่ 2 ชนิด
คือ 1 ตัวแปรบอกสถานะการทำงาน (Status Parameter)เช่น ข้อมูลหมดแล้วหรือยัง, พบข้อมูลหรือยัง
2 ตัวแปรเก็บข้อมูล (Data Parameter) จะเก็บข้อมูลมีค่าตามชนิดของข้อมูลที่เรากำหนดไว้
การอ้างอิงโดยแทนที่ call by reference การเรียกโปรแกรมย่อยโดยการอ้างอิงข้อมูลโดยระบุที่อยู่ของข้อมูลให้กับตัวแปร
การอ้างอิงโดยค่า call by value การเรียกโปรแกรมย่อยโดยการกำหนดค่าให้กับตัวแปร
การอ้างอิงโดยชื่อ call by name การเรียกโปรแกรมย่อยโดยการอ้างอิงข้อมูลโดยระบุชื่อของข้อมูลให้กับตัวแปร
การอ้างอิงโดยผลลัพท์ของค่า call by result-value
การ Sort
1 เรียงจากน้อยไปมาก(Ascending,Increasing)
2 เรียงจากมากไปน้อย(Decending,Decreasing)
การ Search
ขั้นตอนการพัฒนาโปรแกรม
1 นิยามปัญหา คือการวิเคราะห์ หาสาเหตุของปัญหา โดยกำหนด ข้อมูลเข้า ขั้นตอนการทำงาน และหน้าจอหรือรายงาน
2 คิดหาวิธีแก้ปัญหา โดยใช้ วิเคราะห์ขั้นตอนของ ระบบการทำงานที่เป็นจริง ที่ถูกต้อง โดยหาว่า ต้องทำอะไร
3 ออกแบบขั้นตอนการแก้ไขหรือขั้นตอนการทำงาน เขียนโปรแกรมตามที่ออกแบบไว้ โดยต้องรู้ว่าต้องทำอย่างไร
4 ทดสอบและแก้ไขข้อผิดพลาดจากการทดสอบหรือจากการทำงาน
5 สร้างคู่มือการใช้โปรแกรม และฝึกอบรมการใช้โปรแกรม