* VARCHAR : สำหรับเก็บข้อมูลประเภทตัวอักษร ทุกครั้งที่เลือกชนิดของฟิลด์เป็นประเภทนี้ จะต้องมี การกำหนดความยาวของข้อมูลลงไปด้วย ซึ่งสามารถกำหนดค่าได้ตั้งแต่ 1 - 255 ฟิลด์ชนิดนี้ เหมาะ
สำหรับการเก็บข้อมูลสั้นๆ เช่น ชื่อ นามสกุล หรือหัวข้อต่างๆ เป็นต้น... ในส่วนฟิลด์ประเภทนี้ จะ สามารถเลือก "แอตทริบิวต์" เป็น BINARY ได้ โดยปกติแล้วการจัดเรียงข้อมูลเวลาสืบค้น (query) สำหรับ VARCHAR จะเป็นแบบ case-sensitive (ตัวอักษรใหญ่ และเล็กมีความหมายแตกต่างกัน) แต่ หากระบุ "แอตทริบิวต์" เป็น BINARY ปุ๊บ การสืบค้นจะไม่คำนึงตัวอักษรว่าจะเป็นตัวใหญ่ หรือตัวเล็ก
* CHAR : สำหรับเก็บข้อมูลประเภทตัวอักษร แบบที่ถูกจำกัดความกว้างเอาไว้คือ 255 ตัวอักษร ไม่ สามารถปรับเปลี่ยนได้เหมือนกับ VARCHAR หากทำการสืบค้นโดยเรียงตามลำดับ ก็จะเรียงข้อมูล
แบบ case-sensitive เว้นแต่จะกำหนดแอตทริบิวต์เป็น BINARY ที่จะทำให้การเรียงข้อมูลเป็นแบบ non case-sensitive เช่นเดียวกับ VARCHAR
* TINYTEXT : ในกรณีที่ข้อความยาวๆ หรือต้องการที่จะค้นหาข้อความ โดยอาศัยฟีเจอร์ FULL TEXT SEARCH ของ MySQL เราอาจจะเลือกที่จะไม่เก็บข้อมูลลงในฟิลด์ประเภท VARCHAR ที่มีข้อจำกัด
แค่ 256 ตัวอักษร แต่เราจะเก็บลงฟิลด์ประเภท TEXT แทน โดย TINYTEXT นี้ จะสามารถเก็บข้อมูล ได้ 256 ตัวอักษร ซึ่งมองเผินๆ ก็ไม่ต่างกับเก็บลงฟิลด์ประเภท CHAR หรือ VARCHAR(255) เลย แต่
จริงๆ มันต่างกันตรงที่ มันทำFULL TEXT SEARCH ได้
* TEXT : สำหรับเก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่สามารถเก็บได้มากขึ้น โดย สูงสุดคือ 65,535 ตัวอักษร หรือ 64KB เหมาะสำหรับเก็บข้อมูลพวกเนื้อหาต่างๆ ที่ยาวๆ
* MEDIUMTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร
* LONGTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 4,294,967,295 ตัวอักษร
* TINYINT : สำหรับเก็บข้อมูลชนิดตัวเลขที่มีขนาด 8 บิต ข้อมูลประเภทนี้เราสามารถกำหนดเพิ่มเติม ในส่วนของ "แอตทริบิวต์" ได้ว่าจะเลือกเป็น UNSIGNED หรือ UNSIGNED ZEROFILL โดยจะมี ความแตกต่างดังนี้
- UNSIGNED : จะหมายถึงเก็บค่าตัวเลขแบบไม่มีเครื่องหมาย แบบนี้จะทำใหสามารถเก็บค่าได้ ตั้งแต่ 0 - 255
- UNSIGNED ZEROFILL : เหมือนข้างต้น แต่ว่าหากข้อมูลที่กรอกเข้ามาไม่ครบตามจำนวน หลักที่เรากำหนด ตัว MySQL จะทำการเติม 0 ให้ครบหลักเอง เช่น ถ้ากำหนดให้ใส่ได้ 3 หลัก แล้วทำการเก็บข้อมูล 25 เข้าไป เวลาที่สืบค้นดู เราจะได้ค่าออกมาเป็น 025 หากไม่เลือก "แอ ตทริบิวต์" สิ่งที่เราจะได้ก็คือ SIGNED นั่นก็คือต้องเสียบิตนึงไปเก็บเครื่องหมาย บวก/ลบ ทำ ให้สามารถเก็บข้อมูลได้อยู่ในช่วง -128 ถึง 127 เท่านั้น
* SMALLINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 16 บิต จึงสามารถเก็บค่าได้ตั้งแต่ -32768 ถึง 32767 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 65535 (ในกรณี UNSIGNED หรือไม่คิดเครื่องหมาย)
ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT
* MEDIUMINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 24 บิต นั่นก็หมายความว่าสามารถเก็บ ข้อมูลตัวเลขได้ตั้งแต่ -8388608 ไปจนถึง 8388607 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 16777215
(ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT
* INT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 32 บิต หรือสามารถเก็บข้อมูลได้ตั้งแต่ -2147483648 ไปจนถึง 2147483647 ครับ (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 4294967295 (ในกรณีที่เป็น
UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT
* BIGINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 64 บิต สามารถเก็บข้อมูลได้ตั้งแต่ - 9223372036854775808 ไปจนถึง 9223372036854775807 เลยทีเดียว (แบบคิดเครื่องหมาย) หรือ 0 ถึง 18446744073709551615 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT
* FLOAT[(M,D)] : ที่กล่าวถึงไปทั้งหมด ในตระกูล INT นั้นจะเป็นเลขจำนวนเต็ม หากเราบันทึกข้อมูล ที่มีเศษทศนิยม มันจะถูกปัดทันที ดังนั้นหากต้องการจะเก็บค่าที่เป็นเลขทศนิยม ต้องเลือกชนิดขอฟิลด์ เป็น FLOAT โดยจะเก็บข้อมูลแบบ 32 บิต คือมีค่าตั้งแต่ -3.402823466E+38 ไปจนถึง -1.175494351E- 38, 0 และ 1.175494351E-38 ถึง 3.402823466E+38
* DOUBLE[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่มีขนาดเป็น 64 บิต สามารถเก็บได้ตั้งแต่ -1.7976931348623157E+308 ถึง -2.2250738585072014E-308, 0 และ
2.2250738585072014E-308 ถึง 1.7976931348623157E+308
* DECIMAL[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่ใช้กับข้อมูลที่ ต้องการความละเอียดและถูกต้องของข้อมูลสูง ข้อสังเกต เกี่ยวกับข้อมูลประเภท FLOAT, DOUBLE และ DECIMAL ก็คือ เวลากำหนดความ ยาวของข้อมูลในฟิลด์ จะถูกกำหนดอยู่ในรูปแบบ (M,D) ซึ่งหมายความว่า ต้องมีการระบุว่า จะให้มี ตัวเลขส่วนที่เป็นจำนวนเต็มกี่หลัก และมีเลขทศนิยมกี่หลัก เช่น ถ้าเรากำหนดว่า FLOAT(5,2) จะ หมายความว่า เราจะเก็บข้อมูลเป็นตัวเลขจำนวนเต็ม 5 หลัก และทศนิยม 2 หลัก ดังนั้นหากทำการใส่ ข้อมูล 12345.6789 เข้าไป สิ่งที่จะเข้าไปอยู่ในข้อมูลจริงๆ ก็คือ 12345.68 (ปัดเศษให้มีจำนวนหลัก ตามที่กำหนดไว้)
* DATE : สำหรับเก็บข้อมูลประเภทวันที่ โดยเก็บได้จาก 1 มกราคม ค.ศ. 1000 ถึง 31 ธันวาคม ค.ศ. 9999 โดยจะแสดงผลในรูปแบบ YYYY-MM-DD
* DATETIME : สำหรับเก็บข้อมูลประเภทวันที่ และเวลา โดยจะเก็บได้ตั้งแต่ 1 มกราคม ค.ศ. 1000 เวลา 00:00:00 ไปจนถึง 31 ธันวาคม ค.ศ. 9999 เวลา 23:59:59 โดยรูปแบบการแสดงผล เวลาที่ทำการสืบค้น
(query) ออกมา จะเป็น YYYY-MM-DD HH:MM:SS
* TIMESTAMP[(M)] : สำหรับเก็บข้อมูลประเภทวันที่ และเวลาเช่นกัน แต่จะเก็บในรูปแบบของ YYYYMMDDHHMMSS หรือ YMMDDHHMMSS หรือ YYYYMMDD หรือ YYMMDD แล้วแต่ ว่าจะระบุค่า M เป็น 14, 12, 8 หรือ 6 ตามลำดับ สามารถเก็บได้ตั้งแต่วันที่ 1 มกราคม ค.ศ. 1000 ไป จนถึงประมาณปี ค.ศ. 2037
* TIME : สำหรับเก็บข้อมูลประเภทเวลา มีค่าได้ตั้งแต่ -838:59:59 ไปจนถึง 838:59:59 โดยจะแสดงผล ออกมาในรูปแบบ HH:MM:SS YEAR[(2/4)] : สำหรับเก็บข้อมูลประเภทปี ในรูปแบบ YYYY หรือ YY แล้วแต่ว่าจะเลือก 2 หรือ 4 (หากไม่ระบุ จะถือว่าเป็น 4 หลัก) โดยหากเลือกเป็น 4 หลัก จะเก็บค่าได้ตั้งแต่ ค.ศ. 1901 ถึง 2155 แต่ หากเป็น 2 หลัก จะเก็บตั้งแต่ ค.ศ. 1970 ถึง 2069 ข้อสังเกต ค่าที่เก็บในข้อมูลประเภท TIMESTAMP และ YEAR นั้นจะมีความสามารถพอๆ กับ การเก็บข้อมูลวันเดือนปี และเวลา ด้วยฟิลด์ชนิด VARCHAR แต่ต่างกันตรงที่ จะใช้เนื้อที่เก็บข้อมูล น้อยกว่า... ทว่า ฟิลด์ประเภท TIMESTAMP นั้นจะมีข้อจำกัดในเรื่องของเวลาที่สามารถเก็บได้ คือ จะต้องอยู่ในระหว่าง 1 มกราคม ค.ศ. 1000 ไปจนถึงแถวๆ ค.ศ. 2037 อย่างที่บอก แต่หากเก็บเป็น VARCHAR นั้นจะไม่ติดข้อจำกัดนี้ ฟิลด์ชนิด YEAR ก็เช่นกันครับ... ใช้เนื้อที่แค่ 1 ไบต์เท่านั้นในการ เก็บข้อมูล แต่ข้อจำกัดจะอยู่ที่ ปี ค.ศ. 1901 ถึง 2155 เท่านั้น (หรือ ค.ศ. 1970 ถึง 2069 ในกรณี 2 หลัก) แต่หากเก็บเป็น VARCHAR จะได้ตั้งแต่ 0000 ถึง 9999 เลย อันนี้เลยอยู่ที่ความจำเป็นมากกว่าครับ (แต่ ด้วยความที่ว่า ปัจจุบันฮาร์ดดิสก์ราคาถูกมากๆ ผมเลยไม่ติดใจอะไรที่จะใช้ VARCHAR แทน เพื่อ ความสบายใจ อิอิ เพราะสมมติว่ากินเนื้อที่ต่างกัน 3 ไบต์ ต่อ 1 ระเบียน มีข้อมูล 4 ล้านระเบียน ก็เพิ่ง ต่างกัน 12 ล้านไบต์ หรือ 12 เมกะไบต์เท่านั้นเอง ซึ่งหากเทียบกับปริมาณข้อมูลทั้งหมดของข้อมูล 4 ล้านระเบียน ผมว่ามันต้องมีอย่างน้อยเป็นกิกะไบต์ ดังนั้นความแตกต่างที่ไม่กี่เมกะไบต์จึงไม่มากมาย)
* TINYBLOB : สำหรับเก็บข้อมูลประเภทไบนารี ได้แก่ ไฟล์ข้อมูลต่างๆ, ไฟล์รูปภาพ, ไฟล์มัลติมีเดีย เป็นต้น คือไฟล์อะไรก็ตามที่อัพโหลดผ่านฟอร์มอัพโหลดไฟล์ในภาษา HTML โดย TINYBLOB นั้น
จะมีเนื้อที่ให้เก็บข้อมูลได้ 256 ไบต์
* BLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่สามารถเก็บข้อมูลได้ 64KB
* MEDIUMBLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 16MB
* LONGBLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 4GB ข้อสังเกต ข้อมูลประเภท BLOB นั้น แม้จะมีประโยชน์ในเรื่องของการเก็บข้อมูลประเภท BINARY ให้อยู่กับตัวฐานข้อมูล ทำให้สะดวกเวลาสืบค้นก็ตาม แต่มันก็ทำให้ฐานข้อมูลมีขนาดใหญ่ เกินความจำเป็นด้วย ทำให้เกิดความไม่สะดวกในการสำรองฐานข้อมูลในกรณีที่ มีข้อมูลอัพโหลดไป เก็บมากๆ โดยปกติแล้ว จะใช้วิธีการอัพโหลดไปเก็บไว้ในโฟลเดอร์ แล้วเก็บลิงก์ไปยังไฟล์เหล่านั้น เป็นฟิลด์ชนิด VARCHAR มากกว่า
* SET : สำหรับเก็บข้อมูลที่เป็นกลุ่มของข้อมูลที่ยอมให้เลือกได้ 1 ค่าหรือหลายๆ ค่า ซึ่งสามารถกำหนด ได้ถึง 64 ค่า
แหล่งอ้างอิง: http://www.webub.com/%E0%B8%8A%E0%B8%99%E0%B8%B4%E0%B8%94%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5%E0%B9%83%E0%B8%99_MySQL__Datatype_-448-16.html
Engine by www.webUB.com
วันพฤหัสบดีที่ 3 ธันวาคม พ.ศ. 2558
การแก้ปัญหาด้วยกระบวนการสารสนเทศ
การแก้ปัญหามีหลายวิธี ขึ้นกับชนิดของาน วิธีการแก้ปัญหาอย่างหนึ่งอาจแก้ปัญหาอีกอย่างหนึ่งไม่ได้ และการแก้ปัญหาอาจจำเป็นต้องใช้เทคโนโลยีสารสนเทศหรือไม่ก็ได้ ดังนั้น จึงควรยึดหลักการแก้ปัญหาอย่างเป็นระบบ เพื่อไม่ให้เสียเวลา หลงทาง และสับสน วิธีการแก้ปัญหาแต่ละวิธีมีความเหมาะสมกับงานแตกต่างกันไป ก่อนที่จะใช้วิธีแก้ปัญหา ด้วยกระบวนการทางเทคโนโลยีสารสนเทศ จะขอยกวิธีการแก้ปัญหาอย่างมีขั้นตอนโดยทั้วไป มาให้พิจารณาดูจำนวนหนึ่ง
1.1 หลักการแก้ปัญหาตามวิธีวิทยาศาสตร์ ( Scientific method )
วิธีการแก้ปัญหาทางวิทยาศาสตร์เป็นวิธีที่มีมานานมากแล้ว ซึ่งใช้ศึกษาค้นคว้าความรู้ใหม่ๆ ตั้งแต่หลายร้อยปีก่อน จนเกิดความก้าวหน้าทางวิทยาศาสตร์ด้านต่างๆ มากมายอย่างทุกวันนี้ หลักการแก้ปัญหา ทางวิทยาศาสตร์ มีดังนี้
1. เก็บข้อมูลเบื้องต้น โดยการศึกษา สังเกตเหตุการณ์หรือปรากฎการณ์ทางธรรมชาติ
2. ตั้งสมมิฐานเกี่ยวกับสาเหตุ แนวความคิด หรือทฤษฎี ของการเกิดปรากฎการณ์และทางการแก้ปัญหา
3. พัฒนาการวิธีการที่จะทดสอบสมมติฐานหรือทฤษฎีตามข้อ 2
4. ทำการทดลองเพื่อพิสูจน์สมมติฐานหรือทฤษฎี โดยตั้งวัตถุประสงค์ให้ชัดเจน อาจมีการตั้งกลุ่มทดลองภายใต้การควบคุม เปรียบเทียบกับกลุ่มที่ไม่ควบคุม ทำการบันทึกผลการทดลองที่สังเกตพบไว้อย่างละเอียดแม่นยำ
5. วิเคราะห์ผลการทดลอง เพื่อหาคำตอบว่าสมมติฐานที่ตั้งไว้นั้นเป็นจริงหรือไม่
6. เขียนรายงานสรุปผลคำตอบที่ได้ผลที่ได้จากวิธีนี้เป็นที่ยอมรับกันมาก เนื่องจากเป็นวิธีที่พิสูจน์ได้ เห็นผลชัดเจน และ มีวัตถุประสงค์เด่นชัด แต่ผลที่ได้อาจขาดความคิดสร้างสรรค์ หรือบางครั้งสำหรับปัญหาง่ายๆ ก็ไม่จำเป็นต้องใช้ขั้นตอนมากมายเช่นนี้ และปัญหาบางอย่างก็อาจใช้ไม่ได้เลย เพราะทดลองไม่ได้
1.2 หลักการแก้ปัญหาตามวิธีการทางวิศวกรรม ( Engineering problem solving )
วิธีเหมาะกับการแก้ปัญหาในการออกแบบผลิตภัณฑ์ สินคัา หรือเพื่อสร้างสิ่งใหม่หรือเพื่อการแก้ปัญหาในเชิงวิศวกรรม มีขั้นตอนดังนี้
1. วิเคราะห์ปัญหา กำหนดรายละเอียดปัญหาให้ชัดเจนเป็นข้อๆ กำหนดความ ต้องการและข้อจำกัดในการแก้ปัญหาเป็นข้อๆวิเคราะห์ข้อมูลว่ามีข้อมูลใดที่มีอยุ่แล้วและใช้ได้อะไรคือสิ่งที่ยังไม่รู้และต้องการรู้
2. สร้างแบบจำลองวิธีการแก้ปัญหา ( Define model ) อาจเป็นแบบจำลองทางคณิตศาสตร์ หรือบางกรณีต้องสร้างแบบจำลองย่อส่วนจากของจริง คิดค้นหาสูตรสมการที่จะใช้แก้ปัญหา เก็บข้อมูลที่ต้องใช้แก้ปัญหา
3. คำนวณหาคำตอบโดยใช้แบบจำลอง วิธี และสมกาในข้อ 2 ตรวจสอบผลลัพธ์ที่ได้ว่าถูกต้องเหมาะสมหรือไม่
4. ผลลัพธ์หรือคำตอบที่ได้มีเหตุผลว่าถูกต้องเหมาะสม จึงนำไปปฏิบัติ
1.3 วิธีการแก้ปัญหาแบบสร้างสรรค์ ( Creative problem solving )
วิธีนี้เป็นวิธีแก้ปัญหาที่ใช้แนวคิดแบบสร้างสรรค์ สามารถนำไปใช้งานได้กว้างขวาง ซึ่งมีหลายวิธีเช่นกันในที่นี้ขอยกตัวอย่างวิธีของ Sidney J. Parness ดังนี้
1. ใช้ความสังเกตอย่างพินิจพิเคราะห์ คือให้ตื่นตัวตกใจ ใช้ตาดูหูฟัง เพื่อให้มองเห็นปัญหาต่าง ๆ ที่เกิดขึ้น และมองเห็นวิธีแก้ปัญหาที่อาจเป็นไปได้
2. ค้นหาความจริง โดยเก็บรวบรวมข้อมูล เช่น ทำการศึกษา ทดลอง หรือทำวิธีใดๆที่เหมาะสม
3. ค้นหาปัญหา เพื่อดูว่าปัญหาที่แท้จริงคืออะไร สาเหตุของการเกิดคืออะไร
4. ค้นหาแนวความคิดในการแก้ปัญหา โดยการคิดค้นวิธีการแก้ปัญหาหลายๆวิธีที่อาจใช้ได้ อย่าเพิ่งด่วนสรุปวิธีนั้นวิธีนี้ดีที่สุด ทำการประเมินและปรับปรุงแนวคิดให้ดีขึ้น
5. ค้นหาวิธีการแก้ปัญหาที่เหมาะสม โดยการกำหนดเกณฑ์ในการเลือกวิธีใดวิธีหนึ่งจากวิธีที่คิดไว้หลายๆวิธี เช่น เลือวิธีที่เร็ว ราคาถูก และดีเพียงพอกับความต้องการ
6. ค้นหาวิธีการยอมรับวิธีแก้ปัญหาที่เลือกไว้ โดยหาวิธีที่จะทำให้ตนเองและผู้เกี่ยวข้องยอมรับวิธีแก้ปัญหาที่เลือกไว้ร่วมกัน และตกลองแก้ปัญหาด้วยวิธีนั้นข้อเสียของวิธีนี้คือ ไม่กล่าวถึงวิธีการนำไปปฏิบัติ หรือการทดสอบวิธีการแก้ปัญหาที่
เลือกไว้ก่อนนำไปใช้จริง แต่มีจุดเด่นตรงที่ชาวยสรางแนวทางการแก้ปัญหาที่หลากหลาย ที่ผู้ใช้เลือกได้โดยอิสระ
1.4 การแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ
การแก้ปัญหาที่ซับซ้อนด้วยวิธีการต่างๆ ที่กล่าวมาแล้ว ส่วนมากจำเป็นต้องใช้เทคโนโลยีสารสนเทศเข้าช่วยเพื่อเพิ่มความรวดเร็ว ถูกต้อง และสามารถทำซ้ำได้ง่าย ในกระบวนการทางเทคโนโลยีสารสนเทศเข้าช่วยแก้ปัญหา จำเป็นต้องปรับรูปแบบวิธีการทำงานให้เหมาะสมกับการใช้เทคโนโลยีสารสนเทศ
วิธีการแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ เป็นวิธีคล้ายกับการแก้ปัญกาทางวิศวกรรมมาก แต่ในการนำระบบคอมพิวเตอร์ไปใช้ในการแก้ปัญหา หรือเพิ่มประสิทธิภาพในการทำงานใดๆ ก็ตาม จะต้องมีการวิเคราะห์ปัญหาและศึกษาความเป็นไปได้ให้รอบคอบเสียก่อน ทั้งนี้เนื่องจากคอมพิวเตอร์ไม่ใช้เครื่องมือวิเศษที่จะแก้ปัญหได้ทุกเรื่อง
นอกจากนี้ยังจะต้องมีการศึกษาถึงความคุ้มค่าในการลงทุน เพื่อไม่ให้เป็นการลงทุนที่เสียเปล่า ต้องเลือกวิธีการแก้ปัญหาให้เหมาะสมกับงาน จัดหาเครื่องมือและเทคโนโลยีที่ไม่เกินความจำเป็น
การแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ เหมาะกับระบบงานที่ต้องทำงานอย่างใดอย่างหนึ่งซึ่งซากและมีปริมาณงานมากหรืองานที่ต้องการความรวดเร็วในการคำนวณเกินกว่าคนธรรมดาจะทำได้ วิธีการโดยทั้วไปคือ ปรับเปลี่ยนวิธีการหรือระบบการทำงานแบบเดิม มาใช้ระบบงานที่มีเครื่องคอมพิวเตอร์ช่วยทำงานเป็นบางส่วน หรือทั้งหมด เท่าที่สามารถจะทำแทนคนได้
ดังนั้น การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ จึงต้องมีการสร้างระบบงานคอมพิวเตอร์ขึ้นมาช่วยทำงานอย่างหลีกเลี่ยงไม่ได้ วิธีการโดยทั้วไป เราอาจไม่ต้องสร้างระบบงานทั้งหมดขึ้นใหม่ แต่พัฒนาระบบงานเดิมให้เป็นระบบงานที่ทำงานโดยคอมพิวเตอร์นิยมเรียกกันว่า การพัฒนาระบบงานคอมพิวเตอร์
1.4.1 ขั้นตอนการพัฒนาระบบงานคอมพิวเตอร์ ตามหลักวิชาว่าด้วยการวิเคราะห์และออกแบบระบบงาน ( System analysis and design ) มีการจัดขั้นตอนการพัฒนาระบบงานคอมพิวเตอร์และสารสนเทศดังนี้
1. วิเคราะห์ระบบงานหรือปัญหา ( System or problem analysis ) รวมถึงรายละเอียดข้อมูลที่ต้องใช้ โดยการศึกษาระบบงานเดิมอย่างละเอียด
2. กำหนดรายละเอียดของความต้องการของผู้ใช้ระบบงาน ( Require-ments specification )
3. ออกแบบขั้นตอนวิธีการทำงานของระบบใหม่
4. ตรวจสอบขั้นตอนวิธีให้ได้ผลตามความต้องการ
5. ออกแบบโปรแกรม ( Program design )
6.เขียนชุดคำสั่ง ( Coding )
7. ทดสอบโปรแกรม ( Testing ) และหาที่ผิดพลาด ( Debuugging )
8. นำโปรแกรมและระบบงานไปใช้งานจริง ( Implementation oroperation )
9. บำรุงรักษา ติดตามผล แก้ไขปรับปรุง ( Software maintenance and improvement ) เพื่อให้ทันสมัยใช้ได้ตลอดไป จะเห็นว่าการพัฒนาระบบสารสนเทศ จำเป็นจะต้องรู้ขั้นตอนวิธีการทำงานของระบบเดิม ตามด้วยการหาวิธีการแก้ปัญหาโดยใช้ระบบคอมพิวเตอร์และโปรแกรม จากนั้นจึงออกแบบวิธีการทำงานในระบบใหม่ให้ระเอียดซึ่งจะต้องมีการสร้างโปรแกรมคอมพิวเตอร์ขึ้นมาช่วยทำงานบางส่วน หรือทั้งหมด
1.4.2 ขั้นตอนการพัฒนาระบบงานโดยการจัดซื้อโปรแกรมสำเร็จรูป ในกรณีที่เราไม่ได้พัฒนาโปรแกรมเอง แต่เป็นการจัดซื้อโปรแกรมสำเร็จรูปมาใช้งาน เราอาจปรับเปลี่ยนขั้นตอนมาเป็นดังนี้
1. วิเคราะห์ปัญหาและระบบงานที่จะทำ ( System or problem analysis ) รวมถึงรายละเอียดข้อมูลที่มีอยุ่
2. กำหนดรายละเอียดของความต้องการของผู้ใช้ระบบงาน ( Require-ments specification )
3. ออกแบบขั้นตอนวิธีการทำงานของระบบใหม่
4. ตรวจสอบขั้นตอนวิธีว่าให้ผลตรงกับที่ต้องการ
5. จัดหาโปรแกรมที่ทำงานตรงตามความต้องการ โดยการซื้อหรือจ้างทำ
6. นำโปรแกรมและระบบงานไปใช้จริง ( Implementation oroperation )
7. บำรุงรักษาระบบ ติดตามผลและแก้ไขปรับปรุง ( Software mainte-mance and improvement )
1.5 เครื่องมือในการวิเคราะห์ขั้นตอนวิธีการแก้ปัญหา
ในการออกแบบขั้นตอนวิธีการทำงานเพื่อการแก้ปัญหาต่างๆ หรือการเขียนโปรแกรม จำเป็นต้องใช้เครื่องมือบางอย่างช่วยในการออกแบบและวิเคราะห์วิธีการเพื่อให้ง่ายต่อการมองภาพกระบวนการทำงานของระบบ สามารถตรวจสอบหาที่ผิด รวมทั้งหาทางปรับปรุงให้ดีกว่าเดิมได้ เครื่องมือดังกล่าวที่ง่ายที่สุด ได้แก่ ผังงาน หรือโฟลชาร์ต ( Flowchart ) และรหัสจำลอง ( Pseudo Code )
1.5.1 ผังงาน ( Flowchart ) เป็นเครื่องมือช่วยออกแบบ และวิเคราะห์การทำงานของโปรอกรมแบบรูปภาพขั้นพื้นฐานที่สุด ช่วยให้สามารถมองเห็นภาพของความสัมพันธ์ระหว่างกระบวนการต่างๆ ของระบบงานหรือโปรแกรมได้ง่าย และสามารถตรวจสอบว่าวิธีการนั้น ถูกต้อง มีประสิทธิภาพในการทำงาน และมีความซับซ้อนหรือไม่ ทำให้นำไปเขียนเป็นโปรแกรมได้อย่างถูกต้องซึ่งเหมาะสมสำหรับผู้เริ่มต้นศึกษากลไกของโปรแกรมอย่างละเอียดรวมทั้งเพื่อเป็นการศึกษาคิดค้นขั้นตอนวิธี( algorithm ) ที่ละเอียดอ่อน และยังจัดว่าเป็นกระบวนการที่ไม่ใหญ่และซับซ้อนมากนัก ผังงานประกอบด้วยสัญลักษณ์
จุดเริ่มต้น / สิ้นสุดของโปรแกรม
ลูกศรแสดงทิศทางการทำงานของโปรแกรมและการไหลของข้อมูล
ใช้แสดงคำสั่งในการประมวลผล หรือการกำหนดค่าข้อมูลให้กับตัวแปร
แสดงการอ่านข้อมูลจากหน่วยเก็บข้อมูลสำรองเข้าสู่หน่วยความจำหลักภายในเครื่องหรือการแสดง ผลลัพธ์จากการประมวลผลออกมา
การตรวจสอบเงื่อนไขเพื่อตัดสินใจ โดยจะมีเส้นออกจารรูปเพื่อแสดงทิศทางการทำงานต่อไป เงื่อนไขเป็นจริงหรือเป็นเท็จ
แสดงผลหรือรายงานที่ถูกสร้างออกมา
แสดงจุดเชื่อมต่อของผังงานภายใน หรือเป็นที่บรรจบของเส้นหลายเส้นที่มาจากหลายทิศทางเพื่อ
จะไปสู่การทำงานอย่างใดอย่างหนึ่งที่เหมือนกัน
การขึ้นหน้าใหม่ ในกรณีที่ผังงานมีความยาวเกินกว่าที่จะแสดงพอในหนึ่งหน้า
ปัจจุบันโปรแกรมช่วยเขียนผังงานทำให้เขียนได้ง่ายขึ้น เช่น SmartDraw ,Microsoft Visio 2002 ซึ่งหาข้อมูลและโปรแกรมตัวอย่างได้ที่เว็บไซต์ต่อไปนี้
http://www.smartdrae.com/resourcers/centers/flowcharts/index.htm
http://www.microsoft.com/office/visio/default.asp
1.5.2 รหัสลำลอง ( Pseudo Code ) เป็นเครื่องช่วยในการออกแบบระบบงานและโปรแกรมอีกแบบหนึ่ง โดยเขียนขั้นตอนวิธีเป็น ประโยคสั้นๆ กะทัดรัด แต่สื่อความหมายชัดเจน เรียงกันโดยมีหมายเลขกำกับแต่ละขั้นตอน ให้ทำงานตามลำดับหมายเลขและเงื่อนไขที่เขียนไว้ ตัวอย่างเช่น ถ้าต้องการออกแบบโปรแกรมให้พิมพ์ตัวเลขจาก 1 ถึง N โดยที N เป็นตัวเลขใด ๆ ก็ได้ที่มากกว่าหรือเท่ากับ 1 เราอาจเขียนวิธีทำงาน ที่เรียกว่ารหัสจำลองได้ดังนี้
1. ป้อนค่า N จากแป้นพิมพ์
2. กำหนดให้ตัวแปร I เป็นตัวเลขที่จะต้องพิมพ์ เริ่มต้นที่ I = 1
3. พิมพ์ค่า I ที่กระดาษของเครื่องพิมพ์
4. ตรวจสอบว่า I = N แล้วหรือไม่
5. ถ้า I ไม่เท่ากับ N ให้เพิ่มค่า I = I+1 จากนั้นกลับไปทำตามขั้นตอนที่ 3
6. ถ้า I = N แสดงว่างานเสร็จแล้ว จบโปรแกรม
ให้สังเกตขั้นตอนที่ 5 เมื่อทำมาถึงขั้นนี้ และ I ไม่เท่ากับ N เราต้องย้อนกลับไปทำขั้นที่ 3 เรื่อยๆเป็นการวน ( Looping ) จนกว่า I จะเท่ากับ N เมื่อ I = N เราจะลงไปทำขั้นตอนที่ 6 ซึ่งเป็นการจบงาน
สำหรับผู่ผึกจนชำนาญแล้ว อาจเขียนผังงาน หรืออาจใช้รหัสจำลองอย่างเดียวก็ได ้แต่การมองเห็นภาพระบบงานของรหัสจำลองมีน้อยกว่า อาจเข้าใจยากและไม่ค่อยสร้างความประทับใจเวลานำเสนอต่อมวลชน
แหล่งอ้างอิง : http://www.thaigoodview.com/node/35032?page=0%2C2
https://sites.google.com/site/mintwho/kar-kae-payha-dwy-krabwnkar-thekhnoloyi-sarsnthes
1.1 หลักการแก้ปัญหาตามวิธีวิทยาศาสตร์ ( Scientific method )
วิธีการแก้ปัญหาทางวิทยาศาสตร์เป็นวิธีที่มีมานานมากแล้ว ซึ่งใช้ศึกษาค้นคว้าความรู้ใหม่ๆ ตั้งแต่หลายร้อยปีก่อน จนเกิดความก้าวหน้าทางวิทยาศาสตร์ด้านต่างๆ มากมายอย่างทุกวันนี้ หลักการแก้ปัญหา ทางวิทยาศาสตร์ มีดังนี้
1. เก็บข้อมูลเบื้องต้น โดยการศึกษา สังเกตเหตุการณ์หรือปรากฎการณ์ทางธรรมชาติ
2. ตั้งสมมิฐานเกี่ยวกับสาเหตุ แนวความคิด หรือทฤษฎี ของการเกิดปรากฎการณ์และทางการแก้ปัญหา
3. พัฒนาการวิธีการที่จะทดสอบสมมติฐานหรือทฤษฎีตามข้อ 2
4. ทำการทดลองเพื่อพิสูจน์สมมติฐานหรือทฤษฎี โดยตั้งวัตถุประสงค์ให้ชัดเจน อาจมีการตั้งกลุ่มทดลองภายใต้การควบคุม เปรียบเทียบกับกลุ่มที่ไม่ควบคุม ทำการบันทึกผลการทดลองที่สังเกตพบไว้อย่างละเอียดแม่นยำ
5. วิเคราะห์ผลการทดลอง เพื่อหาคำตอบว่าสมมติฐานที่ตั้งไว้นั้นเป็นจริงหรือไม่
6. เขียนรายงานสรุปผลคำตอบที่ได้ผลที่ได้จากวิธีนี้เป็นที่ยอมรับกันมาก เนื่องจากเป็นวิธีที่พิสูจน์ได้ เห็นผลชัดเจน และ มีวัตถุประสงค์เด่นชัด แต่ผลที่ได้อาจขาดความคิดสร้างสรรค์ หรือบางครั้งสำหรับปัญหาง่ายๆ ก็ไม่จำเป็นต้องใช้ขั้นตอนมากมายเช่นนี้ และปัญหาบางอย่างก็อาจใช้ไม่ได้เลย เพราะทดลองไม่ได้
1.2 หลักการแก้ปัญหาตามวิธีการทางวิศวกรรม ( Engineering problem solving )
วิธีเหมาะกับการแก้ปัญหาในการออกแบบผลิตภัณฑ์ สินคัา หรือเพื่อสร้างสิ่งใหม่หรือเพื่อการแก้ปัญหาในเชิงวิศวกรรม มีขั้นตอนดังนี้
1. วิเคราะห์ปัญหา กำหนดรายละเอียดปัญหาให้ชัดเจนเป็นข้อๆ กำหนดความ ต้องการและข้อจำกัดในการแก้ปัญหาเป็นข้อๆวิเคราะห์ข้อมูลว่ามีข้อมูลใดที่มีอยุ่แล้วและใช้ได้อะไรคือสิ่งที่ยังไม่รู้และต้องการรู้
2. สร้างแบบจำลองวิธีการแก้ปัญหา ( Define model ) อาจเป็นแบบจำลองทางคณิตศาสตร์ หรือบางกรณีต้องสร้างแบบจำลองย่อส่วนจากของจริง คิดค้นหาสูตรสมการที่จะใช้แก้ปัญหา เก็บข้อมูลที่ต้องใช้แก้ปัญหา
3. คำนวณหาคำตอบโดยใช้แบบจำลอง วิธี และสมกาในข้อ 2 ตรวจสอบผลลัพธ์ที่ได้ว่าถูกต้องเหมาะสมหรือไม่
4. ผลลัพธ์หรือคำตอบที่ได้มีเหตุผลว่าถูกต้องเหมาะสม จึงนำไปปฏิบัติ
1.3 วิธีการแก้ปัญหาแบบสร้างสรรค์ ( Creative problem solving )
วิธีนี้เป็นวิธีแก้ปัญหาที่ใช้แนวคิดแบบสร้างสรรค์ สามารถนำไปใช้งานได้กว้างขวาง ซึ่งมีหลายวิธีเช่นกันในที่นี้ขอยกตัวอย่างวิธีของ Sidney J. Parness ดังนี้
1. ใช้ความสังเกตอย่างพินิจพิเคราะห์ คือให้ตื่นตัวตกใจ ใช้ตาดูหูฟัง เพื่อให้มองเห็นปัญหาต่าง ๆ ที่เกิดขึ้น และมองเห็นวิธีแก้ปัญหาที่อาจเป็นไปได้
2. ค้นหาความจริง โดยเก็บรวบรวมข้อมูล เช่น ทำการศึกษา ทดลอง หรือทำวิธีใดๆที่เหมาะสม
3. ค้นหาปัญหา เพื่อดูว่าปัญหาที่แท้จริงคืออะไร สาเหตุของการเกิดคืออะไร
4. ค้นหาแนวความคิดในการแก้ปัญหา โดยการคิดค้นวิธีการแก้ปัญหาหลายๆวิธีที่อาจใช้ได้ อย่าเพิ่งด่วนสรุปวิธีนั้นวิธีนี้ดีที่สุด ทำการประเมินและปรับปรุงแนวคิดให้ดีขึ้น
5. ค้นหาวิธีการแก้ปัญหาที่เหมาะสม โดยการกำหนดเกณฑ์ในการเลือกวิธีใดวิธีหนึ่งจากวิธีที่คิดไว้หลายๆวิธี เช่น เลือวิธีที่เร็ว ราคาถูก และดีเพียงพอกับความต้องการ
6. ค้นหาวิธีการยอมรับวิธีแก้ปัญหาที่เลือกไว้ โดยหาวิธีที่จะทำให้ตนเองและผู้เกี่ยวข้องยอมรับวิธีแก้ปัญหาที่เลือกไว้ร่วมกัน และตกลองแก้ปัญหาด้วยวิธีนั้นข้อเสียของวิธีนี้คือ ไม่กล่าวถึงวิธีการนำไปปฏิบัติ หรือการทดสอบวิธีการแก้ปัญหาที่
เลือกไว้ก่อนนำไปใช้จริง แต่มีจุดเด่นตรงที่ชาวยสรางแนวทางการแก้ปัญหาที่หลากหลาย ที่ผู้ใช้เลือกได้โดยอิสระ
1.4 การแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ
การแก้ปัญหาที่ซับซ้อนด้วยวิธีการต่างๆ ที่กล่าวมาแล้ว ส่วนมากจำเป็นต้องใช้เทคโนโลยีสารสนเทศเข้าช่วยเพื่อเพิ่มความรวดเร็ว ถูกต้อง และสามารถทำซ้ำได้ง่าย ในกระบวนการทางเทคโนโลยีสารสนเทศเข้าช่วยแก้ปัญหา จำเป็นต้องปรับรูปแบบวิธีการทำงานให้เหมาะสมกับการใช้เทคโนโลยีสารสนเทศ
วิธีการแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ เป็นวิธีคล้ายกับการแก้ปัญกาทางวิศวกรรมมาก แต่ในการนำระบบคอมพิวเตอร์ไปใช้ในการแก้ปัญหา หรือเพิ่มประสิทธิภาพในการทำงานใดๆ ก็ตาม จะต้องมีการวิเคราะห์ปัญหาและศึกษาความเป็นไปได้ให้รอบคอบเสียก่อน ทั้งนี้เนื่องจากคอมพิวเตอร์ไม่ใช้เครื่องมือวิเศษที่จะแก้ปัญหได้ทุกเรื่อง
นอกจากนี้ยังจะต้องมีการศึกษาถึงความคุ้มค่าในการลงทุน เพื่อไม่ให้เป็นการลงทุนที่เสียเปล่า ต้องเลือกวิธีการแก้ปัญหาให้เหมาะสมกับงาน จัดหาเครื่องมือและเทคโนโลยีที่ไม่เกินความจำเป็น
การแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ เหมาะกับระบบงานที่ต้องทำงานอย่างใดอย่างหนึ่งซึ่งซากและมีปริมาณงานมากหรืองานที่ต้องการความรวดเร็วในการคำนวณเกินกว่าคนธรรมดาจะทำได้ วิธีการโดยทั้วไปคือ ปรับเปลี่ยนวิธีการหรือระบบการทำงานแบบเดิม มาใช้ระบบงานที่มีเครื่องคอมพิวเตอร์ช่วยทำงานเป็นบางส่วน หรือทั้งหมด เท่าที่สามารถจะทำแทนคนได้
ดังนั้น การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ จึงต้องมีการสร้างระบบงานคอมพิวเตอร์ขึ้นมาช่วยทำงานอย่างหลีกเลี่ยงไม่ได้ วิธีการโดยทั้วไป เราอาจไม่ต้องสร้างระบบงานทั้งหมดขึ้นใหม่ แต่พัฒนาระบบงานเดิมให้เป็นระบบงานที่ทำงานโดยคอมพิวเตอร์นิยมเรียกกันว่า การพัฒนาระบบงานคอมพิวเตอร์
1.4.1 ขั้นตอนการพัฒนาระบบงานคอมพิวเตอร์ ตามหลักวิชาว่าด้วยการวิเคราะห์และออกแบบระบบงาน ( System analysis and design ) มีการจัดขั้นตอนการพัฒนาระบบงานคอมพิวเตอร์และสารสนเทศดังนี้
1. วิเคราะห์ระบบงานหรือปัญหา ( System or problem analysis ) รวมถึงรายละเอียดข้อมูลที่ต้องใช้ โดยการศึกษาระบบงานเดิมอย่างละเอียด
2. กำหนดรายละเอียดของความต้องการของผู้ใช้ระบบงาน ( Require-ments specification )
3. ออกแบบขั้นตอนวิธีการทำงานของระบบใหม่
4. ตรวจสอบขั้นตอนวิธีให้ได้ผลตามความต้องการ
5. ออกแบบโปรแกรม ( Program design )
6.เขียนชุดคำสั่ง ( Coding )
7. ทดสอบโปรแกรม ( Testing ) และหาที่ผิดพลาด ( Debuugging )
8. นำโปรแกรมและระบบงานไปใช้งานจริง ( Implementation oroperation )
9. บำรุงรักษา ติดตามผล แก้ไขปรับปรุง ( Software maintenance and improvement ) เพื่อให้ทันสมัยใช้ได้ตลอดไป จะเห็นว่าการพัฒนาระบบสารสนเทศ จำเป็นจะต้องรู้ขั้นตอนวิธีการทำงานของระบบเดิม ตามด้วยการหาวิธีการแก้ปัญหาโดยใช้ระบบคอมพิวเตอร์และโปรแกรม จากนั้นจึงออกแบบวิธีการทำงานในระบบใหม่ให้ระเอียดซึ่งจะต้องมีการสร้างโปรแกรมคอมพิวเตอร์ขึ้นมาช่วยทำงานบางส่วน หรือทั้งหมด
1.4.2 ขั้นตอนการพัฒนาระบบงานโดยการจัดซื้อโปรแกรมสำเร็จรูป ในกรณีที่เราไม่ได้พัฒนาโปรแกรมเอง แต่เป็นการจัดซื้อโปรแกรมสำเร็จรูปมาใช้งาน เราอาจปรับเปลี่ยนขั้นตอนมาเป็นดังนี้
1. วิเคราะห์ปัญหาและระบบงานที่จะทำ ( System or problem analysis ) รวมถึงรายละเอียดข้อมูลที่มีอยุ่
2. กำหนดรายละเอียดของความต้องการของผู้ใช้ระบบงาน ( Require-ments specification )
3. ออกแบบขั้นตอนวิธีการทำงานของระบบใหม่
4. ตรวจสอบขั้นตอนวิธีว่าให้ผลตรงกับที่ต้องการ
5. จัดหาโปรแกรมที่ทำงานตรงตามความต้องการ โดยการซื้อหรือจ้างทำ
6. นำโปรแกรมและระบบงานไปใช้จริง ( Implementation oroperation )
7. บำรุงรักษาระบบ ติดตามผลและแก้ไขปรับปรุง ( Software mainte-mance and improvement )
1.5 เครื่องมือในการวิเคราะห์ขั้นตอนวิธีการแก้ปัญหา
ในการออกแบบขั้นตอนวิธีการทำงานเพื่อการแก้ปัญหาต่างๆ หรือการเขียนโปรแกรม จำเป็นต้องใช้เครื่องมือบางอย่างช่วยในการออกแบบและวิเคราะห์วิธีการเพื่อให้ง่ายต่อการมองภาพกระบวนการทำงานของระบบ สามารถตรวจสอบหาที่ผิด รวมทั้งหาทางปรับปรุงให้ดีกว่าเดิมได้ เครื่องมือดังกล่าวที่ง่ายที่สุด ได้แก่ ผังงาน หรือโฟลชาร์ต ( Flowchart ) และรหัสจำลอง ( Pseudo Code )
1.5.1 ผังงาน ( Flowchart ) เป็นเครื่องมือช่วยออกแบบ และวิเคราะห์การทำงานของโปรอกรมแบบรูปภาพขั้นพื้นฐานที่สุด ช่วยให้สามารถมองเห็นภาพของความสัมพันธ์ระหว่างกระบวนการต่างๆ ของระบบงานหรือโปรแกรมได้ง่าย และสามารถตรวจสอบว่าวิธีการนั้น ถูกต้อง มีประสิทธิภาพในการทำงาน และมีความซับซ้อนหรือไม่ ทำให้นำไปเขียนเป็นโปรแกรมได้อย่างถูกต้องซึ่งเหมาะสมสำหรับผู้เริ่มต้นศึกษากลไกของโปรแกรมอย่างละเอียดรวมทั้งเพื่อเป็นการศึกษาคิดค้นขั้นตอนวิธี( algorithm ) ที่ละเอียดอ่อน และยังจัดว่าเป็นกระบวนการที่ไม่ใหญ่และซับซ้อนมากนัก ผังงานประกอบด้วยสัญลักษณ์
จุดเริ่มต้น / สิ้นสุดของโปรแกรม
ลูกศรแสดงทิศทางการทำงานของโปรแกรมและการไหลของข้อมูล
ใช้แสดงคำสั่งในการประมวลผล หรือการกำหนดค่าข้อมูลให้กับตัวแปร
แสดงการอ่านข้อมูลจากหน่วยเก็บข้อมูลสำรองเข้าสู่หน่วยความจำหลักภายในเครื่องหรือการแสดง ผลลัพธ์จากการประมวลผลออกมา
การตรวจสอบเงื่อนไขเพื่อตัดสินใจ โดยจะมีเส้นออกจารรูปเพื่อแสดงทิศทางการทำงานต่อไป เงื่อนไขเป็นจริงหรือเป็นเท็จ
แสดงผลหรือรายงานที่ถูกสร้างออกมา
แสดงจุดเชื่อมต่อของผังงานภายใน หรือเป็นที่บรรจบของเส้นหลายเส้นที่มาจากหลายทิศทางเพื่อ
จะไปสู่การทำงานอย่างใดอย่างหนึ่งที่เหมือนกัน
การขึ้นหน้าใหม่ ในกรณีที่ผังงานมีความยาวเกินกว่าที่จะแสดงพอในหนึ่งหน้า
ปัจจุบันโปรแกรมช่วยเขียนผังงานทำให้เขียนได้ง่ายขึ้น เช่น SmartDraw ,Microsoft Visio 2002 ซึ่งหาข้อมูลและโปรแกรมตัวอย่างได้ที่เว็บไซต์ต่อไปนี้
http://www.smartdrae.com/resourcers/centers/flowcharts/index.htm
http://www.microsoft.com/office/visio/default.asp
1.5.2 รหัสลำลอง ( Pseudo Code ) เป็นเครื่องช่วยในการออกแบบระบบงานและโปรแกรมอีกแบบหนึ่ง โดยเขียนขั้นตอนวิธีเป็น ประโยคสั้นๆ กะทัดรัด แต่สื่อความหมายชัดเจน เรียงกันโดยมีหมายเลขกำกับแต่ละขั้นตอน ให้ทำงานตามลำดับหมายเลขและเงื่อนไขที่เขียนไว้ ตัวอย่างเช่น ถ้าต้องการออกแบบโปรแกรมให้พิมพ์ตัวเลขจาก 1 ถึง N โดยที N เป็นตัวเลขใด ๆ ก็ได้ที่มากกว่าหรือเท่ากับ 1 เราอาจเขียนวิธีทำงาน ที่เรียกว่ารหัสจำลองได้ดังนี้
1. ป้อนค่า N จากแป้นพิมพ์
2. กำหนดให้ตัวแปร I เป็นตัวเลขที่จะต้องพิมพ์ เริ่มต้นที่ I = 1
3. พิมพ์ค่า I ที่กระดาษของเครื่องพิมพ์
4. ตรวจสอบว่า I = N แล้วหรือไม่
5. ถ้า I ไม่เท่ากับ N ให้เพิ่มค่า I = I+1 จากนั้นกลับไปทำตามขั้นตอนที่ 3
6. ถ้า I = N แสดงว่างานเสร็จแล้ว จบโปรแกรม
ให้สังเกตขั้นตอนที่ 5 เมื่อทำมาถึงขั้นนี้ และ I ไม่เท่ากับ N เราต้องย้อนกลับไปทำขั้นที่ 3 เรื่อยๆเป็นการวน ( Looping ) จนกว่า I จะเท่ากับ N เมื่อ I = N เราจะลงไปทำขั้นตอนที่ 6 ซึ่งเป็นการจบงาน
สำหรับผู่ผึกจนชำนาญแล้ว อาจเขียนผังงาน หรืออาจใช้รหัสจำลองอย่างเดียวก็ได ้แต่การมองเห็นภาพระบบงานของรหัสจำลองมีน้อยกว่า อาจเข้าใจยากและไม่ค่อยสร้างความประทับใจเวลานำเสนอต่อมวลชน
แหล่งอ้างอิง : http://www.thaigoodview.com/node/35032?page=0%2C2
https://sites.google.com/site/mintwho/kar-kae-payha-dwy-krabwnkar-thekhnoloyi-sarsnthes
วันเสาร์ที่ 7 พฤศจิกายน พ.ศ. 2558
IP address
การติดต่อสื่อสารกันในระบบเครือข่ายอินเตอร์เน็ตที่มีโพรโตคอล TCP/IP เป็นมาตรฐานนี้ เครื่องคอมพิวเตอร์ทุกเครื่องที่เชื่อมอยู่ จะต้องมีหมายเลขเครื่องเอาไว้อ้างอิงให้เครื่องคอมพิวเตอร์อื่นๆ ได้ทราบ เหมือนกับทุกคนที่ต้องมีชื่อและนามสกุลให้คนอื่นเรียก ซึ่งจะซ้ำกันไม่ได้ หมายเลขเครื่องอ้างอิงดังกล่าวเรียกว่า IP Address หรือ หมายเลข IP หรือบางที่เรียกว่า “แอดเดรส IP” (IP ในที่นี้คือ Internet Protocol ตัวเดียวกับใน TCP/IP นั่นเอง) ซึ่งถูกจัดเป็นตัวเลขชุดหนึ่งขนาด 32 บิต ใน 1 ชุดนี้มีตัวเลขถูกแบ่งเป็น 4 ส่วน ส่วนละ 8 บิต เท่า ๆ กัน เวลาเขียนก็แปลงให้เป็นเลขฐาน 10 ก่อนเพื่อเป็นการง่ายแล้วเขียนโดยคั่นแต่ละตัวด้วยจุด ดังนั้นตัวเลขแต่ละส่วนนี้จึงมีค่าได้ตั้งแต่ 0 จนถึง 28 - 1 = 255เท่านั้น เช่น 192.10.1.101 เป็นต้น
ตัวเลข IP Address ชุดนี้เป็นสิ่งที่สำคัญคล้าย ๆ เบอร์โทรศัพท์ที่เรามีใช้อยู่และไม่ซ้ำกัน เพราะสามารถกำหนดตัวเลขได้ทั้งสิ้น 4 พันล้านเลขหมาย แต่การกำหนดให้คอมพิวเตอร์มีเลขหมาย IP Address นี้ ไม่ได้เริ่มจาก 1 และเพิ่มขึ้นไปเรื่อย ๆ หากแต่จะมีการจัดแบ่งออกเป็น 2 ส่วน คือ
* ส่วนแรก เป็นเลขหมายของเครือข่าย (Network Number)
* ส่วนที่สอง เรียกว่าหมายเลขคอมพิวเตอร์ที่อยู่ในเครือข่ายนั้น (Host Number) เพราะในเครือข่ายใด ๆ อาจมีเครื่องคอมพิวเตอร์ที่เชื่อมต่ออยู่มากมาย ในเครือข่ายที่อยู่คนละระบบ อาจมีเลข Host ซ้ำกันก็ได้ แต่เมื่อรวมกับเลขหมาย Network แล้วจะเป็น IP Address ที่ไม่ซ้ำกันเลย
ในการจัดตั้งหรือการกำหนดเลขหมาย IP Address นี้มีวิธีการกำหนดที่ชัดเจนและมีวิธีกฏเกณฑ์ที่รัดกุม ผู้ใช้ที่อยากจัดตั้ง Host คอมพิวเตอร์เพื่อเชื่อมต่อเข้าอินเตอร์เน็ตและบริการต่าง ๆ สามารถขอเลขหมาย IP Address ได้ ที่หน่วยงาน Internet Network Information Center (InterNIC) ขององค์กร Network Solution Incorporated (NIS) ที่รัฐเวอร์จิเนีย สหรัฐอเมริกา แต่ถ้าผู้ใช้สมัครเข้าเป็นสมาชิกขอใช้บริการอินเตอร์เน็ตจากบริษัทผู้ให้บริการ (Internet Service Provider) เรียกย่อ ๆ ว่า หน่วยงาน ISP รายใดก็ตาม ก็ไม่ต้องไปขอ IP Address เนื่องจากหน่วยงาน ISP เหล่านั้นจะกำหนดหมายเลข IP ให้ใช้ หรือส่งค่า IP ชั่วคราวให้ใช้งาน ทั้งนี้ขึ้นอยู่กับการขอใช้รูปแบบของการบริการ
IP Address นี้จะแบ่งได้เป็น 5 ระดับ (Class) ที่ใช้งานโดยทั่วไปจะมีเพียง 3 ระดับคือ Class A, Class B, Class C ซึ่งจะแบ่งตามขนาดของเครือข่ายนั่นเอง ถ้าเครือข่ายนั้นมีจำนวนเครื่องคอมพิวเตอร์อยู่มากก็จะจัดอยู่ใน Class A ถ้ามีเครื่องคอมพิวเตอร์ลดหลั่นกันลงมาก็จะจัดอยู่ใน Class B, Class C ตามลำดับ
จากรูปจะเห็นว่าหมายเลข IP ของ Class A ตัวแรกจะเป็น 0 และหมายเลขของเครือข่าย (Network Number) ขนาด 7 บิต และมีหมายเลขของเครื่องคอมพิวเตอร์ (Host Number) ขนาด 24 บิต ทำให้ในหนึ่งเครือข่ายของ Class A สามารถมีเครื่องคอมพิวเตอร์ในเครือข่ายได้ถึง 224 = 16 ล้านเครื่อง เหมาะสำหรับองค์กรหรือบริษัทเครือข่ายยักษ์ใหญ่ แต่ใน Class A นี้จะมีหมายเลขเครือข่ายได้ 128 ตัวเท่านั้นทั่วโลก คือสามารถมีเครือข่ายยักษ์ใหญ่ Class A ได้เพียง 128 เครือข่ายเท่านั้น
สำหรับ Class B จะมีหมายเลขเครือข่าย แบบ14 บิต และหมายเลขเครื่องคอมพิวเตอร์แบบ 16 บิต (ส่วนอีก 2 บิตที่เหลือบังคับว่าต้องขึ้นต้นด้วย 10 ) ดังนั้นสามารถมีเครือข่ายอยู่ใน Class B ได้มากกว่า Class A คือมีได้ถึง 214 = 16,384 เครือข่าย และสามารถมีเครื่องคอมพิวเตอร์เชื่อมต่อในเครือข่าย Class B แต่ละเครือข่ายได้ถึง 216 หรือ 65,536 เครื่อง
สุดท้ายคือ Class C ซึ่งมีหมายเลขเครื่องคอมพิวเตอร์แบบ 8 บิตและมีหมายเลขเครือข่ายแบบ 21 บิต ส่วน 3 บิตแรกบังคับว่าต้องเป็น 1102 ดังนั้นในแต่ละเครือข่ายของ Class C จะมีจำนวนเครื่องต่อเชื่อมได้เพียงไม่เกิน 254 เครื่องต่อเครือข่าย ( 28 = 256 แต่หมายเลขเครื่อง 0 และ 255 จะไม่ถูกใช้งาน จึงเหลือเพียง 254 ดังนั้นวิธีการสังเกตได้ง่าย ๆ ว่าเราเชื่อมต่อเครือข่าย Class ใดสามารถดูได้จาก IP Address ในส่วนหน้า (ส่วน Network Address) โดย
Class A จะมี Network ตั้งแต่ 0 ถึง 127 (จะได้เห็นว่า บิตแรกเป็น 0 เสมอ)
Class B จะมี Network ตั้งแต่ 128 ถึง 191 (เพราะขึ้นต้นด้วย 102 เท่านั้น)
Class C จะมี Network ตั้งแต่ 192 ถึง 223 (เพราะขึ้นต้นด้วย 1102 เท่านั้น)
เช่นถ้าเครื่องคอมพิวเตอร์ในอินเตอร์เน็ตมีหมายเลข IP ดังนี้ 150.16.80.7 ตัวเลข 150.16 แสดงว่าเป็นเครือข่าย Class B ซึ่งหมายเลขเครือข่ายเต็มๆ จะใช้ สองส่วนแรกคือ 150.16 และมีหมายเลขของเครื่องคอมพิวเตอร์คือ 80.7 หรือถ้ามี IP Address เป็น 192.168.8.55 ทำให้เราทราบว่าเครื่องคอมพิวเตอร์นั้นอยู่ในเครือข่าย Class C มีหมายเลขเครือข่ายอยู่ใน 3 ส่วนแรก ได้แก่ 192.168.8 และมีหมายเลขประจำเครื่องคือ 55 เป็นต้น
แหล่งอ้างอิง : http://home.kku.ac.th/hslib/412141/412141_2548/c6s21IPaddress.htm
แหล่งอ้างอิง : http://home.kku.ac.th/hslib/412141/412141_2548/c6s21IPaddress.htm
สมัครสมาชิก:
ความคิดเห็น (Atom)
