204105 Computer Programming I CompScCMU cs-cmu 2004
การวัดผล สอบกลางเทอม 35 % เนื้อหาหัวข้อ 1+2+3+4+5.1 สอบกลางเทอม 35 % เนื้อหาหัวข้อ 1+2+3+4+5.1 จันทร์ ที่ 2 สิงหาคม 2547 เวลา 12:00-15:00 น. สอบปลายเทอม 40% เนื้อหาหัวข้อ 5+6+7+8+9+10 อังคาร ที่ 5 ตุลาคม 2547 ปฏิบัติการ 25 % cs-cmu 2004
เนื้อหา 1. ระบบคอมพิวเตอร์และการประมวลผล 2. การสื่อสารข้อมูล 3. การพัฒนาโปรแกรม และ การออกแบบอัลกอริทึม 4. ส่วนประกอบของภาษาโปรแกรม 5. ประโยคคำสั่งควบคุม 6. โปรแกรมย่อยฟังก์ชัน (Function) 7. ตัวบ่งชี้(Pointer) การประมวลผลแฟ้มข้อมูล ตัวแปรชุด (Arrays) ข้อมูลแบบโครงสร้าง (struct) cs-cmu 2004
ระบบคอมพิวเตอร์และการประมวลผล องค์ประกอบของระบบคอมพิวเตอร์ ฮาร์ดแวร์ (Hardware) ซอฟต์แวร์ (Software) บุคลากรคอมพิวเตอร์ (Peopleware) การประมวลผลข้อมูล (Data processing) ข้อมูล (Data) และ ข้อสนเทศ (Information) การจัดองค์กรของข้อมูล (Data organization) วัฏจักรการประมวลผลข้อมูล ประเภทของการประมวลผล การแทนข้อมูลในหน่วยความจำ ระบบเลขฐานและการดำเนินการที่เกี่ยวข้อง การแทนอักขระ การแทนจำนวนเลข cs-cmu 2004
คอมพิวเตอร์คืออะไร? หมายถึง อุปกรณ์อิเล็กทรอนิกส์หรือเครื่องที่มีความสามารถดำเนินกรรมวิธีหรือประมวลผลข้อมูลอัตโนมัติ โดยอาศัยส่วนประกอบต่าง ๆ ร่วมกันทำงาน สามารถป้อนโปรแกรม(ชุดคำสั่ง) บันทึกข้อมูล คำนวณและจัดการข้อมูลแบบอักขระได้ cs-cmu 2004
ลักษณะที่สำคัญของคอมพิวเตอร์ 1) ทำงานด้วยระบบอิเล็กทรอนิกส์และอัตโนมัติ 2) มีความเร็วสูงในการประมวลผล 3) มีหน่วยความจำภายในขนาดใหญ่ 4) ได้ผลลัพธ์ที่ถูกต้องและน่าเชื่อถือ cs-cmu 2004
องค์ประกอบของระบบคอมพิวเตอร์ ฮาร์ดแวร์ (Hardware: H/W) ซอฟต์แวร์ (Software: S/W) บุคลากรทางคอมพิวเตอร์ (Peopleware:P/W) cs-cmu 2004
ฮาร์ดแวร์ (Hardware: H/W) ฮาร์ดแวร์ คือ อุปกรณ์ต่างๆ ที่ี่ประกอบเข้าเป็นตัวเครื่องคอมพิวเตอร์ ซึ่งแบ่งตามหน้าที่การทำงานได้เป็น 4 หน่วย ดังนี้ 1)หน่วยรับข้อมูล (Input Unit) 2)หน่วยประมวลผลกลาง(Central Processing Unit) 3)หน่วยความจำ (Memory หรือ Storage Unit) หน่วยความจำหลัก (Main Memory) หน่วยความจำสำรอง (Secondary Storage) 4)หน่วยแสดงผล (Output Unit) cs-cmu 2004
หน่วยรับข้อมูลเข้า (Input Unit) หน้าที่ รับข้อมูลจากภายนอกโดยผ่านอุปกรณ์ซึ่งทำหน้าที่แปลงข้อมูลให้อยู่ในรูปที่คอมพิวเตอร์สามารถเข้าใจได้ อุปกรณ์ที่ทำหน้าที่ดังกล่าวเรียกว่า Input device cs-cmu 2004
ความสัมพันธ์ Input unit Main memory cs-cmu 2004
อุปกรณ์รับข้อมูลเข้า (Input device) แป้นพิมพ์ (Keyboard) เอ็มไอซีอาร์ หรือ เครื่องอ่านอักขระหมึกแม่เหล็ก (Magnetic Ink Character Reader: MICR) โอซีอาร์ หรือ เครื่องอ่านอักขระด้วยแสง (Optical Character Reader: OCR) cs-cmu 2004
อุปกรณ์รับข้อมูลเข้า(Input device) สแกนเนอร์ (Scanner) cs-cmu 2004
อุปกรณ์รับข้อมูลเข้า(Input device) เครื่องอ่านบัตรเจาะรู (Card reader) เครื่องอ่านแผ่นซีดี (CDROM drive) เครื่องอ่านเทปกระดาษ Voice recognizer ฯลฯ cs-cmu 2004
หน่วยแสดงผลข้อมูล(Output unit) ทำหน้าที่แสดงผลลัพธ์ที่ได้จากการประมวลผลภายในเครื่องคอมพิวเตอร์แสดงออกมาภายนอกในรูปแบบ และลักษณะต่างๆ หน่วยแสดงผลข้อมูลแบ่งเป็น 2 ประเภทคือ หน่วยแสดงผลแบบ Softcopy คือการแสดงผลแล้วลบหายไป หน่วยแสดงผลแบบ Hardcopy คือการแสดงผลที่สามารถเก็บผลนั้นไว้ใช้ภายหลังได้ เช่น การพิมพ์เป็นรายงานหรือเก็บไว้เป็นหลักฐานด้วยเครื่องพิมพ์ (Printer) cs-cmu 2004
ความสัมพันธ์ Main memory Output unit cs-cmu 2004
อุปกรณ์ทำหน้าที่แสดงผลข้อมูล (Output devices) จอภาพแสดงผล CRT, VDO, MONITOR เครื่องพิมพ์ (Printer) Impact printer : Dot matrix, Line printer Non- impact printer : Thermal printer, Page printer, Laser printer เครื่องวาด (Plotter), ลำโพง (Speaker) หรือ Voice synthesizer cs-cmu 2004
อุปกรณ์ทำหน้าที่รับและแสดงผลข้อมูล (Input/Output devices) เครื่องอ่านและบันทึกลงดิสค์(Disk drive) เครื่องอ่าน/บันทึกดิสเกตต์(Diskette drive) เครื่องอ่านหรือบันทึกเทปแม่เหล็ก(Tape drive) cs-cmu 2004
หน่วยประมวลผลกลาง หน้าที่ในการประมวลผลข้อมูลที่ผู้ใช้ป้อนเข้ามาทาง อุปกรณ์รับข้อมูลตามชุดคำสั่งหรือโปรแกรมที่ผู้ใช้ต้องการ ประกอบด้วยวงจรหลายๆ วงจรที่ทำหน้าที่แตกต่างกัน ตามการกระทำพื้นฐานที่แต่เครื่องสามารถดำเนินการได้ cs-cmu 2004
เซ็ตของคำสั่ง(Instruction Set) แต่ละคำสั่งมีลักษณะเป็นกลุ่มของบิต ซึ่งจะบอกแก่คอมพิวเตอร์ให้ปฏิบัติการอย่างใดอย่างหนึ่ง ที่เป็นหน้าที่พื้นฐาน ซึ่งได้แก่ บวก ลบ คูณ หาร เปรียบเทียบ คัดลอก กระตุ้นให้เกิดการรับข้อมูล หรือ กระต้นให้เกิดการแสดงผลของหน่วยแสดงผล กลุ่มบิตของแต่ละคำสั่ง แบ่งออกเป็น 2 ส่วน เช่น ADD 1000, 1002 บวกข้อมูลที่อยู่ในตำแหน่ง 1000 ในหน่วยความจำ กับค่าข้อมูลที่อยู่ในตำแหน่ง 1002 Operation Code Operand กลุ่มของวงจรที่แทนการดำเนินการพื้นฐานของคอมพิวเตอร์แต่เครื่อง เรียกว่า เซ็ตของคำสั่ง cs-cmu 2004
ความสัมพันธ์ Processor Main memory cs-cmu 2004
หน่วยประมวลผลกลาง ประกอบด้วยส่วนสำคัญ 2 ส่วนหลัก คือ 1) หน่วยคำนวณและตรรกะ (Arithmetic & Logical Unit: ALU) ทำหน้าที่เกี่ยวกับการคำนวณและ การเปรียบเทียบทางตรรกะ 2) หน่วยควบคุม (Control Unit) ทำหน้าที่ควบคุมและประสานการทำงานของส่วนต่างๆ โดยมีนาฬิกา(clock)เป็นตัวให้จังหวะกระตุ้นการทำงาน นอกจากนี้ยังมีหน่วยที่ทำหน้าที่จดจำคำสั่งหรือข้อมูลซึ่งกำลังถูกดำเนินการ เรียกหน่วยนี้ว่า หน่วยความจำความเร็วสูงหรือ รีจีสเตอร์ (Registers) cs-cmu 2004
รีจิสเตอร์ (Register) แบ่งเป็น 2 ประเภท คือ รีจิสเตอร์ทั่วไป (General Register) รีจิสเตอร์พิเศษ (Special Register) คือ รีจิสเตอร์ที่แต่ละตัวจะทำงานเฉพาะอย่าง ที่สำคัญได้แก่ Accumulator ทำหน้าที่เก็บข้อมูลในขณะประมวลผล หรือเป็นที่พักผลลัพธ์จากการคำนวณ ก่อนที่จะถูกส่งไปบันทึกในหน่วยความจำหลัก Instruction Register เป็นที่เก็บคำสั่งที่กำลังทำงานอยู่ Program Counter เป็นตัวชี้ไปยังคำสั่งถัดไปที่จะถูกดึงเข้ามาทำงาน cs-cmu 2004
ส่วนประกอบสำคัญในหน่วยประมวลผลกลาง Clock CU ALU Registers cs-cmu 2004
CU ALU Clock RAM Processor 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 Clock CU ALU Program counter Instruction Register Processor Accumulator 1 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 3 ADD REG1, REG2 4 COPY ACCUMULATOR TO 1002 RAM 1000 50 1001 88 1002 cs-cmu 2004
1 fetch CU ALU Clock RAM Processor COPY 1000 TO REG1 Program counter Instruction Register Accumulator REG2 COPY 1000 TO REG1 2 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 3 ADD REG1, REG2 4 COPY ACCUMULATOR TO 1002 RAM 1000 50 1001 88 1002 cs-cmu 2004
2 CU ALU Clock RAM Processor COPY 1000 TO REG1 1 COPY 1000 TO REG1 50 Program counter Instruction Register Accumulator REG2 COPY 1000 TO REG1 2 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 3 ADD REG1, REG2 4 COPY ACCUMULATOR TO 1002 RAM 1000 50 1001 88 1002 cs-cmu 2004
3 CU ALU Clock RAM Processor COPY 1000 TO REG1 1 COPY 1000 TO REG1 50 Program counter Instruction Register Accumulator REG2 COPY 1000 TO REG1 2 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 3 ADD REG1, REG2 4 COPY ACCUMULATOR TO 1002 RAM 1000 50 1001 88 1002 cs-cmu 2004
4 CU ALU Clock RAM Processor COPY 1001 TO REG2 1 COPY 1000 TO REG1 50 Program counter Instruction Register Accumulator REG2 COPY 1001 TO REG2 3 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 3 ADD REG1, REG2 4 COPY ACCUMULATOR TO 1002 RAM 1000 50 1001 88 1002 cs-cmu 2004
5 CU ALU Clock RAM Processor COPY 1001 TO REG2 1 COPY 1000 TO REG1 50 Program counter Instruction Register Accumulator REG2 COPY 1001 TO REG2 88 3 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 3 ADD REG1, REG2 4 COPY ACCUMULATOR TO 1002 RAM 1000 50 1001 88 1002 cs-cmu 2004
6 CU ALU Clock RAM Processor COPY 1000 TO REG2 1 COPY 1000 TO REG1 50 Program counter Instruction Register Accumulator REG2 COPY 1000 TO REG2 88 3 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 3 ADD REG1, REG2 4 COPY ACCUMULATOR TO 1002 RAM 1000 50 1001 88 1002 cs-cmu 2004
7 CU ALU Clock RAM Processor ADD REG1, REG2 1 COPY 1000 TO REG1 Program counter Instruction Register Accumulator REG2 ADD REG1, REG2 4 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 3 ADD REG1, REG2 4 COPY ACCUMULATOR TO 1002 RAM 1000 50 1001 88 1002 cs-cmu 2004
8 CU ALU Clock RAM Processor ADD REG1, REG2 1 COPY 1000 TO REG1 50 Program counter Instruction Register Accumulator REG2 ADD REG1, REG2 138 88 4 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 3 ADD REG1, REG2 4 COPY ACCUMULATOR TO 1002 RAM 1000 50 1001 88 1002 cs-cmu 2004
9 CU ALU Clock RAM Processor ADD REG1, REG2 1 COPY 1000 TO REG1 50 Program counter Instruction Register Accumulator REG2 ADD REG1, REG2 138 88 4 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 3 ADD REG1, REG2 4 COPY ACCUMULATOR TO 1002 RAM 1000 50 1001 88 1002 cs-cmu 2004
10 CU ALU Clock RAM Processor 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 50 Program counter Instruction Register Accumulator REG2 COPY ACCUMULATOR TO 1002 138 88 5 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 3 ADD REG1, REG2 4 COPY ACCUMULATOR TO 1002 RAM 1000 50 1001 88 1002 cs-cmu 2004
11 CU ALU Clock RAM Processor 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 50 Program counter Instruction Register Accumulator REG2 COPY ACCUMULATOR TO 1002 138 88 5 1 COPY 1000 TO REG1 2 COPY 1001 TO REG2 3 ADD REG1, REG2 4 COPY ACCUMULATOR TO 1002 RAM 1000 50 1001 88 1002 138 cs-cmu 2004
Machine cycle ชุดคำสั่งถูกโหลดเข้าไปเก็บในหน่วยความจำ Program counter ถูกกำหนดให้เก็บค่าตำแหน่งของ คำสั่งแรกที่ต้องถูกดำเนินการ หน่วยควบคุม ควบคุมให้เกิดการอ่านคำสั่งในหน่วยความจำ ณ ตำแหน่งที่มีค่าตามที่กำหนดไว้ใน Program counter โดยนำคำสั่งที่อ่านได้ไปเก็บไว้ใน Instruction register เพิ่มค่าใน program counter ให้เป็นค่าของตำแหน่งในหน่วยความจำที่เก็บคำสั่งถัดไป หน่วยควบคุมส่งสัญญานควบคุมหน่วย ALU ให้ดำเนินการตามคำสั่ง ผลลัพธ์ที่ได้จากการดำเนินการจะถูกพักไว้ที่ Accumulator register หน่วยควบคุม จะควบคุมให้บันทึกค่าใน ACC ไปเก็บไว้ในหน่วยความจำ 3-6 เรียกว่า Machine cycle = I-time + E-time I-time : Instruction Time E-time : Execution Time
หน่วยความจำหลัก หน่วยความจำหลักมี 2 ชนิดคือ 1) ROM (Read Only Memory) เป็นหน่วยความจำชนิดอ่านได้อย่างเดียว ไม่สามารถเขียนหรือบันทึกข้อมูลในหน่วยความจำแบบนี้ได้ 2) RAM (Random Access Memory) หรืออาจเรียกว่า RWM (Read/Write Memory) หน่วยความจำแบบนี้สามารถอ่านและบันทึกข้อมูลได้ cs-cmu 2004
ความสัมพันธ์ Clock CU ALU Registers Main memory cs-cmu 2004
หน่วยความจำสำรอง หน่วยความจำสำรองจะเป็นหน่วยบันทึกข้อมูลอย่างถาวร ไม่ลบหายถึงแม้จะไม่มีไฟเลี้ยงอยู่ก็ตาม ทำหน้าที่เก็บข้อมูลอย่างถาวรไว้ใช้ในโอกาสต่อไป cs-cmu 2004
ความสัมพันธ์ Clock CU ALU Registers Secondary storage Main memory Cache memory cs-cmu 2004
สื่อบันทึกข้อมูลแบบลำดับ SAS : Sequential Access Storage บัตรเจาะรู (Punch Card) Card Reader Card Punch แถบกระดาษ (Paper Tape) เทปแม่เหล็ก (Magnetic Tape) เทปตลับ (Tape cassette) cs-cmu 2004
สื่อบันทึกแบบเข้าถึงโดยตรง (Direct Access Storage) จานแม่เหล็ก (Magnetic Disk) เครื่องอ่านและบันทึกจานแม่เหล็ก (Disk drive) แผ่นดิสเก็ตต์ (Diskette, Floppy Disk) เครื่องอ่านและบันทึกดิสเก็ตต์ (Diskette drive) Hard disk หรือ Fixed disk Compact Disk(CD) : CD-ROM cs-cmu 2004
ภาพจานแม่เหล็ก (Magnetic disk) cs-cmu 2004
รายละเอียดจานแม่เหล็ก Tracks: ร่องบันทึกข้อมูลตามแนวเส้นรอบวงบนจานแม่เหล็ก หรือตาม ความกว้างของเทปแม่เหล็ก ร่องบันทึกข้อมูลแต่ละร่อง ไม่ต่อเนื่องกัน Sector: ส่วนหนึ่งของร่องบันทึกข้อมูลบนแผ่นจานแม่เหล็กชนิดอ่อน ซึ่ง บันทึกข้อมูลระหว่าง 128 byte ถึง 1 Kb Cylinder: แนวดิ่งตรงกันของร่องบันทึกข้อมูลบนชุดจานแม่เหล็ก แต่ละ แผ่นวางเรียงซ้อนกันบนแกนเดียวกัน ดังนั้นถ้า 200 ร่องบันทึก ก็จะมี 200 Cylinder Surface: พื้นผิวของจานแม่เหล็ก 1 แผ่นมี 2 พื้นผิว cs-cmu 2004
แผ่นจานแม่เหล็กเก็บข้อมูล (Magnetic Disk) 512 Byte Track+Sector Track Sector
แผ่นจานแม่เหล็กแบบอ่อน (Floppy Disk)
ภาพแผ่นดิสก์เก็ตต์ cs-cmu 2004
แผ่นจานแม่เหล็กแข็งขนาดเล็ก (Hard Disk)
CD มีการบันทึกลักษณะเหมือนกับจาน แม่เหล็ก แต่สามารถบรรจุข้อมูลได้ มากกว่า cs-cmu 2004
บิต กับ ไบต์ บิต (Bit) คือ หน่วยที่เล็กที่สุดที่อาจเป็นเลข 0 หรือ 1 ย่อมาจาก Binary Digit ไบต์ (Byte) คือ กลุ่มของบิต จำนวน 6-8 บิต ใช้เข้ารหัสแทน อักษร หรือ ตัวเลข 1 ตัว และนิยมใช้เป็นหน่วยวัดความจุข้อมูล cs-cmu 2004
หน่วยวัดความจุข้อมูล 1 Byte = 6-8 Bit 1 Kbyte = 210 Byte =1024 Byte 1 Mbyte = 210 Kbyte 1 Gbyte = 210 Mbyte K= Kilo กิโล M = Mega เมกะ G = Giga จิกะ T = Tera เทรา cs-cmu 2004
วิธีการบันทึกในหน่วยความจำสำรอง อุปกรณ์การอ่าน และ อุปกรณ์บันทึก อุปกรณ์บันทึก CPU ------- MEMORY สื่อบันทึก อุปกรณ์อ่าน cs-cmu 2004
The Input/Process/Output Cycle CPU CU ALU Registers Input unit Main memory Output unit Secondary storage cs-cmu 2004