Bài giảng Kỹ thuật lập trình: Chương 1 - ThS. Phạm Thanh An
lượt xem 14
download
Nội dung của chương 1 Tổng quan về lập trình cho MTĐT nằm trong bài giảng kỹ thuật lập trình nhằm trình bày về 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.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 1 - ThS. Phạm Thanh An
- 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
- 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
- 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/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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật lập trình - Phạm Thế Bảo
0 p | 220 | 32
-
Bài giảng Kỹ thuật lập trình: Chương I - Lưu Hồng Việt
48 p | 194 | 23
-
Bài giảng Kỹ thuật lập trình: Chương IV - Lưu Hồng Việt
32 p | 151 | 17
-
Bài giảng Kỹ thuật lập trình: Chương III - Lưu Hồng Việt
51 p | 147 | 15
-
Bài giảng Kỹ thuật lập trình: Chương V - Lưu Hồng Việt
19 p | 127 | 15
-
Bài giảng Kỹ thuật lập trình: Phần 1 - ĐH CNTT&TT
37 p | 114 | 10
-
Bài giảng Kỹ thuật lập trình - Bài 1: Tổng quan về kỹ thuật lập trình
65 p | 165 | 8
-
Bài giảng Kỹ thuật lập trình: Bài 1 - Phạm Đình Sắc
9 p | 129 | 7
-
Bài giảng Kỹ thuật lập trình nâng cao: Chương 4 - ThS. Dương Thành Phết
26 p | 92 | 7
-
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 p | 15 | 4
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang
39 p | 8 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Quang
25 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang
52 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Quang
32 p | 7 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang
37 p | 11 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang
28 p | 6 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 8 - Trần Quang
34 p | 8 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 9 - Trần Quang
33 p | 4 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn