1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Tin học đại cương: Chương 1 - ĐH Bách Khoa

20 64 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 401,96 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Tin học đại cương: Chương 1 Phương pháp giải quyết bài toán bằng máy tính số trình bày các nội dung sau: Các khái niệm cơ bản về máy tính số, lịch sử phát triển máy tính số, dữ liệu & chương trình, qui trình tổng quát giải quyết bài toán bằng máy tính số, phân tích bài toán từ-trên-xuống.

Trang 1

MÔN TIN HC ĐẠ I C ƯƠ NG

Tài liu tham kho:

 T ậ p slide bài gi ả ng & th ự c hành c ủ a môn h ọ c này

 3 CD MSDN trong Microsoft Visual Studio

Ni dung chính gm 12 chương:

1 Ph ươ ng pháp gi ả i quy ế t bài toán

b ằ ng máy tính s ố

2 Th ể hi ệ n d ữ li ệ u trong máy tính s ố

3 T ổ ng quát v ề l ậ p trình b ằ ng VB

4 Qui trình thi ế t k ế tr ự c quan giao

di ệ n

5 Các ki ể u d ữ li ệ u c ủ a VB

6 Các l ệ nh đị nh ngh ĩ a & khai báo

7 Bi ể u th ứ c VB

8 Các l ệ nh th ự c thi VB

9 Đị nh ngh ĩ a th ủ t ụ c & s ử d ụ ng

10 T ươ ng tác gi ữ a ng ườ i dùng &

ch ươ ng trình

11 Qu ả n lý h ệ th ố ng file

12 Linh ki ệ n ph ầ n m ề m & truy

xu ấ t database

Đối tượng: SV đạ i h ọ c chính quy toàn tr ườ ng

Trang 2

MÔN TIN HC

1.2 L ị ch s ử phát tri ể n máy tính s ố

1.3 D ữ li ệ u & ch ươ ng trình

Trang 3

 Con người thông minh hơn các động vật khác nhiều Trong cuộc sống,

họ đã chế tạo ngày càng nhiều công cụ, thiết bị để hỗ trợ mình trong

hoạt động Các công cụ, thiết bị do con người chế tạo ngày càng tinh

vi, phức tạp và thực hiện nhiều công việc hơn trước đây Mỗi công cụ, thiết bị thường chỉ thực hiện được 1 vài công việc cụ thể nào đó Thí

dụ, cây chổi để quét, radio để bắt và nghe đài audio

 Máy tính số (digital computer) cũng là 1 thiết bị, nhưng thay vì chỉ thực

hiện 1 số chức năng cụ thể, sát với nhu cầu đời thường của con người,

nó có thể thực hiện 1 số hữu hạn các chức năng cơ bản (tập lệnh), mỗi

lệnh rất sơ khai chưa giải quyết trực tiếp được nhu cầu đời thường nào

của con người Cơ chế thực hiện các lệnh là tự động, bắt đầu từ lệnh

được chỉ định nào đó rồi tuần tự từng lệnh kế tiếp cho đến lệnh cuối cùng Danh sách các lệnh được thực hiện này được gọi là chương trình

1.1 Các khái nim c ơ bn v máy tính s

Trang 4

 Các l ệ nh mà máy hi ể u và th ự c hi ệ n đượ c đượ c g ọ i là l ệ nh máy

Ta dùng ngôn ng ữ để miêu t ả các l ệ nh Ngôn ng ữ l ậ p trình c ấ u thành t ừ 2 y ế u t ố chính y ế u: cú pháp và ng ữ ngh ĩ a Cú pháp qui

đị nh tr ậ t t ự k ế t h ợ p các ph ầ n t ử để c ấ u thành 1 l ệ nh (câu), còn

ng ữ ngh ĩ a cho bi ế t ý ngh ĩ a c ủ a l ệ nh đ ó

 B ấ t k ỳ công vi ệ c ( bài toán ) ngoài đờ i nào c ũ ng có th ể đượ c chia thành trình t ự nhi ề u công vi ệ c nh ỏ h ơ n Trình t ự các công vi ệ c

nh ỏ này đượ c g ọ i là gi ả i thu ậ t gi ả i quy ế t công vi ệ c ngoài đờ i M ỗ i công vi ệ c nh ỏ h ơ n c ũ ng có th ể đượ c chia nh ỏ h ơ n n ữ a n ế u nó còn ph ứ c t ạ p, ⇒ công vi ệ c ngoài đờ i có th ể đượ c miêu t ả b ằ ng

1 trình t ự các l ệ nh máy (ch ươ ng trình ngôn ng ữ máy)

Các khái nim c ơ bn v máy tính s

Trang 5

 Vấn đề mấu chốt của việc dùng máy tính giải quyết công việc ngoài đời

là lập trình (được hiểu nôm na là qui trình xác định trình tự đúng các

lệnh máy để thực hiện công việc) Cho đến nay, lập trình là công việc

của con người (với sự trợ giúp ngày càng nhiều của máy tính)

 Với công nghệ phần cứng hiện nay, ta chỉ có thể chế tạo các máy tính

mà tập lệnh máy rất sơ khai, mỗi lệnh máy chỉ có thể thực hiện 1 công

việc rất nhỏ và đơn giản ⇒ công việc ngoài đời thường tương đương

với trình tự rất lớn (hàng triệu) các lệnh máy ⇒ Lập trình bằng ngôn

ngữ máy rất phức tạp, tốn nhiều thời gian, công sức, kết quả rất khó

bảo trì, phát triển

 Ta muốn có máy luận lý với tập lệnh (được đặc tả bởi ngôn ngữ lập trình) cao cấp và gần gủi hơn với con người Ta thường hiện thực máy này bằng 1 máy vật lý + 1 chương trình dịch Có 2 loại chương trình

dịch: trình biên dịch (compiler) và trình thông dịch (interpreter)

Các khái nim c ơ bn v máy tính s

Trang 6

Trình biên dch (Compiler)

 Ch ươ ng trình biên d ị ch nh ậ n m ộ t ch ươ ng trình ngu ồ n (th ườ ng

đượ c vi ế t b ằ ng ngôn ng ữ c ấ p cao) và t ạ o ra m ộ t ch ươ ng trình đố i

t ượ ng t ươ ng ứ ng v ề ch ứ c n ă ng nh ư ng th ườ ng đượ c vi ế t b ằ ng

ngôn ng ữ c ấ p th ấ p (th ườ ng là ngôn ng ữ máy)

 N ế u có l ỗ i x ả y ra trong lúc d ị ch, trình biên d ị ch s ẽ báo l ỗ i, c ố g ắ ng tìm v ị trí đ úng k ế ti ế p r ồ i ti ế p t ụ c d ị ch… Nh ờ v ậ y, m ỗ i l ầ n d ị ch 1

ch ươ ng trình, ta s ẽ xác đị nh đượ c nhi ề u l ỗ i nh ấ t có th ể có

 Sau m ỗ i l ầ n d ị ch, n ế u không có l ỗ i, trình biên d ị ch s ẽ t ạ o ra file

ch ứ a ch ươ ng trình đố i t ượ ng (thí d ụ file ch ươ ng trình kh ả thi *.exe trên Windows)

 Để ch ạ y ch ươ ng trình, ng ườ i dùng ch ỉ c ầ n kích ho ạ t file kh ả thi

(ng ườ i dùng không bi ế t và không c ầ n quan tâm đế n file ch ươ ng trình ngu ồ n)

Trang 7

Trình thông dch (Interpreter)

 Ch ươ ng trình thông d ị ch không t ạ o ra và l ư u gi ữ ch ươ ng trình đố i

t ượ ng

 M ỗ i l ầ n thông d ị ch 1 ch ươ ng trình ngu ồ n là 1 l ầ n c ố g ắ ng ch ạ y

ch ươ ng trình này theo cách th ứ c sau:

 D ị ch và chuy ể n sang mã th ự c thi t ừ ng l ệ nh m ộ t r ồ i nh ờ máy

ch ạ y đ o ạ n l ệ nh t ươ ng ứ ng

 N ế u có l ỗ i thì báo l ỗ i, n ế u không có l ỗ i thì thông d ị ch l ệ nh k ế

ti ế p cho đế n khi h ế t ch ươ ng trình

 Nh ư v ậ y, m ỗ i l ầ n thông d ị ch ch ươ ng trình, trình thông d ị ch ch ỉ

thông d ị ch các l ệ nh trong lu ồ ng thi hành c ầ n thi ế t ch ứ không

thông d ị ch h ế t m ọ i l ệ nh c ủ a ch ươ ng trình ngu ồ n Do đ ó, sau

khi thông d ị ch thành công 1 ch ươ ng trình, ta không th ể k ế t lu ậ n

r ằ ng ch ươ ng trình này không có l ỗ i

Trang 8

So sánh trình biên dch & trình thông dch

 M ọ i ho ạ t độ ng x ử lý trên m ọ i mã ngu ồ n c ủ a ch ươ ng trình (ki ể m tra l ỗ i, d ị ch ra các l ệ nh đố i t ượ ng t ươ ng đươ ng, ) đề u đượ c ch ươ ng trình biên d ị ch th ự c hi ệ n

để t ạ o đượ c ch ươ ng trình đố i t ượ ng Do đ ó sau khi d ị ch các file mã ngu ồ n c ủ a

ch ươ ng trình, n ế u không có l ỗ i, ta có th ể k ế t lu ậ n ch ươ ng trình không th ể có l ỗ i

th ờ i đ i ể m d ị ch (t ừ v ự ng, cú pháp) Quá trình biên d ị ch và quá trình th ự c thi

ch ươ ng trình là tách r ờ i nhau: biên d ị ch 1 l ầ n và ch ạ y nhi ề u l ầ n cho đế n khi c ầ n

c ậ p nh ậ t version m ớ i c ủ a ch ươ ng trình

 Ch ươ ng trình thông d ị ch s ẽ thông d ị ch t ừ ng l ệ nh theo lu ồ ng thi hành c ủ a

ch ươ ng trình b ắ t đầ u t ừ đ i ể m nh ậ p c ủ a ch ươ ng trình, thông d ị ch 1 l ệ nh g ồ m 2

ho ạ t độ ng: biên d ị ch l ệ nh đ ó và th ự c thi các l ệ nh k ế t qu ả N ế u 1 đ o ạ n l ệ nh c ầ n

đượ c th ự c thi l ặ p l ạ i thì trình thông d ị ch s ẽ ph ả i thông d ị ch l ạ i t ấ t c ả đ o ạ n l ệ nh

đ ó Đ i ề u này s ẽ làm cho vi ệ c ch ạ y ch ươ ng trình trong ch ế độ thông d ị ch không

hi ệ u qu ả

 Vi ệ c ch ạ y ch ươ ng trình b ằ ng c ơ ch ế thông d ị ch đ òi h ỏ i ch ươ ng trình thông d ị ch

và ch ươ ng trình ứ ng d ụ ng c ầ n ch ạ y ph ả i t ồ n t ạ i đồ ng th ờ i trong b ộ nh ớ máy

tính, do đ ó có nguy c ơ ch ạ y không đượ c các ch ươ ng trình l ớ n n ế u tài nguyên

c ủ a máy không đủ cho c ả 2 ch ươ ng trình thông d ị ch và ch ươ ng trình ứ ng d ụ ng

Trang 9

 Gọi ngôn ngữ máy vật lý là N0 Trình biên dịch ngôn ngữ N1 sang ngôn ngữ N0 sẽ nhận đầu vào là chương trình được viết bằng ngôn

ngữ N1, phân tích từng lệnh N1 rồi chuyển thành danh sách các lệnh ngôn ngữ N0 có chức năng tương đương Để viết chương trình dịch

từ ngôn ngữ N1 sang N0 dễ dàng, độ phức tạp của từng lệnh ngôn

ngữ N1 không quá cao so với từng lệnh ngôn ngữ N0

 Sau khi có máy luận lý hiểu được ngôn ngữ luận lý N1, ta có thể định nghĩa và hiện thực máy luận lý N2 theo cách trên và tiếp tục đến khi ta

có 1 máy luận lý hiểu được ngôn ngữ Nm rất gần gũi với con người,

dễ dàng miêu tả giải thuật của bài toán cần giải quyết

 Nhưng qui trình trên chưa có điểm dừng, với yêu cầu ngày càng cao

và kiến thức ngày càng nhiều, người ta tiếp tục định nghĩa những ngôn ngữ mới với tập lệnh ngày càng gần gũi hơn với con người để

miêu tả giải thuật càng dễ dàng, gọn nhẹ và trong sáng hơn

Các khái nim c ơ bn v máy tính s

Trang 10

 Ngôn ngữ máy vật lý là loại ngôn ngữ thấp nhất mà người lập trình bình thường có thể dùng được Các lệnh và tham số của lệnh được miêu tả bởi các số binary (hay hexadecimal - sẽ được miêu tả chi tiết trong chương 2) Đây là loại ngôn ngữ mà máy vật lý có thể hiểu trực

tiếp, nhưng con người thì gặp nhiều khó khăn trong việc viết và bảo trì

chương trình ở cấp này

 Ngôn ngữ assembly rất gần với ngôn ngữ máy, những lệnh cơ bản

nhất của ngôn ngữ assembly tương ứng với lệnh máy nhưng được

biểu diễn dưới dạng gợi nhớ Ngoài ra, người ta tăng cường thêm khái

niệm "lệnh macro" để nâng sức mạnh miêu tả giải thuật

 Ngôn ngữ cấp cao theo trường phái lập trình cấu trúc như Pascal, C,

Tập lệnh của ngôn ngữ này khá mạnh và gần với tư duy của người bình thường

 Ngôn ngữ hướng đối tượng như C++, Visual Basic, Java, C#, cải tiến

phương pháp cấu trúc chương trình sao cho trong sáng, ổn định, dễ

phát triển và thay thế linh kiện

Các cp độ ngôn ng lp trình

Trang 11

1.2 Lch s phát trin máy tính s

 Máy tính xu ấ t hi ệ n t ừ r ấ t lâu theo nhu c ầ u buôn bán và trao đổ i

ti ề n t ệ

 Bàn tính tay abacus là d ạ ng s ơ khai c ủ a máy tính

5 đơ n v ị

1 đơ n v ị

Trang 12

Các th ế h máy tính s

Đ èn

đ in t

(1945 - 1955)

ENIAC (1946) 18.000 bóng đ èn

1500 r ờ le

30 t ấ n

140 KW

Von Neumann (1945)

B ộ nh ớ dây tr ễ , t ĩ nh

đ i ệ n Gi ấ y, phi ế u đụ c

l ổ B ă ng t ừ

Transistors

(1955 - 1965) PDP-1 (1961)

B ộ nh ớ xuy ế n t ừ

B ă ng t ừ , tr ố ng t ừ ,

đĩ a t ừ

IC

(1965 - 1980)

IBM 360 (1965)

Intel 8080 (1974)

đượ c xem nh ư CPU đầ u tiên đượ c tích h ợ p trên 1 chip

?

(1980 - ????)

80x86 (1978)

(1642 - 1945)

Blaise Pascal (Pháp-1642)

Herman Hollerith l ậ p IBM

(International Business

Machine) ở M ỹ - 1890

Charles Babbage (Anh-1830)

Trang 13

 Các lệnh của chương trình (code) sẽ truy xuất (đọc và/hoặc ghi) thông tin (dữ liệu)

 Chương trình giải quyết bài toán nào đó có thể truy xuất nhiều dữ liệu khác nhau với tính chất rất đa dạng Để truy xuất 1 dữ liệu cụ thể, ta

cần 3 thông tin về dữ liệu đó:

- tên nhn dng (identifier) xác định vị trí của dữ liệu

- kiu d liu (type) miêu tả cấu trúc của dữ liệu

- tm vc truy xut (visibility) xác định các lệnh được phép truy

xuất dữ liệu tương ứng

 Chương trình cổ điển = dữ liệu + giải thuật

 Chương trình con (function, subroutine, ) là 1 đoạn code thực hiện

chức năng được dùng nhiều lần ở nhiều vị trí trong chương trình,

được nhận dạng thông qua 1 tên gọi Chương trình con cho phép cấu trúc chương trình, sử dụng lại code

1.3 D liu & ch ươ ng trình

Trang 14

Ch ươ ng trình = c ấ u trúc d ữ li ệ u + gi ả i thu ậ t

entry 'start'

global data

module

(package)

local data

of module

local data

of function

Cu trúc 1 ch ươ ng trình c ổ đ in

Trang 15

Gi ả i mã chu ỗ i bit ra d ạ ng

ng ườ i, thi ế t b ị

ngoài hi ể u đượ c

X ử lý d ữ li ệ u

d ạ ng chu ỗ i bit

Mã hóa d ữ li ệ u thành d ạ ng chu ỗ i bit

D ữ li ệ u c ầ n x ử lý b ằ ng

máy tính (ch ữ s ố , hình

ả nh, âm thanh, )

K ế t qu ả có đượ c sau khi x ử lý b ằ ng máy tính (ch ữ s ố , hình ả nh, âm

thanh, )

CDROM, đĩ a, b ă ng,

L ư u gi ữ d ữ

li ệ u s ố để

dùng l ạ i

Máy tính s ố

1.4 Qui trình tng quát gii quy ế t bài toán bng máy tính s

Trang 16

B nh

(Memory)

Đơ n v x

(CPU)

Các thi ế t b

vào ra (I/O)

Bus giao tiếp

chứa code và data

đang thực thi

thực thi từng lệnh

của chương trình

giao tiếp với bên ngoài (thường là người) để

nhập/xuất tin

Mô hình máy tính s Von Neumann

Trang 17

bàn phím

màn hình

chu ộ t

thùng máy loa

Hình dng vt lý ca vài máy tính

Trang 18

Trong quá khứ, phương pháp thường sử dụng để phân tích bài toán là

phương pháp từ-trên-xuống (top-down analysis)

Nội dung của phương pháp này là xét xem, muốn giải quyết vấn đề nào

đó thì cần phải làm những công việc nhỏ hơn nào Mỗi công việc nhỏ hơn tìm được lại được phân thành những công việc nhỏ hơn nữa, cứ như vậy cho đến khi những công việc phải làm là những công việc thật đơn giản,

có thể thực hiện dễ dàng

Thí dụ việc học lấy bằng kỹ sư CNTT khoa CNTT ĐHBK TP.HCM có thể

bao gồm 9 công việc nhỏ hơn là học từng học kỳ từ 1 tới 9, học học kỳ i

là học n môn học của học kỳ đó, học 1 môn học là học m chương của môn đó,

Hình vẽ của slide kế cho thấy trực quan của việc phân tích top-down

1.5 Ph ươ ng pháp phân tích t-trên-xung

Trang 19

Ph ươ ng pháp phân tích t-trên-xung

Công việc cần

giải quyết (A)

Công việc

A1

Công việc

A2

Công việc

An

Công việc

A11

Công việc

A12

Công việc

A1n

Công việc

An1

Công việc

An2

Công việc

Ann

chia thành nhiu công

vic nh hơn, đơn gin để

gii quyết hơn

Các công vi ệ c đủ nh ỏ

để đượ c miêu t ả b ằ ng

1 l ệ nh hay 1 l ờ i g ọ i

hàm/th ủ t ụ c đ ã có

Trang 20

Công việc cần giải quyết

≡ đối tượng phức hợp A

Đối tượng

A1

Đối tượng

A2

Đối tượng

An

Đối tượng

A11

Đối tượng

A12

Đối tượng

A1n

Đối tượng

An1

Đối tượng

An2

Đối tượng

Ann

Ph ươ ng pháp phân tích t-trên-xung

Ngày đăng: 30/01/2020, 18:12

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm