Bài giảng Chương 1: Phương pháp giải quyết bài toán bằng máy tính số tập trung trình bày: 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; quy 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ƠN TIN HỌC Đối tượng : SV đại học quy tồn trườ ng Nội dung gồm 12 chươ ng : Biểu thức VB Phươ ng pháp giải tốn máy tính số Các lệnh thực thi VB Thể liệu máy tính Định nghĩa thủ tục & sử dụng số 10 Tươ ng tác ngườ i dùng & Tổng quát lập trình VB chươ ng trình Qui trình thiết kế trực quan giao 11 Quản lý hệ thống file diện 12 Linh kiện phần mềm & truy Các kiểu liệu VB xuất database Các lệnh định nghĩa & khai báo 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 Khoa Công nghệ Thông tin Trư ng ĐH Bách Khoa Tp.HCM Môn : Tin học 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 qt 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 toá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 đượ c vài công việc cụ thể Thí dụ, chổi để qt, 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 đượ c 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 đượ c thực đượ 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 toá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 đượ 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 đượ c chia thành trình tự nhiều cơng việc nhỏ Trình tự công việc nhỏ đượ c gọi giải thuật giải cơng việc ngồi đời Mỗi cơng việc nhỏ đượ c chia nhỏ phức tạp, cơng việc ngồi đời đượ c 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 đượ c 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 đượ c 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 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, ) đề u đượ c 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 cho đế 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 bắt đầ u từ đ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 đượ c 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 đượ c chươ ng trình lớn tài nguyên 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 đượ c 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 đượ c 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 đượ c 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 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 để Môn : Tin học miêu tảngh giệảThông i thu sáng Khoa Công tin ật dễ dàng, gọn nhẹ Chương 1: Phương pháp giải tốn máy tính số Trường ĐH Bách Khoa Tp.HCM 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ác lệnh tham số lệnh đượ c miêu tả số binary (hay hexadecimal - đượ c 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 đượ 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 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ị 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 11 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 đượ c 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 đượ 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 qt 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 Giải mã chuỗi bit dạng ngườ i, thiết bị hiểu Lưu giữ liệu số để dùng lại Xử lý liệu dạng chuỗi bit Máy tính số 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 15 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 thùng máy loa bàn phím Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 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 toá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 đượ c lại đượ c 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 A12 Các công việc đủ nhỏ để miêu tả lệnh hay lời gọi hàm/thủ tục có Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Công việc A2 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 Chương 1: Phương pháp giải tố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 A12 Đối tượng A2 Đố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 ... học Chương 1: Phương pháp giải toán máy tính số Slide 14 1.4 Qui trình tổng qt 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ố, ... 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... 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ố 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 (đượ