Post on 11-Jul-2020
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