แนะนำคอมพิวเตอร์และการโปรแกรม

Download Report

Transcript แนะนำคอมพิวเตอร์และการโปรแกรม

แนะนำคอมพิวเตอร์
และกำรโปรแกรม
01204111 - คอมพิวเตอร์และการโปรแกรม
คอมพิวเตอร์คืออะไร?
• คอมพิวเตอร์คืออุปกรณ์อิเล็คทรอนิ กส์ซึ่ง
ทางานตามคาสัง่ ควบคุม (ซอฟต์แวร์) ที่เก็บอยูใ่ น
หน่ วยความจา
 นาเข้าข้อมูล
 จัดเก็บและประมวลผลข้อมูล
 นาเสนอข้อมูลผลลัพธ์

2
พัฒนำกำรของคอมพิวเตอร์
• ลูกคิด
• Analytical Engine
• ยุคที่ 1 (1940-1956): หลอดสูญญากาศ
• ยุคที่ 2 (1956-1963): ทรานซิสเตอร์
• ยุคที่ 3 (1964-1971): ไอซี
• ยุคที่ 4 (1971-ปั จจุบนั ): ไมโครโพรเซสเซอร์,
เทคโนโลยี VLSI/ULSI
3
ประเภทของคอมพิวเตอร์
• คอมพิวเตอร์แบบตั้งโต๊ะ (เดสค์ทอ้ ป)
• คอมพิวเตอร์โน้ตบุค๊
• คอมพิวเตอร์พกพา
(Personal Digital Assistants, PDA)
• คอมพิวเตอร์เมนเฟรม
• ซูเปอร์คอมพิวเตอร์
Microcomputers
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
Cobol
Basic
C
Pascal
• ภาษาเชิงฟั งก์ชนั

• ภาษาเชิงวัตถุ




C++
Java
C#
VB
• ภาษาเชิงตรรก

Prolog
Lisp
12
กระบวนกำรแปลภำษำระดับสูง
• การแปลภาษาด้วยอินเทอร์พรีเตอร์

อินพุท
แปลคาสัง่ ในโปรแกรมให้เครื่อง
ทางานทีละคาสัง่
prog.bas
ซอร์สโค้ด
อินเทอร์พรีเตอร์
เอำท์พุท
13
กระบวนกำรแปลภำษำระดับสูง
• การแปลภาษาด้วยคอมไพเลอร์

อินพุท
แปลคาสัง่ ทั้งโปรแกรมในทีเดียว
prog.c
ซอร์สโค้ด
คอมไพเลอร์
prog.exe
รหัสภำษำเครื่อง
เอำท์พุท
14
ภำษำที่ใช้ในวิชำ 01204111
• ไพธอน (Python)
แปลด้วยอินเทอร์พรีเตอร์
 ทางานได้บนคอมพิวเตอร์หลายระบบ เช่นวินโดวส์ ยูนิกซ์
และโทรศัพท์มือถือหลายค่าย

• ซีชาร์ป (C#)
แปลด้วยคอมไพเลอร์
 เน้นการทางานบนวินโดวส์เป็ นหลัก
 เหมาะกับการพัฒนาโปรแกรมประยุกต์บนวินโดวส์

15
ภำษำไพธอน (Python)
• เป็ นภาษาที่จดั อยูใ่ นหลายประเภท
เชิงกระบวนคาสัง่
 เชิงฟั งก์ชน
ั
 เชิงวัตถุ

• มีกระบวนการแปลภาษาแบบอินเทอร์พรีเตอร์
• ง่ายสาหรับผูเ้ ริ่มต้นหัดเขียนโปรแกรม
• ไลบรารีมาตรฐานให้ชุดคาสัง่ พร้อมใช้งานในหลาย ๆ
ด้าน
16
ติดตั้งตัวแปลภำษำไพธอน
• ดาวน์โหลดตัวแปลภาษาไพธอน เวอร์ชนั 3.1.2 ได้ที่

http://www.python.org/ftp/python/3.1.2/python3.1.2.msi
• เมื่อติดตั้งแล้วทดลองเรียก Python (command line)
จาก Start Menu  Python 3.1
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
ขั้นตอนกำรพัฒนำโปรแกรม
อินพุท
โปรแกรมเอดิเตอร์
(Editor)
prog.py
ซอร์สโค้ด
ไพธอน
อินเทอร์พรีเตอร์
เอำท์พุท
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