1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng Cơ sở lập trình

89 11 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

4/10/2012 MƠN HỌC CƠ SỞ LẬP TRÌNH Thời lượng : 90 tiết (4 tín chỉ) - Lý thuyết: 30 tiết - Thực hành: 60 tiết Mục tiêu môn học Trang bị cho sinh viên kiến thức lập trình, thuật tốn, phương pháp Top Down Design Ngơn ngữ lập trình C# tảng phát triển phần mềm Net Framework Phương pháp lập trình hướng đối tượng Lập trình Winform Phương pháp phát triển ứng dụng kiến trúc component, kiến trúc n-tier Rèn luyện cho sinh viên kỹ vận dụng kiến thức để xây dựng ứng dụng thực tế       Tài liệu học tập  Tài liệu    Programming Csharp, 4th edition, Oreilly 2005 Lập trình hướng đối tượng với C# Tài liệu tham khảo     Beginning C# Objects: From Concepts to Code, Jacquie Barker and Grant Palmer , Apress 2004 Microsoft Visual C# 2005 step by step, Microsoft Press Developing Windows-Based Applications with Microsoft Visual Basic NET and Microsoft Visual C# NET, 2002 Windows Forms Programming in C# , Addison Wesley , 2003 4/10/2012 Tiêu chuẩn đánh giá sinh viên  Kết học tập sinh viên đánh giá phần   Kiểm tra chuyên cần: 30% Bài tập lớn: 20%    Thực nhóm - người: Bài thi kết thúc học phần: 50% (Trắc nghiệm) Thang điểm đánh giá : 10 Chương Tổng quan lập trình cho MTĐT C#         Phát triển hệ thống hướng đối tượng Khái niệm hướng đối tượng Tổng quan Microsoft.NET Kiến trúc NET Framework Thư viện NET Framework Ngôn ngữ C# ngôn ngữ khác Viết ứng dụng đơn giản Console windows Biên dịch dll / exe Chương Nền tảng ngôn ngữ C#         Kiểu liệu Biến Biểu thức Câu lệnh Toán tử Namespace Các dẫn biên dịch Xử lý ngoại lệ 4/10/2012 Chương Xây dựng lớp – Đối tượng         Định nghĩa lớp Tạo đối tượng Sử dụng thành viên static Hủy đối tượng Truyền tham số Nạp chồng phương thức Đóng gói liệu với thuộc tính Thuộc tính đọc Chương Kế thừa Đa hình      Đặc biệt hóa tổng qt hóa Sự kế thừa Đa hình Lớp trừu tượng Các lớp lồng Chương Nạp chồng tốn tử Sử dụng từ khóa operator Hỗ trợ ngơn ngữ NET khác  Toán tử so sánh  Toán tử chuyển đổi   4/10/2012 Chương Mảng, mục tập hợp, String        Mảng Câu lệnh foreach Mảng đa chiều Bộ mục Giao diện tập hợp Danh sách mảng (ArrayList) Lớp đối tượng string Chương Lập trình Windows Giới thiệu biểu mẫu windows  Làm việc với điều khiển  Xử lý kiện  Bàn phím chuột  Chương Thao tác tệp tin  Khái niệm tập tin thiệu namespace System.IO  Các bước xử lý tệp tin  Các phương thức xử lý tệp tin  Tạo lập xử lý tệp tin văn  Tạo lập xử lý tệp tin nhị phân  Giới 4/10/2012 Chương Tổng quan 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 chương trình, ngơn ngữ lập trình, giải thuật Giới thiệu Top down Design Mơ hình phát triển phần mềm Các cách tiếp cận lập trình Tổng quan lập trình hướng đối tượng Kiến trúc NET Framework C# Viết chương trình đơn giản Chương trình program - Là tập hợp câu lệnh (chỉ dẫn) liệt kê theo trình tự định nhằm giải vấn đề  Chương trình máy tính viết ngơn ngữ lập trình  Theo Niklaus Wirth  Computer Chương trình = Cấu trúc liệu + Giải thuật 4/10/2012 Giải thuật - Algorithm  Giải thuật (Thuật toán - Thuật giải)  Là dãy câu lệnh (chĩ dẫn) chặt chẽ rõ ràng, xác định trình tự thao tác số đối tượng cho sau số hữu hạn bước thực ta đạt kết mong muốn Câu lệnh, chương trình, phần mềm Software Program Program Commands Commands Commands Ngôn ngữ lập trình Ngơn ngữ lập trình ngơn ngữ để viết chương trình  Ngơn ngữ lập trình bao gồm hệ thống ký hiệu, qui ước ngữ pháp ngữ nghĩa, dùng để xây dựng thành chương trình cho máy tính  Có nhiều loại ngơn ngữ lập trình  Programming language - 4/10/2012 Các lớp Ngơn ngữ lập trình 5GLs Artificial intelligence 4GLs ORACLE, SEQUEL, INGRES, HIGH-LEVEL LANGUAGES ASSEMBLER LANGUAGES ForTran, COBOL, C, C++, LISP, Pascal, Java, Hợp ngữ - Assembler MACHINE CODE Nguyên lý Von Neumann  Bao gồm bước: Input –Process -Output Các bước lập trình Xác định yêu cầu tốn Phân tích tốn Thiết kế Giải thuật Cài đặt Kiểm thử Bảo trì Cập nhật 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ả 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 Nhập số thực a b Nếu a =0 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 Ngược lại 3.1 Phương trình có nghiệm 3.2 Giá trị nghiệm 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 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/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 r = 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 RT INP UT n um r = num M O D Yes No r =0 DISP L AY "N u mb er is E ve n" DIS PL A Y " Num ber is O d d" S TOP 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 = then Begin If b = 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” cấu trúc điều khiển  Trong lập trình có cấu trúc Tuần tự: bước thực tuần tự, từ xuống, bước thực lần  Lựa chọn: chọn hay nhiều thao tác để thực  Lặp: Một hay nhiều thao tác lặp lại hay nhiều lần  Top-down Design Top-Down Design kỹ thuật chiến lược chia để trị  Các vấn đề phức tạp giải kỹ thuật top-down design hay stepwise refinement , với qui tắc     Chia bai toán lớn thành tốn Tiếp tục chia tốn thành tốn nhỏ Tiếp tục q trình tốn giải dễ dàng 4/10/2012 Từ khóa this (tt)  Sử dụng this để gọi tường minh thành phần phương thức lớp public void MyMethod(int y) { int x = 0; x = 7; // gán biến cục y = 8; // gán cho tham số this.z = 5; // gán cho thành phần lớp this.Draw( ); // gọi phương thức thành phần } Các thành viên tĩnh (static member)  Những thuộc tính phương thức lớp thành viên thể (instance members) hay thành viên tĩnh (static members)   Những thành viên thể hay thành viên đối tượng, liên quan đến thể lớp (một đối tượng) Trong thành viên tĩnh xem phần lớp Các thành viên tĩnh (tt) Để truy cập đến thành viên tĩnh lớp: .  Sử dụng từ khóa “static” để khai báo thuộc tính hay phương thức với thuộc lớp  14 4/10/2012 Ví dụ: Phương thức tĩnh Các thành viên tĩnh (tt) Chỉ có thành phần tĩnh nhớ, chia thể hiển lớp  Ghi chú:    Trong C# không cho phép truy cập đến thành viên tĩnh thông qua thể hiện, Nếu cố làm điều trình biên dịch C# báo lỗi Ví dụ: thành viên tĩnh public class Counter { private Counter() { } public static int currentCount; public static int IncrementCount() { return ++currentCount; } } 15 4/10/2012 Ví dụ: thành viên tĩnh (tt) class TestCounter { static void Main() { Counter.currentCount = 100; Counter.IncrementCount(); System.Console.WriteLine("New count: {0}", Counter.currentCount); } } Các thành viên tĩnh (tt) Các thuộc tính tĩnh hữu ích mn lưu trữ trạng thái liên quan đến tất thể lớp  Phương thức tĩnh có tác dụng hành vi chung cho lớp thể cụ thể lớp  Ví dụ sử dụng thuộc tính tĩnh using System; public class Cat { private static int instance =0; public Cat() { instance++; } public static void HowManyCats() { Console.WriteLine(“{0} cats”, instance); } } 16 4/10/2012 Ví dụ sử dụng thuộc tính tĩnh public class Tester { static void Main() { Cat.HowManyCats(); Cat mun = new Cat(); Cat.HowManyCats(); Cat muop = new Cat(); Cat miu = new Cat(); Cat.HowManyCats(); } Kết quả: cats cats cats } Gọi phương thức tĩnh Main() phương thức tĩnh Các phương thức tĩnh khơng cần có tham chiếu this thể tham chiếu tới  Các phương thức tĩnh truy cập trực tiếp đến thành phần khơng tĩnh (nonstatic)    Ví dụ với Main() để gọi phương thức không tĩnh (nonstatic), phải tạo thể lớp Ví dụ: using System; public class Class1 { public void SomeMethod(int p1, float p2) { Console.WriteLine(“Ham nhan duoc hai tham so: {0} va {1}”, p1,p2); } } public class Tester { static void Main() { int var1 = 5; float var2 = 10.5f; Class1 c = new Class1(); c.SomeMethod( var1, var2 ); } } 17 4/10/2012 Phương thức thiết lập tĩnh Nếu lớp khai báo phương thức thiết lập tĩnh (static constructor), phương thức thiết lập tĩnh thực trước thể lớp tạo  Ghi chú:    Không thể điều khiển xác phương thức thiết lập tĩnh thực Nó thực sau chương trình chạy trước biến đối tượng tạo Ví dụ: Sử dụng hàm thiết lập tĩnh class A { public static int x; static A ( ) { x = 0; Sử dụng phương thức thiết lập tĩnh để khởi đầu biến thành phần tĩnh } public void Increase() { x = x+1; } } Lưu ý phương thức thiết lập tĩnh lớp định nghĩa phương thức thiết lập tĩnh  Phương thức thiết lập tĩnh thưc lần cho dù có tao số đối tượng  Phương thức thiết lập tĩnh không nhận bổ từ truy cập (private, public, ) không nhận tham số  Phương thức thiết lập tĩnh thực trước phương thức thiết lập mức thể  18 4/10/2012 Phương thức thiết lập private  Được sử dụng lớp có thành phần tĩnh, đối tượng lớp không cần tạo Phương thức thiết lập private (tt) C# khơng có phương thức tồn cục số toàn cục (đều phải khai báo lớp)  Sử dụng phương thức thiết lập private,khi cần tạo lớp tiện ích nhỏ để chứa phương thức tĩnh (lớp Math, Console)   Lưu ý:  Nếu lớp có phương thức thiết lập private khơng có phương thức thiết lập public, tất lớp khác (ngoại trừ lớp lồng) không phép tạo thể lớp Phương thức hủy (Destructors) Không nhận tham số Khai báo phương thức thiết lập, có thêm ‘~’ vào trước  Được gọi Garbage Collector C#  Garbage Collector giải phóng nhớ cách hủy đối tượng khơng dùng không tham chiếu đến …  Cú pháp: ~()   { } … ; 19 4/10/2012 Phương thức hủy (Destructors)  Lưu ý:      Có phương thức hủy lớp Không thể gọi tường minh phương thức hủy Không nhận tham số Khổng thể nạp chồng hay kế thừa Không nhân bổ từ truy cập Ví dụ: phương thức hủy Truyền tham số Mặc định, kiểu giá trị truyền giá trị vào cho phương thức  C# đưa khả cho phép ta truyền tham số kiểu giá trị hình thức tham chiếu, sử dụng bổ từ:  ref : Bắt buộc phải khởi tạo giá trị ban đầu cho tham số truyền vào  out: Không cần phải khởi tạo giá trị ban đầu cho tham số truyền vào  20 4/10/2012 Ví dụ: Truyền tham số Ví dụ: với bổ từ ref Ví dụ: với bổ từ out 21 4/10/2012 Từ khóa params using System; using System.Collections.Generic; using System.Text; namespace UsingParams { public class Tester { static void Main( ) { Tester t = new Tester( ); t.DisplayVals(5,6,7,8); int [ ] mang = new int[5] {1,2,3,4,5}; t.DisplayVals(mang); } Từ khóa params (tt) public void DisplayVals(params int[] intVals) { foreach (int i in intVals) { Console.WriteLine("DisplayVals {0}",i); } } } // kết thúc lớp } // kết thúc namespcae Quá tải phương thức (Overloading) Sử dụng tên cho phương thức  Có hai cách tải phương tức    Chỉ số tham số khác Chỉ kiểu tham số khác 22 4/10/2012 Quá tải phương thức using System; public class Area { private int areaVal; public void AreaCal(int radius) { areaVal = (22/7)* radius*radius; } public void AreaCal(int length, int breadth) { areaVal = length*breadth; } public void AreaCal(int length, int breadth, int height) { areaVal = length*breadth*height; } … } Quá tải phương thức public void Add(int number1, int number2) { sum = number1 + number2; } public void Add(string value1, string value2) { int sum; sum = Int32.Parse(value1) + Int32.Parse(value2); Console.WriteLine ("Sum is {0}",sum); Console.WriteLine ("Strings are converted to integers to add”); } Đóng gói liệu với thuộc tính C# cung cấp khả bảo vệ trường liệu lớp, tránh truy cập trực tiếp cách đọc ghi tới trường thông qua Properties  Properties thiết kế nhắm vào hai mục đích:    Cung cấp giao diện đơn cho phép truy cập biến thành viên Tuy nhiên cách thức thực thi truy cập giống phương thức liệu che dấu, đảm bảo cho yêu cầu thiết kế hướng đối tượng 23 4/10/2012 Đóng gói liệu với thuộc tính public class Employee { private string fullName; public string GetFullName() { return fullName; } public void SetFullName (string s) { fullName = s; } Sử dụng phương thức để truy cấp đến trường private, phương pháp truyền thống } Đóng gói liệu với thuộc tính < Bổ từ truy cập > { get { } set { } }  private, public, protected hay internal, kiểu C# Đóng gói liệu với thuộc tính public class Employee { private string fullName; // Property for fullName public string Name { get { return fullName; } set { fullName = value;} } } Định nghĩa Property chương trình client truy cập static void Main() { Employee p = new Employee(); p.Name = “Tom”; Console.WriteLine (p.Name); } 24 4/10/2012 Đóng gói liệu với thuộc tính  Các kiểu thuộc tính Read/Write Read-Only Write-Only Read/Write Property  Tồn hai khối get set Read-Only Property  Chỉ tồn khối get public class Employee { private string fullName; // read-only Property for fullName public string Name { get { return fullName; } } } 25 4/10/2012 Write-Only Property  Chỉ tồn khối set public class Employee { private string fullName; // write-only Property for fullName public string Name { set { fullName = value; } } } Các trường đọc using System; namespace StaticPublicConstants { public class RightNow { // public member variables public static int Year; public static int Month; public static int Date; public static int Hour; public static int Minute; public static int Second; static RightNow( ) { System.DateTime dt = System.DateTime.Now; Year = dt.Year; Month = dt.Month; Date = dt.Day; Hour = dt.Hour; Minute = dt.Minute; Second = dt.Second; } } Các trường đọc public class Tester { static void Main( ) { Console.WriteLine( "This RightNow.Year.ToString( RightNow.Year = 2009; Console.WriteLine( "This RightNow.Year.ToString( } // kết thúc main } // kết thúc lớp Tester } // kết thúc namespace year: {0}", ) ); year: {0}", ) ); Output: This year: 2008 This year: 2009 26 4/10/2012 Các trường đọc Để cho chương trình client phép đọc tránh thay đổi giá trị thuộc tính year, khai báo sau public static readonly int Year; // thuộc tính đọc  Lúc thay đổi RightNow.Year = 2009; // lỗi  Cấu trúc lớp nhìn từ Cấu trúc lớp từ phía người dùng 27 4/10/2012 Tóm tắt chương Đối tượng  Lớp  Phương thức thiết lập, tải  Thuộc tính  Thành phần Static  Truyền tham số  Q&A Thank you all for your attention and patient ! 28 ... pháp lập trình  Lập trình tuần tự: Assembler (hợp ngữ)    Lập trình cấu trúc (thủ tục/hướng chức năng)    Chương trình q dài, khó nhớ Khó kiểm sốt lỗi Chương trình chia nhỏ thành chương trình. .. muốn Câu lệnh, chương trình, phần mềm Software Program Program Commands Commands Commands Ngơn ngữ lập trình Ngơn ngữ lập trình ngơn ngữ để viết chương trình  Ngơn ngữ lập trình bao gồm hệ thống... Nội dung trình bày        Khái niệm chương trình, ngơn ngữ lập trình, giải thuật Giới thiệu Top down Design Mơ hình phát triển phần mềm Các cách tiếp cận lập trình Tổng quan lập trình hướng

Ngày đăng: 28/12/2021, 19:24

HÌNH ẢNH LIÊN QUAN

 Sử dụng các thành viên static. - Bài giảng Cơ sở lập trình
d ụng các thành viên static (Trang 3)
 Đa hình. - Bài giảng Cơ sở lập trình
a hình (Trang 3)
 Mô hình phát triển phần mềm - Bài giảng Cơ sở lập trình
h ình phát triển phần mềm (Trang 5)
Tổng quan về lập trình cho MTĐT - Bài giảng Cơ sở lập trình
ng quan về lập trình cho MTĐT (Trang 5)
Mô hình WaterFall (tt) - Bài giảng Cơ sở lập trình
h ình WaterFall (tt) (Trang 11)
Mô hình WaterFall - Bài giảng Cơ sở lập trình
h ình WaterFall (Trang 11)
Mô hình xoắn ốc - Bài giảng Cơ sở lập trình
h ình xoắn ốc (Trang 12)
 Đa hình - Bài giảng Cơ sở lập trình
a hình (Trang 14)
Đa hình - Bài giảng Cơ sở lập trình
a hình (Trang 16)
 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),  - Bài giảng Cơ sở lập trình
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), (Trang 18)
Ví dụ: phương thức hủy - Bài giảng Cơ sở lập trình
d ụ: phương thức hủy (Trang 81)
Truyền tham số - Bài giảng Cơ sở lập trình
ruy ền tham số (Trang 81)
Phương thức hủy (Destructors) - Bài giảng Cơ sở lập trình
h ương thức hủy (Destructors) (Trang 81)
w