รูปแบบโครงสร้างการทำงาน

รูปแบบโครงสร้างการทำงาน

1.โครงสร้างแบบเป็นลำดับ (sequence structure)

                 โครงสร้างลักษณะนี้เป็นโครงสร้างพื้นฐานของผังงาน และเป็นลักษณะขั้นตอนการทำงานที่พบมากที่สุด คือทำงานทีละขั้นตอนลำดับ

2.โครงสร้างแบบมีการเลือก (selection structure)

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

      การทำงานแบบเลือกทำ  1 ทาง  คือ จะทำงานเฉพาะเงื่อนไขที่เป็นจริงเท่านั้นการตรวจสอบเงื่อนไขชนิดนี้  ใช้แสดงกรณีที่ต้องการทำงานเมื่อมี ค่าของเงื่อนไขเป็นจริงเท่านั้น

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

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

-ภาษาโปรแกรมส่วนใหญ่จะจำกัดให้สามารถตรวจสอบเงื่อนไข เฉพาะ ตัวแปรประเภทเลขจำนวนเต็ม(Integer) และตัวแปรประเภทตัวอักษร(Character)เท่านั้น

3.โครงสร้างแบบทำซ้ำ (iteration structure)

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

การทำงานแบบทำซ้ำตามจำนวนรอบที่ระบุ (FOR Process)  จะทำงานตามจำนวนรอบที่กำหนดโดยเริ่มจากรอบที่เริ่มต้นไปจนถึงรอบสุดท้าย  ตามปกติจะเพิ่มค่าของรอบไป 1 ค่า  เมื่อทำงานครบรอบหนึ่ง ๆจะทำการตรวจสอบเงื่อนไขของการวนรอบก่อนการทำงาน ถ้าเงื่อนไขเป็นจริงจะทำงานโดยจะวนรอบการทำงาน เท่ากับ  จำนวนรอบที่สั่ง(ในที่นี้จะทำทั้งหมด   N รอบ)ถ้าเงื่อนไขเป็นเท็จจะข้ามคำสั่งนี้ เพื่อไปทำงานในคำสั่งถัดไปเหมาะกับงานที่ทราบจำนวนรอบการทำงานที่แน่นอน

  การทำงานแบบทำซ้ำในขณะที่เงื่อนไขเป็นจริง (WHILE-DO  Process)  จะทำการตรวจสอบเงื่อนไขของการทำงานก่อนการทำงานทุกครั้ง  และจะทำงานเฉพาะเมื่อเงื่อนไขที่เป็นจริงเท่านั้นจะทำการตรวจสอบเงื่อนไขก่อนการทำงานและจะทำงานวนรอบ(Loop) ในกรณีที่เงื่อนไขมีค่าเป็นจริงเท่านั้น  ถ้าเงื่อนไขมีค่าเป็นเท็จจะเลิกทำงานวนรอบ(ก็คือทำในขณะที่เป็นจริง)-เหมาะกับงานที่ไม่มีการบังคับทำงานในครั้งแรกของรอบการทำงาน

การทำงานแบบทำซ้ำจนกระทั่งเงื่อนไขเป็นจริง ( DO-UNTIL หรือ  REPEAT-UNTIL Process) จะทำงานตามที่ระบุก่อนการตรวจสอบเงื่อนไขของการทำงานและจะทำงานจนกระทั่งเงื่อนไขของการทำงานเป็นจริงจะทำการตรวจสอบเงื่อนไขหลังการทำงานและจะทำงานวนรอบ(Loop) ในกรณีที่เงื่อนไขมีค่าเป็นเท็จเท่านั้น  ถ้าเงื่อนไขมีค่าเป็นจริงจะเลิกทำงานวนรอบ(ก็คือทำงานจนกระทั่งเป็นเท็จ)เหมาะกับงานที่บังคับทำงานในครั้งแรกของรอบการทำงาน

อ้างอิง

http://kropomprograming.wordpress.com/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B8%84%E0%B8%AD%E0%B8%A1%E0%B8%9E%E0%B8%B4%E0%B8%A7%E0%B9%80/2-%E0%B8%A5%E0%B8%B1%E0%B8%81%E0%B8%A9%E0%B8%93%E0%B8%B0%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%87%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B8%9C%E0%B8%B1%E0%B8%87%E0%B8%87/

การเขียนผังงาน

การเขียนผังงาน

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

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

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

ผังงานโปรแกรม ( Program Flowchart ) การเขียนผังโปรแกรมจะประกอบไปด้วยการใช้สัญลักษณ์มาตรฐานต่าง ๆ ที่เรียกว่า สัญลักษณ์ ANSI ( American National Standards Institute ) ในการสร้างผังงาน ดังตัวอย่างที่แสดงในรูปต่อไปนี้

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

รูปที่1 แสดง สัญลักษณ์ในการเขียนผังงานโปรแกรม


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

รูปที่ 2 แสดงการเขียนผังงานที่แสดงขั้นตอนการส่งจดหมาย

ตัวอย่างที่ 2 เขียนผังงานแสดงวิธีการรับประทานยา ที่แบ่งขนาดรับประทานตามอายุของผู้ทานดังนี้ • อายุมากกว่า 10 ปี รับประทานครั้งละ 2 ช้อนชา • อายุมากกว่า 3 ปี ถึง 10 ปี รับประทานครั้งละ 1 ช้อนชา • อายุมากกว่า 1 ปี ถึง 3 ปี รับประทานครั้งละ 1/2 ช้อนชา • แรกเกิดถึง 1 ปี ห้ามรับประทาน

รูปที่ 3 แสดงการเขียนผังงานแสดงวิธีการรับประทานยา


โครงสร้างการทำงานแบบมีการเลือก ( Selection ) เป็นโครงสร้างที่ใช้การตรวจสอบเงื่อนไขเพื่อการทำงานอย่างใดอย่างหนึ่ง โดยโครงสร้างแบบนี้จะมีอยู่ด้วยกัน 2 รูปแบบ คือ IF – THEN – ELSE และ IF – THEN

รูปที่4 แสดงโครงสร้างผังงานแบบมีการเลือก

โครงสร้างแบบ IF – THEN – ELSE เป็นโครงสร้างที่จะทำการเปรียบเทียบเงื่อนไขที่ใส่ไว้ในส่วนหลังคำว่า IF และเมื่อได้ผลลัพธ์จากการเปรียบเทียบก็จะเลือกว่าจะทำงานต่อในส่วนใด กล่าวคือถ้าเงื่อนไขเป็นจริง ( TRUE ) ก็จะเลือกไปทำงานต่อที่ส่วนที่อยู่หลัง THEN แต่ถ้าเงื่อนไขเป็นเท็จ ( FALSE ) ก็จะไปทำงานต่อในส่วนที่อยู่หลังคำว่า ELSE

แต่ถ้าสำหรับโครงสร้างแบบ IF – THEN เป็นโครงสร้างที่ไม่มีการใช้ ELSE ดังนั้น ถ้ามีการเปรียบเทียบเงื่อนไขที่อยู่หลัง IF มีค่าเป็นจริง ก็จะไปทำส่วนที่อยู่หลัง Then แต่ถ้าเงื่อนไขเป็นเท็จ ก็จะไปทำคำสั่งที่อยู่ถัดจาก IF – THEN แทน

ตัวอย่าง 3 การเขียนผังงานอ่านค่าข้อมูลเข้ามาเก็บไว้ในตัวแปร A และ B แล้วทำการเปรียบเทียบในตัวแปรทั้งสอง โดยมีเงื่อนไขดังนี้ • ถ้า A มากกว่า B ให้คำนวณหาค่า A – B และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ RESULT • ถ้า A น้อยกว่าหรือเท่ากับ B ให้คำนวณหาค่า A + B และเก็บผลลัพธ์ไว้ในตัวแปรชื่อ RESULT

รูปที่ 3 แสดงการเขียนผังงานอ่านค่าข้อมูล

ตัวอย่าง 4 การเขียนผังงานเปรียบเทียบค่าข้อมูลที่เก็บอยู่ในตัวแปร X โดยมีเงื่อนไขดังนี้ • ถ้า X > 0 ให้พิมพ์คำว่า ” POSITIVE NUMBER “ • ถ้า X < 0 ให้พิมพ์คำว่า ” NEGATIVE NUMBER “ • ถ้า X = 0 ให้พิมพ์คำว่า ” ZERO NUMBER “

รูปที่ 4 แสดงการเขียนผังงานเปรียบเทียบค่าข้อมูล


โครงสร้างการทำงานแบบมีการทำงานซ้ำ เป็นโครงสร้างที่มีการประมวลผลกลุ่มคำสั่งซ้ำหลายครั้ง ตามลักษณะเงื่อนไขที่กำหนด อาจเรียก การทำงานซ้ำแบบนี้ได้อีกแบบว่า การวนลูป ( Looping ) โครงสร้างแบบการทำงานซ้ำนี้จะมีอยู่ 2 ประเภท คือ • DO WHILE • DO UNTIL

DO WHILE เป็นโครงสร้างที่มีการทดสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็นจริงก็จะเข้ามาทำงานในกลุ่มคำสั่งที่ต้องทำซ้ำ ซึ่งเรียกว่าการเข้าลูป หลังจากนั้นก็จะย้อนกลับไปตรวจสอบเงื่อนไขใหม่อีก ถ้าเงื่อนไขยังคงเป็นจริงอยู่ ก็ยังคงต้องทำกลุ่มคำสั่งซ้ำหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไขเป็นเท็จ ก็จะออกจากลูปไปทำคำสั่งถัดไปที่อยู่ถัดจาก DO WHILE หรืออาจเป็นการจบการทำงาน

แสดงโครงสร้างการทำงานซ้ำแบบ DO WHILE

DO UNTIL เป็นโครงสร้างการทำงานแบบทำงานซ้ำเช่นกัน แต่มีการทำงานที่แตกต่างจาก DO WHILE คือจะมีการเข้าทำงานกลุ่มคำสั่งที่อยู่ภายในลูปก่อนอย่างน้อย 1 ครั้ง แล้วจึงจะไปทดสอบเงื่อนไข ถ้าเงื่อนไขเป็นเท็จก็จะมีการเข้าทำกลุ่มคำสั่งที่ต้องทำซ้ำอีก หลังจากนั้นก็จะย้อนกลับไปตรวจสอบเงื่อนไขใหม่อีก ถ้าเงื่อนไขยังคงเป็นเท็จอยู่ ก็ยังต้องทำกลุ่มคำสั่งซ้ำหรือเข้าลูปต่อไปอีก จนกระทั่งเงื่อนไขเป็นจริง จึงจะออกจากลูปไปทำคำสั่งถัดจาก UNTIL หรืออาจเป็นการจบการทำงาน

แสดงโครงสร้างการทำงานซ้ำแบบ DO UNTIL

สรุปข้อแตกต่างระหว่าง DO WHILE และ DO UNTIL มีดังนี้ 1. DO WHILE ในการทำงานครั้งแรกจะต้องมีการตรวจสอบเงื่อนไขก่อนทุกครั้ง ก่อนที่จะมีการเข้ลูปการทำงาน 2. DO UNTIL การทำงานครั้งแรกจะยังไม่มีการตรวจสอบเงื่อนไข แต่จะเข้าไปทำงานในลูปก่อนอย่างน้อย 1 ครั้งแล้วจึงจะไปตรวจสอบเงื่อนไข 3. DO WHILE จะมีการเข้าไปทำงานในลูปก็ต่อเมื่อตรวจสอบเงื่อนไขแล้วพบว่า เงื่อนไขเป็นจริง แต่เมื่อพบว่าเงื่อนไขเป็นเท็จ ก็จะออกจากลูปทันที 4. DO UNTIL จะมีการเข้าไปทำงานในลูปก็ต่อเมื่อตรวจสอบเงื่อนไขแล้วพบว่า เงื่อนไขเป็นเท็จ แต่เมื่อพบว่าเงื่อนไขเป็นจริง ก็จะออกจากลูปทันที

ตัวอย่าง 5 จงเขียนผังงานแสดงการเพิ่มของข้อมูลตัวเลขที่เก็บอย่ในหน่วยความจำที่แอดเดรส 1 โดยที่ค่าเริ่มต้นจาก 0 ให้ทำการเพิ่มค่าทีละ 1 เรื่อยไปจนกระทั่ง J มีค่าข้อมูลมากกว่า 100 จึงหยุดการทำงาน

ตัวอย่างนี้ เป็นตัวอย่างการทำงานแบบทำซ้ำ ซึ่งจะสามารถแสดงการเขียนได้ทั้งแบบ DO WHILE และ DO UNTIL ดังนี้

อ้างอิง

http://www.bcoms.net/system_analysis/lesson63.asp

ขั้นตอนการทำงานและรหัสจำลอง

ขั้นตอนการทำงานและรหัสจำลอง

ขั้นตอนการพัฒนาโปรแกรมภาษาซี

1.ขั้นตอนการพัฒนาโปรแกรมภาษา C

การพัฒนาโปรแกรมภาษา C มีขั้นตอนดังนี้ 1) เขียนโปรแกรมต้นฉบับ (source program) ด้วยภาษา C ใช้โปรแกรม Turbo C/ C++ เพื่อเขียนโปรแกรมต้นฉบับด้วยภาษา C จากนั้นบันทึกโปรแกรมพร้อมกับตั้งชื่อแฟ้มไว้ แฟ้มที่ได้จะมีนามสกุล *.c หรือ *.cpp เช่น simple.c หรือ simple.cpp เป็นต้น นอกจากนี้ยังสามารถใช้โปรแกรม Turbo C/C++ เขียนโปรแกรมภาษา C++ ได้อีกด้วย 2) แปลโปรแกรมภาษา C ไปเป็นโปรแกรมภาษาเครื่อง (object program) ใช้คำสั่ง compile เพื่อแปลโปรแกรมภาษา C ไปเป็นโปรแกรมภาษาเครื่อง แฟ้มที่ได้จะมีนามสกุล *.obj ซึ่งในขั้นตอนนี้โปรแกรมต้นฉบับอาจเกิดความผิดพลาดทางไวยกรณ์ภาษา (syntax error) ขึ้นได้ จึงต้องย้อนกลับไปแก้ไขโปรแกรมต้นฉบับในข้อ 1. ให้ถูกต้องเสียก่อน 3) เชื่อมโยง (link) โปรแกรมภาษาเครื่องเข้ากับ library function ของภาษา C จะได้เป็น execute program โดยใช้คำสั่ง link แฟ้มที่ได้จะมีนามสกุล *.exe 4) สั่งให้ execute program แสดงผลลัพธ์ออกมา โดยใช้คำสั่ง run

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

หมายเหตุ ในทางปฏิบัติ การ compile/ link/ run ในโปรแกรม Turbo C/C++ สามารถทำให้พร้อมกันทั้ง 3 ขั้นตอน คือใช้คำสั่ง Ctrl + F9 (กดปุ่ม Ctrl และปุ่ม F9 พร้อมกัน) โดยสรุปเราสามารถเขียนผังงานแสดงขั้นตอนการพัฒนาโปรแกรมภาษา C ได้ดังนี้

การเขียน Pseudocode

ซูโดโค้ด (Pseudocode) หรือ ในภาษาไทย เรียกว่า รหัสจำลอง หรือ รหัสเทียม คือ การจำลองการเขียนโปรแกรม โดยเขียนคำสั่งเป็นภาษาอะไรก็ได้ เช่น ไทย หรือ อังกฤษ ฯลฯ ที่ไม่ใช่ภาษาคอมพิวเตอร์ขั้นสูงอย่าง ภาษา C หรือ Java ซูโดโค้ดนี้จะไม่ขึ้นกับภาษาคอมพิวเตอร์ใดๆ โดยเฉพาะ ใช้อธิบายการทำงานของโปรแกรม เนื่องจากสื่อด้วยภาษาง่ายๆ อย่าง ไทย, อังกฤษ ทำให้ผู้อ่านเข้าใจได้ง่าย และตรงกัน โดยปกติแล้วมักใช้ภาษาอังกฤษ เนื่องจากสามารถแปลเป็นภาษาคอมพิวเตอร์ได้ง่าย

หลักในการเขียน Pseudocode

1. คำสั่งที่เขียนใช้ภาษาที่เข้าใจง่าย ไม่ต้องคำนึงถึงภาษาคอมพิวเตอร์ 2. ในหนึ่งบรรทัด ให้มีเพียงหนึ่งคำสั่งเท่านั้น 3. ใช้ย่อหน้าในการแสดงกลุ่มของคำสั่ง ที่เป็นคำสั่งย่อยในคำสั่งพวกเงื่อนไข เช่น if-else, while, for ฯลฯ 4. ในการเขียนแต่ละคำสั่งให้เรียงการทำงานจากบนลงล่าง และมีทางออกหรือจุดสิ้นสุดเพียงจุดเดียว 5. กลุ่มคำสั่งอาจจะเขียนรวมกันเป็นโมดุล และเวลาเรียกใช้ก็เรียกใช้ผ่านชื่อโมดุล (คล้ายกับการเรียกใช้ฟังก์ชัน)

ตัวอย่างที่ 1 จงเขียน Pseudocode จากโปรแกรมหาผลรวมของตัวเลข 2 ค่า แล้วแสดงผลรวมออกมาทางหน้าจอ 1. read x , y 2. calculate sum = x + y 3. print sum

ตัวอย่างที่ 2 จงเขียน Pseudocode จากโปรแกรมรับตัวเลข 1 ค่าแล้วตรวจสอบว่าเป็นเลขคู่หรือเลขคี่ 1. read x 2. if x % 2 = 0 <– ตรวจสอบว่าเศษจากการหาร x ด้วย 2 เท่ากับ 0 หรือไม่ 1. then 1. print “even” 2. else 1. print “odd”

ตัวอย่างที่ 3 จงเขียน Pseudocode จากโปรแกรมหาค่าเฉลี่ยของตัวเลข 10 ค่า แล้วแสดงค่าเฉลี่ยออกมาทางหน้าจอ 1. for i = 1 to 10 <– เป็นคำสั่งวนรอบจำนวน 10 รอบ 1. read num 2. calculate sum = sum + num 2. calculate mean = sum / 10 3. print mean

ตัวอย่างที่ 4 จงเขียน Pseudocode จากโปรแกรมหาค่าเฉลี่ยของตัวเลข n ค่า แล้วแสดงค่าเฉลี่ยออกมาทางหน้าจอ 1. read n 2. for i = 1 to n <– เป็นคำสั่งวนรอบจำนวน n รอบ 1. read num 2. calculate sum = sum + num 3. calculate mean = sum / n 4. print mean

ตัวอย่างที่ 5 จงเขียน Pseudocode จากโปรแกรมเปรียบเทียบตัวเลข 2 ค่า แล้วแสดงความสัมพันธ์ออกมา 1. read x , y 2. if x > y 1. then 1. print “x > y” 2. else if x < y 1. then 1. print “x < y” 2. else 1. print “x = y”

อ้างอิง

http://nipapon.wordpress.com/2012/08/24/%E0%B8%82%E0%B8%B1%E0%B9%89%E0%B8%99%E0%B8%95%E0%B8%AD%E0%B8%99%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%97%E0%B8%B3%E0%B8%87%E0%B8%B2%E0%B8%99%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B8%8B%E0%B8%B9%E0%B9%82%E0%B8%94/

ตัวแปลภาษาและข้อผิดพลาด

ตัวแปลภาษาและข้อผิดพลาด

ตัวแปลภาษา

โปรแกรมแปล (อังกฤษ: translator) คือโปรแกรมคอมพิวเตอร์ที่แปลชุดคำสั่งของภาษาโปรแกรมหนึ่ง ไปเป็นชุดคำสั่งของอีกภาษาโปรแกรมหนึ่ง โดยความหมายดั้งเดิมไม่สูญเสียไป โปรแกรมแปลภาษาระดับสูงบางตัวจะเปลี่ยนแปลงตรรกะบางอย่าง หรือทำตรรกะให้ง่ายขึ้นโดยผลลัพธ์ยังเป็นเช่นเดิมคอมไพเลอร์ (อังกฤษ: compiler) หรือ โปรแกรมแปลโปรแกรม, ตัวแปลโปรแกรม [1] เป็น โปรแกรมคอมพิวเตอร์ที่ทำหน้าแปลงชุดคำสั่งภาษาคอมพิวเตอร์หนึ่ง ไปเป็นชุดคำสั่งที่มีความหมายเดียวกัน ในภาษาคอมพิวเตอร์อื่นคอมไพเลอร์ส่วนใหญ่ จะทำการแปล รหัสต้นฉบับ (source code) ที่เขียนในภาษาระดับสูง เป็น ภาษาระดับต่ำ หรือภาษาเครื่อง ซึ่งคอมพิวเตอร์สามารถที่จะทำงานได้โดยตรง อย่างไรก็ตาม การแปลจากภาษาระดับต่ำเป็นภาษาระดับสูง ก็เป็นไปได้ โดยใช้ตัวแปลโปรแกรมย้อนกลับ(decompiler)

รูปแสดงขั้นตอนการทำงานของตัวแปลโปรแกรม

              ผลลัพธ์ของการแปลโปรแกรม (คอมไพล์) โดยทั่วไป ที่เรียกว่า ออบเจกต์โค้ด จะประกอบด้วยภาษาเครื่อง (Machine code) ที่เต็มไปด้วยข้อมูลเกี่ยวกับชื่อและสถานที่ของแต่ละจุด และการเรียกใช้วัตถุภายนอก (Link object) (สำหรับฟังก์ชันที่ไม่ได้อยู่ใน อ็อบเจกต์) สำหรับเครื่องมือที่เราใช้รวม อ็อบเจกต์เข้าด้วยกัน จะเรียกว่าโปรแกรมเชื่อมโยงเพื่อที่ผลลัพธ์ที่ออกมาในขั้นสุดท้าย เป็นไฟล์ที่ผู้ใช้งานทั่วไปสามารถใช้งานได้สะดวก

1.คอมไพเลอร์ที่สมบูรณ์ตัวแรก คือ ภาษาฟอร์แทรน (FORTRAN) ของ ไอบีเอ็ม ในปี ค.ศ. 1957 และ ภาษาโคบอล (COBOL) ก็เป็นคอมไพเลอร์ตัวแรก ๆ ที่สามารถทำงานได้บนหลาย ๆ สถาปัตยกรรมทางคอมพิวเตอร์ การพัฒนาตัวแปลภาษารุดหน้าอย่างรวดเร็ว และเริ่มมีรูปแบบที่ชัดเจนยิ่งขึ้นต่อมา ในช่วงทศวรรษ 1960

2.อินเทอร์พรีเตอร์ (อังกฤษ: interpreter) หรือ โปรแกรมแปลคำสั่ง, ตัวแปลคำสั่ง [1] หมายถึงโปรแกรมคอมพิวเตอร์ที่ทำงานตามชุดคำสั่งที่เขียนไว้ทันที ซึ่งไม่เหมือนกับคอมไพเลอร์ (compiler) ที่แปลชุดคำสั่งจากภาษาคอมพิวเตอร์ภาษาหนึ่งไปเป็นอีกภาษาหนึ่งก่อนทำงานโดยส่วนมากจะแปลเป็นภาษาเครื่อง

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

ตัวอย่างภาษาที่มีการใช้อินเทอร์พรีเตอร์ เช่น ภาษาเบสิก, ภาษาเพิร์ล, ภาษาพีเอชพี

ข้อผิดพลาด

1) ความผิดพลาดทางไวยากรณ์ภาษา (syntax error) เป็นความผิดพลาดที่เกิดจากการเขียนคำสั่งของภาษาคอมพิวเตอร์ผิด ตัวอย่างเช่น คำสั่ง printf( ) ในภาษา C ต้องเขียนด้วยตัวอักษรตัวเล็ก แต่เขียนเป็น PRINTF( ) เป็นต้น โดยส่วนมากความผิดพลาดทางไวยากรณ์ จะถูกตรวจสอบพบเมื่อมีการแปลโปรแกรม (compile) ให้เป็นภาษาเครื่อง ซึ่งเราสามารถแก้ไขโดยการเขียนคำสั่งให้ถูกต้องตามไวยากรณ์ของภาษานั้น

2) ความผิดพลาดทางตรรกะ (logical error) เป็นความผิดพลาดที่เกิดจากการลำดับการทำงานผิดหรือป้อนสูตรคำนวณผิด ตัวอย่างเช่น ต้องการหาค่า X = X + Y แต่ป้อนสูตรเป็น X = X * Y อย่างนี้ เป็นต้น วิธีการตรวจหาความผิดพลาดแบบนี้ คือ ตรวจสอบการคำนวณผลลัพธ์ของโปรแกรมว่าตรงกับผลลัพธ์ที่คำนวณด้วยมือหรือเครื่องคิดเลขหรือไม่ ถ้าไม่ตรงกันแสดงว่าเกิดความผิดพลาดทางตรรกะขึ้น วิธีการแก้ไขก็คือ การแก้ไขสูตรให้ถูกต้อง หรือแก้ไขลำดับการทำงานให้ถูกต้อง

ดังนั้น จะเห็นได้ว่าผู้เขียนโปรแกรมจะต้องทำการทดสอบโปรแกรมและแก้ไขโปรแกรมให้สามารถทำงานได้ตามที่ต้องการ

อ้างอิง

http://noeysaelee.wordpress.com/%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B9%81%E0%B8%9B%E0%B8%A3%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%9C%E0%B8%B4%E0%B8%94%E0%B8%9E%E0%B8%A5%E0%B8%B2/

ประวัติภาษาซี

ประวัติภาษาซี

ภาษา C++ พัฒนาขึ้นโดย Dr. Bjarne Stroustrup (คนในรูป) ซึ่งเป็นนักวิจัยอยู่ทีห้องปฏิบัติการ Bell Labs ประเทศสหรัฐอเมริกาในระหว่างปี พ.ศ. 2525-2528ภาษา C++ เกิดจากแนวคิดในการเพิ่มประสิทธิ ภาพภาษา C  ก่อนปี พ.ศ. 2526 Dr. Bjarne Stroustrup ได้เพิ่มคุณสมบัติให้กับภาษา C ซึ่งเขาเรียกภาษา C ที่ปรับปรุงใหม่ว่า “C with classes” นอกจากนี้เขายังได้รวมเอาแนวคิดเกี่ยวกับ classes ในภาษา Simula กับคุณสมบัติเชิงวัตถุผสมผสานกับจุดแข็งของภาษา C เป็นภาษา C++ ชื่อ C++ ใช้ครั้งแรกเมื่อปี พ.ศ. 2526 ภาษา C++ ถูกออกแบบมาสำหรับการทำงานภายใต้สิ่งแวดล้อมระบบปฏิบัติการ UNIX  ด้วยภาษา C++ ผู้เขียนโปรแกรมสามารถเขียนโปรแกรมได้อย่างมีประสิทธิภาพมากขึ้น นอกจากนี้การเขียนโปรแกรมเพื่อให้สามารถนำกลับมาใช้ได้ใหม่ (reusability) ก็สามารถทำได้ง่ายขึ้น

Dr. Bjarne Stroustrup ได้ศึกษาและวิจัยระดับปริญญาเอกที่ห้องปฏิบัติการ Computing Laboratory ที่มหาวิทยาลัย Cambridge ประเทศอังกฤษ ก่อนที่จะมาร่วมกับห้องปฏิบัติการ Bell Labs ในเวลานี้ห้องปฏิบัติการ Bell Labs ไม่ได้ใช้ชื่อนี้อีกต่อไปแล้ว เพราะส่วนหนึ่งของห้องปฏิบัติการได้เปลี่ยนไปเป็น AT&T Labs และอีกส่วนหนึ่งก็เปลี่ยนไปเป็นห้องปฏิบัติการ Lucent Bell Labs

ก่อนที่จะมีภาษา C++ ภาษา C เป็นภาษาคอมพิวเตอ ร์ ที่พัฒนาขึ้นจากห้องปฏิบัติการ  Bell Labs ในช่วงปี พ.ศ. 2512-2516 ในช่วงเดียวกันนั้น ระบบปฏิบัติการ UNIX ก็ถูกพัฒนาขึ้นที่ห้องปฏิบัติการ Bell Labs ภาษา C เริ่มแรกพัฒนาขึ้นมาเพื่อทำงานกับระบบปฏิบัติการ UNIX บนเครื่องคอมพิวเตอร์ขนาดเล็กชื่อ PDP-11 โดยนักวิจัยของห้องปฏิบัติการ Bell Labs ชื่อ Dennis Ritchie ในตอนเริ่มต้น เขาได้ขยายความสามารถของภาษา B โดยการเพิ่ม “TYPE” เข้าไปในปี พ.ศ. 2514 และเรียกภาษาที่ปรับปรุงใหม่นี้ว่าภาษา NB (ย่อมาจาก New B) ที่เขาได้แนวคิดอย่างนี้ขึ้นมาเพราะ Dennis Ritchie ได้แรงบันดาลใจมาจากภาษา Algol68 เขาได้ปรับโครงสร้างภาษาและเขียนคอมไพเลอร์ใหม่และตั้งชื่อภาษาใหม่ของเขาว่าภาษา “C” ในปี พ.ศ. 2515  90% ของระบบปฏิบัติการ UNIX เขียนด้วยภาษา C

หลังจากกำเนิดภาษา C คนในวงการคอมพิวเตอร์ต่างก็ตื่นตัวและประทับใจในความสามารถของภาษา C กันมาก ทำให้เกิดการพัฒนาและปรับปรุงภาษา C ออกมาหลายต่อหลายเวอร์ชั่น องค์กร ANSI จึงได้จัดตั้งคณะกรรมการเพื่อกำหนดมาตรฐานภาษา C ขึ้นในปี พ.ศ. 2532เพื่อทำการกำหนดมาตรฐานสำหรับภาษา C โดยเฉพาะ จนใช้กันถึงปัจจุบันนี้

ภาษา C เป็นภาษาที่ portable คือไม่ขึ้นอยู่กับฮาร์ดแวร์หรือระบบปฏิบัติการใดโดยเฉพาะ เป็นภาษาที่ผสมผสานส่วนสำคัญที่จำเป็นจากภาษาระดับสูง (high-level languages) กับฟังก์ชั่นระดับ low-level ของภาษาแอสเซมบลี (assembly language) จนบางครั้งมีคนจัดภาษา C ว่าเป็นภาษาคอมพิวเตอร์ในระดับ middle-level โปรแกรมที่เขียนด้วยภาษา C สามารถปรับการใช้จากคอมพิวเตอร์เครื่องหนึ่งไปใช้กับอีกเครื่องหนึ่งได้โดยง่าย

กล่าวโดยสรุป ภาษา C เป็นภาษาที่พัฒนาต่อเนื่องมาจากภาษา B ซึ่งพัฒนาโดย Ken Thompson เมื่อปี พ. ศ. 2513 เพื่อใช้กับระบบปฏิบัติการใหม่ตอนนั้นคือ UNIX ภาษา B ก็ได้รับการพัฒนาต่อมาจากภาษา BCPL ที่ออกแบบพัฒนาโดย Martin Richards ซึ่งเป็นนักศึกษาของมหาวิทยาลัย Cambridge ประเทศอังกฤษ เมื่อตอนไปเป็นนักศึกษาแลกเปลี่ยน (Exchange Student) ที่สถาบันเทคโนโลยีแห่งรัฐแมสซาจูเซท (MIT) ประเทศสหรัฐอเมริกา

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

อ้างอิง

http://computer.ru.ac.th/index.php?option=com_content&view=article&id=116:program&catid=6:overview&Itemid=