430 likes | 670 Views
องค์ประกอบของคอมพิวเตอร์ และการโปรแกรม. โดย รองศาสตราจารย์ธีรวัฒน์ ประกอบผล. คำถาม. อยากเป็นนักเขียนโปรแกรมจะเรียนอะไรดี รุ่นใหม่ออกแล้ว คุณเปลี่ยนหรือยัง จะใช้คอมพิวเตอร์ในชุมชนของเรา ใช้อะไรดี. องค์ประกอบของคอมพิวเตอร์. Hardware Software People Data. โครงสร้างคอมพิวเตอร์.
E N D
องค์ประกอบของคอมพิวเตอร์ และการโปรแกรม • โดย รองศาสตราจารย์ธีรวัฒน์ ประกอบผล
คำถาม • อยากเป็นนักเขียนโปรแกรมจะเรียนอะไรดี • รุ่นใหม่ออกแล้ว คุณเปลี่ยนหรือยัง • จะใช้คอมพิวเตอร์ในชุมชนของเรา ใช้อะไรดี
องค์ประกอบของคอมพิวเตอร์องค์ประกอบของคอมพิวเตอร์ • Hardware • Software • People • Data
โครงสร้างคอมพิวเตอร์ • หน่วยประมวลผลกลาง • หน่วยความจำหลัก • หน่วยความจำสำรอง • พอร์ตอินพุต • พอร์ตเอาต์พุต
รหัสคอมพิวเตอร์ • รหัสเลขฐานสอง • รหัสแอสกี่ (ASCII) • รหัส BCD วิธีการตรวจสอบข้อผิดพลาดจะใช้วิธีการตรวจสอบพาริตี้ (Parity)
ขั้นตอนการทำงานของคอมพิวเตอร์ขั้นตอนการทำงานของคอมพิวเตอร์ • Hardware • BIOS • ระบบปฎิบัติการ (Operating System) • โปรแกรม
ประเภทของโปรแกรม • โปรแกรมระบบปฎิบัติการ • โปรแกรมเอนกประสงค์ • โปรแกรมประยุกต์
ขั้นตอนการพัฒนาโปรแกรมขั้นตอนการพัฒนาโปรแกรม 1. วิเคราะห์และการกำหนดคุณสมบัติของปัญหา 2. การออกแบบระบบ 3. การเขียนและการรวมชุดคำสั่ง 4. การทบทวนและการทดสอบ 5. การซ่อมบำรุงโปรแกรม
โปรแกรมภาษา • ภาษาระดับต่ำ (Low-level Language) • ภาษาระดับสูง (High-level Language) โปรแกรมต้นฉบับ แปรภาษา รหัสภาษาเครื่อง
ภาษาปาสคาล (Pascal) • เป็นแบบ Compiler • เป็นภาษากลางในการสอนคอมพิวเตอร์ • เป็นภาษาแบบโครงสร้าง
ลักษณะภาษาปาสคาล PROGRAM name; USES CONST TYPE VAR PROCEDURE OR FUNCTION BEGIN END.
ตัวอย่างที่ 1 PROGRAM TEST1; BEGIN WRITELN(‘COMPUTER’); WRITELN(‘I LOVE YOU ‘); END.
ตัวอย่างที่ 2 PROGRAM TEST1; USES CRT; VAR A : INTEGER; BEGIN A := 5; WRITELN(A); WRITELN(‘NUMBER = ‘,A) WRITELN(‘NUMBER = ‘,A+2); END.
การประกาศค่าคงที่ CONST ตัวระบุ = ค่าคงที่ EX….. WORKINGDAYS = 5; PI = 3.14159;
การประกาศตัวแปร VAR ตัวระบุ : ชนิดของข้อมูล EX…. X : Char; A,B : INTEGER; C : Real;
คำสงวน (Reserved Word) AND DO MOD PROCEDURE TO ARRAY TYPE ELSE GOTO FUNCTION BEGIN UNTIL END IF OR NOT THEN VAR อื่น ๆ อีกมากมาย
ชนิดของข้อมูล 1. ข้อมูลเชิงเดี่ยว (Simple-type data) 1.1 ชนิดมาตรฐาน (Standard data types) 1.2 ผู้ใช้กำหนดเอง (uses define ordinal types) 2. ข้อมูลแบบชนิดโครงสร้าง (Structure-type data) 3. ข้อมูลตัวชี้
ข้อมูลเชิงเดี่ยวชนิดมาตรฐานข้อมูลเชิงเดี่ยวชนิดมาตรฐาน 1. จำนวนเต็ม (Integer) 2. จำนวนจริง (Real) 3. ตัวอักขระ (Char) 4. บูลีน (Boolean)
การใช้งานหน่วยความจำของข้อมูลการใช้งานหน่วยความจำของข้อมูล • Integer 2 ไบต์ -32768…..32767 • Real 6 ไบต์ 2.9 E-39 ….1.7 E +38 • Char 1 ไบต์ • Boolean 1 ไบต์
การกำหนดชนิดข้อมูลใหม่การกำหนดชนิดข้อมูลใหม่ VAR MONTH : (JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT, NOV,DEC); COLOR : (RED,YELLOW,BLUE); MONTH := MAY; COLOR := YELLOW;
โครงสร้างควบคุมและคำสั่งแบบเงื่อนไขโครงสร้างควบคุมและคำสั่งแบบเงื่อนไข • โครงสร้างแบบลำดับ (Sequence Structure) • โครงสร้างแบบเลือก (Selection Structure) • โครงสร้างแบบกรณี (Case structure) • โครงสร้างแบบซ้ำเมื่อเงือนไขเป็นจริง (Do While Structure) • โครงสร้างแบบซ้ำจนกระทั่งเงื่อนไขเป็นจริง (Do Until Structure)
โครงสร้างแบบลำดับ คำสั่ง X อ้าปาก คำสั่ง Y ตักข้าว คำสั่ง Z เคี้ยวข้าว
โครงสร้างแบบทางเลือก T F เงื่อนไข IF นิพจน์ THEN ชุดคำสั่ง A ELSE ชุดคำสั่ง B คำสั่ง A คำสั่ง B
โครงสร้างแบบทางเลือกทางเดียวโครงสร้างแบบทางเลือกทางเดียว T F เงื่อนไข IF นิพจน์ THEN ชุดคำสั่ง A คำสั่งต่อไป คำสั่ง A
โครงสร้างแบบกรณี (Case Structure) T F เงื่อนไข คำสั่ง A คำสั่ง B
โครงสร้างแบบซ้ำขณะที่เงื่อนไปจริง (Do While) คำสั่ง A T เงื่อนไข F
โครงสร้างแบบทำซ้ำจนเงื่อนไขเป็นจริง (Do Until) คำสั่ง A F เงื่อนไข T
เครื่องหมายเปรียบเทียบ (Relational Operator)
เครื่องหมายเปรียบเทียบทางตรรกะมีอยู่ 4 ตัวคือ not and or xor
คำสั่ง Case รูปแบบ case Selector Of Constant_1 : Statement_1 ; Constant_2 : Statement_2; …….. …….. Constant_n : Statement_n; else Default_Statement; end;
ตัวอย่าง Readln(MonthNo); if (MonthNo < 0) or (MonthNo > 12) then Writeln(‘Invalid month number’) else Begin Write(‘Month name is ‘); Case MonthNo of 1 : Writeln(‘January ‘); …… End; {end case) End;
ตัวอย่าง Readln(Score); If (Score >= 0) and (Score <= 100) Then Begin Case Score Of 90..100 : Grade := ‘A’; 80..89 : Grade := ‘B’; 70..79 : Grade := ‘C’; 60..69 : Grade := ‘D’; else Grade := ‘F’ End;
ลูป For ใช้ในการทำซ้ำที่มีจำนวนครั้งในการทำแน่นอน มีรูปแบบดังนี้ For Control_value := Initial_value To Final_value Do Statement; Control_value ต้องเป็นตัวแปรแบบลำดับ
ตัวอย่าง • For I := 1 TO 5 Do Write(I); • For I := 1 To 12 DO Writeln(‘2 x’,I,’ = ‘,2*I); • VAR ch : Char; BEGIN For ch := ‘A’ To ‘Z’ Do Write(ch);
ตัวอย่าง PROGRAM TEST; VAR I , J : Integer; BEGIN FOR I := 1 TO 2 DO FOR J := 1 TO 3 DO WRITELN(I:4 , J:4); END.
ตัวอย่าง VAR X , Y : INTEGER; BEGIN FOR X := 2 TO 8 DO BEGIN FOR Y := 1 TO 12 DO WRITELN(X,’ x ’,Y,’ = ‘,X*Y); READLN; END; END.
ลูป Repeat (Repeat Statement) ตรวจสอบเงื่อนไขหลังการทำงาน ถ้าเงื่อนไขเป็นจริงการทำซ้ำจะ สิ้นสุดลง และโปรแกรมจะไปทำงานคำสั่งหลัง Until รูปแบบ REPEAT การทำงาน UNTIL เงื่อนไขจบการวนซ้ำ
ตัวอย่าง VAR Count : Integer; BEGIN Count := 0; REPEAT WriteLn(‘ I Love You ‘); Count := Count + 1; UNTIL Count = 5; END.
ตัวอย่าง VAR Ch : Char; BEGIN Ch := ‘A’; REPEAT Write(Ch); Ch := Succ(Ch); {หาค่าที่อยู่ถัดมา} UNTIL Ch > ‘Z’; END.
ลูป WHILE (While Statement) ตรวจสอบเงื่อนไขก่อนการทำงาน ถ้าเงื่อนไขเป็นจริงการทำซ้ำภาย ในลูป แต่ถ้าเป็นเท็จโปรแกรมจะไปทำงานคำสั่งถัดไป รูปแบบ WHILE นิพจน์บูลีน DO การทำงาน คำสั่งต่อไป
ตัวอย่าง VAR Count : Integer; BEGIN Count := 1; WHILE Count <= 5 DO BEGIN WriteLn(‘I Love YOU HA HA ’); Count := Count + 1; END; END.
VAR Choice : Integer; BEGIN WriteLn(‘ Number Processing ‘); WriteLn(‘1.. ADD ‘); WriteLn(‘2.. SUB ‘); WriteLn(‘3.. MUL ‘); WriteLn(‘4.. DIV ‘); Write(‘ Select (1,2,3,4) ‘); ReadLn(Choice); WHILE (Choice <0 ) OR (Choice > 4) DO BEGIN Write(‘Select (1,2,3,4) ‘); ReadLn(Choice); END; ……. ……. END. ตัวอย่าง
แบบฝึกหัด 1. จงเขียนโปรแกรมหาค่าผลบวกของเลข 1 ถึง 300 2. จงเขียนโปรแกรมหาค่าผลบวกของเลข 1 ถึง 300 ที่หารด้วย 3 หรือ 5 ลงตัว 3. จงเขียนโปรแกรมรับค่าตัวเลข 10 ค่า และให้เครื่องบอกว่าค่าสูงสุดและต่ำสุดคือค่าใด 4. จากสมการ Y = 3X2 + 8X + 1 จงหาค่า Y เมื่อ X มีค่าตั้งแต่ 0 ถึง 10 5. เส้นลวดยาว 400 เมตร ถ้าหากต้องการล้อมเป็นสี่เหลี่ยมจะได้พื้นที่สูงสุดเท่าใด 6. จากข้อ 4 จงหาพื้นที่ระหว่างกราฟ Y กับแกน X 7. จงสร้างปัญหาเองและหาวีธีการแก้ปัญหาเอง