Giáo án - Bài giảng: PHƯƠNG PHÁP LẬP TRÌNH CÁC NGÔN NGỮ MÁY

223 678 0
Giáo án - Bài giảng: PHƯƠNG PHÁP LẬP TRÌNH CÁC NGÔN NGỮ MÁY

Đ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

PHƯƠNG PHÁP LẬP TRÌNH (30 tiết LT) Nội dung • Chương Mở đầu • Chương Lập trình hàm • Chương Lập trình cấu trúc • Chương Lập trình hướng đối tượng • Chương Lập trình hướng đối tượng số ngơn ngữ • Chương Các phương pháp lập trình F# Chương Mở đầu Một số khái niệm • • • • • • • • Mơ hình tính tốn (computational model) tập giá trị toán tử Sự tính tính (computation) việc áp dụng chuổi tốn tử giá trị để có giá trị khác Chương trình (program) việc định tính tốn Ngơn ngữ lập trình (programming language) k{ hiệu để viết chương trình Cú pháp (syntax) ngơn ngữ lập trình xác định cấu trúc dạng chương trình Ngữ nghĩa (semantics) ngơn ngữ lập trình mơ tả quan hệ chuowng trình mơ hình tính tốn Tính hữu dụng (Pragmatics) ngơn ngữ lập trình mơ tả mức độ thành công mà ngôn ngữ lập trình đáp ứng mục tiêu mơ hình tính tốn tiện ích lập trình viên Một chương trình (program) có thẻ xem hàm: Output = Program(Input) Program = Mơ hình miền tốn Thực chương trình = Sự mơ miền tốn Dữ liệu • Dữ liệu (Data): Trong trường hợp đối tượng lêệu xem trung tâm chương trình • Các giá trị liệu phân thành nhóm riêng biệt: giá trị đơn (primitive) hỗn hợp (compound) • Các giá trị đơn (primitive values) thường giá trị số, logic, ký tự Liên hợp với giá trị đơn thường toán tử (như toán tử số học, toán tử logic ) • Các giá trị hỗ hợp (composite values) thường mảng (arrays), ghi (records), giá trị định nghĩa đệ quy (recursively defined values) Liên hợp với giá trị hỗn hợp thường toán tử khởi tạo giá trị, toán tử truy xuất thành phần giá trị Các loại giá trị liệu • Các giá trị Boolean (biểu diễn giá trị logic, nói sử dụng bit liệu) • Các giá trị nguyên (Integer) (miền giá trị phụ thuộc vào số byte sử dụng để lưu trữ) • Các số tự nhiên (Natural number) • Các số hữu tỷ (Rational number) (được biễu diễn cặp số nguyên) • Các giá trị thực (Real number) • Các giá trị ký tự (Character) • Các giá trị liệt kê (Enumeration) • Các kiểu liệu trừu tượng (Abstract data types) (thường sử dụng kiểu trỏ để tham chiếu) Một vài mơ hình tính tốn Mơ hình hàm (Functional Model) • Mơ hình hàm bao gồm tập giá trị, hàm tốn tử hàm • Một chương trình tập định nghĩa hàm • Sự tính toán ứng dụng hàm (giá trị biểu thức) Lập trình hàm Ví dụ: Cơng thức cho độ lệch chuẩn là:   sd ( x)   x / N    xi / N  i 1  i 1  N N 2 i Người ta áp dụng hai hàm bậc cao map fold Hàm map áp dụng hàm cho phần tử danh sách hàm fold làm giảm danh sách cách áp dụng hàm cho phần tử danh sách, kết hàm phần lại danh sách Chương trình hàm viết sau: sd(xs) = sqrt(v) where n = length( xs ) v = fold( plus, map(sqr, xs ))/n - sqr( fold(plus, xs)/n) Mơ hình Logic (Logic Model) • Bao gồm tập giá trị, định nghĩa quan hệ luật suy diễn • Chương trình logic bao gồm định nghĩa quan hệ tính tốn phép thử • Ví dụ 1: Chu vi đường tròn: circle(R, C) if Pi = 3.14 and C = * pi * R Biểu diễn quan hệ R C Ví dụ 2: human(Socrates) human(Penelope) mortal(X) if human(X) Để xác định xem Socrates Penelope có mortal, người ta xác định: ¬mortal(Y) Cách suy diễn: 1a human(Socrates) Sự kiện (Fact) 1b human(Penelope) Sự kiện (Fact) mortal(X) if human(X) Luật (Rule) ¬mortal(Y) Giả sử (Assumption) 4a X = Y Từ 4b ¬human(Y) 5a Y = Socrates Từ 5b Y = Penelope Mâu thuẩn 5a, 4b, 1a; 5b, 4b 1b Lập trình logic: Các giá trị (values) Các quan hệ (relations) Suy luận logic (logical inference) Program = Tập định nghĩa quan hệ Computation = thiết lập phép thử (suy luận từ định nghĩa) INHERITANCE Imports System Class Human Public Sub Walk() Console.Writeline ("Walking") End Sub End Class Class Programmer Inherits Human Public Sub StealCode() Console.Writeline ("Stealing code") End Sub End Class Class MainClass Shared Sub Main() Dim Tom as Programmer Tom=new Programmer Tom.Walk() Tom.StealCode() End Sub End Class OVERRIDING Imports System Class Human Overridable Public Sub Speak() Console.Writeline ("Speaking") End Sub End Class Class Indian Inherits Human Overrides Public Sub Speak() ‘Nói tiếng Hindi Console.Writeline ("Speaking Hindi") ‘Chú ý, để gọi Speak() lớp sở phải ‘sử dụng kiểu như: 'Mybase.Speak() End Sub End Class Class MainClass Shared Sub Main() Dim Tom as Human Tom=new Human Dim Tony as Indian Tony=new Indian Tom.Speak() Tony.Speak() End Sub End Class POLYMORPHISM Imports System Class Human 'Speak() is declared Overridable Overridable Public Sub Speak() Console.Writeline ("Speaking") End Sub End Class Class Indian Inherits Human Overrides Public Sub Speak() Console.Writeline ("Speaking Hindi") End Sub End Class Class MainClass Shared Sub Main() Dim Tom as Human Tom=new Indian Tom.Speak() End Sub End Class CONSTRUCTORS & DESTRUCTORS Imports System Class Dog Private Age as integer ‘Các cấu tử Public Sub New() Console.Writeline ("Dog is Created With Age Zero") Age=0 End Sub Public Sub New(val as Integer) Console.Writeline ("Dog is Created With Age " + Convert.ToString(val)) Age=val End Sub ‘Hũy tử Overrides Protected Sub Finalize() Console.Writeline ("Dog is Destroyed") End Sub ‘Hàm Main Shared Sub Main() Dim Jimmy, Jacky as Dog ‘Gọi cấu tử ngầm định Jimmy=new Dog ‘Gọi cấu tử tham số Jacky=new Dog(10) End Sub End Class PROPERTY ROUTINES Imports System Public Class Dog Private mAgeOfDog as Integer Public Property Age() As Integer Get Console.Writeline ("Getting Property") Return mAgeOfdog End Get Set(ByVal Value As Integer) Console.Writeline ("Setting Property") mAgeOfDog=Value End Set End Property End Class Class MainClass Shared Sub Main() Dim Jimmy as Dog Jimmy=new Dog Jimmy.Age=30 Dim curAge=Jimmy.Age() End Sub End Class Kế thừa từ Control Imports System Imports System.ComponentModel Imports System.Windows.Forms Imports System.Drawing Public Class SimpleForm Inherits System.Windows.Forms.Form Public Sub New() ‘Gọi cấu tử base class MyBase.New() ‘Đặt thuộc tính cho lớp dựa lớp base class Me.Text = "Hello, How Are You?" End Sub End Class Public Class MainClass Shared Sub Main() ‘Tạo đối tượng Dim sf as SimpleForm sf=new SimpleForm ‘Đẩy đối tượng cho hàm Run() để bắt đầu System.Windows.Forms.Application.Run(sf) End Sub End Class 5.3 VFP OOP Các lớp sở Kế thừa từ lớp sở Có thể xây dựng lớp (subclass) kế thừa từ lớp sở: -Với visual base class: Thường thiết kế thành file class VFP (phần mở rộng VCX/VCT)) Sử dụng lệnh: CREATE CLASS derived_class -Với non-visual class (và visual class): Thường đặt file PRG với khai báo DEFINE CLASS derived_class AS base_class Ví dụ: DEFINE CLASS MyCheckbox AS checkbox Height = 15 Width = 92 FontName = "Tahoma" FontSize = AutoSize = T Alignment = Caption = "MyCheckbox" Name = "mycheckbox" ENDDEFINE Các PEM • • • • Các PEM property, Event, Method Khi tao lớp, có số PEM mặc định Có thể tạo thêm PEM khác Mỗi PEM có thuộc tính: Type: gồm Property, Method Access: Thuộc tính truy xuất (như GET) Assign: Thuộc tính gám (như SET) Visibility: gồm Public, Protected, Hidden Ví dụ hình sử đổi thuộc tính lớp sử dụng kiểu visual class: Ví dụ lớp với định nghĩa DEFINE CLASS DEFINE CLASS mycheckbox AS checkbox Height = 16 Width = 97 FontName = "Verdana" AutoSize = T Alignment = Caption = "MyCheckBox" Name = "MyCheckBox" MyNewProperty = F PROCEDURE MyNewMethod MESSAGEBOX("Hello from a custom class") ENDPROC PROCEDURE MyNewProperty_Access *To do: Modify this routine for the Access method RETURN THIS.MyNewProperty ENDPROC PROCEDURE MyNewProperty_Assign LPARAMETERS vNewVal *To do: Modify this routine for the Assign method THIS.MyNewProperty = m.vNewVal ENDPROC ENDDEFINE Sử dụng lớp • Các visual class: chọn tạo đối tượng form • Các non-visual class: Sử dụng hàm CREATEOBJECT(), NEWOBJECT(), ADDOBJECT() • Để gọi method lớp cha, sử dụng DODEFAULT() • Rất nhiều vấn đề khác cần tìm hiểu Hết chương ... Chương Mở đầu • Chương Lập trình hàm • Chương Lập trình cấu trúc • Chương Lập trình hướng đối tượng • Chương Lập trình hướng đối tượng số ngơn ngữ • Chương Các phương pháp lập trình F# Chương Mở... • Một số ngôn ngữ thiết kế để hỗ trợ mẫu hình đặc thù Ví dụ: - Haskell: hỗ trợ lập trình hàm - Pascal: hỗ trợ lập trình cấu trúc - Java: hỗ trợ lập trình hướng đối tượng - Số ngôn ngữ khác lại... hình lập trình • Một mẫu hình lập trình (programming paradigm) kiểu lập trình mà kiểu có tính mẫu hình tiến hành công nghệ phần mềm Chẳng hạn: Lập trình hàm, lập trình logic, Lập trình cấu trúc Lập

Ngày đăng: 16/04/2014, 17:24

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan