แนะนำคอมพิวเตอร์
และกำรโปรแกรมเบ้ ืองตน้
คอมพิวเตอรค์ ืออะไร?
• คอมพวิ เตอรค์ ืออุปกรณอ์ ิเลคทรอนิกสซ์ ึ่ง
ทำงำนตำมคำสงั่ ควบคุม (ซอฟตแ์ วร)์ ที่เกบ็ อยใู่ น
หน่วยควำมจำ
นำเขำ้ ขอ้ มลู
จดั เก็บและประมวลผลขอ้ มลู
นำเสนอขอ้ มูลผลลพั ธ์
2
พฒั นำกำรของคอมพวิ เตอร์
• ลกู คิด
• Analytical Engine
• ยุคที่ 1 (1940-1956): หลอดสญู ญำกำศ
• ยุคที่ 2 (1956-1963): ทรำนซิสเตอร์
• ยุคท่ี 3 (1964-1971): ไอซี
• ยุคที่ 4 (1971-ปัจจบุ นั ): ไมโครโพรเซสเซอร,์
เทคโนโลยี VLSI/ULSI
3
ประเภทของคอมพวิ เตอร์
• คอมพิวเตอรแ์ บบต้งั โตะ๊ (เดสคท์ อ้ ป)
• คอมพวิ เตอรโ์ นต้ บุค๊ Microcomputers
• คอมพิวเตอรพ์ กพำ
(Personal Digital Assistants, PDA)
• คอมพิวเตอรเ์ มนเฟรม
• ซูเปอรค์ อมพวิ เตอร์
4
คอมพวิ เตอรฮ์ ำรด์ แวร์
• อุปกรณอ์ ินพุท
• อุปกรณเ์ อำทพ์ ุท
• หน่วยประมวลผลกลำง (CPU)
• หน่วยควำมจำหลกั (Memory)
• หน่วยเก็บขอ้ มลู สำรอง (Storage)
5
กำรโปรแกรมคอมพิวเตอร์
• คือกำรกำหนดแผนกำรใหค้ อมพวิ เตอรท์ ำงำนตำมที่
ตอ้ งกำร
• อำศยั กำรเรยี บเรยี งควำมคิดและถ่ำยทอดออกมำเป็ น
ลำดบั ของคำสงั่ ใน "ภำษำ" ท่ีคอมพิวเตอรเ์ ขำ้ ใจได้
6
กำรแกป้ ัญหำดว้ ยกำรโปรแกรม
วิเครำะหข์ อ้ กำหนดของปัญหำ
วำงแผนและเรยี บเรียงแนวคิด
เขียนโปรแกรมตำมแนวทว่ี ำงไว้
ตรวจสอบควำมถูกตอ้ ง
7
ภำษำโปรแกรมและตวั แปลภำษำ
• ภำษำโปรแกรม
ภำษำระดบั ตำ่ ไดแ้ กภ่ ำษำเครื่อง และภำษำแอสเซมบล้ ี
ภำษำระดบั สงู เชน่ ซี ปำสคำล เบสิก ซีชำรป์
• ตวั แปลภำษำระดบั สูง
อินเทอรพ์ รเี ตอร์ (interpreter)
คอมไพเลอร์ (compiler)
8
ภำษำระดบั ตำ่
• คำสงั่ ผูกติดกบั สถำปัตยกรรมของคอมพิวเตอรน์ ้ัน ๆ
เชน่ สถำปัตยกรรม x86, ARM, AVR
• แตล่ ะคำสงั่ ระบุกำรทำงำนในระดบั ฮำรด์ แวรห์ นึ่งรอบ
กำรทำงำน
• โปรแกรมที่เขยี นข้ นึ สำหรบั สถำปัตยกรรมหนึ่ง ๆ ไม่
สำมำรถนำไปใชก้ บั สถำปัตยกรรมอ่ืนได้
9
ภำษำระดบั ตำ่
• ภำษำเครือ่ ง 00011000 01101011
00011001 11111100
ประกอบดว้ ยรหสั คำสงั่ ท่ีพรอ้ ม 10011000 11100000
นำเขำ้ สูห่ น่วยควำมจำเพอื่ ให้
คอมพวิ เตอรท์ ำงำนไดท้ นั ที รหสั ฐานสอง
มกั เขยี นในรูปเลขฐำนสองหรือฐำน 18 6B 19 FC 98 E0
สิบหก
รหสั ฐานสิบหก
• ภำษำแอสเซมบล้ ี
ใชส้ ญั ลกั ษณแ์ ทนรหสั คำสงั่ เพื่อให้ SUB R3, #2, R6
คนเขำ้ ใจง่ำย
แต่ละคำสงั่ ถูกแปลงเป็ นหนึ่งคำสงั่ 01 011 110 00000010
ภำษำเครื่องไดโ้ ดยตรง
10
ภำษำระดบั สูง
• คำสงั่ ใกลเ้ คียงกบั ภำษำธรรมชำติ
• ไมผ่ ูกติดกบั สถำปัตยกรรมของคอมพิวเตอรท์ ่ีใชง้ ำน
• แตล่ ะคำสงั่ อำจเทียบเท่ำกบั กำรทำงำนในระดบั
ฮำรด์ แวรห์ ลำยรอบกำรทำงำน
• โปรแกรมท่ีเขียนข้ นึ มกั นำไปใชก้ บั สถำปัตยกรรมใดก็ได้
(Portable)
SUM := A * 2 + ALPHA/3;
PRINTLN(SUM);
11
ตวั อยำ่ งภำษำระดบั สูง
• ภำษำเชิงกระบวนคำสงั่ • ภำษำเชิงวตั ถุ
Fortran C++
Cobol Java
Basic C#
C VB
Pascal • ภำษำเชิงตรรก
• ภำษำเชิงฟังกช์ นั Prolog
Lisp
12
กระบวนกำรแปลภำษำระดบั สูง
อินพทุ
• กำรแปลภำษำดว้ ยอินเทอรพ์ รีเตอร์
แปลคำสงั่ ในโปรแกรมใหเ้ ครอื่ ง
ทำงำนทีละคำสงั่
prog.bas อินเทอรพ์ รเี ตอร์
ซอรส์ โคด้
เอำทพ์ ทุ
13
กระบวนกำรแปลภำษำระดบั สูง
• กำรแปลภำษำดว้ ยคอมไพเลอร์ อนิ พทุ
แปลคำสงั่ ท้งั โปรแกรมในทีเดียว
prog.c คอมไพเลอร์ prog.exe
ซอรส์ โคด้ รหสั ภำษำเครือ่ ง
เอำทพ์ ทุ
14
ภำษำคอมพิวเตอร์
• ไพธอน (Python)
แปลดว้ ยอินเทอรพ์ รเี ตอร์
ทำงำนไดบ้ นคอมพวิ เตอรห์ ลำยระบบ เชน่ วนิ โดวส์ ยนู ิกซ์
และโทรศพั ทม์ อื ถือหลำยคำ่ ย
• ซีชำรป์ (C#)
แปลดว้ ยคอมไพเลอร์
เนน้ กำรทำงำนบนวนิ โดวสเ์ ป็ นหลกั
เหมำะกบั กำรพฒั นำโปรแกรมประยุกตบ์ นวนิ โดวส์
15
ภำษำไพธอน (Python)
• เป็ นภำษำท่ีจดั อยใู่ นหลำยประเภท
เชงิ กระบวนคำสงั่
เชิงฟังกช์ นั
เชิงวตั ถุ
• มกี ระบวนกำรแปลภำษำแบบอินเทอรพ์ รีเตอร์
• งำ่ ยสำหรบั ผูเ้ ร่ิมตน้ หดั เขียนโปรแกรม
• ไลบรำรีมำตรฐำนใหช้ ุดคำสงั่ พรอ้ มใชง้ ำนในหลำย ๆ
ดำ้ น
16
ตดิ ตง้ั ตวั แปลภำษำไพธอน
• ดำวน์โหลดตวั แปลภำษำไพธอน ไดท้ ่ี
http://www.python.org
เรียก Python (command line) จำก Start Menu
Python …
17
มุมนกั คิด
• เดำดูวำ่ แต่ละบรรทดั ของโปรแกรมภำษำไพธอนต่อไปน้ ี
ทำหนำ้ ท่ีอะไร
1: print("Welcome")
2: g = input("Guess the number: ")
3: guess = int(g)
4: if guess == 5:
5: print("You win!")
6: else:
7: print("You lose!")
8: print("Game over!")
18
ภำษำธรรมชำติ
• โปรแกรมก็ไมต่ ่ำงจำกคำสงั่ ท่ีเป็ นภำษำมนุษย์
พมิ พ์ ("Welcome")
g = อ่านข้อมูล("Guess the number: ")
guess = int(g)
ถ้า guess == 5:
พมิ พ์("You win!")
ถ้าไม่เช่นน้ัน:
พมิ พ์("You lose!")
พมิ พ์("Game over!")
19
หนำ้ ตำ่ งโตต้ อบกบั ไพธอน
จดุ รอรบั คำสงั ่ หรอื
พรอ็ มต์ (prompt)
20
ทดลองคำสงั ่ เบ้ ืองตน้
• ทดลองพิมพค์ ำสงั่ เหล่ำน้ ี (ไมต่ อ้ งพมิ พ์ >>>) และ
สงั เกตผลลพั ธ์
>>> print(1)
>>> print(3*8)
>>> print("Hello")
>>> input()
>>> exit()
21
กำรรวมคำสงั ่ เป็ นโปรแกรม
• เรำสำมำรถรวมคำสงั่ ไวใ้ นไฟลเ์ ดียวเพื่อ
ควำมสะดวกในกำรเรียกใชง้ ำนภำยหลงั
แทนกำรพมิ พค์ ำสงั่ โดด ๆ
คำสงั่ จะถูกดำเนินกำรต้งั แต่บรรทดั แรกลงไป
ลำดบั คำสงั่ เหล่ำน้ ีเรียกวำ่ "โปรแกรม"
• ไฟลโ์ ปรแกรมสำมำรถสรำ้ งบนซอฟตแ์ วร์
เอดิเตอร์ (editor) ใด ๆ ก็ได้ เชน่ Notepad
• โปรแกรมท่ีเขียนดว้ ยภำษำไพธอน ตอ้ ง
บนั ทึกใหม้ ีนำมสกุลเป็ น .py เชน่ first.py
22
ข้นั ตอนกำรพฒั นำโปรแกรม
อนิ พทุ
โปรแกรมเอดิเตอร์ prog.py ไพธอน
(Editor) ซอรส์ โคด้ อินเทอรพ์ รีเตอร์
เอำทพ์ ทุ
23
กำรเรียกใชง้ ำนโปรแกรม
• ดบั เบ้ ิลคล้ ิกที่ไฟล์ .py จะเป็ นกำรเรยี กไพธอนอินเทอร์
พรีเตอรใ์ หม้ ำดำเนินกำรรนั โปรแกรม
• หมายเหต:ุ เม่ือโปรแกรมจบการทางาน หนา้ ตา่ ง
แสดงผลจะปิดทนั ที
ป้องกนั ไดโ้ ดยกำรเพิ่มคำสงั่ input() ไวท้ ่ีทำ้ ยโปรแกรม
24
ซอฟตแ์ วร์ Wing IDE 101
• เป็ นซอฟตแ์ วรป์ ระเภท Integrated Development
Environment (IDE)
มีเอดิเตอรใ์ นตวั
สงั่ รนั โปรแกรมไดท้ นั ที
ภำยในตวั ซอฟตแ์ วร์
มีเครื่องมือชว่ ยแสดงกำร
ทำงำนของโปรแกรมทีละขน้ั
25
กรำฟิ กแบบเตำ่ ๆ
• เรียนรกู้ ำรเรียบเรียงแนวคิดกำรโปรแกรมอยำ่ งงำ่ ยโดย
อำศยั กรำฟิ กของเต่ำ (Turtle Graphics)
• พมิ พค์ ำสงั่ from turtle import * เพ่อื ใชง้ ำน
ชุดคำสงั่ ควบคุมเต่ำ
• ควำมสำมำรถของเต่ำ
เดินหนำ้ /ถอยหลงั ตำมระยะทำงที่สงั่
หนั หวั ซำ้ ยขวำตำมองศำท่ีสงั่
ลำกปำกกำไปตำมเสน้ ทำงเดิน
26
คำสงั ่ บงั คบั เตำ่ เบ้ ืองตน้
• t = Turtle() - สรำ้ งเต่ำโดยอำ้ งอิงผ่ำนตวั แปร t
• t.forward(d) - สงั่ t เดินหนำ้ เป็ นระยะทำง d
• t.backward(d) - สงั่ t ถอยหลงั เป็ นระยะทำง d
• t.right(a) - สงั่ t หนั ขวำเป็ นมุม a องศำ
• t.left(a) - สงั่ t หนั ซำ้ ยเป็ นมุม a องศำ
• t.penup() - สงั่ t ยกปำกกำ
• t.pendown() - สงั่ t วำงปำกกำ
27
ตวั อยำ่ ง - ใหเ้ ตำ่ วำดรูปสี่เหล่ียม
• คำสงั่ ภำษำมนุษย์
เดนิ หน้า 100 หน่วย
หนั ขวา 90 องศา
เดนิ หนา้ 100 หน่วย
หนั ขวา 90 องศา
เดนิ หนา้ 100 หน่วย
หนั ขวา 90 องศา
เดนิ หนา้ 100 หน่วย
หนั ขวา 90 องศา
28
ตวั อยำ่ ง - ใหเ้ ตำ่ วำดรูปสี่เหลี่ยม
• คำสงั่ ภำษำไพธอน
from turtle import *
t = Turtle()
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
29
สอนใหไ้ พธอนรูจ้ กั คำสงั ่ ใหม่
• ไพธอนมคี ำสงั่ def สำหรบั นิยำมคำสงั่ ใหม่
from turtle import *
t = Turtle()
เวน้ ระยะใหเ้ ทำ่ กนั def square():
จำกขอบซำ้ ย t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
square()
30
คำสงั ่ วนซ้ำ
• โปรแกรมที่แลว้ มีคำสงั่ ท่ีใชซ้ ้ำกนั หลำยครง้ั
• หลำยภำษำมคี ำสงั่ พเิ ศษที่ใชว้ นทำคำสงั่ ซ้ำตำมเง่อื นไข
ท่ีกำหนด
ลดควำมซำ้ ซอ้ นและขนำดของโปรแกรม
from turtle import *
t = Turtle()
def square():
for x in range(4):
t.forward(100)
t.right(90)
square()
31
มุมนกั คิด
• เขยี นโปรแกรมใหเ้ ต่ำวำดรปู สำมเหลี่ยมดำ้ นเท่ำบน
หนำ้ จอ โดยแต่ละดำ้ นมคี วำมยำว 200 หน่วย
32
สรุปซอฟตแ์ วรท์ ี่ใชใ้ นครึ่งเทอมแรก
• ตวั แปลภำษำไพธอน เวอรช์ นั 3.1.2
http://python.org/ftp/python/3.1.2/python-3.1.2.msi
• Wing IDE 101
เคร่ืองมือพฒั นำโปรแกรมดว้ ยไพธอน
http://wingware.com/pub/wingide-101/3.2.5/wingide-101-3.2.5-1.exe
33