บทที1 ความรู้พื.นฐา...

Post on 11-Jul-2020

9 views 0 download

Transcript of บทที1 ความรู้พื.นฐา...

ETT1007 Computer Programming1

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

2

วตถประสงค

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

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

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

3

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

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

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

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

4

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

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

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

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

1 เทาน<น

5

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

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

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

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

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

6

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

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

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

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

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

Athon Duron เปนตน

7

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

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

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

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

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

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

8

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

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

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

9

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

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

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

10

11

ซอฟทแวร (1)

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

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

ซอฟตแวรระบบ

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

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

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

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

หลากหลาย

12

DOS (Disk Operating System)

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

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

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

13

Windows

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

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

language

14

OS2

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

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

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

15

Unix

16

17

ซอฟทแวร (2)

18

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

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

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

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

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

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

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

21

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

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

4510 = 1011012

45

22 เศษ 1

11 เศษ 0

5 เศษ 1

2 เศษ 1

1 เศษ 0

2

2

2

2

2

MSB

LSB

• ตวอยาง การแปลงเลขจาก –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

23

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

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

946

59 เศษ 2

3 เศษ 11 = B

0 เศษ 3

16

16

16

94610 = 03B216

24

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

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

0 00001 00012 00103 00114 01005 01016 01107 0111

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

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

25

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

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

19

1F

1010101

7A9

1110110

127

25

59

26

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

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

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

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

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

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

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

bit : binary digit

27

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

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

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

????

????

????

????

????

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

ตาแหนงทL 134217727 ®

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

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

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

31

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

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

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

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

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

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

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

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)

33

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

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

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

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

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

34

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

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

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

ถดไป

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

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

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

– เชน c, c++, pascal

35

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

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

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

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

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ง

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

37

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

38

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

(File --> New --> Project)

39

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

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

40

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

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

41

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

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

42

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

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

43

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

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

44

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

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

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

45

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

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

46

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

47

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

48

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

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

49

คาถามทายบท

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

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

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

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

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

complement

50