Tuesday, September 22, 2009

ควารู้เบื้องต้นเกียวกับคอมพิวเตอร์และการเขียนโปรแกรม(4)

บทที่ 3 โครงสร้างควบคุม (หน้าที่ 35 - 69)

ตามข้อกำหนดมาตรฐานของสถาบัน ANSI (American National Standards Institute) กำหนดให้ภาษา C มีคำสั่งควบคุมการทำงานของโปรแกรม ซึ่งมีอยู่ 3 กลุ่มคำสั่งดังนี้

คำสั่งกลุ่มที่ 1 คำสั่งวนลูปหรือทำงานซ้ำ

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

คำสั่งและความหมายของคำสั่ง

ตัวอย่าง Source code

ผลลัพธ์เมื่อแสดงบนจอภาพ

3.1 for เป็นคำสั่งที่สั่งให้โปรแกรมมีการทำงานซ้ำๆ วน loop จนกว่าเงื่อนไขที่กำหนดไว้เป็นเท็จ

for (number = 1; number <= 4 ; number++)

printf(“%d ”, number );

1 2 3 4

3.2 while เป็นคำสั่งที่มีลักษณะการทำงานคล้ายกับคำสั่ง for แต่ต้องมีเงื่อนไขที่เป็นเท็จจึงจะออกจาก loop

int n = 1;

while ( n < 4 )

{ n = n + 1 ; printf(“%d ”, n); }

1 2 3

3.3 do while เป็นคำสั่งที่มีลักษณะการทำงานคล้ายกับคำสั่ง while แต่จะทดสอบเงื่อนไขหลังจากที่ได้ทำงาน

ตามคำสั่งภายใน loop ไปแล้ว 1 รอบ

int n = 1;

do { n = n + 1 ; printf(“%d ”, n); }

while ( n < 4 );

1 2 3

3.4 break เป็นคำสั่งที่สั่งให้ออกจากคำสั่ง for หรือ while หรือ do while หรือ คำสั่ง switch

for (num = 1; num <= 10 ; num++)

{ printf(“%d ”, num );

if( num == 5) break; }

1 2 3 4 5

3.5 continue เป็นคำสั่งที่สั่งให้กลับไปทำงานที่คำสั่งแรกของลูปคำสั่ง for หรือ while หรือ do while ทำให้มีการทำงานในรอบต่อไป

for (num = 1; num <= 10 ; num++)

{ printf(“%d ”, num );

if( num == 5)

{ num = num+2; continue; } }

1 2 3 4 5 8 9 10

คำสั่งกลุ่มที่ 2 คำสั่งทดสอบเงื่อนไขเพื่อการตัดสินใจ (decision statements)

คำสั่งทดสอบเงื่อนไขเพื่อการตัดสินใจ เป็นคำสั่งที่มีการทดสอบเงื่อนไขก่อนที่จะทำงานตามคำสั่ง

ที่กำหนดไว้ ซึ่งมีรายละเอียดแต่ละคำสั่งดังนี้

คำสั่งและความหมายของคำสั่ง

ตัวอย่าง Source code

ผลลัพธ์

3.6 if เป็นคำสั่งที่ใช้ทดสอบเงื่อนไข โดยมีการตัดสินใจแบบ 1 ทางเลือก

ถ้าเงื่อนไขเป็นจริงให้ทำตามคำสั่งที่อยู่ภายใน if ถ้าเป็นเท็จให้ทำคำสั่งถัดไป

if (num == 9)

{ printf(“Yes = 9”); }

input number = 9 :

Yes = 9

3.7 if else คำสั่งที่ใช้ทดสอบเงื่อนไข โดยมีการตัดสินใจแบบ 2 ทางเลือก

if (num == 9) { printf(“Yes = 9”); }

else { printf(“Not 9”); }

input number = 7 : Not 9

input number = 9 : Yes= 9

3.8 if else if หรือ หรือ nested if หรือ if เชิงซ้อนคือ คำสั่งที่ใช้ทดสอบเงื่อนไข โดยมีการตัดสินใจที่ซับซ้อนมากกว่า 2 ทางเลือกขึ้นไป

if (num == 9) { printf(“Yes = 9”); }

else if (num == 8) { printf(“Yes = 8”); }

else { printf(“Not 9 and Not 8”); }

input number = 8 : Yes = 8

input number = 9 : Yes= 9

input number = 7 : Not 9 and Not 8

3.9 switch คำสั่งที่ใช้ทดสอบเงื่อนไขคล้ายๆกับคำสั่ง if else if และสำหรับตัดสินใจมากกว่า 2 ทางเลือกขึ้นไป แต่มีรูปแบบการใช้คำสั่งง่ายกว่าและสดวกในการแก้คำสั่งเมื่อมีข้อผิดพลาดเกิดขึ้น

3.9.1 case คือ คำสั่งที่ใช้ร่วมกับคำสั่ง switch เพื่อใช้ตรวจสอบเงื่อนไข

3.9.2 default คำสั่งที่ใช้ร่วมกับคำสั่ง switch ใช้ในกรณีที่นิพจน์หรือค่าคงที่ไม่ตรงกับเงื่อนไขใดๆ เลย

printf(“Enter Grade :\n”);

scanf(“%c”, &grade);

switch ( grade )

{ case ‘a’ : num = 4; break;

case ‘b’ : num = 3; break;

case ‘c’ : num = 2; break;

case ‘d’ : num = 1; break;

default : num = 0;

}

printf(“Number = %d \n\n”, num);

Enter Grade : b

Number = 3

Enter Grade : a

Number = 4

Enter Grade : z

Number = 0

คำสั่งกลุ่มที่ 3 คำสั่งที่สั่งไปทำงานตามจุดที่กำหนดไว้ (goto statements)

คำสั่ง goto และ label จะทำให้โปรแกรมข้ามคำสั่ง อื่นๆ เพื่อไปทำคำสั่งที่ต้องการ โดยอาจมีเงื่อนไขหรือไม่มีเงื่อนไขก็ได้

คำสั่งนี้จะไม่ใช้ในหลักสูตรการเขียนโปรแกรมคอมพิวเตอร์ และหลักการเขียนโปรแกรมด้วย C โดยทั่วไปแล้วไม่นิยมใช้คำสั่ง goto

เพราะเป็นคำสั่งที่ทำให้การเขียนโปรแกรมไม่เป็นระเบียบ และผิดโครงสร้างทางอัลกอริทึ่มอีกด้วย

คำสั่งนี้จะใช้ในกรณีพิเศษเท่านั้นเช่น การข้ามขั้นตอนการทำงานในบางกรณี การย้อนกลับไปจุดเริ่มต้นหรือจุดสิ้นสุดการทำงานของโปรแกรม เป็นต้น

แบบฝึกหัดบทที่ 3

1. คำสั่งที่ใช้ทดสอบเงื่อนไข โดยมีการตัดสินใจแบบ 2 ทางเลือก คือคำสั่งอะไร ..............................................

2. คำสั่งที่มีลักษณะการทำงานคล้ายกับคำสั่ง while แต่จะทดสอบเงื่อนไขหลังจากที่ได้ทำงาน

ตามคำสั่งภายใน loop ไปแล้ว 1 รอบ คือคำสั่งอะไร ..............................................

3. คำสั่งที่ใช้ร่วมกับคำสั่ง switch ใช้ในกรณีที่นิพจน์หรือค่าคงที่ไม่ตรงกับเงื่อนไขใดๆ เลย คือคำสั่งอะไร ...............

ควารู้เบื้องต้นเกียวกับคอมพิวเตอร์และการเขียนโปรแกรม(3)

บทที่ 3
การวิเคราะห์และออกแบบระบบในระดับภาพรวม ( System Analysis and Design in Context Diagram level : SA )
ขอบเขตในการเรียนการวิเคราะห์และออกแบบระบบเบื้องต้นทั้งในภาคเรียนที่ 1 และภาคเรียนที่ 2 การวิเคราะห์และออกแบบระบบรวมไปถึงการออกแบบจอภาพ จัดอยู่ในกลุ่มของขั้นตอนการวิเคราะห์ปัญหา เป็นสิ่งที่สำคัญมากในการเริ่มต้นวางแผนการสร้างและพัฒนาโปรแกรม ซึ่งเนื้อหาของเรื่องนี้ ถ้าเรียนในระดับมหาวิทยาลัยค่อนข้างยากมากเนื่องจากต้องใช้ประสบการณ์ในการแก้ปัญหาในระบบงานที่ซับซ้อนมากๆ เช่น ระบบสินค้าคงคลัง ระบบธนาคาร ฯลฯ และ SA ก็มีส่วนช่วยส่งเสริมการเรียนวิชาเขียนโปรแกรม 1 ตามหลักสูตรได้อย่างมีประสิทธิภาพ ในการเรียน SA เบื้องต้นในระดับมัธยมศึกษาจึงแบ่งออกเป็น 2 ระดับหรือ 2 ภาคเรียน ตามเนื้อหาความยากง่ายดังนี้ 1. การวิเคราะห์และออกแบบระบบในระดับภาพรวม จะกล่าวถึงบทนำ ความหมาย สัญลักษณ์ต่างๆ ของ SA เพื่อนำไปใช้ในการสร้างและพัฒนาระบบสารสนเทศอย่างง่าย ไม่ซับซ้อน เขียน SA ในภาพรวม (Context Diagram) 2. การวิเคราะห์และออกแบบระบบในระดับย่อย จะกล่าวถึงการเขียน SA โดยนำ Context Diagram มาใช้ในการสร้างและพัฒนาระบบสารสนเทศอย่างละเอียด และมีความซับซ้อนสูงขึ้น คือเขียน SA ในระดับย่อย (Level 0)ภาคทฤษฎีของการวิเคราะห์และออกแบบระบบในระดับภาพรวม บทนำทั่วไป การเขียนโปรแกรมใดๆ ก็ตามหากปราศจากการวิเคราะห์ระบบของงาน หรือเขียนโปรแกรมโดยไม่มีการวางแผนการทำงานของระบบ จะทำให้การดำเนินงานในด้านการเขียนโปรแกรมนั้นเป็นไปด้วยความยากลำบาก สื่อสารกันถึงขอบเขตและความต้องการของระบบนั้นยาก เช่น ผู้ใช้งาน ต้องการซอฟแวร์ประยุกต์ชื่อโปรแกรมหาพื้นที่สี่เหลี่ยมผืนผ้า ถ้าผู้เขียนโปรแกรมไม่วิเคราะห์และออกแบบระบบ เมื่อนำไปเขียนโปรแกรมจริงๆ ก็เขียนอย่างไม่มีขอบเขต ไม่รู้ว่าในโปรแกรมที่ต้องการสร้างมีระบบงานอะไรบ้าง เมื่อเขียนโปรแกรมเสร็จแล้วนำเสนอผู้ใช้งาน อาจจะทำให้ผู้ใช้งานไม่พอใจหรือไม่ตรงตามต้องการในโปรแกรมที่เราสร้างขึ้นมาได้ง่าย ถึงแม้ว่าเราจะคิดว่าโปรแกรมที่เราสร้างขึ้นมานี้ถูกต้อง มีคุณภาพสูง หรือดีแค่ไหนก็ตาม ในที่สุดก็ต้องกลับมาแก้ไขโปรแกรมอย่างนี้ไปเรื่อยๆ อย่างไม่มีเป้าหมายที่ชัดเจน รวมทั้งยากต่อการพัฒนาระบบงานต่อไปได้ การที่เราจะเขียนโปรแกรมได้ตามความต้องการของผู้ใช้งานและสามารถสื่อสารในงานด้านต่างๆ กับนักโปรแกรมเมอร์ด้วยกันเองได้เข้าใจง่ายนั้น ต้องอาศัยเครื่องมือที่ช่วยในการสร้างและพัฒนาระบบสารสนเทศ นั่นก็คือ การวิเคราะห์และออกแบบระบบ (System Analysis and Design) ในวงการคอมพิวเตอร์มักจะเรียกสั้นๆว่า SA

ความหมายของการวิเคราะห์และออกแบบระบบ ระบบ (System) คือกลุ่มขององค์ประกอบต่างๆ ที่ทำงานร่วมกันเพื่อจุดประสงค์อันเดียวกัน ระบบอาจจะประกอบด้วย บุคคลากร เครื่องมือ เครื่องใช้ พัสดุ วิธีการ ซึ่งทั้งหมดนี้จะต้องมีระบบจัดการอันหนึ่ง เพื่อให้บรรลุจุดประสงค์อันเดียวกัน เช่น ระบบการเรียนการสอน มีจุดประสงค์เพื่อให้นักเรียนได้รับความรู้ในเนื้อหาวิชาที่สอน การวิเคราะห์ระบบ (System Analysis) คือ การหาขอบเขต (Scope) และความต้องการ (Requirements) ของระบบสารสนเทศว่าคืออะไร หรือต้องการเพิ่มเติมอะไรเข้ามาในระบบ การออกแบบระบบ (System Design) คือ การนำสิ่งที่วิเคราะห์ระบบมาแล้ว นำมาเขียนเป็นแผนภาพแสดงกระแสข้อมูล แผนภาพแสดงกระแสข้อมูล (Data Flow Diagram : DFD) คือ เครื่องมือที่ใช้ในการเขียนระบบเป็นแผนภาพตามที่วิเคราะห์ระบบไว้แล้ว เพื่อสื่อให้นักโปรแกรมเมอร์ได้เข้าใจกระบวนการทำงานของระบบได้ง่ายขึ้น นักวิเคราะห์ระบบ (System analyst) คือ มีหน้าที่วางแผน ออกแบบ และวิเคราะห์งานคอมพิวเตอร์ นักวิเคราะห์ระบบจะทำงานร่วมกับผู้ใช้งานและโปรแกรมเมอร์ โดยการสอบถามความต้องการของผู้ใช้ ว่าต้องการโปรแกรมหรือ ระบบงานคอมพิวเตอร์ในลักษณะใด จากนั้นนักวิเคราะห์ระบบจะทำการวิเคราะห์และออกแบบระบบงานคอมพิวเตอร์ ให้ตรงกับความต้องการของผู้ใช้เพื่อมอบให้นักเขียนโปรแกรมทำการเขียนโปรแกรม เพื่อนำมาพัฒนาเป็นระบบงานต่อไป นักวิเคราะห์ระบบที่ดีควรจะต้องมีความรู้พื้นฐานในการเขียนโปรแกรมด้วย ตัวอย่างกรณีศึกษาในการรับสมัคร SA ของงานเวชสารสนเทศ คณะแพทยศาสตร์โรงพยาบาลรามาธิบดี รับสมัครพนักงานด้านสาขาคอมพิวเตอร์บรรจุเป็นพนักงานมหาวิทยาลัย ดังนี้ - รับสมัครนักวิเคราะห์ระบบงานคอมพิวเตอร์ (System Analyst) 2 อัตรา หน้าที่ความรับผิดชอบ : วิเคราะห์ออกแบบระบบงานคอมพิวเตอร์ทางด้านระบบบัญชีการเงิน ระบบจัดซื้อจัดจ้าง ทะเบียนพัสดุ และระบบทะเบียนบุคลากรหรือว่าวิเคราะห์ออกแบบระบบโรงพยาบาล วุฒิการศึกษา : ปริญญาตรีหรือโทสาขา Computer Science หรือสาขาที่เกี่ยวข้อง ประสบการณ์ : 1. มีประสบการณ์วิเคราะห์ระบบไม่ต่ำกว่า 2 ปี สามารถวางแผน, วิเคราะห์, ออกแบบ, ประเมินผลและจัดทำเอกสาร 2. มีความรู้ภาษาอังกฤษเป็นอย่างดี .... ........... อัตราเงินเดือน : 30,000 – 40,000 บาท (ขึ้นกับประสบการณ์) อ้างอิงจาก http://www.ra.mahidol.ac.th/faculty/thai/download/mi_dt.doc หรือค้นหาจาก Google คำว่า “นักวิเคราะห์ระบบ+เงินเดือน”สัญลักษณ์และการเขียนแผนภาพแสดงกระแสข้อมูล (Data Flow Diagram : DFD) DFD มีองค์ประกอบ 4 อย่าง ซึ่งใช้สัญลักษณ์ต่าง ๆ แทนดังต่อไปนี้ DFD มีองค์ประกอบ 4 อย่าง ซึ่งใช้สัญลักษณ์ต่าง ๆ แทนดังต่อไปนี้ ที่ ชื่อสัญลักษณ์ ภาพสัญลักษณ์ ความหมาย การกำหนดชื่อและการเขียน ภาพสัญลักษณ์ 1. การประมวลผล (Process) คือ การเปลี่ยนข้อมูลนำเข้ามาเป็นผลลัพธ์ นั่นหมายความว่า จะต้องมีการกระทำบางอย่างต่อข้อมูลทำให้เกิดผลลัพธ์ ควรมีความหมายที่แน่นอน หรือควรจะใช้คำกริยาที่มีการกระทำต่างๆ เช่น คำนวณ แก้ไข แสดงผล เป็นต้น ตัวอย่างเช่น คำนวณสี่เหลี่ยม , แสดงรูปสี่เหลี่ยม, แสดงผลลัพธ์ เป็นต้น 2. สิ่งที่อยู่นอกระบบ ( External ) สิ่งที่เราไม่สนใจการทำงานภายในของสิ่งที่อยู่นอกระบบ ถึงแม้ว่าจะมีการติดต่อผ่านทางข้อมูล การตั้งชื่ออาจจะเป็นตัวบุคคล หรือองค์กรต่างๆ หากไม่ทราบสิ่งที่อยู่นอกระบบ ให้กำหนดเป็นผู้ใช้งานทั่วไป (User) ก็ได้ การเขียนสิ่งที่อยู่นอกระบบอาจจะเป็นที่ส่งข้อมูลเข้าสู่ระบบ หรืออาจจะเป็นที่รับข้อมูลจากระบบก็ได้ 3. กระแสข้อมูล ( Data Flow ) ข้อมูลที่ไหลระหว่าง Process ต่าง ๆ และอาจเคลื่อนที่มาจาก External ก็ได้ การตั้งชื่อข้อมูลแต่ละอันหรือกลุ่มข้อมูล ควรจะมีชื่อของตัวเองที่ไม่เหมือนกัน ควรหลีกเลี่ยงใช้ชื่อที่กว้างเกินไป เช่น "ข้อผิดพลาด" เพราะว่าในระบบหนึ่งๆ อาจจะมี "ข้อผิดพลาด" เกิดขึ้นหลายๆ แห่ง เราควรใช้ชื่อเฉพาะเจาะจงมากกว่านี้ เช่น "เลขที่ลูกค้าไม่ถูกต้อง" "ไม่มีสินค้านี้ในคลัง" เป็นตัน รายละเอียดเหล่านี้ออกให้ชัดเจนการเขียน ข้อมูลที่ไหลไม่เหมือนกันควรเขียนแยกลูกศรด้วย ขั้นตอนการวิเคราะห์และออกแบบระบบเบื้องต้นในระดับภาพรวม (ในระดับมัธยมศึกษา ) 1.การวิเคราะห์ขอบเขตของระบบ 1.1 วิเคราะห์ขอบเขตของระบบ (Scope) คือ การกำหนดระบบงานหลักในภาพรวม หรือระบบงานกว้างๆ ว่าเราต้องจะทำอะไรที่มีจุดประสงค์เป็นอันหนึ่งอันเดียวกัน 1.2 วิเคราะห์สิ่งที่อยู่นอกระบบ (External ) คือ การวิเคราะห์องค์ประกอบที่อยู่นอกขอบเขตของระบบว่ามีองค์ประกอบใดบ้าง ซึ่งเราจะไม่สนใจการทำงานนอกระบบที่ไม่ต้องการ แต่องค์ประกอบเหล่านี้มีการติดต่อกันระหว่างระบบภายในระบบกับภายนอกระบบ หากเราไม่สามารถวิเคราะห์ External เนื่องจากขาดประสบการณ์ในการวิเคราะห์ระบบ อาจจะกำหนดให้ External นี้คือ ผู้ใช้งานทั่วไป (User) ก็ได้ 2. การออกแบบระบบ การเขียน DFD ของ Context Diagram หรือการเขียนขอบเขตของระบบ คือ การตั้งชื่อขอบเขตของระบบมากำหนดข้อมูล (Data) และสารสนเทศ (Information) ว่ามีการนำข้อมูลนำเข้ามาในระบบมีอะไรบ้าง และเมื่อข้อมูลนั้นผ่านกระบวนการต่างๆ แล้วจะออกมาเป็นผลลัพธ์อะไรบ้าง ในลักษณะสารสนเทศอย่างไร ดังรูปแบบการเขียนดังนี้




การวิเคราะห์และออกแบบระบบเพื่อนำมาใช้ในการออกแบบจอภาพของคอมพิวเตอร์ ความรู้เกี่ยวกับจอภาพของคอมพิวเตอร์ จอภาพของคอมพิวเตอร์เป็นไปได้ทั้งตัวรับข้อมูลและแสดงผลลัพธ์ จอภาพมีประโยชน์สำหรับแสดงผลลัพธ์ ในกรณีที่เราไม่ต้องการพิมพ์รายงานบนกระดาษ แต่ต้องการดูผลอะไร บางอย่าง เช่น ดูผลลัพท์ที่ได้จากการคำนวณหาพื้นที่สี่เหลี่ยมผืนผ้า เป็นต้น นอกจากนั้นปัจจุบันเราก็นิยมพิมพ์ข้อมูลเข้าหรืออินพุตผ่านทางหน้าจอ เช่น ป้อนข้อมูลความกว้าง ของพื้นที่สี่เหลี่ยมผืนผ้า เป็นต้น ปกติหน้าจอคอมพิวเตอร์มีขนาด 80*25 (25 บรรทัด บรรทัดละ 80 ตัวอักษร) ดังนั้นเราจะมีจำนวนจำกัดในการแสดงข้อความบนจอ หลักการออกแบบจอภาพเบื้องต้นสำหรับการเขียนโปรแกรมด้วยโปรแกรมแปลภาษาซี เนื่องจากการเรียนวิชาเขียนโปรแกรม 1 มีขอบเขตในการเรียนรู้เฉพาะในส่วนการรับข้อมูลผ่านคีย์บอร์ดและไม่สามารถแสดงผลในลักษณะกราฟิกหรือรูปภาพได้ จึงควรศึกษาหลักการออกแบบจอภาพตามลักษณะการแสดงผลดังนี้ - ในกรณีที่ต้องป้อนข้อมูลผ่านคีย์บอร์ด ถ้าโปรแกรมมีหลายทางเลือก ควรสร้างเมนูเป็นรายการต่างๆ หรือสร้างเงื่อนไขให้ผู้ใช้กดแป้นคีย์บอร์ดตามต้องการ เช่น โปรแกรมถามผู้ใช้งานว่า ต้องการออกจากโปรแกรมหรือไม่ ถ้าผู้ใช้กดแป้นคีย์ y หมายถึงออกจากโปรแกรม ถ้าผู้ใช้ไม่ต้องการออกจากโปรแกรมให้กดแป้นคีย์ n เป็นต้น - ในกรณีแสดงรูปภาพหรือภาพกราฟิก บางกรณีผู้เขียนโปรแกรมต้องการออกแบบหน้าจอให้มีการแสดงรูปภาพ หรือกราฟิก อาจจะสร้างสัญลักษณ์ต่างๆ มาประกอบกันเป็นรูปภาพได้ เช่น สร้างเครื่องหมายดอกจันเป็นรูปต่างๆ เป็นต้น - ในกรณีที่ต้องออกแบบจอภาพแบบซับซ้อน บางกรณีระบบงานบางระบบมีความซับซ้อนมาก เช่น มีเงื่อนไขจำนวนมาก นักเขียนโปรแกรมควรปรึกษากับนักวิเคราะห์ระบบเพื่อหาแนวทางการออกแบบที่ถูกต้องและเข้าใจตรงกัน บทสรุปเกี่ยวกับบทที่ 2 การวิเคราะห์และออกแบบระบบเบื้องต้น ความรู้ในการวิเคราะห์และออกแบบระบบมีความสำคัญ เพราะเป็นปัจจัยในการสร้างและพัฒนาระบบสารสนเทศ ทำให้เรารู้ถึงขอบเขตของงาน รู้ว่าเราจะทำอะไร มีความต้องการทำอะไรบ้างภายในขอบเขตของงานนั้น โดยเริ่มตั้งแต่การวิเคราะห์ขอบเขตของระบบ การเขียน Context Diagram เพื่อที่จะสามารถสื่อสารกับนักเขียนโปรแกรมได้อย่างเข้าใจ จนนำไปสู่การสร้างโปรแกรมได้ตามเป้าหมายและเป็นที่พอใจของผู้ใช้งาน บทส่งท้าย เนื้อหาในเรื่อง การวิเคราะห์และออกแบบระบบในระดับภาพรวมนี้ เป็นเนื้อหาอย่างง่ายในการศึกษาทำความเข้าใจเกี่ยวกับ SA เบื้องต้น เป็นพื้นฐานสำคัญในการเรียนเรื่องการวิเคราะห์และออกแบบระบบในระดับย่อย ที่มีความซับซ้อนในระดับสูงต่อไปในภาคเรียนที่ 2 ภาคปฏิบัติของการวิเคราะห์และออกแบบระบบในระดับภาพรวม ในส่วนของภาคปฏิบัติของการวิเคราะห์และออกแบบระบบเบื้องต้นนี้ จะยกตัวอย่างเป็นกรณีศึกษาปัญหาของระบบหาพื้นที่สี่เหลี่ยมผืนผ้า ดังต่อไปนี้ โจทย์ปัญหาของระบบ : ผู้ใช้งานมีปัญหาในการหาพื้นที่สี่เหลี่ยมผืนผ้า โดยการนำข้อมูลเกี่ยวกับความกว้างและความยาวมาใช้ในการประมวลผล 1.การวิเคราะห์ขอบเขตของระบบ 1.1 ขอบเขตของระบบ คือ คำนวณหาพื้นที่สี่เหลี่ยมผืนผ้า 1.2 นอกระบบ ได้แก่ ผู้ใช้งาน 2. การออกแบบระบบ ผลลัพธ์ของพื้นที่สี่เหลี่ยมผืนผ้า 2.1 การเขียน Context Diagram (วิเคราะห์ขอบเขตของระบบ)


3. การอธิบายขอบเขตและความต้องการของระบบหาพื้นที่สี่เหลี่ยมผืนผ้า 3.1 ขอบเขตของระบบใน DFD ของ Context Diagram อธิบายได้ว่า มีการรับข้อมูลความกว้างและความยาวเข้าไปในระบบหาพื้นที่สี่เหลี่ยมผืนผ้า จนได้ข้อสารสนเทศเป็นผลลัพธ์ของพื้นที่สี่เหลี่ยมผืนผ้า ตัวอย่างการออกแบบจอภาพของระบบหาพื้นที่สี่เหลี่ยมผืนผ้า

Program square Type width = 3 Type length = 5 Result area of square = 15

ควารู้เบื้องต้นเกียวกับคอมพิวเตอร์และการเขียนโปรแกรม(2)

บทที่ 2

ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรมคอมพิวเตอร์

ความหมายของคำว่า การเขียนโปรแกรมคอมพิวเตอร์โดยใช้โปรแกรมแปลภาษาซี

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

คือ การวางแผนเพื่อกำหนดขั้นตอนวิธีเพื่อใช้แก้ปัญหา

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

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

โปรแกรมแปลภาษาคอมพิวเตอร์

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

1. แอสเซมเบลอร์ (Assembler) เป็นโปรแกรมแปลภาษาแอสเซมบลีให้เป็นภาษาเครื่อง

2. คอมไพเลอร์ (compiler) หรือ ตัวแปลโปรแกรม ทำหน้าที่แปลโปรแกรมต้นฉบับ (source program) โดยแปลคราวเดียวทั้งโปรแกรมให้เป็นภาษาเครื่องและสร้างเป็น Object program เมื่อมีการเรียกใช้โปรแกรม จะเรียก Object program มาใช้งานได้ทันที เช่น Borland Turbo Pascal , Borland Turbo C++

3. อินเทอร์พรีเตอร์ (Interpreter) หรือ ตัวแปลคำสั่ง ทำหน้าที่แปลโปรแกรมในภาษาระดับสูงให้เป็นภาษาเครื่องครั้งละ 1 คำสั่ง ในแต่ละคำสั่งจะถูกแปลและปฏิบัติตามคำสั่ง หากมีคำสั่งผิด จะหยุดให้แก้ไขจนกว่าจะถูกต้อง จึงจะแปลคำสั่งต่อไป โปรแกรมจะประมวลผลต่อเนื่องไปจนกว่าจะจบโปรแกรม เมื่อนำโปรแกรมมาใช้งานใหม่จะต้องแปลใหม่ทุกครั้งเพราะอินเทอร์พริทเตอร์ไม่มีการสร้าง Object program เหมือนการใช้คอมไพเลอร์ เช่น Borland Turbo Basic

ภาษาคอมพิวเตอร์ คือ ภาษาที่ใช้สั่งงานคอมพิวเตอร์ ให้ทำงานตามที่ต้องการ แบ่งเป็น 3 ระดับ

1. . ภาษาเครื่อง (Machine Language) เป็นภาษาที่สามารถสั่งให้เครื่องคอมพิวเตอร์ ทำงาน ได้ทันที โดยเขียนอยู่ในรูปของ รหัสของระบบเลขฐานสอง ประกอบด้วยเลข 0 และเลข 1 ที่นำมาเขียน

ติดต่อกัน เช่น 10110000 00000101

2. ภาษาระดับต่ำ (Low-level Language) เป็นภาษาที่มีการปรับปรุงมาจากภาษาเครื่อง ให้สามารถเข้าใจได้ง่ายขึ้น มีการใช้ตัวอักษรแทนตัวเลขฐานสอง เช่น ADD A,B เป็นต้น ตัวอย่าง ภาษาระดับต่ำ เช่นภาษาแอสเซมบลี (Assembly Language)

3. ภาษาระดับสูง

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

ภาษาซี คือ ภาษาคอมพิว เตอร์ระดับสูง ซึ่งใช้โปรแกรมแปลภาษา

Borland Turbo C++

ประเภท คอมไพเลอร์

ขั้นตอนการสร้างและพัฒนาโปรแกรมคอมพิวเตอร์

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

โดยทั่ว ๆ ไป การพัฒนาโปรแกรมคอมพิวเตอร์มีขั้นตอนที่สำคัญดังต่อไปนี้

1. การวิเคราะห์ปัญหา เพื่อกำหนดการประมวลผลที่ต้องการ

1.1 ตรวจสอบและพิจารณาขอบเขตของระบบ

1.2 หารือกับนักวิเคราะห์ระบบ (SA) และผู้ใช้

1.3 กำหนดองค์ประกอบของโปรแกรม เช่น อินพุต เอาต์พุต การประมวลผล

2. การออกแบบขั้นตอนการทำงานของโปรแกรม เพื่อเป็นแนวทางการเขียนโปรแกรม ซึ่งเครื่องมือ....ที่สนับสนุนการออกแบบโปรแกรม (Design Tools) ได้แก่ อัลกอริทึม (Algorithm) ผังงานโปรแกรม (Program Flowchart) เป็นต้น

2.1 แบ่งหน้าที่หลัก (Main Module) ของโปรแกรมออกเป็น Module ต่างๆ

2.2 ออกแบบอัลกอริทึมให้แต่ละโมดูล

2.3 ทดสอบผลลัพธ์ที่ได้จากอัลกอริทึม

2.4 นำอัลกอริทึ่มที่ได้มาเขียนเป็นผังงานโปรแกรม

3. การลงรหัสโปรแกรม เพื่อเปลี่ยนขั้นตอนการทำงานของโปรแกรมเป็นภาษาคอมพิวเตอร์

3.1 เปลี่ยนผังงานโปรแกรมมาเป็นภาษาคอมพิวเตอร์

3.2 เขียนโปรแกรม และทดลองรันโปรแกรมดู

4. การทดสอบและแก้ไขโปรแกรม เพื่อให้โปรแกรมกำหนดการทำงานของคอมพิวเตอร์ได้อย่างถูกต้อง

4.1 เมื่อพบ Error ของโปรแกรมให้แก้ไขทันที

4.2 การ Error อาจเกิดขึ้นจากการเขียนไวยากรณ์ของภาษาผิดหรืออาจผิดที่อัลกอริทึมก็ได้

4.3 ลบโค้ดที่ใม่ใช้ออกให้หมด แล้วลองรันโปรแกรมดูว่า ทำงานได้ดังเดิมหรือไม่

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

5.1 รวบรวมเอกสารที่เกี่ยวทั้งหมดให้ SA

5.2 แก้ไข Error ที่พบระหว่างการใช้งานโปรแกรมจริงโดยผู้ใช้

5.3 ปรับปรุงและเพิ่มเติมความสามารถให้กับโปรแกรมมากขึ้น

จากขั้นตอนการพัฒนาโปรแกรมคอมพิวเตอร์ ที่กล่าวมาทั้ง 5 ขั้นตอน ซึ่งบางตำรา หรือ ผู้พัฒนาโปรแกรมบางคนอาจกำหนดขั้นตอนไว้น้อย หรือ มากกว่านี้ก็ย่อมเป็นไปได้ แต่โดยภาพรวม จะมีหัวข้อ ขั้นตอนใกล้เคียงกัน ในที่นี้จึงขอกำหนดเป็น 5 ขั้นตอนดังกล่าว (และควรดำเนินการเรียงลำดับขั้นตอนนั้นด้วย)