intTypePromotion=1

Bài giảng Cơ sở lập trình: Chương 1 - Phạm Thanh An

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:25

0
19
lượt xem
1
download

Bài giảng Cơ sở lập trình: Chương 1 - Phạm Thanh An

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

"Bài giảng Cơ sở lập trình - Chương 1: Tổng quan về lập trình cho MTĐT" với các kiến thức khái niệm về chương trình, ngôn ngữ lập trình, giải thuật; giới thiệu về top down design; mô hình phát triển phần mềm; các cách tiếp cận trong lập trình; tổng quan về lập trình hướng đối tượng; viết các chương trình đơn giản...

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cơ sở lập trình: Chương 1 - Phạm Thanh An

  1. 4/10/2012 Chương 1 Tổng quan về lập trình cho MTĐT Giảng viên: ThS. Phạm Thanh An Khoa công nghệ thông tin Đại học Ngân hàng TP. Hồ Chí Minh Nội dung trình bày  Khái niệm về chương trình, ngôn ngữ lập trình, giải thuật  Giới thiệu về Top down Design  Mô hình phát triển phần mềm  Các cách tiếp cận trong lập trình  Tổng quan về lập trình hướng đối tượng  Kiến trúc .NET Framework và C#  Viết các chương trình đơn giản Chương trình  Computer program - Là tập hợp các câu lệnh (chỉ dẫn) được liệt kê theo một trình tự nhất định nhằm giải quyết một vấn đề.  Chương trình máy tính được viết trên một ngôn ngữ lập trình.  Theo Niklaus Wirth Chương trình = Cấu trúc dữ liệu + Giải thuật 1
  2. 4/10/2012 Giải thuật - Algorithm  Giải thuật (Thuật toán - Thuật giải)  Là dãy các câu lệnh (chĩ dẫn) chặt chẽ và rõ ràng, xác định một trình tự các thao tác trên một số đối tượng nào đó sao cho sau một số hữu hạn bước thực hiện ta đạt được kết quả mong muốn Câu lệnh, chương trình, phần mềm Software Program 1 Program 2 Commands Commands Commands Ngôn ngữ lập trình  Programming language - Ngôn ngữ lập trình là ngôn ngữ để viết chương trình.  Ngôn ngữ lập trình bao gồm hệ thống các ký hiệu, các qui ước về ngữ pháp và ngữ nghĩa, dùng để xây dựng thành các chương trình cho máy tính.  Có nhiều loại ngôn ngữ lập trình. 2
  3. 4/10/2012 Các lớp Ngôn ngữ lập trình 5GLs Artificial intelligence 4GLs ORACLE, SEQUEL, INGRES, ... HIGH-LEVEL ForTran, COBOL, C, C++, LANGUAGES LISP, Pascal, Java, ... ASSEMBLER LANGUAGES Hợp ngữ - Assembler MACHINE CODE Nguyên lý Von Neumann  Bao gồm 3 bước: Input –Process -Output Các bước lập trình Xác định yêu cầu bài toán Phân tích bài toán Thiết kế Giải thuật Cài đặt Kiểm thử Bảo trì và Cập nhật 3
  4. 4/10/2012 Mô tả giải thuật  Ngôn ngữ tự nhiên  Sơ đồ khối (flow chart)  Mã giả (Pseudocode) Mô tả bằng ngôn ngữ tự nhiên  Input: Vào a, b thuộc tập R  Ra: Nghiệm phương trình ax + b =0 1. Nhập 2 số thực a và b 2. Nếu a =0 thì 2.1. Nếu b = 0, 2.1.1. Phương trinh vô số nghiệm 2.1.2. Kết thúc giải thuật 2.2. Ngược lại 2.2.1. Phương trình vô nghiệm 2.2.2. Kết thúc giải thuật 3. Ngược lại 3.1. Phương trình có nghiệm 3.2. Giá trị nghiệm đó là x = -b/a 3.3. Kết thúc giải thuật Bằng Sơ đồ khối (Flow Chart) Begin, End : Bắt đầu, kết thúc Data input/ out put : Vào ra dữ liệu Condition expression: Lựa chọn, kiểm tra điều kiện Process : Xử lý Flow line: Luồng xử lý 4
  5. 4/10/2012 Ví dụ: Cộng hai số Ví dụ: S TAR T IN P U T n u m r = n u m M OD 2 r = 0 D I S P L A Y "N u m b e r i s E v e n " S TO P Ví dụ: S TA R T IN P UT n um r = num M O D 2 Yes No r =0 DISP L AY "N u mb er is E ve n" D IS PL A Y " N um ber is O d d" S TOP 5
  6. 4/10/2012 Bằng mã giả  Input: Vào a, b thuộc tập R  Ra: Nghiệm phương trình ax + b =0 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” 3 cấu trúc điều khiển cơ bản  Trong lập trình có 3 cấu trúc cơ bản  Tuần tự: các bước thực hiện tuần tự, từ trên xuống, mỗi bước thực hiện đúng 1 lần  Lựa chọn: chọn 1 trong 2 hay nhiều thao tác để thực hiện  Lặp: Một hay nhiều thao tác được lặp lại 1 hay nhiều lần. Top-down Design  Top-Down Design là kỹ thuật trong chiến lược chia để trị  Các vấn đề phức tạp có thể được giải quyết bằng kỹ thuật top-down design hay stepwise refinement , với qui tắc  Chia bai toán lớn thành các bài toán con  Tiếp tục chia các bài toán con đó thành các bài toán con nhỏ  Tiếp tục quá trình trên khi các bài toán con có thể giải quyết dễ dàng 6
  7. 4/10/2012 Các phase phát triển phần mềm  Tìm hiểu và phân tích yêu cầu  Thiết kế  Cài đặt  Kiểm thử  Triển khai và Bảo trì hệ thống Mô hình WaterFall Mô hình WaterFall (tt)  Ư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. 7
  8. 4/10/2012 Mô hình xoắn ốc Mô hình xoắn ốc (tt) 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. Tạo nguyên mẫu (prototype) Tạo các nguyên mẫu cho người sử dụng dùng rồi tạo ra hoàn thiện hệ thống  Ư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. 8
  9. 4/10/2012 Các phương pháp lập trình  Lập trình tuần tự: Assembler (hợp ngữ)  Chương trình quá dài, khó nhớ  Khó kiểm soát lỗi  Lập trình cấu trúc (thủ tục/hướng chức năng)  Chương trình chính được chia nhỏ thành các chương trình con  Mỗi chương trình con thực hiện một công việc xác định  Lập trình hướng đối tượng Lập trình cấu trúc Chương trình chính main() Hàm_1 Hàm_2 Hàm_3 Hàm_4 Hàm_5 Hàm_6 Hàm_7 Hàm_8 Hàm_9 So sánh HĐT và hướng chức năng  Cách tiếp cận hướng đối tượng  Hệ thống được xem là một tập hợp các đối tượng cùng làm việc với nhau để  Các đối tượng thực hiện hành động khi được yêu cầu  Mỗi đối tượng duy trì dữ liệu riêng của nó  Tiếp cận thủ tục (Procedural approach)  Hệ thống được xem là một tập hợp các thủ tục tương tác với dữ liệu  Dữ liệu tách rời các thủ tục 9
  10. 4/10/2012 So sánh HĐT và hướng chức năng  Tiếp cận hướng chức năng và tiếp cận hướng đối tượng Khái niệm về hướng đối tượng  Lớp (Classes)  Đối tượng (Objects)  Attributes  Methods  Trừu tượng hóa dữ liệu  Bao gói và che dấu thông tin  Kế thừa  Đa hình Đối tượng Dữ liệu Hành vi - Giây - Tăng giây - Phút - Tăng phút - Giờ - Tăng giờ Đối tượng = Dữ liệu + Hành vi 10
  11. 4/10/2012 Đối tượng (tt) Thuộc tính Hành vi •Nhãn hiệu xe •Khởi động •Màu xe •Chạy xe •Công suất •Dừng xe •Giá •Tắt máy Trừu tượng hóa dữ liệu  Mô tả bài toán với những khía cạnh quan trọng nhất  Thu thập và phân tích các đối tượng liên quan, nắm bắt các đặc trưng cơ bản nhất của chúng và xác định rõ mối quan hệ giữa các đối tượng với nhau Bao gói và che dấu thống tin Lớp đối tượng Bên ngoài Các phương DonHang thức chung của int MaDH đơn hàng int MaKH Tinh_gia(); public: TaoDH TaoDH( ) CapnhatDH CapnhatDH( ) GiatriDH GiatriDH( ) 11
  12. 4/10/2012 Kế thừa Người Sinh viên Bác sĩ Nhân viên Đa hình 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 tới hệ điều hành  Luôn quan tâm tới công cụ, ngôn ngữ  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ông tích hợp được các ngôn ngữ khác nhau  Khó khăn khi phát triển các ứng dụng phân tán 12
  13. 4/10/2012 Môi trường phần mềm trước đây (tt)  Đối với người sử dụng  Bất lợi khi phải cài ứng dụng trên máy đơn  Các trang web không tương tác với nhau .NET framework  Tích hợp một số công nghệ đã có của Microsoft và một số công nghệ mới nhằm tạo ra giao diện lập trình mới  Sử dụng mã trung gian  Độc lập với hệ điều hành  Đa ngôn ngữ  Hướng đến ứng dụng Internet  Hỗ trợ WebService  Tốc độ phát triển ứng dụng nhanh  Ứng dụng độc lập với thiết bị client  Tháng 7/2000, Microsoft giới thiệu .Net Kiến trúc của .Net framework  Gồm hai thành phần chính  NET common language runtime (CLR)  .NET framework class library (FCL) 13
  14. 4/10/2012 Kiến trúc .Net framework VB C++ C# J# … Common Language Specification Visual Studio .NET ASP .NET Windows Web Forms Web Services ASP.NET Mobile Controls Forms ADO .NET: Data and XML Base Class Library Common Language Runtime Operate System Common Language Runtime - CLR  CLR (Common Language Runtime) là nền tảng của .NET Framework.  Là công cụ thực thi mã trung gian (tựa JVM)  Biên dịch (Just-in-time compiler)  Thực thi mã nguồn  Quản lý bộ nhớ  Thưc thi luồng (Thread execution)  Xử lý lỗi (Error-handling)  Xác nhận mã nguồn an toàn và các hình thức khác của việc chính xác mã nguồn (managed code), Framework Class Libraries - FCL  Thư viện lớp.NET Framework  Là một tập hợp hướng đối tượng của các kiểu dữ liệu được dùng lại (các thư viên lớp được đóng gói trước cho việc dùng lại), khoảng 4000 lớp  Được sử dụng bởi bất kỳ ngôn ngữ của .NET  Hầu hết các lớp được gom vào một không gian tên gọi là System 14
  15. 4/10/2012 .NET framework là tập hợp của nhiều ý tưởng OOP JVM GUI .NET Web component-based design n-tier design .Net là đa ngôn ngữ code.vb code.cs code.cpp ... Development Tools FCL app.exe .NET là đa ngôn ngữ (tt)  .Net không chỉ hỗ trợ một ngôn ngữ độc lập, có thể là sự tích hợp ngôn ngữ trong một ứng dụng  Có nghĩa là chúng ta có thể xây dựng một lớp kế thừa code từ các ngôn ngữ hỗ trợ .NET khác nhau 15
  16. 4/10/2012 .Net là độc lập về hệ điều hành  Các ứng dụng trong Net chạy được trên bất kỳ các nền tảng hỗ trợ APP.exe ? Win64 Win32 WinCE (XP,2K,98) Net là độc lập về hệ điều hành VB C++ C# … .NET Compiler Intermedia Languge CLR for CLR for CLR for Unix Linux Windows Linux Native Windows Unix code Native code Native code .Net là độc lập về hệ điều hành  Thực thi ứng dụng độc lập về hệ điều hành (Cross-platform) được hiểu theo 2 cách sau:  Các ứng dụng được viết dựa trên Framework Class Library (FCL), không dựa trên OS  Trình biên dịch phát sinh ra ngôn ngữ chung được thực thi bởi Common Language Runtime (CLR) 16
  17. 4/10/2012 Biên dịch trong .NET Code in another Code in VB.NET Code in C# .NET Language Appropriate VB.NET compiler C# compiler Compiler IL(Intermediate Language) code CLR (Common Language Runtime) just-in-time compilation Biên dịch trong .NET (tt)  Các chương trình được viết bởi ngôn lập trình được biên dịch vào ngôn ngữ trung gian (IL- Intermediate Language), không phải là mã máy (code machine)  CLR biên dịch lại các mã trung gian (IL code) vào mã máy tức thời khi thực thi chương trình, just-in-time (JIT): khi hàm đuợc gọi  Mã JIT tồn tại trong bộ nhớ cho các lần gọi sau (nếu bộ nhớ cho phép). Biên dịch trong .NET (tt)  Các mã trung gian là như nhau, dù được viết bởi ngôn ngữ lập trình nào trong Net.  Sản phẩm IL giống nhau, nên kết quả là một đối tượng được tạo ra từ ngôn ngữ này có thể được truy cập hay được dẫn xuất từ một đối tượng của ngôn ngữ khác trong .NET.  Ví dụ, người phát triển có thể tạo một lớp cơ sở trong VB.NET và sau đó dẫn xuất nó trong C# một cách dễ dàng. 17
  18. 4/10/2012 Biên dịch trong .NET (tt)  Tại sao phải có 2 lần biên dịch  Độc lập với hệ điều hành  .NET framewwork có thể cài đặt trên nhiều platform  Các chương trình .NET được thực hiện mà không có thay đổi code nào (viết 1 lần, chạy mọi nơi)  Độc lập về ngôn ngữ  Các chương trình .Net không bị trói buộc vào một ngôn ngữ cụ thể nào cả  Các chương trình trong .Net có thể được viết bới các ngôn ngữ trong Net Thiết kế ứng dụng trong .Net  Các ứng dụng nguyên khối (Monolithic app)  Tất cả source code được biên dịch vào 1 file .exe APP.exe  Không phải là quy tắc trong windows Thiết kế ứng dụng trong .Net (tt)  Ứng dụng dựa trên thành phần (Component-based)  Component-based app: .EXE + 1 hay nhiều hơn .DLLs compute.dll GUI.exe data.dll  Đây là chuẩn thực tiễn trên windows 18
  19. 4/10/2012 Tại sao phải Component-based  Lập trình nhóm (team programming)  Phát triển ứng dụng đa ngôn ngữ (tôi dùng C#, bạn dùng C++, cô ấy dùng VB.Net)  Sử dụng lại mã nguồn (code reuse)  Nâng cấp độc lập (nâng cấp thành phần X) Các loại ứng dụng trong .NET  Sử dụng .Net để xây dựng các loại ứng dụng sau  Ứng dụng Console  Ứng dụng giao diện GUI trên Windows (Windows Forms)  Ứng dụng web (ASP.NET)  Dịch vụ web service (XML web)  Ứng dụng trên Mobile Các phiên bản của .Net  .Net framework 1.0 – 2002  .Net framework 1.1 – 2003  .Net framework 2.0 – 2005  Net framework 3.5 – 2008 19
  20. 4/10/2012 Assemblies  Các ứng dụng .Net được đóng gói vào các phần gọi là assembly  1 assembly = 1 hay nhiều lớp được biên dịch, gồm một hay nhiều file nguồn  .exe mô tả gói gồm các lớp với Main()  .Dll mô tả gói gồm các lớp Assemblies code.vb code.vb code.cs Development Tools .EXE / .DLL assembly Cấu trúc chương trình C# 20
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2