Friday, July 24, 2015

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

ชนิดของข้อมูลและตัวแปรในภาษาซี
ชนิดของข้อมูล (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 (เป็นเลขฐานแปดเพราะมี นำหน้า)*/
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 คือขนาดของข้อความ+โดยขนาดที่เพิ่มขึ้นเพราะต้องเก็บอักขระสุดท้ายของข้อความเป็นอักขระ

\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)*/

ชนิดของตัวแปรในภาษาซี
ชนิดของตัวแปร
ขนาด(bits)
ขอบเขต
ข้อมูลที่เก็บ
char
8
-128 ถึง 127
ข้อมูลชนิดอักขระ ใช้เนื้อที่ 1 byte
unsigned char
8
ถึง 255
ข้อมูลชนิดอักขระ ไม่คิดเครื่องหมาย
int
16
-32,768 ถึง 32,767
ข้อมูลชนิดจำนวนเต็ม ใช้เนื้อที่ 2 byte
unsigned int
16
ถึง 65,535
ข้อมูลชนิดจำนวนเต็ม ไม่คิดเครื่องหมาย
short
8
-128 ถึง 127
ข้อมูลชนิดจำนวนเต็มแบบสั้น ใช้เนื้อที่ 1 byte
unsigned short
8
ถึง 255
ข้อมูลชนิดจำนวนเต็มแบบสั้น ไม่คิดเครื่องหมาย
long
32
-2,147,483,648 ถึง 2,147,483,649
ข้อมูลชนิดจำนวนเต็มแบบยาว ใช้เนื้อที่ 4 byte
unsigned long
32
ถึง 4,294,967,296
ข้อมูลชนิดจำนวนเต็มแบบยาว ไม่คิดเครื่องหมาย
float
32
3.4*10e(-38) ถึง 3.4*10e(38)
ข้อมูลชนิดเลขทศนิยม ใช้เนื้อที่ 4 byte
double
64
3.4*10e(-308) ถึง 3.4*10e(308)
ข้อมูลชนิดเลขทศนิยม ใช้เนื้อที่ 8 byte
long double
128
3.4*10e(-4032) ถึง 1.1*10e(4032)
ข้อมูลชนิดเลขทศนิยม ใช้เนื้อที่ 16 byte

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


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

ผังงาน Flowchart

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

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

ซอฟต์แวร์ที่ใช้ในการออกแบบ(3มิติ)
 Blender (โปรแกรมออกแบบ มิติ โปรแกรม Animation 3 มิติ) : โปรแกรมนี้คือ โปรแกรมออกแบบ มิติ (3D) โปรแกรม เป็นโปรแกรมออกแบบ ที่ใช้ได้กับทุกระบบปฏิบัติการ ไม่ว่าจะเป็นทั้ง Windows / Mac OS หรือ Linuxเหมาะสำหรับคนชอบและรักการออกแบบ ถามว่าออกแบบอะไร ออกแบบรถ ออกแบบตัวละคร ในฝัน ออกแบบตัวละครการ์ตูน หรือในจินตนาการ จริงๆ แล้วก็สามารถเป็น โปรแกรมแอนิเมชั่น เพื่อใช้ทำภาพเคลื่อนไหว มิติ ได้อีกด้วยย
เรียกได้ว่า โปรแกรมออกแบบ มิติ หรือ โปรแกรม Blender ตัวนี้ หรับคนที่หลงไหล หรือสนใจในการฝึกทำภาพ ออกแบบภาพ มิติ โปรแกรม Blenderตัวนี้เลยครับ ชวยในการออกแบบวัสดุ คนในรูปแบบ มิติ แถมมีฟังก์ชั่นให้งานที่คิดว่ายากๆ ให้ง่ายขึ้นมาอีกด้วย คุณสมบัติก็เทียบเคียงกับ โปรแกรมออกแบบ มิติ (โปรแกรม Animation) หรือ โปรแกรมออกแบบ ฟอร์มยักษ์อื่นๆ ที่มีราคาเฉียดล้าน ได้อย่างไม่อายเลยทีเดียวละครับ มีให้เลือกดาวน์โหลด ทั้งแบบ ระบบปฏิบัติการ 32 Bits (x86) และ 64 Bits (x64) ใครใช้แบบไหน ก็เลือก ดาวน์โหลด โปรแกรมออกแบบ มิติ ได้ตามใจชอบ เพื่อจะได้รีดประสิทธิภาพ ออกมาได้สูงสุด
เวอร์ชั่น 2.7 : ล่าสุดปรับปรุงให้สามารถทำการ Render ได้จำนวนมากๆ พร้อมกันได้แล้ว และ ปรับปรุงให้ โปรแกรมมีการบริโภคทรัพยากรเครื่อง อาทิเช่นCPU หรือ หน่วยความจำแรม (RAM) ต่างๆ ที่น้อยลง

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

ซอฟแวร์ที่ใช้ในงานออกแบบ(2มิติ)
 LibreCAD (โปรแกรมออกแบบ โปรแกรมวาดแบบ มิติ) : โปรแกรมออกแบบ LibreCAD เป็น โปรแกรมออกแบบ 2 มิติ หรือที่เรียกว่า CAD 2D (Computer-Aided Design Program) ที่อยู่ในโปรเจคโอเพ่นซอร์ส (Open-Source) หากได้ยินชื่อนี้เมื่อไหร่ พึงระลึกเอาไว้เลยว่า แจกฟรี แน่นอน เพราะเป็นการพัฒนาที่เกิดขึ้นจากนักพัฒนาโปรแกรมฝีมือดีจากทั่วโลก ที่มีความเชี่ยวชาญด้าน โปรแกรมออกแบบ ตรงนี้ได้เป็นพื้นที่ ที่จะมาร่วมออกแบบแลัพัฒนาร่วมกัน โดย โปรแกรมออกแบบ ตัวนี้สามารถออกแบบวัตถุต่างๆ ได้ มิติ (2D) เท่านั้น ซึ่งสามารถใช้ออกแบบวัตถุ สื่งของ หรืออะไรก็ได้ที่ง่ายๆ อาทิเช่น กลไกของเครื่องจักรกล วิศวกรออกแบบสิ่งก่อสร้างต่างๆ เช่น เป็น โปรแกรมออกแบบบ้าน ได้ดี หรือจะไปใช้ ออกแบบครัวเรือน ออกแบบตึก ออกแบบอาคาร ออกแบบห้อง เพื่อใช้สอยในกิจการ หรือ สถานการณ์ ต่างๆ รวมไปถึงการ ออกแบบถุงพลาสติก ออกแบบเสื้อผ้า ด้านหน้าด้านหลัง ได้เป็นอย่างดี แล้วแต่ตามใจชอบ
Program Features (คุณสมบัติและความสามารถหลักๆ ของ โปรแกรมออกแบบ 2 มิติ LibreCAD)
  • เป็นโปรเจคโอเพ่นซอร์ส พัฒนาขึ้นมาเพื่อ แจกฟรี 100%ไม่มีค่าใช้จ่ายใดๆ ไม่มีโฆษณาแฝง ใดๆ ติดพ่วงมากับโปรแกรม ให้คุณไปใช้ออกแบบ วาดแบบ กันเลยฟรีๆ แต่หากต้องการบริจาค สามารถบริจาคเพื่อสนับสนุนทีมผู้พัฒนา ได้ที่หน้าเว็บของเขาได้เลย
  • มีหลากหลายภาษาให้เลือก มากถึงเกือบ 30 ภาษา จากทั่วโลก
  • ใช้งานได้กับทุกระบบปฏิบัติการ (Operating Systems)อย่าง Windows และ Mac OS หรือแม้กระทั่ง Linux OS
  • มีเครื่องมีช่วยวาดแบบ ออกแบบ หลากหลาย อาทิเช่น เส้นตรง ส่วนโค้ง วงกลม ทรงเหลี่ยม วาดเส้น ลากเส้นอิสระ กำหนดจุดต่างๆ ฯลฯ อีกมากมาย
  • สามารถกำหนดขนาดสเกล (Scale) ของวัตถุได้แบบสมจริง
  • มีเครื่องมือการวัดขนาดของเส้น วัตถุต่างๆ ในโปรแกรมออกแบบ ตัวนี้ที่แม่นยำ
  • มีความสามารถในการขยายภาพเพื่อ ออกแบบ วาดแบบ ได้หลายเท่า และเสียความคมชัด ไปอย่างน้อยที่สุด เพื่อเพิ่มทัศนวิสัย ในการมองเห็นภาพที่ชัดเจน มากยิ่งขึ้น
  • มีระบบการสอนการใช้งาน การสนับสนุนการใช้งานโปรแกรมที่ดีมากๆ
  • ข้อเสียของมันคือ ไม่สนับสนุนภาพแบบ มิติใดๆ และ สนับสนุนไฟล์เฉพาะ DXF และ CXF เท่านั้น
  • โปรแกรมมีขนาดเล็ก ไม่ถึง 30 MB.
  • และความสามารถอื่นๆ อีกมากมาย

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

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

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

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

2.2  การใช้เทคโนโลยีหมุนเวียน เป็นการนำเอาของเสียผ่านกระบวนการต่างๆ เพื่อนำเอาทรัพยากรกลับมาใช้อีก หรือเพื่อทำให้เป็นผลพลอยได้

5WIH

5WIH


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

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

Who.
สิ่งแวดล้อมอื่นๆ คนหรือกลุ่มความกังวลมันอาจอธิบายเอกสารหรือผู้ที่ได้รับผลกระทบจากนโยบายการหรือขั้นตอน

When.
หมายถึงเมื่อไหร่ในเวลาใดที่เกี่ยวข้อง มันอาจจะเป็นส่วนหนึ่งกับจุดที่เหมาะสมที่จะต้องดำเนินการ บางครั้งมันอาจจะเป็นส่วนหนึ่งของสถานการณ์ของการกระทำตามเงื่อนไข

Where.
เหตุการณ์หรือกระบวนการนั้น เกิดขึ้นที่ไหนเมื่อไหร่

Why.
เหตุใดถึงทำสิ่งนั้นหรือ เพราะเหตุใดถึงเกิดเหตุการณ์นั้นๆ อาจมีการพิจารณาที่ไม่เกี่ยวข้องอาจจะเกิดจากนโยบายหรือขั้นตอน

How. 
เหตุการณ์หรือสิ่งที่ทำนั้นเป็นอย่างไรบ้าง เมื่ออธิบายนโยบายกระบวนการหรือขั้นตอนอาจ
เป็นส่วนสำคัญที่สุด

Conclusion.
5W1H สามารถนำไปใช้หัวข้อใด ๆ เพื่อรวบรวมวิเคราะห์และนำเสนอข้อมูลจากข้อมูลที่ซับซ้อนทำให้เป็นข้อมูลง่าย

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

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