Chương 1 Tổng quan về lập trình máy tính

 Lập trình máy tính  Gọi tắt là lập trình (programming).  Nghệ thuật cài đặt một hoặc nhiều thuật toán trừu tượng có liên quan với nhau bằng một ngôn ngữ lập trình để tạo ra một chương trình máy tính.  Thuật toán  Là tập hợp (dãy) hữu hạn các chỉ thị (hành động) được bố trí theo một trình tự xác định được đề ra trước nhằm giải quyết một bài toán cụ thể nào đó.

pdf46 trang | Chia sẻ: lylyngoc | Lượt xem: 1820 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Chương 1 Tổng quan về lập trình máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Tổng quan về lập trình máy tính Chương 1: Giảng viên: Ths. Nguyễn Thị Khiêm Hòa 1 Nội dung Các khái niệm về lập trình máy tính 1 Các mô hình phát triển phần mềm 2 Các phương pháp tiếp cận trong lập trình 3 Tổng quan về lập trình hướng đối tượng 4 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Ngôn ngữ C# và nền tảng .NET 5 2 Các khái niệm lập trình Các khái niệm cơ bản 1 Các bước xây dựng chương trình 2 Biểu diễn thuật toán 3 Cài đặt thuật toán bằng NNLT 4 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM 3 Các khái niệm cơ bản  Lập trình máy tính  Gọi tắt là lập trình (programming).  Nghệ thuật cài đặt một hoặc nhiều thuật toán trừu tượng có liên quan với nhau bằng một ngôn ngữ lập trình để tạo ra một chương trình máy tính.  Thuật toán  Là tập hợp (dãy) hữu hạn các chỉ thị (hành động) được bố trí theo một trình tự xác định được đề ra trước nhằm giải quyết một bài toán cụ thể nào đó. Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM 4 Các khái niệm cơ bản  Ví dụ  Thuật toán giải PT bậc nhất: ax + b = 0 (a, b là các số thực). • Nếu a = 0 • b = 0 thì phương trình có nghiệm bất kì. • b ≠ 0 thì phương trình vô nghiệm. • Nếu a ≠ 0 • Phương trình có nghiệm duy nhất x = -b/a Đầu vào: a, b thuộc R Đầu ra: nghiệm phương trình ax + b = 0 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM 5 Các tính chất của thuật toán  Bao gồm 5 tính chất sau:  Tính đúng đắn  Tính hữu hạn  Tính xác định  Tính khả thi  Tính phổ dụng 6 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Các bước xây dựng chương trình Xác định vấn đề - bài toán Lựa chọn phương pháp giải Cài đặt chương trình Hiệu chỉnh chương trình Thực hiện chương trình Lỗi cú pháp Lỗi ngữ nghĩa Biểu diễn bằng: • Ngôn ngữ tự nhiên • Lưu đồ - Sơ đồ khối • Mã giả Xây dựng thuật toán/ thuật giải 7 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Sử dụng ngôn ngữ tự nhiên 1. Nhập 2 số thực a và b. 2. Nếu a = 0 thì 2.1. Nếu b = 0 thì 2.1.1. Phương trình vô số nghiệm 2.1.2. Kết thúc thuật toán. 2.2. Ngược lại 2.2.1. Phương trình vô nghiệm. 2.2.2. Kết thúc thuật toán. 3. Ngược lại 3.1. Phương trình có nghiệm. 3.2. Giá trị của nghiệm đó là x = -b/a 3.3. Kết thúc thuật toán. Đầu vào: a, b thuộc R Đầu ra: nghiệm phương trình ax + b = 0 8 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Sử dụng lưu đồ - sơ đồ khối Khối giới hạn Chỉ thị bắt đầu và kết thúc. Khối vào ra Nhập/Xuất dữ liệu. Khối lựa chọn Tùy điều kiện sẽ rẽ nhánh. Khối thao tác Ghi thao tác cần thực hiện. Đường đi Chỉ hướng thao tác tiếp theo. 9 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Sử dụng lưu đồ - sơ đồ khối Bắt đầu Đọc a,b a = 0 Tính x = -b/a “Vô nghiệm” b = 0 “Vô số nghiệm” Kết thúc Kết quả x S Đ Đ S 10 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Sử dụng mã giả  Vay mượn ngôn ngữ nào đó (ví dụ Pascal) để biểu diễn thuật toán. If a = 0 Then Begin If b = 0 Then Xuất “Phương trình vô số nghiệm” Else Xuất “Phương trình vô nghiệm” End Else Xuất “Phương trình có nghiệm x = -b/a” Đầu vào: a, b thuộc R Đầu ra: nghiệm phương trình ax + b = 0 11 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Sử dụng ngôn ngữ lập trình  Dùng một ngôn ngữ lập trình để thực hiện cài đặt (C#). 12 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Các mô hình phát triển phần mềm  Mô hình thác nước (Waterfall model)  Mô hình thăm dò (Spiral model)  Tạo nguyên mẫu  Biến đổi hình thức  Tập hợp các thành phần dùng lại 13 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Mô hình thác nước  Ưu điểm:  Thích hợp cho những dự án lớn.  Quản lý dự án sẽ dễ dàng và thuận tiện.  Nhược điểm:  Thiếu sự trao đổi giữa người sử dụng và nhóm phát triển.  Không cho phép thay đổi nhiều theo các đặc tả yêu cầu của hệ thống. 14 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Mô hình thăm dò Phát triển hệ thống nhanh, sửa lỗi đến khi hoàn thiện.  Ưu điểm:  Linh hoạt trong việc thay đổi yêu cầu.  Nhược điểm:  Các pha bị lặp lại quá nhiều lần. 15 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Tạo nguyên mẫu (prototype) Phát triển hệ thống cho người sử dụng dùng rồi tạo ra nguyên mẫu  Ưu điểm:  Linh hoạt trong việc thay đổi yêu cầu.  Rút ngắn thời gian phát triển.  Nhược điểm:  Không thích hợp trong dự án lớn. 16 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Các cách tiếp cận trong lập trình  Lập trình tuần tự: Assembler, basic  Chương trình quá dài, khó nhớ  Khó kiểm soát lỗi 17 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Các cách tiếp cận trong lập trình  Lập trình hướng cấu trúc  Ưu điểm Phân chia chương trình thành các module (Thủ tục, hàm) Dùng lại các đoạn chương trình Chương trình = CTDL + giải thuật  Nhược điểm Thiếu sự nhất quán khi trao đổi thông tin dùng chung Tính tái sử dụng thấp 18 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Lập trình hướng đối tượng (Object Oriented Programming – OOP)  Lập trình hướng đối tượng Là phương pháp lập trình thực hiện việc hợp nhất thành phần dữ liệu và thao tác thành một, cho phép chúng ta định nghĩa một đối tượng (Object) theo cách mà chúng ta nghĩ về thế giới quanh mình (data) và gắn các hành động cụ thể trên đối tượng đó (Method).  Đối tượng (Object) Mô tả một thực thể hay một quan hệ trong thế giới thực Đối tượng = Dữ liệu + Hành vi 19 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Hành vi - Tăng giây - Tăng phút - Tăng giờ Dữ liệu - Giây - Phút - Giờ Lập trình hướng đối tượng 20 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Một số nguyên tắc cơ bản  Trừu tượng hóa (Abstraction) Mô tả bài toán với những khía cạnh quan trọng nhất 21 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Một số nguyên tắc cơ bản  Trừu tượng hóa Đơn hàng Tạo đơn hàng Cập nhật đơn hàng Tổng giá trị Những công việc thực hiện trên đối tượng đơn hàng là gì?” 22 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Một số nguyên tắc cơ bản  Đóng gói (Encapsulation) Là sự che giấu dữ liệu cấm truy xuất trực tiếp từ bên ngoài mà phải thông qua giao diện người dùng nhắm bảo vệ dữ liệu và tăng tính mềm dẻo cho hệ thống. 23 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Một số nguyên tắc cơ bản  Đóng gói (Encapsulation) Các phương thức chung của đơn hàng Lớp đối tượng Bên ngoài TaoDH CapnhatDH GiatriDH DonHang int MaDH int MaKH Tinh_gia(); public: TaoDH( ) CapnhatDH( ) GiatriDH( ) 24 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Một số nguyên tắc cơ bản  Đóng gói (Encapsulation) Hmm... muốn thay đổi Tinh_Gia thành TinhTongGia GiatriDH() gọi phương thức Tinh_gia() DonHang int MaDH int MaKH Tinh_gia(); public: TaoDH( ) CapnhatDH( ) GiatriDH( ) 25 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Một số nguyên tắc cơ bản  Đóng gói (Encapsulation) GiatriDH() gọi phương thức TinhTonggia() DonHang int MaDH int MaKH TinhTonggia(); public: TaoDH( ) CapnhatDH( ) GiatriDH( ) Dễ thôi mà, không ảnh hưởng đến người dùng 26 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Một số nguyên tắc cơ bản  Kế thừa (Inherritance)  Là sự chia sẻ các thuộc tính (Data) và phương thức (Method) của các lớp cơ sở trên quan niệm phân cấp (Hierarchy) nhằm tăng mức độ trừu tượng hoá và giảm sự trùng lắp thông tin.  Tăng tính tái sử dụng của hệ thống 27 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Một số nguyên tắc cơ bản Phieukho Phieunhapkho Phieuxuatkho Phieuxuatkho_ kiemvanchuyennoibo Đơn hàng sử dụng thông tin vận chuyển (Kết hợp) Phieunhapkho và Phieuxuatkho kế thừa từ Phieukho  Kế thừa (Inherritance) 28 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Phát triển hệ thống hướng đối tượng  Kiến trúc n_Tier và n_Layer Browsers Data tier Business tier Web Server Local clients Presentation tier Data Business logic Data Access Web Server GUI Application Web L o g ic a l v ie w 29 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Vai trò của các layer  GUI (Presentation) Layer: Nhập liệu và trình bày dữ liệu, có thể bao gồm các bước kiểm tra dữ liệu trước khi gọi Business Logic Layer.  Business Logic Layer: Kiểm tra các yêu cầu nghiệp vụ trước khi cập nhật dữ liệu, quản lý các Transaction, quản lý các concurrent access.  Data Access Layer: Kết nối CSDL, tìm kiếm, thêm, xóa, sửa,…trên CSDL 30 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Tính chất mô hình 3_Layer  Giảm sự kết dính giữa các thực thể phần mềm (decoupling)  Tái sử dụng  Chia sẻ trách nhiệm 31 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Môi trường phần mềm trước đây  Đối với người phát triển ứng dụng  Luôn quan tâm đến hệ điều hành  Luôn quan tâm đến ngôn ngữ  Không tích hợp được những ngôn ngữ khác nhau  Bất lợi của DLL và đăng ký vào registry  Phải xác định thiết bị truy cập  Khó khăn khi phát triển ứng dụng phân tán  Đối với người dùng  Bất lợi khi cài đặt ứng dụng  Các trang web không tương tác với nhau 32 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Nền tảng công nghệ .NET 33 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Multimedia: Giới thiệu Microsoft .Net 34 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Kiến trúc .NET framwork 35 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Kiến trúc .NET framwork 36 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Kiến trúc .NET framwork VB C++ C# … Intermediate Languge CLR for Linux CLR for Windows CLR for Unix .NET Compiler Linux Native code Windows Native code Unix Native code 37 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Multimedia: Giới thiệu Microsoft .Net framework 38 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Tính năng của visual studio .NET 39 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Giới thiệu C#  Xây dựng dựa trên việc kế thừa C++ và Java  Dễ sử dụng hơn C++  Là ngôn ngữ hướng đối tượng  Ngôn ngữ đơn giản, an toàn, ít từ khóa (80 từ khóa) 40 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Viết một ứng dụng trên Console 41 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Viết một ứng dụng trên Console  Viết đoạn mã sau: using System; class Hello { static void Main( ) { //Console from the System namespace Console.WriteLine("Hello World"); /* Use the system console object as explained in the text */ Console.ReadLine(); } } 42 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Viết một ứng dụng trên Console  Sau khi viết xong, nhấn Ctrl+F5 để chạy chương trình  Cũng có thể soạn thảo trên Notepad, lưu file có phần mở rộng là .cs, sau đó từ dấu nhắc DOS command promt, gõ lệnh: csc .cs  43 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Tóm tắt  Phát triển hệ thống hướng đối tượng  Khái niệm  Nguyên tắc  Kiến trúc 3-layer 44 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Tóm tắt  .Net là một nền tảng phát triển phần mềm  Đa ngôn ngữ  Độc lập với hệ điều hành  Sử dụng ngôn ngữ trung gian IL  Hướng đến các ứng dụng phân tán  Phát triển ứng dụng nhanh  Triển khai ứng dụng dễ dàng  An toàn  Hướng đối tượng  Dựa trên nền tảng component  CLR (gồm CTS, CLS ), FCL là nền tảng 45 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM Q & A 46
Tài liệu liên quan