Bài giảng Tin học - Chương 1: Phương pháp giải quyết bài toán bằng máy tính số cung cấp cho người học các kiến thức: 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. Mời các bạn cùng tham khảo.
MƠN TIN HỌC Đối tượng : SV đại học quy tồn trường Nội dung gồm 12 chương : Phương pháp giải tốn máy tính số Thể liệu máy tính số Tổng quát lập trình VB Qui trình thiết kế trực quan giao diện Các kiểu liệu VB Các lệnh định nghĩa & khai báo 10 Biểu thức VB Các lệnh thực thi VB Định nghĩa thủ tục & sử dụng Tương tác 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 Tài liệu tham khảo : Tập slide giảng & thực hành môn học CD MSDN Microsoft Visual Studio Môn : Tin học Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide MÔN TIN HỌC Chương PHƯƠNG PHÁP GIẢI QUYẾT BÀI TỐN BẰNG MÁY TÍNH SỐ 1.1 Các khái niệm máy tính số 1.2 Lịch sử phát triển máy tính số 1.3 Dữ liệu & chương trình 1.4 Qui trình tổng quát giải tốn máy tính số 1.5 Phân tích tốn từ-trên-xuống Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 1.1 Các khái niệm máy tính số Con người thơng minh động vật khác nhiều Trong sống, họ chế tạo ngày nhiều công cụ, thiết bị để hỗ trợ hoạt động Các cơng cụ, thiết bị người chế tạo ngày tinh vi, phức tạp thực nhiều công việc trước Mỗi công cụ, thiết bị thường thực vài cơng việc cụ thể Thí dụ, chổi để quét, radio để bắt nghe đài audio Máy tính số (digital computer) thiết bị, thay thực số chức cụ thể, sát với nhu cầu đời thường người, thực số hữu hạn chức (tập lệnh), lệnh sơ khai chưa giải trực tiếp nhu cầu đời thường người Cơ chế thực lệnh tự động, lệnh định lệnh lệnh cuối Danh sách lệnh thực gọi chương trình Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide Các khái niệm máy tính số Các lệnh mà máy hiểu thực được gọi lệnh máy Ta dùng ngôn ngữ để miêu tả lệnh Ngơn ngữ lập trình cấu thành từ yếu tố yếu : cú pháp ngữ nghĩa Cú pháp qui định trật tự kết hợp phần tử để cấu thành lệnh (câu), ngữ nghĩa cho biết ý nghĩa lệnh Bất kỳ cơng việc (bài tốn) ngồi đời chia thành trình tự nhiều cơng việc nhỏ Trình tự cơng việc nhỏ gọi giải thuật giải cơng việc ngồi đời Mỗi cơng việc nhỏ chia nhỏ cịn phức tạp, ⇒ cơng việc ngồi đời miêu tả trình tự lệnh máy (chương trình ngơn ngữ máy) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide Các khái niệm máy tính số Vấn đề mấu chốt việc dùng máy tính giải cơng việc ngồi đời lập trình (được hiểu nơm na qui trình xác định trình tự lệnh máy để thực công việc) Cho đến nay, lập trình cơng việc người (với trợ giúp ngày nhiều máy tính) Với cơng nghệ phần cứng nay, ta chế tạo máy tính mà tập lệnh máy sơ khai, lệnh máy thực công việc nhỏ đơn giản ⇒ công việc ngồi đời thường tương đương với trình tự lớn (hàng triệu) lệnh máy ⇒ Lập trình ngơn ngữ máy phức tạp, tốn nhiều thời gian, công sức, kế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ả ngơn ngữ lập trình) cao cấp gần gủi với người Ta thường thực máy máy vật lý + chương trình dịch Có loại chương trình dịch : trình biên dịch (compiler) trình thơng dịch (interpreter) Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải toán máy tính số Slide Trình biên dịch (Compiler) Chương trình biên dịch nhận chương trình nguồn (thường viết ngơn ngữ cấp cao) tạo chương trình đối tượng tương ứng chức thường viết ngôn ngữ cấp thấp (thường ngơn ngữ máy) Nếu có lỗi xảy lúc dịch, trình biên dịch báo lỗi, cố gắng tìm vị trí tiếp tục dịch… Nhờ vậy, lần dịch chương trình, ta xác định nhiều lỗi có Sau lần dịch, khơng có lỗi, trình biên dịch tạo file chứa chương trình đối tượng (thí dụ file chương trình khả thi *.exe Windows) Để chạy chương trình, người dùng cần kích hoạt file khả thi (người dùng khơng biết khơng cần quan tâm đến file chương trình nguồn) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide Trình thơng dịch (Interpreter) Chương trình thơng dịch khơng tạo lưu giữ chương trình đối tượng Mỗi lần thơng dịch chương trình nguồn lần cố gắng chạy chương trình theo cách thức sau : dịch chuyển sang mã thực thi lệnh nhờ máy chạy đoạn lệnh tương ứng Nếu có lỗi báo lỗi, khơng có lỗi thơng dịch lệnh hết chương trình Như vậy, lần thơng dịch chương trình, trình thơng dịch thơng dịch lệnh luồng thi hành cần thiết không thông dịch hết lệnh chương trình nguồn Do đó, sau thơng dịch thành cơng chương trình, ta khơng thể kết luận chương trình khơng có lỗi Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide So sánh trình biên dịch & trình thơng dịch Mọi hoạt động xử lý mã nguồn chương trình (kiểm tra lỗi, dịch lệnh đối tượng tương đương, ) chương trình biên dịch thực để tạo chương trình đối tượng Do sau dịch file mã nguồn chương trình, khơng có lỗi, ta 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 trình thực thi chương trình tách rời : biên dịch lần chạy nhiều lần cần cập nhật version chương trình Chương trình thơng dịch thơng dịch lệnh theo luồng thi hành chương trình điểm nhập chương trình, thơng dịch lệnh gồm hoạt động : biên dịch lệnh thực thi lệnh kết Nếu đoạn lệnh cần thực thi lặp lại trình thơng dịch phải thơng dịch lại tất đoạn lệnh Điều làm cho việc chạy chương trình chế độ thơng dịch khơng hiệu Việc chạy chương trình chế thơng dịch địi hỏi chương trình thơng dịch chương trình ứng dụng cần chạy phải tồn đồng thời nhớ máy tính, có nguy chạy khơng chương trình lớn tài ngun máy khơng đủ cho chương trình thơng dịch chương trình ứng dụng Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải toán máy tính số Slide Các khái niệm máy tính số Gọi ngơn ngữ máy vật lý N0 Trình biên dịch ngơn ngữ N1 sang ngôn ngữ N0 nhận đầu vào chương trình viết ngơn ngữ N1, phân tích lệnh N1 chuyển thành danh sách lệnh ngôn ngữ N0 có chức 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 lệnh ngôn ngữ N1 không cao so với lệnh ngôn ngữ N0 Sau có máy luận lý hiểu ngơn ngữ luận lý N1, ta định nghĩa thực máy luận lý N2 theo cách tiếp tục đến ta có máy luận lý hiểu ngôn ngữ Nm gần gũi với người, dễ dàng miêu tả giải thuật toán cần giải Nhưng qui trình chưa có điểm dừng, với yêu cầu ngày cao kiến thức ngày nhiều, người ta tiếp tục định nghĩa ngôn ngữ với tập lệnh ngày gần gũi với người để miêu tả giải thuật dễ dàng, gọn nhẹ sáng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide Các cấp độ ngơn ngữ lập trình Ngơn ngữ máy vật lý loại ngơn ngữ thấp mà người lập trình bình thường dùng Các lệnh tham số lệnh miêu tả số binary (hay hexadecimal - miêu tả chi tiết chương 2) Đây loại ngôn ngữ mà máy vật lý hiểu trực tiếp, người gặp nhiều khó khăn việc viết bảo trì chương trình cấp Ngơn ngữ assembly gần với ngôn ngữ máy, lệnh ngôn ngữ assembly tương ứng với lệnh máy biểu diễn 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 Pascal, C, Tập lệnh ngôn ngữ mạnh gần với tư người bình thường Ngôn ngữ hướng đối tượng C++, Visual Basic, Java, C#, cải tiến phương pháp cấu trúc chương trình cho sáng, ổn định, dễ phát triển thay linh kiện Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 10 1.2 Lịch sử phát triển máy tính số Máy tính xuất từ lâu theo nhu cầu buôn bán trao đổi tiền tệ Bàn tính tay abacus dạng sơ khai máy tính đơn vị đơn vị Mơn : Tin học Chương 1: Phương pháp giải toán máy tính số Slide 11 Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Các hệ máy tính số Blaise Pascal (Pháp-1642) Charles Babbage (Anh-1830) ENIAC (1946) 18.000 bóng đèn 1500 rờ le 30 140 KW Intel 8080 (1974) xem CPU tích hợp chip IBM 360 (1965) Von Neumann (1945) Cơ Đèn điện tử PDP-1 (1961) 80x86 (1978) Transistors IC (1642 - 1945) Herman Hollerith lập IBM (International Business Machine) Mỹ - 1890 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM (1945 - 1955) Bộ nhớ dây trễ, tĩnh điện Giấy, phiếu đục lổ Băng từ ? (1955 - 1965) (1965 - 1980) (1980 - ????) Bộ nhớ xuyến từ Băng từ, trống từ, đĩa từ Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 12 1.3 Dữ liệu & chương trình Các lệnh chương trình (code) truy xuất (đọc và/hoặc ghi) thông tin (dữ liệu) Chương trình giải tốn truy xuất nhiều liệu khác với tính chất đa dạng Để truy xuất liệu cụ thể, ta cần thông tin liệu : - tên nhận dạng (identifier) xác định vị trí liệu - kiểu liệu (type) miêu tả cấu trúc liệu - tầm vực truy xuất (visibility) xác định lệnh phép truy xuất liệu tương ứng Chương trình cổ điển = liệu + giải thuật Chương trình (function, subroutine, ) đoạn code thực chức dùng nhiều lần nhiều vị trí chương trình, nhận dạng thơng qua tên gọi Chương trình cho phép cấu trúc chương trình, sử dụng lại code Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 13 Cấu trúc chương trình cổ điển Chương trình = cấu trúc liệu + giải thuật module (package) entry 'start' global data local data of module local data of function Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 14 1.4 Qui trình tổng quát giải tốn máy tính số Kết có sau xử lý máy tính (chữ số, hình ảnh, âm thanh, ) Dữ liệu cần xử lý máy tính (chữ số, hình ảnh, âm thanh, ) CDROM, đĩa, băng, Mã hóa liệu thành dạng chuỗi bit Lưu giữ liệu số để dùng lại Giải mã chuỗi bit dạng người, thiết bị hiểu Xử lý liệu dạng chuỗi bit Máy tính số Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 15 Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Mơ hình máy tính số Von Neumann chứa code data thực thi Bộ nhớ (Memory) thực thi lệnh chương trình Đơn vị xử lý (CPU) giao tiếp với bên (thường người) để nhập/xuất tin Các thiết bị vào (I/O) Bus giao tiếp Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải toán máy tính số Slide 16 Hình dạng vật lý vài máy tính hình loa bàn phím Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM thùng máy chuột Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 17 1.5 Phương pháp phân tích từ-trên-xuống Trong khứ, phương pháp thường sử dụng để phân tích tốn phương pháp từ-trên-xuống (top-down analysis) Nội dung phương pháp xét xem, muốn giải vấn đề cần phải làm cơng việc nhỏ Mỗi cơng việc nhỏ tìm lại phân thành công việc nhỏ nữa, công việc phải làm cơng việc thật đơn giản, thực dễ dàng Thí dụ việc học lấy kỹ sư CNTT khoa CNTT ĐHBK TP.HCM bao gồm công việc nhỏ học học kỳ từ tới 9, học học kỳ i học n mơn học học kỳ đó, học mơn học học m chương mơn đó, Hình vẽ slide kế cho thấy trực quan việc phân tích top-down Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 18 Phương pháp phân tích từ-trên-xuống Cơng việc cần giải (A) chia thành nhiều công việc nhỏ hơn, đơn giản để giải Công việc A1 Công việc A11 Công việc A2 Công việc A12 Các công việc đủ nhỏ để miêu tả lệnh hay lời gọi hàm/thủ tục có Cơng việc A1n Công việc An Công việc An1 Công việc An2 Công việc Ann Môn : Tin học Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Chương 1: Phương pháp giải toán máy tính số Slide 19 Phương pháp phân tích từ-trên-xuống Công việc cần giải ≡ đối tượng phức hợp A Đối tượng A1 Đối tượng A11 Đối tượng A2 Đối tượng A12 Đối tượng A1n Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Đối tượng An Đối tượng An1 Đối tượng An2 Đối tượng Ann Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 20 10 ... ENIAC (19 46) 18 .000 bóng đèn 15 00 rờ le 30 14 0 KW Intel 8080 (19 74) xem CPU tích hợp chip IBM 360 (19 65) Von Neumann (19 45) Cơ Đèn điện tử PDP -1 (19 61) 80x86 (19 78) Transistors IC (16 42 - 19 45)... Business Machine) Mỹ - 18 90 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM (19 45 - 19 55) Bộ nhớ dây trễ, tĩnh điện Giấy, phiếu đục lổ Băng từ ? (19 55 - 19 65) (19 65 - 19 80) (19 80 - ????) Bộ nhớ... vị Môn : Tin học Chương 1: Phương pháp giải tốn máy tính số Slide 11 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Các hệ máy tính số Blaise Pascal (Pháp -1 6 42) Charles Babbage (Anh -1 8 30)