50
ETT1007 Computer Programming 1 บทที$ 1 ความรู ้พื.นฐานเกี$ยวกับคอมพิวเตอร์

บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

ETT1007 Computer Programming1

บทท$ 1 ความรพ.นฐานเก$ยวกบคอมพวเตอร

Page 2: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

2

วตถประสงค

• เขาใจองคประกอบ และการทางานของระบบคอมพวเตอร

• เขาใจข<นตอนการเขยนโปรแกรมภาษาซเบ<องตน

• รจกโปรแกรม Visual C++ 2008 Express Edition

Page 3: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

3

1.1 คอมพวเตอรคออะไร?

• เปนอปกรณอเลกทรอนกสอยางหนLง ทLมนษยประดษฐข<น เพLอ

นามาเสรมความสามารถของมนษยในดานการรบร การจา การ

คานวณ การเปรยบเทยบตดสนใจ

Page 4: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

4

1.1 คอมพวเตอรคออะไร?

• ในการทLจะสLงใหเครLองคอมพวเตอรทางาน จาเปนตองปอน

คาสLง และจะตองเปนคาสLงทLเครLองคอมพวเตอรเขาใจ ไดแก

ภาษาเครLอง (Machine Language) ซL งประกอบดวยตวเลข 0 กบ

1 เทาน<น

Page 5: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

5

1.2 องคประกอบหลกของระบบคอมพวเตอร

• ฮารดแวร (Hardware) หมายถง สวนประกอบทางอเลกทรอนกส

และแมคคานคสท<งหมดทLสามารถจบตองได

• ซอฟทแวร (Software) หมายถง สวนทLเปนชดคาสLง หรอโปรแกรม

ทLสLงตางๆ ภายในระบบ

Page 6: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

6

สวนประกอบหลกของฮารดแวร

• หนวยประมวลผลกลาง (CPU)

– เปนสวนทLใชในการคานวณทางคณตศาสตรและประมวลผล

ทางตรรกศาสตร

– ชLอเรยกจะข<นอยกบผผลต เชน 80486 Celeron Pentium

Athon Duron เปนตน

Page 7: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

7

สวนประกอบหลกของฮารดแวร

• หนวยเกบขอมล

– เปนสวนทLใชในการเกบขอมลตางๆ

– สวนทLใชในการเกบขอมลเพยงชLวคราว ตองใชกระแสไฟฟา

หลอเล<ยง เชน SDRAM เปนตน

– สวนทLใชเกบขอมลแบบถาวร ไดแก ฮารดดสก ซดรอม

Page 8: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

8

สวนประกอบหลกของฮารดแวร

• หนวยนาเขาขอมล (Input Data)

– เชน คยบอรด เมาท กลอง

Page 9: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

9

สวนประกอบหลกของฮารดแวร

• หนวยสงออกขอมล (Output Data)

– เชน จอภาพ เครLองพมพ เครLองฉายภาพ ลาโพง

Page 10: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

10

Page 11: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

11

ซอฟทแวร (1)

• เปนชดคาสLงทLควบคมการทางานของคอมพวเตอร โดยชดคาสง

เหลาน< เรยกไดอกอยางวาโปรแกรมคอมพวเตอร

Page 12: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

ซอฟตแวรระบบ

• ซอฟตแวรหลกทLจะถกเรยกใชงานในระบบคอมพวเตอร

• คอยควบคมการทางานของฮารดแวรตางๆ และเปนตวกลางใน

การตดตอกบผใชงาน

• มการพฒนาอยางตอเนLอง ทาใหปจจบนมซอฟตแวรระบบท

หลากหลาย

12

Page 13: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

DOS (Disk Operating System)

• (Disk Operating System) ป 1981-1995 เปนระบบปฏบตการในยค

80 ใชการสLงงานผานคาสLง command line เชนตองการตรวจ

จานวนไฟลในแผนดสก ใชคาสLง dir

13

Page 14: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

Windows

• Windows ป1985-ปจจบน เปนระบบ GUI (Graphic User

Interface) ภาษาทLใชในการสรางคอ C/C++ และ Assembly

language

14

Page 15: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

OS2

• OS2 (Operating System /2) ป1987-2001 เปนระบบปฏบตการทL

พฒนาโดย Microsoft และ IBM ในชวงแรก และตอมา IBM

เปนผพฒนาตอ ภาษาทLใชในการสรางคอ C/C++

15

Page 16: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

Unix

16

Page 17: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

17

ซอฟทแวร (2)

Page 18: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

18

1.4 ภาษาคอมพวเตอร

• ภาษาเคร(อง ประกอบดวยเลข 0 กบ 1 สามารถสLงให คอมพวเตอรทางานไดทนท ขอเสยคอเขยนยาก

• ภาษา Assembly เปนกLงภาษาเครLองเขยนเปนคาสLง Neumonicสามารถแปลงเปนภาษาเคร$องไดงาย โดยการเทยบตาราง หรอใช Assembler

• ภาษาข-นสง เปนภาษาทLใกลเคยงกบภาษาของมนษย (ประโยคขอความสวนใหญเปนภาษาองกฤษ) เชน ภาษา C, PASCAL, FORTRAN ซL งมนษยสามารถเขยนไดงายแตตองมกระบวนการแปลงเปนภาษาเคร$องกอนโดยผานโปรแกรม Compiler

Page 19: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

19

1.5 ระบบตวเลข

• ฐานสบ ประกอบดวย ตวเลข 0-9

(525)10 = 5´102 + 2´101 + 5x100

• ฐานสอง ประกอบดวย ตวเลข 0 กบ 1

(101)2 = 1´22 + 0´21 + 1´20

• ฐานสบหก ประกอบดวยตวเลข 0-9 และ A-F

(3B2)16 = 3´162 + 11´161 + 2´160

ระบบตวเลขท$ใชในคอมพวเตอรคอ ระบบเลขฐานสอง

Page 20: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

20

การแปลงเลขฐานสองเปนเลขฐานสบ

ตวอยาง จงแปลง 10001112 ไปเปนเลขฐานสบ

1 0 0 0 1 1 1

× × × × × × ×

26 25 24 23 22 21 20

64 32 16 8 4 2 1

(1×64)+(0×32)+(0×16)+(0×8) + (1×4) + (1×2) + (1 ×1)

= 64+0+0+0+4+2+1

= 71

Page 21: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

21

การแปลงตวเลขฐานสบเปนฐานสอง

• จงแปลง 45 ฐานสบ ใหเปนฐานสอง

4510 = 1011012

45

22 เศษ 1

11 เศษ 0

5 เศษ 1

2 เศษ 1

1 เศษ 0

2

2

2

2

2

MSB

LSB

Page 22: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

• ตวอยาง การแปลงเลขจาก –5 ฐาน 10 เปน 8 Bit 2’Complement ทา

ไดโดย

1) เขยน เลข 5 ในรปฐานสองปกต ได

0000-0101

2) ทาการกลบบตจาก 0 เปน 1 และ 1 เปน 0 เรยกวา 1’s Complement จะได

0000-0101 กลบบตเปน 1111-1010

3) นาผลจาก 1’s Complement แปลงเปน 2’s Complement โดยการบวก 1 จะได

1111-1010 + 1 = 1111-1011 เปนคาตอบ

22

Page 23: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

23

การแปลงตวเลขฐานสบเปนฐานสบหก

• จงแปลง 946 ฐานสบ ใหเปนฐานสบหก

946

59 เศษ 2

3 เศษ 11 = B

0 เศษ 3

16

16

16

94610 = 03B216

Page 24: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

24

การแปลงตวเลขฐานสองเปนฐานสบหก

ฐานสบหก ฐานสอง

0 00001 00012 00103 00114 01005 01016 01107 0111

ฐานสบหก ฐานสอง

8 10009 1001A 1010B 1011C 1100D 1101E 1110F 1111

Page 25: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

25

โจทย : จงใสขอมลเลขฐานใหครบ

เลขฐานสบ เลขฐานสอง เลขฐานสบหก

19

1F

1010101

7A9

1110110

127

25

59

Page 26: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

26

1.6 ขนาดตวเลขของเคร$องคอมพวเตอร

• บท (bit) คอตวเลขฐานสองเพยงตวเดยว

• ไบท (Byte) คอ ตวเลขขนาด 8 บท

• เวรด (Word) คอ ตวเลขขนาด 16 บท หรอ 2 ไบท

• กโลไบท (KB) คอ ตวเลขขนาด 210 = 1024 ไบท

• เมกะไบท (MB) คอ ตวเลขขนาด 210 ´ 210 ไบท

• จกกะไบท (GB) คอ ตวเลขขนาด 210 ´ 210 ´ 210 ไบท

bit : binary digit

Page 27: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

27

ขนาดหนวยความจาของเคร$องคอมพวเตอร

• หนวยความจา 128 MB หมายความวาสามารถเกบขอมลได

128 ´ 210 ´ 210 = 134217728 ตาแหนง

????

????

????

????

????

????ตาแหนงทL 0 ®

ตาแหนงทL 134217727 ®

Page 28: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

28

1.7 ตวอกษรท$ใชงานในคอมพวเตอร

• ขอมลทLเปนตวอกษรและสญลกษณ จะใชรหสแอสก (ASCII

) ขนาด 8 บท ซL งเปนรหสมาตรฐาน ถกกาหนดโดยสถาบน

มาตรฐานแหงชาตของสหรฐอเมรกา (ANSI) เชน

ตวอกษร A มคาเทากบ 6510 หรอ 4116

ตวอกษร B มคาเทากบ 6610 หรอ 4216

ตวอกษร a มคาเทากบ 9710 หรอ 6116

ตวอกษร 7 มคาเทากบ 5510 หรอ 3716

ASCII : American National Standard Code for Information Interchange

ANSI : American National Standard Institute

Page 29: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

29

ตารางรหสแอสก. (ASCII Code Table)

~}|{zyxwvutsrqp

onmlkjihgfedcba'

_^]\[ZYXWVUTSRQP

ONMLKJIHGFEDCBA@

?>=<;:9876543210

/.-,+*)('&%$#" !

FEDCBA9876543210

F

E

D

C

B

A

9

8

7

6

5

4

3

2

1

0

Page 30: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

30

ขอสงเกตในการเกบคาลงหนวยความจา

• 7 ทLเปนคาตวเลขจะเกบลงในหนวยความจาของคอมพวเตอรดงน

– กรณเกบเปนชนด 1 byte

– กรณเกบเปนชนด integer (2 byte)

• 7 ทLเปนอกขระจะเกบลงในหนวยความจาของคอมพวเตอรดงน

0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1

0 0 0 0 0 1 1 1

0 0 1 1 0 1 1 1

Page 31: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

31

ลกษณะการใชงานตวอกษรในภาษาซ

• ตวอกษร 1 ตว เรยกวาอกขระ (Character)

– เชน O การใชงานในภาษาซ 'O'

z การใชงานในภาษาซ 'z'

• ตวอกษรเปนชด เรยกวาขอความ (string)

– เชน Com การใชงานในภาษาซ "Com"

kmitl การใชงานในภาษาซ "kmitl"

Page 32: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

32

1.8 รจกภาษาซ

ภาษา BCPLมารตน รชารด (Martin Richards)

Basic Combined Programming Language

ภาษา Bเคน ทอมพสน (Ken Thompson) 1970

ภาษาซเดนนส รทชL (Dennis Ritchie)

1972 ทL Bell Labsเผยแพร 1978

เคอรนกเฮน (Kernighan)

เดนนส รทชL (Dennis Ritchie)

Page 33: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

33

จดเดนของภาษาซ

• เปนภาษาโครงสราง

• เปนภาษาระดบสง

• ไมข<นอยกบระบบปฏบตการ

• ไมข<นอยกบชนดของเครLองคอมพวเตอร

Page 34: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

34

วธการแปลภาษาข.นสงใหเปนภาษาเคร$อง

• อนเตอรพลเตอร (Interpreter)

– แปลคร< งละคาสLงแลวสงใหเครLองทางานจากน<นจงแปลงคาสง

ถดไป

– เชน java, perl, python, shell script, vb script

• คอมไพลเลอร (Compiler)

– แปลคาสLงท<งหมดแลวสงใหเครLองทางาน

– เชน c, c++, pascal

Page 35: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

35

ข.นตอนการเขยนโปรแกรมภาษาซ

• การสรางไฟลภาษา นามสกล cpp หรอ c

• การคอมไพลเปนภาษาเครLอง

• การรนโปรแกรม

Page 36: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

36

โครงสรางโปรแกรมภาษาซ#include<file.h>type function_name(type);type variableint main(){

type variable;statement-1;...statement-n;return 0;

}type function_name(type variable){

statement-1;...statement-n;return(var);

}

พรโปรเซสเซอรไดเรคทฟ

ตวแปรชนดโกบอล

ฟงกชนหลก

ฟงกชนยอย

สวนตวโปรแกรม

สวนหวโปรแกรม

ตวแปรชนดโลคอล

คาสLง

ฟงกชนโพรโทรไทพ

Page 37: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

37

โปรแกรม Visual C++ 2008 Express Edition

Page 38: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

38

Step 1 : สรางโปรเจคใหม

(File --> New --> Project)

Page 39: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

39

Step 2: เลอกประเภทโปรแกรมท$จะสราง

(เลอก Win32 --> Win32 Console Application)

Page 40: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

40

Step 3: ต.งช$อโปรเจค

(ใสช$อท$ Name เชน HelloWorld, Lab01_1, Lab01_2)

Page 41: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

41

Step 4: เลอกตาแหนงท$จะเกบโปรเจค

(Browse --> D: --> Make New Folder --> รหส น.ศ. --> OK --> Next)

Page 42: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

42

Step 5: กาหนดลกษณะของโปรแกรม

(Next --> Console Application --> Empty Project --> Finish)

Page 43: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

43

Step 6: สรางโปรแกรมใหม

(คลกขวาท$ Source File --> Add --> New Item)

Page 44: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

44

Step 7: สรางไฟลโปรแกรม

(เลอก C++ File --> ท$ Name ต.งช$อไฟล เชน HelloWorld, Lab01_1 --> Add)

Page 45: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

Step 8: เขยนโปรแกรม

45

Page 46: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

Step 9: ส$งใหโปรแกรมทางาน

(Debug --> Start Without Debugging หรอ กด Ctrl+F5)

46

Page 47: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

Step 10: ยนยนการสรางโปรแกรม

47

Page 48: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

Step 11: ตรวจสอบผลลพธ

48

Page 49: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

Step 12: ในกรณท$เขยนโปรแกรมผดกฏเกณฑจะมขอความบอกวามท$ผด

(ใหเลอก No --> แกไขโปรแกรม --> รนโปรแกรมใหม)

49

Page 50: บทที1 ความรู้พื.นฐา นเกียวกับคอมพวิเตอร์...ETT1007 Computer Programming 1 บทที1 ความรู้พื.นฐา

คาถามทายบท

1. disk ขนาด 1.44 Mb สามารถเกบขอมล ชนดตวอกษรได ก$

ตว( 1 ตวอกษรใช 8 บท )

2. หากมระบบเลขฐาน 32 จงแปลง 1234 เปนเลขฐาน 32

3. การเกบแบบ 1’s complement แตกตางจากการเกบแบบ 2’s

complement อยางไร ทาไมถงนยมเกบแบบ 2’s

complement

50