Transcript 1 1

235021
Computer Programming
การเขียนโปรแกรม
คอมพิวเตอร ์
สั ปดาหที
์ ่ 2
การเขียนโปรแกรมภาษาซีเบือ
้ งตน
้
Credit: Narongchai.mo
Mod: k.Mathiang
objectives
เข้าใจองคประกอบ
และการทางานของระบบ
์
คอมพิวเตอร ์
รู้จักและเขาใจขั
น
้ ตอนในการวิเคราะหปั
้
์ ญหา
และนาปัญหามาเขียนในรูปแบบของแผนผังการ
ไหลของขอมู
้ ล (Flowchart Diagram) ได้
รู้จักตัวแปรและชนิดของตัวแปร
รู้หลักการในการตัง้ ชือ
่ ตัวแปรพรอมทั
ง้ การ
้
ประกาศตัวแปร
เข้าใจหลักการในการแปลงภาษาซีเป็ นโปรแกรม
Outline
1
2p
Introduction to C Programming
Flowchart Diagram
3
Variables and Type of variables
4
Naming and Variable Declaration
5
The Environment of C Programming
What is computer?
อุ ป กรณ์ อิ เ ล็ ก ทรอนิ ก ส์ อย่ างหนึ่ ง ที่ ม นุ ษย ์
ประดิษฐขึ
้
เพือ
่ นามาเสริมความสามารถของ
์ น
มนุ ษ ย ในด
์
้ านการรับ รู้ การจ า การค านวณ
การเปรีย บเทีย บตัด สิ นใจ ในการที่จ ะสั่ งให้
เครื่อ งคอมพิว เตอร ์ท างาน จ าเป็ นต้ องป้ อน
ค า สั่ ง แ ล ะ จ ะ ต้ อ ง เ ป็ น ค า สั่ ง ที่ เ ค รื่ อ ง
คอมพิว เตอร เข
์ ้ าใจ ได้ แก่ภาษาเครื่อ งหรือ ที่
เ รี ย ก เ ป็ น ภ า ษ า อั ง ก ฤ ษ ว่ า “Machine
Language” ซึ่งประกอบดวยตั
วเลข 0 กับ 1
้
เทานั
่ ้น
Computer Architecture
I/O
Input
Devices
CPU
Data/Action
Arithmetic
Memory
Memory Address
ROM
Logic
Output
Device
I/O Address
Execute
Instruction
Instruction/Data
RAM
Computer System
ระบบคอมพิวเตอรประกอบด
วย
4
์
้
ส่วนประกอบ
1) Hardware
คือส่วนประกอบต่างๆ ของ
คอมพิวเตอรที
่ ามารถมองเห็ นและจับต้องได้
์ ส
2) Software คือส่วนทีม
่ ห
ี น้าทีเ่ ชือ
่ มประสานให้
ผู้ใช้ งานกับคอมพิว เตอร ให
์ ้ สามารถท างาน
รวมกั
นได้
่
3) Peopleware
คือ บุ ค คลที่เ ข้ ามามีส่ วน
เกีย
่ วข้องกับการทางานโดยใช้คอมพิวเตอร ์
4) Data and Information คือข้อมูลทีต
่ ้อง
ป้อนเข้าสู่ระบบคอมพิวเตอร ์ เพือ
่ ใช้ในการ
Hardware
ส่ วนประกอบต่างๆ ของคอมพิว เตอร แบ
์ ่งได้
เป็ น 3 ประเภท คือ
หน่วยประมวลผลกลาง
(Central processing unit)
 หน่วยความจา (Memory)
 อุปกรณรั
์ บข้อมูลเข้า
(Input device)
 อุปกรณแสดงผลข
้อมูล
์
(Output device)
 อุปกรณรั
์ บข้อมูลเข้าและแสดงผล
(Input/Output device)

Central Processing Unit : CPU
หน่วยประมวลผลกลาง (Central
Processing Unit) เช่น 80486 Celeron,
Pentium, Athon, Duron เป็ นตน
้
Memory
หน่วยความจา (Memory) เช่น
SDRAM 128 MB, ROM BIOS,
ฮารดดิ
์ สก,์ ซีดรี อม
RAM
BIOS
ROM
HDD
Input devices
อุปกรณที
่ ค
ี วามสามารถในการเป็ นหน่วย
์ ม
รับขอมู
้ ลเขา้ เช่น keyboard, mouse,
microphone, scanner เป็ นตน
้
keyboard
scanner
mouse
Output devices

อุปกรณที
่ ค
ี วามสามารถในการเป็ นหน่วย
์ ม
แสดงผลข้อมูล เช่น monitor, printer,
speaker เป็ นตน
้
speaker
printer
monitor
Input/Output devices
อุ ป กรณ ์ที่ม ีค วามสามารถในการเป็ นทั้ง
หน่ วยรับ ข้ อมู ล และหน่ วยแสดงผลข้ อมูล
เช่น Touch screen เป็ นตน
้
Touch
screen
Software (1)
ซอฟทแวร
เป็
่ วบคุมการทางาน
์
์ นชุดคาสั่ งทีค
ของคอมพิวเตอร ์ โดยชุดคาสั่ งเหลานี
่ ้เรียก
ไ ด้ อี ก อ ย่ า ง ว่ า โ ป ร แ ก ร ม ค อ ม พิ ว เ ต อ ร ์
โดยทัว่ ไปแบงออกเป็
น 2 ประเภท
่
 ซอฟทแวร
ระบบ
(System software)
์
์
เช่น ซอฟตแวร
ระบบปฎิ
บต
ั ก
ิ าร
์
์
(Operating system: OS)
 ซอฟทแวร
ประยุ
กต ์ (Application
์
์
Software) เช่น Browser, Games,
Software (2)
Example of Operating Systems (1)
(Disk Operating System) ปี 19811995 เป็ นระบบปฏิบต
ั ิ
การในยุค80 ใช้การสั่ งงานผานค
าสั่ ง
่
command line เช่น ตอง
้
การตรวจจานวนไฟลในแผ
นดิ
่ สก ์ ใช้คาสั่ ง
์
dir
Example of Operating Systems (2)
OS2 (Operating System /2) ใช้ในปี 19872001
เป็ นระบบปฏิบต
ั ก
ิ ารที่พ ฒ
ั นาโดย
Microsoft และ IBM ในช่วงแรก และตอมา
่
IBM เป็ นผู้พัฒนาตอ
่ ภาษาทีใ่ ช้ในการสร้าง
คือ C/C++
Example of Operating Systems (3)
ยู นิ ก ซ ์ (Unix) เ ป็ น ร ะ บ บ ป ฏิ บั ติ ก า ร
คอมพิวเตอรแบบหลายงาน
หลายผู้ใช้ ทีเ่ ริม
่
์
พัฒ นาโดยกลุ่ มพนั ก งานของห้ องปฏิบ ัต ิก าร
AT&T Bell Labs โดยกลุมนั
่ กพัฒนาทีเ่ ป็ นที่
รู้จัก คือ Ken Thompson, Dennis Ritchie
และ Douglas McIlroy
Example of Operating Systems (4)
ลินุกซ ์ (Linux)
และรู้จักในชื่อ กนู/ลินุกซ ์
(GNU/Linux)
โดยทั่ว ไปเป็ นค าที่ใ ช้ ใน
ความหมายที่ ห มายถึ ง ระบบปฏิ บ ัต ิ ก ารแบบ
ยู นิ ก ซ ์ โ ด ย ใ ช้ ลิ นุ ก ซ ์ เ ค อ ร ์ เ น ล เ ป็ น
่ งมือ
างานร่วมกับไลบรารีแ ละเครือ
ศูนย กลางท
์
อืน
่ ลินุกซเป็
่งในฐานะซอฟตแวร
์ นตัวอยางหนึ
่
์
์
เสรี และซอฟต ์แวร ์ โอเพนซอร ์ สที่ ป ระสบ
ความสาเร็จและมีชอ
ื่ เสี ยง
Example of Operating Systems (5)
ไ ม โ ค ร ซ อ ฟ ท ์ วิ น โ ด ว ส์ ( Microsoft
Windows) เป็ นระบบปฏิบ ต
ั ิก าร ซึ่ ง พัฒ นา
โดยบริษั ท ไมโครซอฟท ์ เปิ ดตัว เมื่อ ปี พ.ศ.
2528 (ค.ศ. 1985 โดยรุนแรกของวิ
นโดวส์ คือ
่
วิน โดวส์ 1.0) และครองความนิ ย มในตลาด
คอมพิวเตอรส
์ ่ วนบุคคล มากกวา่ 90%
Software (3)
How the computer work? (1)
คอมพิ ว เตอร ์จะท างานต่ างๆ ด้ วยซอฟท ์แวร ์หรื อ
โปรแกรมตางๆ
โดยจะใช้ชุดคาสั่ งภาษาเครือ
่ งในการ
่
ทางาน แตภาษาเครื
อ
่ งเป็ นภาษาทีม
่ นุ ษยยากที
จ
่ ะจา
่
์
และเข้ าใจการท างาน ดัง นั้น จึง มีก ารคิด ภาษาต่างๆ
ทีใ
่ กล้เคีย งกับภาษาของมนุ ษ ยขึ
่ ให้มนุ ษ ยใช
์ ้นมาเพือ
์ ้
งานในการเขียนสร้างโปรแกรมอืน
่ ๆ
ภาษาทางคอมพิวเตอร ์
 ภาษาเครือ
่ งประกอบด้วยเลข 0 กับ 1 สามารถ
สั่ งให้ คอมพิว เตอร ์ท างานได้ ทัน ที ข้ อเสี ยคื อ
เขียนยาก
 ภาษา Assembly
เป็ นกึง่ ภาษาเครือ
่ งเขียนเป็ น
คาสั่ ง Neumonic สามารถแปลงเป็ นภาษาเครือ
่ ง
How the computer work? (2)
ระบบปฎิบต
ั ก
ิ าร (Operating System: OS)
OS
Hardware
App.
App.
App.
• Application
ไม่
ต้ องยุ่งการติด ต่อกับ
ฮารดแวร
ต
์
์ างผู
่
้ผลิต
• Application
สร้าง
โ ด ย ยึ ด กั บ
Operating System
•
มี ก า ร ท า ง า น
พืน
้ ฐานเตรียมไว้แลว
้
Programming Language and Development (1)
วงจรชีวต
ิ ซอฟตแวร
์
์
(Software life cycle)
 Code design
 Code implementation
Programming Language and Development (2)
How the Program Run?
 คอมพิวเตอรจะท
างานกับ Machine Language
์
Program Code / Source Code
Translation
Machine Code
Programming Language and Development (3)
ตัวแปรภาษา (Program Translator)
 Interpreter
– ทาการแปลทีละคาสั่ ง
– แปลเสร็จ load แลว
วจึ
้ execute ไดผลแล
้
้ ง
แปลตอ
่
– เช่น java, perl, python, shell script, vb
script
 Compiler
– แปลทัง้ หมดแลวค
างาน
้ อยท
่
– นาไปประกอบรวมกั
บ code ส่วนอืน
่ ๆ ได้
่
– เช่น c, c++, pascal
Programming Language and Development (4)
Source Code
----------------------------------------------------------------------------
Interpreter
OS
Hardware
Interpreter
• ต้องมี
Interpreter
ทางานตลอดเวลาเพือ
่
แปลคาสั่ ง
• Source Code
สามารถทางานไดเลย
้
(ทีละคาสั่ ง)
•
สะดวกในการ
แก้ไข
Programming Language and Development (5)
Compiler
Source Code
---------------------------------------
Compiler
Object File---Library -------------------------------
Linker
Executable File ---
OS
Hardware
• มีการแปล
Source
Code ทัง้ หมดกอนได
่
้
Object File
•
นามาประกอบกับ
Code บางส่วนทีเ่ ตรียม
ไว้แลว
้ (Library)
•
ไดผลลั
พธเป็
้
์ น
machine language
(Executable File)
Language Types
High-Level Programming Language
 Procedural Language
–Fortran, Cobol, Basic, Pascal, C
 Object-Oriented Language
–C++, Delphi, Visual BASIC, C#,
Java
 Functional Language
–Lisp
 Logic Language
–Prolog
2
Example of Language (1)
ภาษาฟอรแทรน
(Fortran: Formula
์
Translation)
ภาษาฟอร ์
แทรน
Advantage-Disadvantage
ภาษาฟอรแทรน
(Fortran: Formula
์
Translation)
 เหมาะกับงานดานวิ
ทยาศาสตร ์
้
วิศวกรรมศาสตร ์ และคณิตศาสตร ์
 ลักษณะของภาษาคลายสู
ตรหรือสมการ
้
คณิตศาสตร ์
่ องการเก็
บงานพิมพหรื
 ไมเหมาะกั
บ
้
์ องานทีต
่
ข้อมูล
 ปัจจุบน
ั ไมนิ
่ ยม
Example of Language (2)
ภาษาปาสคาล (PASCAL)
ภาษา
ปาสคาล
Advantage-Disadvantage
ภาษาปาสคาล (PASCAL)
 มีโครงสรางภาษาดี
เยีย
่ ม ทาให้การทางาน
้
ของโปรแกรมมีประสิ ทธิภาพ
 สามารถบอกขอผิ
้ ดพลาดของการเขียน
โปรแกรมเพือ
่ ให้แกไขโปรแกรมได
ง้ าย
้
่
 คอนข
างจุ
กจิก มีเครือ
่ งหมายมากมาย ทา
่
้
ให้ลดความคลองตั
วในการใช้งาน
่
Example of Language (3)
ภาษาเบสิ ก (Basic: Beginner’s All-purpose
Symbolic Instruction Code)
Advantage-Disadvantage
ภาษาเบสิ ก (Basic: Beginner’s All-purpose
Symbolic Instruction Code)
 คาสั่ งมีน้อย แตใช
ประสิ ทธิภาพ
่ ้งานไดอย
้ างมี
่
 เป็ นภาษาเกาแก
และถูกออกแบบ
่
่ เข้าใจงาย
่
มาให้ใช้กับงานในลักษณะโตตอบ
้
(Interactive)
 ใช้อินเทอรพรี
์ ทเตอร ์
 เหมาะกับผูเริ
่ หัดเขียนโปรแกรม
้ ม
 การเขียนคาสั่ งสาหรับการทางานคอนข
างยาวท
า
่
้
ให้การทางานโปรแกรมช้า
Example of Language (4)
#include<file.h>
พรี โปรเซสเซอร์ไดเร็คทีฟ
type function_name(type);ฟั งก์ชน
ั โพรโทรไทพ์
type variable
ตัวแปรชนิดโกบอล
int main()
{
type variable; ตัวแปรชนิ ดโลคอล
statement-1;
ฟังก์ชนั หลัก
...
คำสัง่
statement-n;
return 0;
}
type function_name(type variable)
{
statement-1;
ฟังก์ชนั ย่อย
...
statement-n;
return(var);
}
ส่ วนหัวโปรแกรม
ส่ วนตัวโปรแกรม
Advantage-Disadvantage
ภาษาซี (C language)
รป
ู แบบคาสั่ ง
 เป็ นภาษาทีม
่ โี ครงสรางและมี
้
คอนข
างอิ
สระ
่
้
 ไมขึ
้ กับระบบปฎิบต
ั ก
ิ าร
่ น
 ไม่ข้ ึนอยูก่ บั ชนิดของเครื่ องคอมพิวเตอร์
 มีคาสั่ งและฟังกชั
์ นมาก
 คาสั่ งจะสั้ น ทาให้การทางานเร็ว
รวมถึงการ
 สามารถใช้งานไดหลายประเภท
้
ควบคุมฮารดแวร
ได
์
์ ้
 มีข้อยกเวน
าง
้ ทาให้เป็ นผลเสี ยตอโครงสร
่
้
โปรแกรม
Evolution of Language
ภาษา BCPL
ารติ
์ น ริชารด
์ (Martin Richards)
Combined Programming Language
ภาษา B
ภาษาซี
ทอมพสั์ น (Ken Thompson) 1970 เดนนิส ริ ทชี่ (Dennis
Ritchie)
เผยแพร่
1978
1972
ที่ Bell
Labs
เคอรนิ
์ กเฮน (Kernighan)
เดนนิส ริทชี่ (Dennis Ritchie)
Number System (1)
ระบบตัวเลขทีม
่ นุ ษยทุ
ทีเ่ ห็ นได้
์ กคนคุนเคย
้
ชัดเจนทีส
่ ุดคือการนับจานวนสิ่ งของตางๆ
ซึง่
่
พบวาระบบจ
านวนส่วนใหญที
่
่ ใ่ ช้กันจะมีเลข 0 –
9 แตยั
่ อีก เช่น เลข
่ งมีระบบจานวนชนิดอืน
โรมัน
ระบบคอมพิวเตอรจะใช
์
้เลขเพียง 2 ตัว คือ 0
และ 1 ซึง่ ไมเหมื
อนกับทีม
่ นุ ษยใช
่
์ ้กันปกติ
เราเรียกระบบจานวนทีม
่ จ
ี านวนตัวเลขทีใ่ ช้งาน
ตางกั
นวาระบบเลขฐาน
เช่น ระบบตัว
่
่
เลขฐานสิ บ ระบบตัวเลขฐานสอง เป็ นตน
้
Number System (2)
ฐานสิ บประกอบดวย
ตัวเลข 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
Number System (3)
ระบบเลขฐานสิ บ
100
MSB
10n 10n-1
……..
LSB
102 101
ระบบเลขฐานสอง
MSB
2n 2n-1 ……..
22
21
LSB
20
Number System (4)
จงแปลง
ตัวอยาง
่
เลขฐานสิ บ
1
0
0
×
×
×
26 25 2 4
64 32 16
10001112 ไปเป็ น
0
×
23
8
1
×
22
4
1
×
21
2
1
×
20
1
(1×64)+(0×32)+(0×16)+(0×8) + (1×4) +
(1×2) + (1 ×1)
= 64+0+0+0+4+2+1
Number System (5)
จงแปลง 45 ฐานสิ บ ให้เป็ นฐานสอง
2 45
222
2 11
5 2
2 2
1
MSB
LSB
เศษ 1
เศษ 0
เศษ 1
เศษ 1
เศษ 0
4510 = 1011012
Number System (6)
จงแปลง 946 ฐานสิ บ ให้เป็ นฐานสิ บหก
16946
16 59
16 3
0
94610
=
เศษ 2
เศษ 11 = B
เศษ 3
03B216
The Conversion of Hexadecimal to Binary
ฐานสิ บหก
0
1
2
3
4
5
6
7
ฐานสอง
0000
0001
0010
0011
0100
0101
0110
0111
ฐานสิ บหก
8
9
A
B
C
D
E
F
ฐานสอง
1000
1001
1010
1011
1100
1101
1110
1111
Problem Analysis (1)
ขั้ น ต อ น ข อ ง ก า ร วิ เ ค ร า ะ ห ์ ปั ญ ห า ส า ห รั บ
เ ต รี ย ม ก า ร ก่ อ น ล ง มื อ เ ขี ย น โ ป ร แ ก ร ม
คอมพิวเตอร ์ มี 5 ขัน
้ ตอนดังนี้
1. การทาความเข้าใจกับปัญหา (State the
problem clearly)
2. การพิจารณาลักษณะของข้อมูลเข้าและข้อมูล
ออก(Describe the input and output)
3. การทดลองแก้ ไขปั ญ หาด้ วยตนเอง (Work
the problem by hand for a specific set of
data)
4
Problem Analysis (2)
4. การเขียนขัน
้ ตอนวิธก
ี ารแก้ปัญหา (Develop
an algorithm that is general in nature)
 เขีย นล าดับ ขั้น ตอนวิธ ีก ารท างานทั้ง หมด
อยางย
อ
่
่
 เขี ย นล าดับ ขั้น ตอนวิ ธ ี ก ารท างานอย่ าง
ละเอียด
 วิธก
ี ารเขียนลาดับขัน
้ ตอนวิธ ี
• Pseudo code เขียนขัน
้ ตอนวิธด
ี ้วย
ภาษาทีใ่ กลเคี
้ ยงภาษาคอมพิวเตอร ์
• Flowcharts เขียนขัน
้ ตอนวิธด
ี วยรู
ปภาพ
้
ผังงาน
4
Problem Analysis Example (1)
กรณีศึกษาที่ 1: ขัน
้ ตอนวิธก
ี ารแก้ปัญหาดวย
้
คอมพิวเตอร ์
 จงเขียนขัน
้ ตอนวิธก
ี ารแก้ปัญหาสาหรับการ
หาปริม าตรทรงกระบอกโดยรับ ข้ อมู ล ของ
ความสูง และรัศมีของวงกลมที
เ่ ป็ นฐานของ
r
ทรงกระบอก จากนั้น แสดงค่าของปริมาตร
h
ทรงกระบอกทีค
่ านวณได้
ปริมาตรทรงกระบอก = ¶ x
r2 x h
Problem Analysis Example (2)
ขัน
้ ตอนที่ 1 ทาความเข้าใจกับปัญหา
 การคานวณหาปริมาตรของรูปทรงกระบอก
ขัน
้ ตอนที่ 2 ลักษณะของข้อมูลเข้าและข้อมูล
ออก
 ข้ อมู ล เข้ า คือ ความสู ง ของทรงกระบอก
แ ล ะ รั ศ มี ข อ ง ว ง ก ล ม ที่ เ ป็ น ฐ า น ข อ ง
ทรงกระบอก ชนิ ด ของข้ อมู ล เข้ าความสู ง
แ ล ะ รั ศ มี ข อ ง ว ง ก ล ม ที่ เ ป็ น ฐ า น ข อ ง
ทรงกระบอกเป็ นข้อมูลชนิดตัวเลข
 ข้ อ มู ล อ อ ก คื อ ค่ า ข อ ง ป ริ ม า ต ร
Problem Analysis Example (3)
ขัน
้ ตอนที่ 3 ทดลองแกไขปั
ญหาดวยตนเอง
้
้
 การคานวณหาปริมาตรทรงกระบอก หาได้
จากสูตร
ปริมาตรทรงกระบอก
= ¶ x รัศมียกกาลัง
2 x ความสูง
ถ้ า
รัศมีของฐาน
= 5 เมตร
และความสูง
= 12 เมตร
ปริมาตรทรงกระบอก
= 3.14159 x
52 (m2 ) x 12 (m)
= 942.48 m3
Problem Analysis Example (4)
ขัน
้ ตอนที่ 4 การพัฒนาลาดับขัน
้ ตอนวิธก
ี าร
แก้ปัญหา
 เขียนอธิบายขัน
้ ตอนวิธก
ี ารทางานทัง้ หมด
อยางย
อ
่
่
1. เริม
่ ต้น
2. รับคาความสู
ง และรัศมีของฐานทรงกระบอก
่
3. คานวณคาปริ
มาตรทรงกระบอก ¶ * รัศมีของฐาน2 *
่
ความสูง
4. แสดงคาของปริ
มาตรทรงกระบอก
่
5. จบการทางาน
 เขียนอธิบายขัน
้ ตอนวิธก
ี ารทางานอยาง
่
ละเอียด
Problem Analysis Example (5)
ขัน
้ ตอนที่ 4 การพัฒนาลาดับขัน
้ ตอนวิธก
ี าร
แก้ปัญหา
 รหัสเทียม (Pseudo Code)
1. Begin
2. Read High, Radius (เครือ
่ งคอมพิวเตอรจะรอรั
บข้อมูล
์
2 คา่ คือ ความสูงและรัศมีของฐาน)
3. Volume = 3.14159 * Radius2 * High (คานวณหาคา่
ปริมาตรตามสูตรและเก็บผลลัพธไว
์ ้)
4. Write Volume (แสดงผลลัพธของปริ
มาตรทรงกระบอกที่
์
ได)้
5. End
Problem Analysis Example (6)
ขัน
้ ตอนที่ 4 การพัฒนาลาดับขัน
้ ตอนวิธก
ี าร
แก้ปัญหา
Start
 ผังงาน (Flowchart)
Input High,
Radius
Volume <- 3.14159 *
Radius2 * High
Output
Volume
End
Outline
1
2p
Introduction to C Programming
Flowchart Diagram
3
Variables and Type of variables
4
Naming and Variable Declaration
5
The Environment of C Programming
Flowchart
ผัง งาน คือ การเขีย นอธิบ ายขั้น ตอนวิธ ก
ี าร
ทางานในลักษณะของรูปภาพ
ประโยชนของผั
งงาน
์
ใช้ ส าหรับ ช่ วยในการพัฒ นาล าดับ ขั้น ตอน
วิธ ี ก ารแก้ ปั ญ หา เนื่ อ งจากผัง งานเป็ นการ
อธิบ ายขั้น ตอนวิธ ีก ารท างานในลัก ษณะของ
รูปภาพ ท าให้ สามารถเห็ นล าดับของขั้นตอน
วิธก
ี ารทางานได้ชัดเจนกวาการอธิ
บายขัน
้ ตอน
่
วิธ ี การทางานในลักษณะของข้อความ
Flowchart Symbols (1)
สั ญลักษณ ์ ความหมาย ตัวอยางการ
คาอธิบาย
่
ใช้
START
1. เริม
่ ต้นผัง
การเริม
่ ตน
้
งาน
หรือสิ้ นสุด
STOP
2. จบผังงาน
การเขียนผัง
งาน
read name
(Terminal)
รับข้อมูลหรือ display area 1. รับคาใส
่ ่
ในตัวแปร
แสดงขอมู
ล
้
ชือ
่
โดยไมระบุ
่
name
Flowchart Symbols (2)
สั ญลักษณ ์ ความหมาย ตัวอยางการ
คาอธิบาย
่
ใช้
C=A+B
1. คานวณ A
การ
+ B และ
ประมวลผล
Sum = 0
เก็บไวใน
้
(Process)
C
i <= 10
true
การ
เปรียบเทียบ
แสดง i
false
2. กาหนดคา่
sum เทากั
่ บ
0
เปรียบเทียบถา้ i
มีคา่
น้อยกวาหรื
อ
่
Flowchart Symbols (3)
สั ญลักษณ ์ ความหมาย ตัวอยางการ
่
ใช้
การแสดง
print A
ผลลัพธทาง
์
เครือ
่ งพิมพ ์
(Document
display A , B
)
การแสดง
ผลลัพธทาง
์
จอภาพ
คาอธิบาย
พิมพค
์ า่ A
ทาง
เครือ
่ งพิมพ ์
แสดงคา่ A,
B
บนจอภาพ
Flowchart Symbols (4)
สั ญลักษณ ์ ความหมาย ตัวอยางการ
่
ใช้
read A
หมายเหตุ
(Comment)
คาอธิบาย
A = Age
รับคา่
ทางการกด
แป้นพิมพ ์
(Manual
Input)
read A
รับคา่ A ทาง
แป้นพิมพ ์
Flowchart Symbols (5)
สั ญลักษณ ์ ความหมาย ตัวอยางการ
่
ใช้
for i =1 to 100
การ
กาหนดคา่
sum = sum + i
ตางๆ
ไว้
่
i
ลวงหน
่
้า
(Preparatio
n)
แสดงทิศทาง
คาอธิบาย
กาหนดให้ i มีคา่
เทากั
่ บ
1 และเพิม
่ คาที
่ ละ
1
จนมีคาเป็
่ น 100
จึงออก
จากการทางานซา้
โดยแตละรอบ
่
บวกคา่
sum ดวยค
า่ i
้
Flowchart Symbols (6)
สั ญลักษณ ์ ความหมาย ตัวอยางการ
คาอธิบาย
่
ใช้
write A
หลังจากพิมพ ์
จุดตอเนื
่ ่ อง
คา่ A
ในหน้า
A
แลวให
เดียวกัน
้
้ ทา
ตามทีจ
่ ุด
(In-Page
ตอเนื
่อง A ซึ่ง
A=3
่
connector)
1
จุดตอเนื
่ ่องที่
อยูคนละ
่
อยูใน
่
หน้าเดียวกัน
หลังจาก
กาหนดคา่
Flowchart Symbols (7)
สั ญลักษณ ์ ความหมาย ตัวอยางการ
คาอธิบาย
่
ใช้
read A
1. อานค
า่ A
การรับหรือ
่
ที่
แสดงขอมู
ล
้
punch B , C
บัตรเจาะรู
โดยใช้
1 ใบ
บัตรเจาะรู
2. เจาะคา่
(Punch
B,C บน
punch
card)
บัตร 1
bi b=1 ,
…n
ชุดของ
บัตรเจาะรู
ใบ
เจาะคา่ B1 ,
B2 , Bn
Flowchart Symbols (8)
สั ญลักษณ ์ ความหมาย ตัวอยางการ
คาอธิบาย
่
ใช้
read ID ,
การรับหรือ
อานค
า่ ID ,
่
name
แสดงขอมู
name
้ ล
โดยใช้เทป
บนเทป
กระดาษ
กระดาษ
(Punched
tape)
การรับหรือ
แสดงขอมู
้ ล
Flowchart Symbols (9)
สั ญลักษณ ์ ความหมาย ตัวอยางการ
่
ใช้
การรับหรือ
แสดงขอมู
้ ล
โดยใช้จาน
แมเหล็
กเป็ น
่
สื่ อ
(Magnatic
disk)
การรับหรือ
คาอธิบาย
Flowchart Symbols (10)
สั ญลักษณ ์ ความหมาย ตัวอยางการ
่
ใช้
การทางานที่
กาหนดไวแล
้ ว
้
เช่น
โปรแกรมยอย
่
(Predefine
Process)
การควบคุม
การทางาน
ดวยมนุ
ษย ์
้
findGrade
คาอธิบาย
เรียก
โปรแกรม
ยอยชื
อ
่
่
findGrad
e
ให้ทางาน
Flowchart Symbols (11)
สั ญลักษณ ์ ความหมาย ตัวอยางการ
่
ใช้
การทางานแบบ
ออฟไลนของ
์
อุปกรณที
่ ้
์ ไ่ มได
ถูกควบคุมจาก
หน่วยประมวลผล
กลางโดยตรง
(Auxiliary
Operation)
การจัด
เรียงลาดับ
ข้อมูล
คาอธิบาย
Flowchart Symbols (12)
สั ญลักษณ ์ ความหมาย ตัวอยางการ
่
ใช้
การส่งขอมู
้ ล
ทางสาย
สื่ อสาร
(Communicat
ion Link)
คาอธิบาย
Flowchart Handle(1)
ทิศ ทางของผัง งาน บน
จะเริ่ ม จากส่ วนบน
ของหน้ากระดาษลง
มายังส่วนลาง
และ
่
จากซ้ ายมือ ไปของ
หน้ ากระดาษ และ
ค ว ร เ ขี ย น
เครื่ อ งหมายลู ก ศร
กากับทิศทางไว้ดวย
้
ล่าง
START
read age
age > 60
ทิศทางของเส้ น
false
true
“You are old”
STOP
6
Flowchart Handle(2)
สั ญ ลั ก ษ ณ ์ ห รื อ
ภาพที่ใ ช้ ในการ
เ ขี ย น ผั ง ง า น มี
ขนาดต่างๆ กัน
ได้ แต่ จะต้ องมี
รูปมาตรฐานตาม
ค ว า ม ห ม า ย ที่
กาหนด
START
sum = 0
i = 1 to 10
sum = sum + i
ขนำดของสัญลักษณ์
ปรับให้เหมำะสมกับ
ข้อควำมใน
สัญลักษณ์
i
sum
STOP
6
Flowchart Handle(3)
การเขียนทิศทางของผังงานควรเป็ นไปอย่างมี
ระเบียบ และหลีกเลีย
่ งการขีดโยงไปโยงมาใน
ทิศ ทางตัด กัน ถ้ าจ าเป็ นต้ องโยงถึง กัน ควร
ใช้เครือ
่ งหมายจุดตอเนื
่องแทนและถ้าเป็ นไปได้
่
ควรเขียนผังงานให้จบในหน้าเดียวกัน
ค าอธิบ ายในภาพ เขี ย นเพี ย งสั้ น ๆ และ
เข้าใจงาย
่
ผัง งานที่ด ค
ี วรจะมีค วามเป็ นระเบีย บเรีย บร้อย
และสะอาด นอกจากนี้ แ ล้ ว จะมีชื่ อ ของผัง
งาน ผู้เขียน วันทีเ่ ขียน และเลขหน้าลาดับ
6
Outline
1
2p
Introduction to C Programming
Flowchart Diagram
3
Variables and Type of variables
4
Naming and Variable Declaration
5
The Environment of C Programming
The Number Size of Computer
บิท (bit) คือ ตัวเลขฐานสองเพียงตัวเดียว
ไบท ์ (Byte) คือ ตัวเลขขนาด 8 บิท
เวิรด
์ (Word) คือ ตัวเลขขนาด 16 บิท หรือ
2 ไบท ์
กิโลไบท ์ (KB) คือ ตัวเลขขนาด 210 = 1024
ไบท ์
เมกะไบท ์ (MB) คือ ตัวเลขขนาด 210  210
ไบท ์
bit : binary digit
กิกกะไบท ์ (GB) คื
อ ตัวเลขขนาด 210  210 
210 ไบท ์
The Memory Size of Computer
หน่วยความจา 128 MB หมายความวาสามารถ
่
10  210 =
เก็บขอมู
ล
ได
128

2
้
้
134217728 ตาแหน่ง
????
ตาแหน่งที่ 0 
????
????
????
????
????
ตาแหน่งที่ 134217727
The Number in Computer System (1)
จานวนเต็ม ทีม
่ เี ฉพาะคาบวก
่
8 = 2
มาจาก
2
 ขนาด 8 bit เรียกวา่ 1 Byte มีคาเริ
ม
่
จาก
0
่
ถึง 255
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
 ขนาด
16 bit เรียกวา 1 Word (2 Byte) มีคา่
0 0 0 0 0 0 0 0 ่0 0 0 0 0 0 0 0
เริม
่ จาก 0 ถึง 65535
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
The Number in Computer System (2)
จานวนเต็มทีม
่ ท
ี ง้ั คาบวกและค
าลบ
่
่
 ขนาด 8 bit มีคาเริ
่ จาก -128 ถึง 127
่ ม
(2's Complement)
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
บิทแรกสุด เป็ น sign bit (1 เป็ นคาลบ,
0
่
เป็ นคาบวก)
่
 ขนาด 16 bit เรียกวา่ integer มีคาเริ
่ จาก
่ ม
-32,768 ถึง 32,767
 ขนาด 32 bit เรียกวา่ long integer มีคาเริ
่
่ ม
1
2’Complement Example
ตัวอยาง
การแปลงเลขจาก –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 เป็ น
คาตอบ
The Number in Computer System (3)
จานวนทศนิยม
 ขนาด 4 Byte เรียกวา่ “float” มีคาเริ
่ จาก
่ ม
3.4  10-38 ถึง 3.4  1038
 ขนาด 8 Byte เรียกวา่ “double” มีคาเริ
่ จาก
่ ม
1.7  10-308 ถึง
1.7  10308
 ขนาด 10 Byte เรียกวา่ “long double” มีคา่
เริม
่ จาก 3.4  10-4932 ถึง 3.4  104932
Sign bit
Exponent bits
Mantissa bits
The Number in Computer System (4)
77
The Number in Computer System (5)
The Number in Computer System (6)
ข้อมูลทีเ่ ป็ นตัวอักษรและสั ญลักษณ ์ จะใช้รหัสแอ
สกี (ASCII) ขนาด 8 บิท ซึง่ เป็ น
รหัสมาตรฐาน ถูกกาหนดโดยสถาบันมาตรฐาน
แห่งชาติของสหรัฐอเมริกา (ANSI) เช่น
ตัวอักษร A มีคาเท
่ ากั
่ บ 6510 หรือ 4116
ตัวอักษร B มีคาเท
่ ากั
่ บ 6610 หรือ 4216
ตัวอักษร a มีคาเท
่ ากั
่ บ 9710 หรือ 6116
ตัวอักษร 7 มีคาเท
่ ากั
่ บ 5510 หรือ 3716
ASCII: American National Standard Code for Information Inte
ANSI : American National Standard Institute
ASCII Code Table (8 bit)
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
0
1
2
3
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
4
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
5
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
6
'
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
7
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
8
9
A
B
C
D
E
F
ASCII Code Table (16 bit)
ASCII Code Table (16 bit)
Variables Representation (1)
7 ทีเ่ ป็ นคาตั
่ วเลขจะเก็บลงในหน่วยความจาของ
คอมพิวเตอรดั
์ งนี้
 กรณี
ด 11 byte
0 0 เ0ก็บ
0เป็0นชนิ
1 1
 กรณี
ด 0integer
0 0 เ0ก็บ0เป็0นชนิ
0 0
0 0 0 (2
0 byte)
0 1
1
1
7 0 ทีเ0่ ป็ นอั
กขระจะเก็
1 1
0 1 1 บ
1 ลงในหน่วยความจาของ
คอมพิวเตอรดั
์ งนี้
Variables Representation (2)
ตัวอักษร 1 ตัว เรียกวาอั
่ กขระ (Character)
 เช่น O การใช้งานในภาษาซี 'O'
z
การใช้งานในภาษาซี
'z'
ตัวอักษรเป็ นชุด เรียกวาข
(string)
่ อความ
้
 เช่น Com การใช้งานในภาษาซี "Com"
Universityการใช้งานในภาษาซี
"
University"
84
Variables and Data Type of variables
ชนิดของข้อมูล (data
type) ในการเขียน
โปรแกรมหนึ่ งๆ จะมี ข้ อมู ล ต่ างๆ เข้ ามา
เกีย
่ วของ
เช่นการนับจานวนรอบ (loop) ของ
้
การทางานโดยใช้ข้อมูลชนิดจานวนเต็ม หรือ
ก า ร แ ส ด ง ข้ อ ค ว า ม
โดยใช้ ข้ อมู ล ชนิ ด ตัว อัก ษร จะเห็ น ว่าข้ อมู ล
ตางๆ
ถูกแบงออกเป็
นหลายชนิดตามจุดประสงค ์
่
่
ของการใช้ งาน นอกจากนี้ ข้ อมู ล แต่ละชนิ ด
ยังใช้เนื้อทีห
่ น่วยความจา (memory)
ไม่
เทากั
่ น
ตั ว แ ป ร ( Variable) คื อ ก า ร จ อ ง พื้ น ที่ ใ น
Data Type of variables
1. ข้อมูลชนิดตัวอักษร (Character) คือข้อมูลทีเ่ ป็ นรหัส
แทนตัว อัก ษรหรื อ ค่ าจ านวนเต็ ม ได้ แก่ ตัว อัก ษร
ตัว เลข และกลุ่มตัว อัก ขระพิเ ศษใช้ พืน
้ ที่ใ นการเก็ บ
ข้อมูล 1 ไบต ์
2. ข้อมูลชนิดจานวนเต็ม (Integer) คือข้อมูลทีเ่ ป็ นเลข
จานวนเต็ม
ไดแก
้ ่ จานวนเต็มบวก จานวนเต็มลบ
ศูนย ์ ใช้พืน
้ ทีใ่ นการเก็บ 2 ไบต ์
3. ข้ อมู ล ช นิ ด จ า นวนเ ต็ มที่ ม ี ข นา ด 2 เ ท่ า ( Long
Integer) คือข้อมูลทีม
่ เี ลขเป็ นจานวนเต็ม
ใช้พืน
้ ที่
4 ไบต ์
4. ข้อมูลชนิดเลขทศนิยม (Float) คือข้อมูลทีเ่ ป็ นเลข
ทศนิยม ขนาด 4 ไบต ์
ชนิดของข้ อมูลในภาษาซี
ชนิด
ขนาดความกว้าง
Char
8 บิต
Unsigned
char
Int, Short
16 บิต
long
32 บิต
Float
32 บิต
Double
64 บิต
Unsigned
int
Unsigned
8 บิต
16 บิต
ช่ วงของค่า
การใช้ งาน
ASCII character (เก็บขอมู
้ ลชนิดอักขระ
128 ถึง 127)
เก็บขอมู
้ ลอักขระแบบไมคิ
่ ด
0-255
เครือ
่ งหมาย
-32768 ถึง 32767 เก็บขอมู
้ ลชนิดจานวนเต็ม
-2147483648 ถึง เก็บขอมู
้ ลชนิดจานวนเต็มแบบ
2147483649
ยาว
3.4E-38 ถึง
3.4E+38 หรือ
เก็บขอมู
้ ลชนิดเลขทศนิยม
ทศนิยม 6
1.7E-308 ถึง
1.7E+308 หรือ
เก็บขอมู
้ ลชนิดเลขทศนิยม
ทศนิยม 12
เก็บขอมู
้ ลชนิดจานวนเต็ม ไมคิ
่ ด
0 ถึง 65535
เครือ
่ งหมาย
เก็บขอมู
้ ลชนิดจานวนเต็มแบบ
Variable
ทาได้ 2 ลักษณะ คือ
 แบบตัวแปรทีเ่ ก็บคาคงที
่ (Constant) - คาคงที
่
่
่
 แบบตัวแปรทีเ่ ก็บคาทั
่ ว่ ไป (Variable) - ตัวแปร
การสรางตั
วแปร
้
 ต้องรู้วาจะใช
่
้ตัวแปรเก็บขอมู
้ ลอะไร
 ประกาศตัวแปรให้เหมาะสมกับขอมู
่ ะเก็บ(ชนิด
้ ลทีจ
ของข้อมูล)
ชนิดของตัวแปรหลักในภาษา C
 ตัวแปรทีใ่ ช้เก็บอักขระ (Character variable)
 ตัวแปรทีใ่ ช้เก็บเลขจานวนเต็ม (Integer variable)
 ตัวแปรทีใ่ ช้เก็บเลขจานวนจริง (Float variable)
 ตัวแปรทีใ่ ช้เก็บอักขระแบบสตริง (String
variable)
Variable Declaration
รูปแบบของการประกาศตัวแปร
ชนิดตัวแปร
ชือ
่ ตัวแปร
int i;
ประกาศ i ให้ชนิดเป็ น
float realnum;
ประกาศ realnum ให้มี
char ch;
ประกาศ ch ให้ชนิด
integer
ชนิดเป็ น float
เป็ น character
Name Identifier
ชือ
่ (Identifier) - ไอเดนติฟายเออร ์ เป็ นชือ
่ ทีผ
่ ้ใช
ู ้
กาหนดขึน
้ ในโปรแกรม เช่น ชือ
่ คาคงที
่ ชือ
่ ตัวแปร
่
ชือ
่ ฟังกชั
์ น เป็ นต้น
 ต้องขึน
้ ต้นดวยตั
วอักษรภาษาอังกฤษ (ตัวใหญหรื
้
่ อ
เล็กก็ได)้ หรือขีดลาง
‘_’
่
 ตามดวยตั
วอักษรภาษาอังกฤษ ตัวเลข หรือขีดลาง
้
่
(Underscore) ‘_’
 ไมมี
อตัวอักษรพิเศษอืน
่ ๆ เช่น ‘!’, ‘@’,
่ ช่องวางหรื
่
‘#’, ‘$’, ‘%’, ‘^’ เป็ นต้น
 ตัวพิมพใหญ
และเล็
กจะเป็ นคนละตัวกันเช่น
่
์
NAME, name, Name, NamE
 ห้ามซา้ กับคาสงวน Reserve Words ของภาษา C
Reserved words
auto
double
int
struct
break
else
long
switch
case
enum
register
typedef
char
extern
return
union
const
float
short
unsigned
continue
for
signed
void
default
goto
sizeof
volatile
do
if
static
While
asm
_cs
_ds
_es
_ss
cdecl
far
huge
interrupt
near
pascal
_export
Naming (Example)
ชื่อ
__0261
Counter
void
myLove<3
Nong Jubb
longAgo
/Me
084642XXXX
printf
ถูก/ผิด เพราะ?
Variable Declaration & Assignment Value (1)
1. ตัวแปรทีใ่ ช้เก็บอักขระ แทนดวย
้ char โดยอยูภายใน
่
เครือ
่ งหมาย ‘ ’ เช่น
# include <stdio.h>
main ( )
{
char
reply;
reply = ‘y’;
…………………
}
Variable Declaration & Assignment Value (2)
ก า ร ใ ห้ ค่ า ตั ว แ ป ร อั ก ข ร ะ ที่ เ ป็ น ร หั ส พิ เ ศ ษ ห รื อ
รหัสควบคุม
 อักขระเหลานี
แตจะท
าได้
่ ้ไมสามารถให
่
้คาโดยตรง
่
่
โดยการให้คาเป็
่ นรหัส ASCII ซึ่งจะเขียนในรูปของ
เลขฐานแปด โดยใช้เครือ
่ งหมาย ‘\’ นาหน้า หรือใช้
ตัว อัก ขระทีก
่ าหนดให้ กับ รหัส นั้น ๆ
เขีย นตาม
เครือ
่ งหมาย ‘\’ สาหรับรหัสบางตัว เช่น
• รหัส BELL แทนดวย
้ ASCII 007 ซึ่งกาหนดได้
ดังนี้
– beep = ‘\007’;
• หรือรหัสควบคุมการขึน
้ บรรทัดใหม่ ตัวอักขระที่
กาหนดให้กับรหัส คือ n สามารถกาหนดเป็ น
Example of Basically Program
ตัวอยางโปรแกรม
่
# include <stdio.h>
main ( )
{
char newline;
newline = ‘\n’;
printf(“Hello, Good morning. %c”,newline);
printf(“Hello, Good morning.\n”);
}
Variable Declaration & Assignment Value (3)
2. ตัวแปรทีใ่ ช้เก็บเลขจานวนเต็ม ในภาษาซีสามารถใช้
แทนได้ 4 รูปแบบคือ int, short, long และ unsigned
 สาหรับการกาหนดตัวแปรแบบ unsigned คือจานวน
เต็ มทีไ
่ ม่คิดเครือ
่ งหมายนั้นจะต้องใช้ควบคู่กับรูปแบบ
ข้อมูลจานวนเต็มชนิดอืน
่ ๆ คือ int หรือ short หรือ
long ตัวอยางเช
่
่น
number */
unsigned int plusnum;
unsigned long width;
unsigned short absno; /* absolute
Variable Declaration & Assignment Value (4)
3. ตัวแปรทีใ่ ช้เก็บเลขจานวนจริง(ทศนิยม) สาหรับเลขมี
จุดทศนิยมนั้นแทนได้ 2 แบบ คือ float และ double โดย
double เก็บคาได
เป็
float
่
้ น 2 เทาของ
่
 สาหรับงานทางวิทยาศาสตรที
่ องการความละเอี
ยด
้
์ ต
ในการเก็บคามั
่ กใช้การเก็บในรูปแบบนี้ คือเก็บ
แบบเอ็กโพเนนซ ์ ดังตัวอยางต
อไปนี
้
่
่
ตัวเลข
แสดงแบบวิทยาศาสตร ์
แบบเอ็กโพเนนซ ์
9,000,000,000
9.0*109
9.0e9
345,000
3.45*105
3.45e5
Variable Declaration & Assignment Value (5)
4. ตัว แปรทีใ
่ ช้ เก็ บ อัก ขระแบบสตริง สตริงหมายถึงตัว
อักขระหลายๆ ตัวมาประกอบกันเป็ นข้อความ ซึ่งการทีน
่ า
ตัวแปรหลายๆ
ตัวมาเก็ บรวมกันในภาษาซีนี้เรียกว่า
“อะเรย(array)”
ดังนั้นข้อมูลแบบสตริงคือ อะเรยของตั
ว
์
์
อักขระนั่นเอง
 เครือ
่ งหมายของอะเรยคื
์ อ [ ] รูปแบบการกาหนด
สตริงจึงมีลก
ั ษณะดังนี้
char name[30];
หมายถึง ตัวแปร name เป็ นชนิด char ทีม
่ ค
ี วาม
ยาว 30 ตัวอักษรโดยเก็บเป็ น อะเรย ์ การเก็บนั้นจะเก็บ
เรียงกันทีละไบต ์ และไบตสุ
์ ดท้ายเก็บรหัส null คือ \0
ดังนั้นจะเก็บไดจริ
้ งเพียง 29 ตัวอักษร
Variable Declaration & Assignment Value (6)
การก าหนดค่ าให้ ตัว แปรอาจท าได้ โดยก าหนดใน
โปรแกรม หรือกาหนดในขณะทีม
่ ก
ี ารกาหนดชนิดก็ได้
#include <stdio.h>
void main ()
{
int age;
char sex;
float grade;
age = 20;
sex = ‘f’;
grade = 3.14;
}
#include <stdio.h>
void main ()
{
int age = 20;
char sex = ‘f’;
float grade = 3.14;
}
Static Variable
การใช้งาน Static ในการประกาศตัวแปร
Register Variable
การใช้งาน Static ในการประกาศตัวแปร
Volatile Variable
การใช้งาน volatile จะใช้งานในลักษณะดังนี้
1 Memory-mapped peripheral register.
No volatile
volatile
Volatile Variable
การใช้งาน volatile จะใช้งานในลักษณะดังนี้
2 Global variables modified by an interrupt
service routine
Volatile Variable
การใช้งาน volatile จะใช้งานในลักษณะดังนี้
3 Global variables accessed by multiple tasks
within a multi-threaded application
Volatile Variable (Example)
gcc –Wall –O3 –save-temps test.c –o test
volatile int quit =0;
Variable Naming Suggestion
คาแนะนาในการตัง้ ชือ
่ เพือ
่ ให้อานได
ง้ าย
่
่
Outline
1
2p
Introduction to C Programming
Flowchart Diagram
3
Variables and Type of variables
4
Naming and Variable Declaration
5
The Environment of C Programming
Variable Accessing & Scope resolution
Good Code Writing (1)
ลักษณะของการเขียนโปรแกรมทีม
่ โี ครงสร้างทีด
่ ี
Tip 1: Comment like a smart person
Tip 2: Use #define a lot. No a LOT.
Good Code Writing (2)
Tip 3: Don’t use variable names that will mock
you.
Replace with
Tip 4: Do error checking. You make error. Yes,
you.
Good Code Writing (3)
Tip 5: “Premature optimization is the root of all
evil.” – Donald Knuth
เ ขี ย น โ ค้ ด ใ ห้ อ่ า น ไ ด้ ง่ า ย ต ร ง ป ร ะ เ ด็ น แ ล ะ
สามารถหาขอผิ
้ ดพลาดในโค้ดไดง้ าย
่
จ ะ ท า ก า ร อ อ ป ติ ไ ม ซ ์ โ ค้ ด เ มื่ อ ค ว า ม เ ร็ ว ห รื อ
ทรัพยากร ไมเหมาะสมกั
บโปรแกรม
่
Tip 6: Don’t be too clever by haft.
There is something called the IOCCC. That is,
the "International Obfuscated C Code
Contest." You see, C and C++, whatever their
considerable advantages, lend themselves to
writing nightmarishly complicated code. This
Credit: http://www.ibm.com/developerworks/library/l-clear-code/
From C to Machine Code
C Source
Code
Compile
Execute
Program
ขั้นตอนในการแปลงจาก C โค้ ดเป็ นโปรแกรมที่สามารถทางานบนเครื่องคอมพิวเตอร์
1. เขียนโค้ดดวยภาษา
c โดยการตัง้ นามสกุลโค้ดดวย
้
้ ‘.c’
2. แปลงโค้ดภาษาไปเป็ นโปรแกรมทีท
่ างานบนเครือ
่ ง จะมี
ดวยกั
น 4 ขัน
้ ตอน คือ
้
1)
2)
3)
4)
Pre-processing
Compiling
Assembly
Linking
3. โปรแกรมทีพ
่ รอมประมวลผล
้
Pre-processing
ในขัน
้ ตอนนี้จะทาการ
Macro
substitution
คือ
การแทนค่ ามาโคร
ตางๆ
่
Comment
are
stripped off คือ
ก า ร เ อ า ค า อ ธิ บ า ย
ตางๆ
ออกจากโค้ด
่
Expansion of the
include
file คือ
การรวบรวมเอาสิ่ งที่
Compiling
ในขัน
้ ตอนนี้จะทาการ
แปลงโค้ดภาษาซีไป
อยูในรู
ปของคาสั่ ง
่
ระดับแอสแซมบลี
(assembly level
instructions)
Assembly
ในขัน
้ ตอนนี้จะทาการ
แปลงคาสั่ งระดับตา่
จากขัน
้ ตอนทีแ
่ ลว
้
เป็ นคาสั่ งเครือ
่ ง
(Machine Code)
Linking
ในขัน
้ ตอนนี้จะทาการ
เชือ
่ มคาสั่ งเครือ
่ งทีม
่ ก
ี ารเรียกใช้ (call function)
ตางๆ
มาเขาไว
ด
นกลายเป็ นโปรแกรมทีส
่ ามารถ
่
้
้ วยกั
้
ประมวลผลได้
Assignment #1
เลขฐานสิ บ
เลขฐานสอง
เลขฐานสิ บหก
19
1F
1010101
7A9
1110110
127
25
59
Assignment #2
ให้ นิ สิ ตออกแบบโปรแกรมปั ญ หาการค านวณ
โดยเลือกปัญหาการคานวณจากสูตรคานวณใด
ก็ได้ 1 สูตร เพือ
่ นามาคานวณคาผลลั
พธ ์ 1
่
คา่
ทาการออกแบบตามลาดับโดยมี
 การวิเคราะหปั
์ ญหา
 คาที
่ วข้อง (รับค่า /
ก าหนดค่า /
่ เ่ กีย
แสดงผล)
 เขียน pseudo code
 เขียน flow chart
เขียนคาตอบในกระดาษ A4 ส่งงานกอนการ
่
เรียนการสอนในครัง้ ถัดไป