บทที่1
ระบบคอมพิวเตอร์

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

ฮาร์ดแวร์ (Hardware)
            ประกอบไปด้วยอุปกรณ์ต่างๆ 5 ส่วนได้แก่
            อุปกรณ์รับข้อมูล (Input Device) เป็นอุปกรณ์ที่มีหน้าที่รับข้อมูลจากผู้ใช้เข้าสู่ระบบคอมพิวเตอร์
            หน่วยประมวลผลกลาง (CPU : Central Processing Unit) มีหน้าที่ในการประมวลผลคำสั่งหรือข้อมูลต่างๆ
            หน่วยความจำหลัก (Primary Storage) เป็นส่วนที่มีหน้าที่ในการจัดเก็บข้อมูลหรือคำสั่งต่างๆ ก่อนที่จะส่งไปยังหน่วยประเมิลผลกลางเพื่อทำการประมวลผลต่อไป เมื่อเปิดเครื่ององคอมพิวเตอร์ข้อมูลในหน่วยความจำก็จะหายไปหมด
            อุปกรณ์แสดงข้อมูล (Output Device) เป็นอุปกรณ์ที่มีหน้าที่ในการแสดงผลต่างๆตัวอย่างที่ใช้กันประจำ ได้แก่ จอภาพ และเครื่องพิมพ์ เป็นต้น
            หน่วยความจำสำรอง (Auxiliary Storage) มีหน้าที่ในการจัดเก็บข้อมูล ซึ่งการจัดเก็บข้อมูลของหน่วยความจำสำรองนี้จะเป็นการจัดเก็บที่ถาวร ข้อมูลจะไม่หายไปเมื่อปิดเครื่องคอมพิวเตอร์แล้ว ตัวอย่าง เช่น ฮาร์ดดิสก์ แผ่นดิสก์ เป็นต้น

ซอฟต์แวร์ (Software)
            ในส่วนของซอฟต์แวร์ก็สามารถแบ่งออกได้เป็น 2 ประเภท คือ
            ซอฟต์แวร์ระบบ (System Software) ทำหน้าที่ในการจัดการทรัพยากรของเครื่องคอมพิวเตอร์ และทำหน้าที่ติดต่อระหว่างฮาร์ดแวร์กับผู้ใช่ได้ด้วย
            ซอฟต์แวร์ประยุกต์
(Application Software) เป็นซอฟต์แวร์ที่สร้างขึ้นมาให้ผู้ใช้ทำงานต่างๆ เช่น พิมพ์งาน วาดภาพ เป็นต้น

 ลักษณะของคอมพิวเตอร์
            ระบบคอมพิวเตอร์นั้น ถ้ามองในด้านลักษณะคอมพิวเตอร์จะสามารถแบ่งออกได้ 3 ประเภทใหญ่ๆ ดั้งนี้
คอมพิวเตอร์ส่วนบุคคล (Personal Computer)เป็นระบบคอมพิวเตอร์ที่มีเครื่องคอมพิวเตอร์เพียงเครื่องเดียว และไม่ได้ทำการติดต่อกับเครื่องคอมพิวเตอร์อื่นๆ
ลักษณะแบบ (Time-sharing)เป็นลักษณะที่มีเครื่องคอมพิวเตอร์หลายๆ เครื่องมาต่อกับเครื่องคอมพิวเตอร์ศูนย์กลางโดยคอมพิวเตอร์เหล่านั้นเรียกว่า Terminal ทุกเครื่องจะส่งคำสั่งที่ต้องการมาประมวลผลที่เครื่องคอมพิวเตอร์ศูนย์กลาง เพราะการประมวลผลของเครื่องคอมพิวเตอร์ศูนย์กลางจะต้องมีเวลาในการประมวลคำสั่งต่าง ๆ ที่ส่งมาจาก Terminal ทุกเครื่องในลักษณะแบบ Time-sharing
ลักษณะแบบ (Client/Server)เป็นเครื่องคอมพิวเตอร์เครื่องหนึ่งที่ทำหน้าที่เป็น Server คอยดูแลจัดทรัพยากรของระบบทั้งหมด และมีเครื่อง Clients ต่อเข้าเครื่อง Server โดยใช้ทรัพยากรต่าง ๆ ที่เครื่อง Server มีอยู่ ตามสิทธิของผู้ใช้แต่ละคน และการประมวลผลจะไม่ทำอยู่บนเครื่อง Server แต่จะประมวลที่ Clients แต่ละเครื่องเอง แล้วอาจนำข้อมูลต่าง ๆ ไปเก็บที่เครื่อง Server

ภาษาคอมพิวเตอร์ (Computer Languages)
            ในการเขียนโปรแกรมนั้น ผู้ใช้จะต้องใช้ภาษาคอมพิวเตอร์เขียนโปรแกรมเรียกว่าซอฟต์แวร์ขึ้นมา ภาษาคอมพิวเตอร์นั้นจะมีตั้งแต่ละดับภาษาของเครื่องขึ้นมาจนถึงภาษาธรรมชาติ

            ภาษาเครื่อง (Machine Languages) ภาษาที่เครื่องคอมพิวเตอร์เข้าใจมากที่สุด ซึ่งจะเป็นลักษณะแบบเลขฐานสอง คือ 0 กับ 1
            ภาษาสัญลักษณ์ (Symbolic Languages) เมื่อคอมพิวเตอร์ได้พัฒนาขึ้นมาเรื่อยๆและมีผู้ใช้มากขึ้น จึงมีคนมองเห็นว่าการที่จะเขียนโปรแกรมควบคุมคอมพิวเตอร์ด้วยภาษาเครื่องนั้น จะทำให้การพัฒนาทางด้านซอฟต์แวร์เป็นไปได้ช้า จึงได้มีการพัฒนาภาษาสัญลักษณ์ขึ้นเพื่อให้การเขียนโปรแกรมคอมพิวเตอร์สะดวกยิ่งขึ้น แต่การที่นำโปรแกรมนั้นไปใช้ จะต้องทำการเปลี่ยนภาษาสัญลักษณ์เป็นภาษาเครื่องก่อนเสมอ
            ภาษาระดับสูง (High-Level Languages) เป็นภาษาที่พัฒนามาจากภาษาสัญลักษณ์อีกทีหนึ่ง แต่จะมีลักษณะที่คล้ายกับภาษามนุษย์มากยิ่งขึ้น การแปลงภาษาระดับให้เป็นภาษาเครื่องนั้นจะมีวิธีการเรียกว่าคอมไฟล์ ภาษาระดับได้แก่ FORTRAN COBOL และ ภาษาC
            ภาษาธรรมชาติ (Natural Languages) ภาษาธรรมชาติก็คือภาษาที่มนุษย์พูดกัน เช่น ภาษาอังกฤษ ภาษาจีน เป็นต้น ซึ่งเครื่องคอมพิวเตอร์นั้นไม่สามารถที่จะเข้าใจได้เลย ในปัจจุบันยังไม่มีคนนิยมใช้กันมากนัก

ขั้นตอนการรันโปรแกรมด้วยภาษา c
            การพัฒนาโปรแกรมด้วยภาษา c นั้นมีขั้นตอนอยู่ 3 ขั้น ดังนี้
1.เขียนและแก้ไขโปรแกรม คือ การนำคำสั่งต่างๆของภา c มาเขียนเรียงต่อๆกันจนเป็นโปรแกรมที่ทำงานตามผู้ใช้ต้องการ โดยการเขียนจะเป็นตัวอักษร ซึ่งเมื่อเขียนเสร็จก็จะได้เป็น Source Files
2.คอมไฟล์โปรแกรม เมื่อได้ Source Files แล้วและเมื่อต้องการรันโปรแกรมใดๆผู้ใช้จะต้องทำการแปลง Source Files เหล่านั้น ให้เป็นภาษาเครื่องก่อน ซึ่งในขั้นตอนนี้เรียกว่า คอมไฟล์โปรแกรม ซึ่งจะได้ไฟล์ Object Module ด้วย
3.การลิงค์โปรแกรม ในภาษา c นั้นจะมีฟังก์ชั่นต่างๆที่เตรียมพร้อมมาให้ผู้ใช้ได้ใช้อยู่แล้ว เมื่อ คอมไฟล์โปรแกรมเสร็จแล้วไม่มีข้อผิดพลาดใด  ตัวคอมไฟล์ (Compiler) จะทำการดึงโปรแกรมอื่นที่ถูกเรียกใช้จากโปรแกรมที่ทำการลิงค์เข้ามารวมในโปรแกรมที่สมบูรณ์

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

การพัฒนาโปรแกรม
            ในการพัฒนาโปรแกรมขึ้นมาซักโปรแกรมหนึ่งนั้น ไม่ใช่มาถึงจะเขียนโปรแกรมได้เลย การพัฒนานั้นจะมีขั้นตอนที่เรียกว่า System Development Life Cycle
1.หาความต้องการของระบบ (System Requirements) คือ การศึกษาและเก็บความต้องการของผู้ใช้โปรแกรม ว่ามีความต้องการอะไรบ้าง
2.วิเคราะห์ (Analysis) คือ การนำเอาความต้องการของผู้ใช้โปรแกรมมาวิเคราะห์ว่าจะพัฒนาเป็นโปรแกรมตามที่ผู้ใช้ต้องการได้หรือไม่ถ้าทำได้จะทำได้มากน้อยเพียงใด3.ออกแบบ (Design) คือ เมื่อสรุปได้แล้วว่าโปรแกรมที่จะสร้างมีลักษณะใดขั้นตอนต่อมาคือ การออกแบบการทำงานของโปรแกรมให้เป็นไปตามความต้องการที่วิเคราะห์ไว้การออกแบบอาจจะออกแบบเป็นผังงานก็ได้
4.เขียนโปรแกรม (Code) คือ เมื่อได้ผังงานแล้ว ต่อมาก็เป็นการเขียนโปรแกรมตามผังงานออกแบบไว้
5.ทดสอบ (System Test) คือเมื่อเขียนโปรแกรมเสร็จแล้ว จะต้องมีการทดสอบเพื่อหาข้อผิดพลาดต่างๆ เช่น ตรงตามที่ผู้ใช้ต้องการหรือไม่ ถ้าพบข้อผิดพลาดก็กลับไปทำออกแบบอีกครั้ง
6.ดูแล (Maintenance) เมื่อโปรแกรมผ่านการทดสอบแล้ว และผู้ใช้ได้นำโปรแกรมดังกล่าวไปใช้ ผู้พัฒนาจะต้องคอยดูแล เนื่อจากอาจมีข้อผิดพลาดที่หาไม่พบในขั้นตอนการทดสอบโปรแกรม