วันศุกร์ที่ 24 กรกฎาคม พ.ศ. 2558

ชนิดของข้อมูลและตัวแปรในภาษาซี

ชนิดของข้อมูลและตัวแปรในภาษาซี

ชนิดของข้อมูล (data type) ในการเขียนโปรแกรมหนึ่งๆ จะมีข้อมูลต่างๆ เข้ามาเกี่ยวข้องเช่น
การนับจำนวนรอบ (loop) ของการทำงานโดยใช้ข้อมูลชนิดจำนวนเต็ม หรือการแสดงข้อความ
โดยใช้ข้อมูลชนิดตัวอักษร จะเห็นว่าข้อมูลต่างๆ ถูกแบ่งออกเป็นหลายชนิดตามจุดประสงค์ของการใช้งาน
นอกจากนี้ข้อมูลแต่ละชนิด ยังใช้เนื้อที่หน่วยความจำ (memory) ไม่เท่ากันจึงมีการแบ่งชนิดของข้อมูล
ดังแสดงในตารางด้านล่าง

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

การประกาศตัวแปร (variable declaration) คือการจองเนื้อที่ในหน่วยความจำสำหรับเก็บค่าบางอย่าง
พร้อมทั้งกำหนดชื่อเรียกแทนหน่วยความจำในตำแหน่งนั้นเพื่อให้ผู้เขียนโปรแกรมมีความสะดวกในการเข้าถึง
ค่าที่เก็บอยู่ในหน่วยความจำดังกล่าว

รูปแบบการประกาศตัวแปร 

type variable-name;
โดย
type คือชนิดของตัวแปร (ตามตารางด้านล่าง)
variable-name คือชื่อของตัวแปร (ควรตั้งชื่อให้มีความหมายสอดคล้องกับการใช้งานและจำง่าย)

ตัวอย่างการประกาศตัวแปรแบบต่างๆ
int num; /*ประกาศตัวแปรชนิิดจำนวนเต็ม ชื่อ num*/
float x;
char grade, sex; /*ประกาศตัวแปรชนิิดอักขระ ชื่อ grade และ sex (ประกาศพร้อมกันในบรรทัดเดียว)*/
float temp = 123.45; /*ประกาศตัวแปรชนิดเลขทศนิยมพร้อมกำหนดค่า 123.45*/
char c = "A", t = "B"; /*ประกาศตัวแปรชนิดอักขระสองตัว พร้อมกำหนดค่าให้แต่ละตัว*/
int oct = 0555; /*ประกาศตัวแปรชนิดจำนวนเต็มชื่อ num พร้อมกำหนดค่าคือ 555 (เป็นเลขฐานแปดเพราะมี 0 นำหน้า)*/
int hex = 0x88; /*ประกาศตัวแปรชนิดจำนวนเต็มชื่อ hex พร้อมกำหนดค่าคือ 88 (เป็นเลขฐาน 16 เพราะมี 0x นำหน้า)*/
ข้อควรระวัง!!
ชื่อตัวแปรจะต้องขึ้นต้นด้วยตัวอักษรหรือเครื่องหมาย "_" เท่านั้น
ภายในชื่อตัวแปรให้ใช้ตัวอักษร, ตัวเลข 0-9 หรือเครื่องหมาย "_"
ห้ามมีช่องว่างในชื่อตัวแปร
อักษรตัวพิมพ์เล็ก-ใหญ่ มีความแตกต่างกัน (case sensitive) เช่น Name, NAME และ name
ถือเป็นชื่อที่แตกต่างกัน
ห้ามซ้ำกับชื่อตัวแปรสงวน (reserved word)
ตัวแปรชนิดข้อความ (string)
ถ้าเราต้องการเก็บข้อความ "C programming language" ไว้ในตัวแปร จะทำได้อย่างไร?

ที่ผ่านมาเราทราบว่าเราสามารถเก็บข้อมูลชนิดตัวอักขระไว้ในตัวแปรชนิด char ได้ แต่ตัวแปรชนิด char นั้น
สามารถเก็บตัวอักขระได้เพียงตัวเดียวเท่านั้น ไม่สามารถเก็บทั้งข้อความได้ แล้วเราจะแก้ปัญหาได้อย่างไร?

หากพิจาณาให้ดี ข้อความดังกล่าวประกอบด้วยตัวอักขระ (ตัวอักษร+สัญลักษณ์) หลายๆ ตัวเรียงต่อกันเป็นสาย
ซึ่งเป็นลักษณะของตัวแปรแบบ array (จะได้กล่าวภายหลัง)

การประกาศตัวแปรแบบ array เพื่อเก็บข้อมูลดังกล่าวสามารถทำได้ดังนี้
type variable-name[size];
โดย
size คือขนาดของข้อความ+1 โดยขนาดที่เพิ่มขึ้นเพราะต้องเก็บอักขระสุดท้ายของข้อความเป็นอักขระ
\0 หรือ NULL เพื่อบอกว่าสิ้นสุดข้อความแล้ว
ตัวอย่างการประกาศตัวแปรแบบ array เพื่อเก็บข้อความ "C programming language" (22 ตัวอักษร)
ทำได้หลายวิธีดังนี้
char[23] text = "C programming language";
/*กำหนดขนาดเพิ่มขึ้น 1 ตัว สำหรับเก็บค่า \0 หรือ NULL ในตำแหน่งสุดท้าย*/

char[23] text = {'C',' ','p','r','o','g','r','a','m','m','i','n','g',' ','l','a','n','g','u','a','g','e','\0'};
/*กำหนดขนาดเพิ่มขึ้น 1 ตัว สำหรับเก็บค่า \0 หรือ NULL ในตำแหน่งสุดท้าย*/

char[] text = "C programming language";
/*ถ้าไม่กำหนดขนาดของ array แล้ว ตัวแปรภาษาซีจะกำหนดให้โดยมีขนาดเท่ากับขนาดข้อความ+1*/
นอกจากนี้เรายังสามารถแก้ไขตัวอักษรที่เก็บอยู่ใน array ได้โดยการอ้างอิงตำแหน่งเช่น
text[0] = 'A'; /*แก้ตัวอักษรตัวแรก (เริ่มนับจาก 0) จะได้ผลลัพธ์คือ A programming language*/
text[2] = ' '; /*ผลลัพธ์คือ A  rogramming language (ใส่ช่องว่างแทนตัว p)*/


 ชนิดของตัวแปรในภาษาซี


ฟังก์ชันในภาษาซี


ฟังก์ชันในภาษาซี

             ในการทำงานบางอย่างจำเป็นต้องใช้คำสั่งมากกว่า 1 คำสั่งเพื่อทำงานนั้นให้สำเร็จ ซึ่งคำสั่งที่เขียนรวมกันไว้ใช้งานจะเรียกว่าฟังก์ชัน (Function)
ฟังก์ชัน (Function) คือ การเขียนคำสั่งรวมกันไว้เป็นกลุ่มของคำสั่งเพื่อทำงานให้สำเร็จ โดยกลุ่มของคำสั่งที่เราเขียนจะอยู่ภายในเครื่องหมาย { } เพื่อบอกขอบเขต และมีการตั้งชื่อให้กับกลุ่มคำสั่งนั้น เพื่อความสะดวกในการเรียกใช้งาน
ข้อดีของการสร้างฟังก์ชันขึ้นมาใช้งาน คือ ถ้าเราต้องการทำงานที่ซ้ำซ้อน หรือทำงานใดซ้ำกันหลายครั้ง เช่น หากต้องการหาพื้นที่ของรูปสี่เหลี่ยมทั้งหมด 10 รูป เราต้องเขียนคำสั่งหาพื้นที่ทั้งหมด 10 ครั้ง ดังนั้นหากเราสร้างฟังก์ชันหาพื้นที่รูปสามเหลี่ยมก็จะสามารถเรียกใช้ฟังก์ชันดังกล่าวเมื่อใดก็ได้
ฟังก์ชันมาตรฐานหรือไลบราลีฟังก์ชัน
lเป็นฟังก์ชันที่มีมาให้พร้อมกับตัวแปลภาษา C เพื่อใช้งานได้ทันที และใช้ในงานด้านต่างๆ โดยเน้นงานพื้นฐาน เช่น ฟังก์ชันคำนวณทางคณิตศาสตร์ ฟังก์ชันสำหรับจัดการข้อความ ฟังก์ชันเวลา เป็นต้น เพื่อให้ผู้เขียนภาษา C มีความสะดวกมากขึ้น
lไลบราลีฟังก์ชันภาษา C จะเก็บอยู่ในไฟล์นามสกุล .h หรือที่เรียกว่า header file ยกตัวอย่างเช่น ฟังก์ชันเกี่ยวกับการคำนวณจะเก็บอยู่ในไฟล์ชื่อ math.h หรือฟังก์ชันเกี่ยวกับการจัดการข้อความอยู่ในไฟล์ชื่อ string.h เป็นต้น
1. ฟังก์ชันมาตรฐานหรือไลบราลีฟังก์ชัน
lในการเรียกใช้งานฟังก์ชันต้องเขียนรูปแบบการใช้คำสั่ง คือ
#include<header file>
และเขียนไว้ในส่วนหัวของโปรแกรม เพื่อให้ตัวแปลภาษา C เข้าใจว่าภายในโปรแกรมของเรามีการเรียกใช้ไลบราลีฟังก์ชัน

ฟังก์ชันสตริง
lสตริง (string) หรืออะเรย์ตัวอักษร  คือ  ข้อมูลที่ประกอบไปด้วยตัวอักษรที่มีการเรียงต่อเนื่องกันไป  โดยมีจุดสิ้นสุดของข้อมูลสตริงที่ตัวอักษร NULL  character เขียนด้วย ‘’
lในภาษาซีรูปแบบข้อมูลประเภทสตริงไม่มีการกำหนดไว้  การประกาศตัวแปรแบบสตริงทำได้ 2 วิธี  คือ ในรูปของอะเรย์  กับในรูปของพอยน์เตอร์
lตัวอย่างการประกาศตัวแปรสตริง
char  p[9]  =  “ I  think !” ;
ฟังก์ชันมาตรฐานที่เกี่ยวกับสตริงที่ภาษาซีเตรียมไว้ให้เรียกใช้  ดังนี้
l gets( )  เป็นฟังก์ชันใช้รับค่าสตริง
l puts( )  เป็นฟังก์ชันที่ใช้แสดงผลสตริง
l strcat( )  เป็นฟังก์ชันที่ใช้ต่อสตริง 2 ตัวเข้าด้วยกัน
l strcmp( )  เป็นฟังก์ชันที่ใช้เปรียบเทียบสตริง 2 ตัว
l strcpy( )  เป็นฟังก์ชันที่ใช้ก๊อปปี้สตริง
l strlen( )  เป็นฟังก์ชันที่ใช้เพื่อหาความยาวของสตริง





ผังงานFlowchart


ผังงานFlowchart

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

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

ประเภทของผังงาน โดยทั่วไปผังงานคอมพิวเตอร์แบ่งเป็น 2 ประเภทใหญ่

        1. ผังงานระบบ (System Flowchart)

                        เป็นผังงานที่แสดงถึงขั้นตอนการทางานภายในระบบหนึ่ง ๆ เพื่อให้เห็นโครงสร้างโดยภาพรวมของระบบ ซึ่งจะแสดงถึงความเกี่ยวข้องของส่วนที่สาคัญต่างๆ ในระบบนั้น เช่น เอกสารข้อมูลเบื้องต้น สื่อบันทึกข้อมูลที่ใช้ ข้อมูลจะส่งผ่านไปยังหน่วยงานใด มีกิจกรรมประมวลผลข้อมูลอะไรในหน่วยงานนั้น แล้วจะส่งต่อไปหน่วยงานใด เป็นต้น ดังนั้นผังงานระบบอาจเกี่ยวข้องกับข้อมูล สื่อหรือแหล่งบันทึกข้อมูล วัสดุปกรณ์ คน หรือฝ่ายงานที่เกี่ยวข้อง ซึ่งแต่ละจุดจะประกอบไปด้วย 
การนาข้อมูลเข้า วิธีการประมวลผล และการแสดงผลลัพธ์ (Input – Process - Output) ดังภาพ
 2. ผังงานโปรแกรม (Program Flowchart) หรือเรียกสั้นๆ ว่า ผังงาน

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

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

ข้อจากัดของการเขียนผังงาน

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

วิธีการเขียนผังงานที่ดี 

การเขียนผังงานควรคานึงถึงสิ่งต่าง ๆ ดังนี้ 
                1. ใช้สัญลักษณ์ตามที่กาหนดไว้ 
                2. ผังงานจะต้องมีจุดเริ่มต้น (Start)และสิ้นสุด (Stop/End/Finish) 
                3. ใช้หัวลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่างหรือซ้ายไปขวา (ยกเว้นที่ต้องทาซ้า) 
                4. ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า 1 เส้นและออก 1 เส้นโดยไม่มีการปล่อยจุดใดจุดหนึ่งไว้ 
                5. เขียนคาอธิบายการทางานในแต่ละขั้นตอนโดยใช้ข้อความที่สั้น กะทัดรัด ชัดเจนและเข้าใจได้ง่าย 
                6. ควรหลีกเลี่ยงโยงเส้นไปมาทาให้เกิดจุดตัดมากเพราะจะทาให้เกิดข้อผิดพลาดง่าย ควรใช้สัญลักษณ์เชื่อมจุดต่อเนื่องแทน
                7. ไม่ควรโยงเส้นเชื่อมผังงานที่อยู่ไกลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน
                8. ผังงานที่ดีควรมีความเป็นระเบียบเรียบร้อย สะอาดและชัดเจน สามารถเข้าใจและติดตามขั้นตอนได้ง่าย
                9. ผังงานควรมีการทดสอบความถูกต้องของการทางานก่อนไปเขียนโปรแกรม

ซอฟแวร์ที่ใช้ในการออกแบบ(3มิติ)

ซอฟต์แวร์ที่ใช้ในการออกแบบ 3 มิติ

           






           google SketchUp (โปรแกรมออกแบบบ้าน 3 มิติ สร้างโมเดล 3 มิติ) :โปรแกรม SketchUp เป็นโปรแกรมที่ถูกพัฒนาขึ้นโดย Google ชื่อเสียงเรียงนามของผู้พัฒนา ก็คงไม่ต้องบรรยายแล้วว่าดีหรือไม่ดี ที่คราวนี้เข็นเจ้า โปรแกรมออกแบบบ้านหรือเอาไว้ สร้างโมเดล 3 มิติ ออกมาภายใต้ชื่อGoogle SketchUp ออกมาให้คนอยากออกแบบ อยากเล่น อยากลอง อยากฝึกใช้ได้ทดลองใช้ หรือจะให้เด็กๆ ลองใช้ โปรแกรมออกแบบบ้าน ฝึกจินตนาการ ของเด็ก และเยาวชน กับ โปรแกรม SketchUp ตัวนี้ก็ไม่เลว นะ
โปรแกรมออกแบบบ้าน ชั่วหัวว่าใช้ออกแบบบ้าน แต่จริงๆ ไม่ได้เป็นแค่ โปรแกรมออกแบบบ้าน อย่างเดียวแต่ โปรแกรม Google SketchUp ยังสามารถ ออกแบบงานด้านสถาปัตยกรรม วิศวกรรม หรือ เครื่องจักร เครื่องกล กันได้อย่างง่ายๆ แถมเผลอๆ หาก ออกแบบ กันดีๆ ยังเอาไปใช้งานจิงๆ ได้อีกด้วย รวมถึง โปรแกรม SketchUp นี้ยังสามารถนำไป ออกแบบ วัตถุเล็กๆ น้อยๆ อาทเช่น ทั้ง ออกแบบระเบียงบ้าน ออกแบบหน้าต่าง ออกแบบประตู ออกแบบตู้ ออกแบบโต๊ะ ออกแบบเฟอร์นิเจอร์ งานไม้ งานต่อเติมบ้าน ออกแบบรถ (เหมือนภาพประกอบด้านบน) หรือแม้แต่ ออกแบบยานอวกาศ 


ซอฟต์แวร์ที่ใช้ในการออกแบบ(2มิติ)


ซอฟต์แวร์ที่ใช้ในการออกแบบ 2 มิติ

              LibreCAD (โปรแกรมออกแบบ โปรแกรมวาดแบบ 2 มิติ) : โปรแกรมออกแบบ LibreCAD เป็น โปรแกรมออกแบบ 2 มิติ หรือที่เรียกว่า CAD 2D (Computer-Aided Design Program) ที่อยู่ในโปรเจคโอเพ่นซอร์ส (Open-Source) หากได้ยินชื่อนี้เมื่อไหร่ พึงระลึกเอาไว้เลยว่า แจกฟรี แน่นอน เพราะเป็นการพัฒนาที่เกิดขึ้นจากนักพัฒนาโปรแกรมฝีมือดีจากทั่วโลก ที่มีความเชี่ยวชาญด้าน โปรแกรมออกแบบ ตรงนี้ได้เป็นพื้นที่ ที่จะมาร่วมออกแบบแลัพัฒนาร่วมกัน โดย โปรแกรมออกแบบ ตัวนี้สามารถออกแบบวัตถุต่างๆ ได้ 2 มิติ (2D) เท่านั้น ซึ่งสามารถใช้ออกแบบวัตถุ สื่งของ หรืออะไรก็ได้ที่ง่ายๆ อาทิเช่น กลไกของเครื่องจักรกล วิศวกรออกแบบสิ่งก่อสร้างต่างๆ เช่น เป็น โปรแกรมออกแบบบ้าน ได้ดี หรือจะไปใช้ ออกแบบครัวเรือน ออกแบบตึก ออกแบบอาคาร ออกแบบห้อง เพื่อใช้สอยในกิจการ หรือ สถานการณ์ ต่างๆ รวมไปถึงการ ออกแบบถุงพลาสติก ออกแบบเสื้อผ้า ด้านหน้าด้านหลัง ได้เป็นอย่างดี 




เทคโนโลยีสะอาด

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

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

1.2  การเปลี่ยนแปลงกระบวนการผลิต ซึ่งแบ่งได้เป็น 3 กลุ่ม ได้แก่
      1.2.1  การเปลี่ยนแปลงวัตถุดิบ โดยการเลือกใช้วัตถุดิบที่มีคุณภาพ หรือมีความบริสุทธิ์สูง รวมทั้งลดหรือยกเลิกการใช้วัตถุดิบที่เป็นอันตราย เพื่อหลีกเลี่ยงการเติมสิ่งปนเปื้อนเข้าไปในกระบวนการผลิต และพยายามใช้วัตถุที่สามารถนำกลับมาใช้ใหม่ได้
     1.2.2  การเปลี่ยนแปลงเทคโนโลยี ทำได้โดยการออกแบบใหม่ เพิ่มระบบอัตโนมัติเข้าช่วยปรับปรุงคุณภาพของอุปกรณ์ และแสวงหาเทคโนโลยีใหม่มาใช้
     1.2.3  การปรับปรุงกระบวนการดำเนินงาน เป็นขั้นตอนที่ทำให้ได้ผลิตภัณฑ์ที่เสียลดลง และยังทำให้เกิดของเสียที่จะต้องจัดการกำจัดลดน้อยลง โดยกำหนดให้มีขั้นตอนการผลิตกระบวนการงานและขั้นตอนบำรุงรักษาที่ชัดเจน รวมถึงการจัดระบบ การบริหารการจัดการในโรงงาน
2.  การนำกลับมาใช้ใหม่ แบ่งออกได้เป็น 2 แนวทาง คือ
2.1  การใช้ผลิตภัณฑ์หมุนเวียน โดยหาทางนำวัตถุดิบที่ไม่ได้คุณภาพมาใช้ประโยชน์ หรือหาทางใช้ประโยชน์จากสารหรือวัสดุที่ปนอยู่ในของเสีย โดยนำมาใช้ในกระบวนการผลิตเดิม หรือกระบวนการผลิตอื่นๆ
2.2  การใช้เทคโนโลยีหมุนเวียน เป็นการนำเอาของเสียผ่านกระบวนการต่างๆ เพื่อนำเอาทรัพยากรกลับมาใช้อีก หรือเพื่อทำให้เป็นผลพลอยได้

5W1H


5W1H

5W1 หนึ่งในเครื่องมือที่ใช้มากที่สุดในระดับสากลสำหรับการรวบรวมข้อมูล,วิเคราะห์และการนำเสนอเป็นกรอบ 5W1H
วิธีนี้จะใช้ในช่วงของกระบวนการนักวิเคราะห์วิศวกรที่มีคุณภาพที่จะเข้าใจและอธิบายความจริงปัญหาใด ๆ หรือปัญหาวิธีการเดียวกันสามารถที่ใช้ในการจัดระเบียบการเขียนของรายงานบทความเอกสารและแม้ทั้งหนังสือ
วิธีการพื้นฐาน
วิธีการนี้พยายามที่จะตอบคำถามพื้นฐานในการรวบรวมข้อมูลเกี่ยวกับเรื่องใด ๆ ของ: ใครอะไรเมื่อไหร่ที่ไหนทำไมและวิธีการ บางครั้งขึ้นอยู่กับบริบทที่สอง"H"อย่างไร

What.
คือเรื่องหลักของการรวบรวมข้อมูลเหตุผลและการนำเสนอ อาจจะเป็นที่ระบุไว้ในชื่อเรื่องและวัตถุประสงค์ อาจต้องจะกำหนดกระบวนการที่อาจประกอบด้วยส่วนที่เหลือของเอกสาร
Who.
สิ่งแวดล้อมอื่นๆ คนหรือกลุ่มความกังวลมันอาจอธิบายเอกสารหรือผู้ที่ได้รับผลกระทบจากนโยบายการหรือขั้นตอน
When.
หมายถึงเมื่อไหร่ในเวลาใดที่เกี่ยวข้อง มันอาจจะเป็นส่วนหนึ่งกับจุดที่เหมาะสมที่จะต้องดำเนินการ บางครั้งมันอาจจะเป็นส่วนหนึ่งของสถานการณ์ของการกระทำตามเงื่อนไข
Where.
เหตุการณ์หรือกระบวนการนั้น เกิดขึ้นที่ไหนเมื่อไหร่
 
Why.
เหตุใดถึงทำสิ่งนั้นหรือ เพราะเหตุใดถึงเกิดเหตุการณ์นั้นๆ อาจมีการพิจารณาที่ไม่เกี่ยวข้องอาจจะเกิดจากนโยบายหรือขั้นตอน
How.
เหตุการณ์หรือสิ่งที่ทำนั้นเป็นอย่างไรบ้าง เมื่ออธิบายนโยบายกระบวนการหรือขั้นตอนอาจ
เป็นส่วนสำคัญที่สุด
Conclusion.
5W1H สามารถนำไปใช้หัวข้อใด ๆ เพื่อรวบรวมวิเคราะห์และนำเสนอข้อมูลจากข้อมูลที่ซับซ้อนทำให้เป็นข้อมูลง่าย

ตัวอย่างการออกแบบ

ตัวอย่างการออกแบบ


1.Macbook Air ออกแบบโดย Apple
หลายๆ คนอาจจะเป็นเจ้าของผลิตภัณฑ์ชิ้นนี้แล้ว Macbook Air ขนาด 13 นิ้ว ที่มีส่วนที่บางที่สุดเพียง 3 มิลลิเมตร และมีน้ำหนักเพียงแค่ 1.3 กิโลกรัมเท่านั้น แต่คุณรู้ไหมApple สร้างคอมพิวเตอร์เครื่องนี้อย่างไร? ด้วยนวัตกรรมใหม่ของ Apple ที่สร้างแหล่งเก็บข้อมูลหรือ flash storage ที่มีความหนาน้อยกว่าคอมพิวเตอร์ทั่วไปถึง 90 เปอร์เซ็นต์ จึงจำเป็นต้องสร้าง Product Design ที่แตกต่างหากจาก Macbook Pro ขึ้นมาใหม่ทั้งหมด การที่Apple ได้คิดค้นผลิตภัณฑ์ตัวนี้ขึ้นมา เพราะต้องการตอบสนองความต้องการของผู้ใช้ที่ต้องการคอมพิวเตอร์ที่มีน้ำหนักเบาและพกพาไปไหนมาไหนได้ง่ายขึ้น



2.  Newport Capo for G7th ออกแบบโดย Bluefrog Design 
หลายๆ คนที่เคยเล่นกีต้าร์มาก่อนคงพอที่จะรู้ว่าผลิตภัณฑ์ชิ้นนี้คืออะไร แต่สำหรับคนที่ไม่คุ้นเคยกับการเล่นกีต้าร์ Capo คือเครื่องมือที่ช่วยแปลงเสียงของกีต้าร์ให้มีลำดับเสียงที่สูงขึ้น แต่ส่วนมากผู้เล่นกีต้าร์จะไม่นิยมใช้ Capo กันเพราะมันดูน่าเกลียด ทำให้เล่นได้ยากขึ้น และยังทำให้เสียงสูงจนเพี๊ยนด้วยในบางเวลา Bluefrog Design จึงคิดค้น Capo ที่เบาขึ้น รูปร่างสวยงามมากขึ้น และมีขนาดเล็กเล็กลงเพื่อที่จะตอบสนองปัญหาของมือกีต้าร์ทั้งหลาย