1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình hướng đối tượng 2 ppt

100 246 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Lập trình hướng đối tượng 2 ppt
Trường học Trường Đại học Tây Đô
Chuyên ngành Lập trình hướng đối tượng
Thể loại Bài giảng
Năm xuất bản 2009
Thành phố Cần Thơ
Định dạng
Số trang 100
Dung lượng 3,52 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• Liên quanñến những thứ ñối tượng làm.• Tácñộng lên dữliệu củañối tượng... –ðược bảo vệprotected : chỉtruy xuấtñược từ– Tận dụng lại các thuộc tính chung.. – Tận dụng lại các thao tác t

Trang 1

L Ậ P TRÌNH H ƯỚ NG ðỐ I T ƯỢ NG

Ch ươ ng 1

lttlan.tdu@gmail.com http://lttlan-tdu.blogspot.com

– T ư duy theo l ố i tu ầ n t ự , ñơ n gi ả n.

– ðơ n lu ồ ng và các công vi ệ c ñượ c th ự c hi ệ n tu ầ n

– Gi ả i thu ậ t: m ộ t quy trình ñể th ự c hi ệ n m ộ t công

vi ệ c xác ñị nh

Trang 2

L ậ p

L ậ p trình trình thông thông th th ườ ườ ng ng ((tt tt))

• L ậ p trình c ấ u trúc (tt)

– Phân chia ch ươ ng trình chính thành các ch ươ ng

trình con cho phù h ợ p v ớ i yêu c ầ u, ch ứ c n ă ng và

• ñối tượng là mộtthc th(entity) cụthểmà thông

thường ta có thểs ờ , nhìn th ấ yhay c ả m nh ậ nñược

Trang 3

• Liên quanñến những thứ ñối tượng làm.

• Tácñộng lên dữliệu củañối tượng

Trang 4

chung cho các ñố i t ượ ng có cùng lo ạ i.

VD: L ớ p XeDap là thi ế t k ế chung cho các ñố i

t ượ ng xe mini, xe ñ òn, xe ñầ m, xe ñ ua, xe leo

• L ớ p ñượ c t ạ o ra khi biên d ị ch

• ðố i t ượ ng t ạ o ra khi th ự c thi ch ươ ng trình.

ðố i t ượ ng là m ộ t th ể hi ệ n (instance) c ủ a 1 l ớ p

Trang 5

M ộ t s ố khái ni ệ m c ơ b ả n (tt)

M ộ t s ố khái ni ệ m c ơ b ả n (tt)

• Truy ề n thông báo

– Thông báo (message): là 1 l ờ i yêu c ầ u 1 ho ạ t

• Chi tiết thực hiện (giá trịcác tham số)

– Truy ề n thông báo: kích ho ạ t hàm cùng tên trên 1 ñố i t ượ ng ñể yêu c ầ u thông tin.

Trang 6

L ậ p

L ậ p trình trình h h ướ ướ ng ng ñố ñố i i t t ượ ượ ng ng (OOP) (OOP)

Thuộ ộc tính c tính + Hàm = Đố ối t i tượ ượng ng

Các thể hiện, đặc tính,

trạng thái của đối

tượng

Các hoạt động, thao tác của đối tượng

Mục tiêu chính

Phân tích bài toán thành nhi ề u ñố i t ượ ng.

Quan tâm ñế n d ữ li ệ u h ơ n th ủ t ụ c.

D ữ li ệ u ñượ c b ả o v ệ (che gi ấ u) và không th ể truy

xu ấ t t ừ bên ngoài ñố i t ượ ng.

 Dữliệu và thủtụcñược

xửlý chặc chẽvới nhau

 Quan tâmñếnmối liên

h giữa thủtục và dữliệu

ðố i t ượ ng 1

ðố i t ượ ng 1

DữliệuHàm

DữliệuHàm

 Mục tiêu là tăng cườngkhảnăngsửdụng lại

22

L ậ p

L ậ p trình trình h h ướ ướ ng ng ñố ñố i i t t ượ ượ ng ng ((tt tt))

• S ự tr ừ u t ượ ng hóa (abstraction)

L ậ p

L ậ p trình trình h h ướ ướ ng ng ñố ñố i i t t ượ ượ ng ng ((tt tt))

• S ự tr ừ u t ượ ng hóa (abstraction)

– Là b ướ c ti ế n hóa ti ế p theo t ừ l ậ p trình c ấ u trúc – Ch ỉ quan tâm ñế n nh ữ ng ñặ c ñ i ể m c ầ n thi ế t (ph ớ t l ờ ñ i nh ữ ng chi ti ế t) tùy vào ng ữ c ả nh:

VD: Phân tích thông tin của 1 người:

- Trong ngữcảnh làm việc trong trường

- Trong ngữcảnh học tại trường? NhanVien

–Mã nhân viên

–Họvà tên

Trang 8

–ðược bảo vệ(protected) : chỉtruy xuấtñược từ

– Tận dụng lại các thuộc tính chung

– Tận dụng lại các thao tác tương tự

• Thiết kếlớp gọn nhẹ, ñơn giản hơn

Các ñặ ñặ c c ñ ñ i i ể ể m m c c ủ ủ a a OOP OOP

• Tính th ừ a k ế (tt)

– Chú ý: tránh thi ế t k ế sai v ề m ặ t ý ngh ĩ a

VD: L ớ p XeH ơ i th ừ a k ế t ừ l ớ p BánhXe là SAI.

– L ớ p con ph ả i chính là l ớ p cha, ngoài ra còn – L ớ p con ph ả i chính là l ớ p cha, ngoài ra còn

ph ả i có thêm nh ữ ng ñặ c tr ư ng riêng c ủ a nó:

• Thêm hàm hoặc thêm thuộc tính

• Táiñịnh nghĩa hàm của lớp cha, ñổi kiểu thuộctính

• Dùng hàmảo

Trang 9

Con Con ng ng ườ ườ i i

ph ầ n mà l ớ p cha cho phép ( public + protected ).

thành ph ầ n trùng tên trong l ớ p cha

• Khi truy xuất thành phần trùng tênñó sẽtruy xuất

thành phần của lớp con

thành phần của lớp con

• Muốn truy xuất thành phần của lớp cha, phải chỉ

– Trong C++: <Tên lớp cha> :: ::<Tên hàm>

– Trong Java: super <Tên hàm>

Trang 10

– K ể tên trong l ớ p cha m ộ t ứ ng x ử chung (hàm

ả o – virtual, abstract) cho t ậ p h ợ p các l ớ p con.

– Khi nh ậ n yêu c ầ u, tùy vào ñố i t ượ ng thu ộ c

l ớ p nào s ẽ có ứ ng x ử riêng (th ự c thi hàm

2 “Kêu”: cho t ậ p h ợ p các con v ậ t (chó, mèo, gà,

2 “Kêu”: cho t ậ p h ợ p các con v ậ t (chó, mèo, gà,

• Không nhất thiết phải cầ ñịnh nghĩaở lớp cha

• Ph ả iñượcñịnh nghĩa lạitrong lớp con

– L ớ p ả o:

– L ớ p ả o:

• Chỉdùng khai báo các hàmảo bên trong

• Khôngñược dùngñểtạo rañối tượng

Trang 11

• Hàm trùng tên

• Khác tham số(sốlượng, thứtự, kiểu)

42

UML UML U U nified M odeling LL anguage

Trang 12

Gi ớ i thi thi ệ ệ u u UML UML

– Tạm dịch là ngôn ngữmô hìnhhóa thống nhấ

– Ra ñời vào năm 1997 và hiện nay ñangñược sửdụng rất

phổbiến

– Bao gồm một hệthống cácký hi ệ u ñồ h ọ a, bi ể u ñồ (s ơ

ñồ )thống nhất dùng ñểthiết kếcác hệthống thông tin

ñồ )thống nhất dùng ñểthiết kếcác hệthống thông tin (IS) theo hướngñối tượng

– ðược sửdụng cho cácgiaiñ ạn phân tích, thiết kế, triểnkhaivàkiểm thửphần mềm

– Các CaseTool(Rational Rose, System Architect, Argo UML, Visual Paradigm for UML, Umbrello…) hỗtrợUML trong việc phát sinh chương trình tự ñộng cho các ngôn

– Class Diagram (bi ể u ñồ l ớ p)

– Class Diagram (bi ể u ñồ l ớ p)

– Sequence Diagram (bi ể u ñồ trình t ự )

– Collaboration Diagram (bi ể u ñồ c ộ ng tác)

– State Diagram (bi ể u ñồ tr ạ ng thái)

– Component Diagram (bi ể u ñồ thành ph ầ n)

S ơ

S ơ ñồ ñồ l l ớ ớ p p (Class Diagram) (Class Diagram)

• L ớ p

Trang 14

• Mô hình hóa vi ệ c bán vé t ạ i r ạ p chi ế u phim theo

góc nhìn c ủ a ng ườ i mua vé / ng ườ i qu ả n lý

• Ti ệ m t ạ p hóa: Ch ủ ti ệ m c ầ n qu ả n lý vi ệ c mua

bán hàng hóa (vi ế t, t ậ p) trong c ử a hàng ñể bi ế t

bán hàng hóa (vi ế t, t ậ p) trong c ử a hàng ñể bi ế t

– Hàng nào mua vào giá bao nhiêu?

– Hàng nào bán ra và giá bao nhiêu?

Áp dụng kỹ thuật lập trình hướngñối tượng và tính

thừa kếcủa nóñểdựng khungñối tượng cho người

phụ trách mua bánñiền thông tin vào và sửdụng

Bài Bài t t ậ ậ p p v v ề ề nhà

• Ch ọ n các ñố i t ượ ng ngoài th ự c t ế có liên quan v ớ i nhau ñể xây d ự ng khung (thu ộ c tính, ph ươ ng th ứ c) các ñố i t ượ ng v ớ i ñầ y ñủ

các ñặ c ñ i ể m:

– Tính th ừ a k ế – Ả o hóa.

– ð a hình.

• Cho 3 ví d ụ c ụ th ể cho t ừ ng ñố i t ượ ng

• H ạ n n ộ p: 12:00 PM 06/10/2009 (mail ho ặ c

Trang 15

Bài n n ộ ộ p p

• Mail:

– Subject: C++ Bai 1 <ma sinh sien>

– <ma sinh vien> <Tên sinh viên>

Trang 16

L Ậ P TRÌNH H ƯỚ NG ðỐ I T ƯỢ NG

Ch ươ ng 1

lttlan.tdu@gmail.com http://lttlan-tdu.blogspot.com

– T ư duy theo l ố i tu ầ n t ự , ñơ n gi ả n.

– ðơ n lu ồ ng và các công vi ệ c ñượ c th ự c hi ệ n tu ầ n

– Gi ả i thu ậ t: m ộ t quy trình ñể th ự c hi ệ n m ộ t công

vi ệ c xác ñị nh

Trang 17

L ậ p

L ậ p trình trình thông thông th th ườ ườ ng ng ((tt tt))

• L ậ p trình c ấ u trúc (tt)

– Phân chia ch ươ ng trình chính thành các ch ươ ng

trình con cho phù h ợ p v ớ i yêu c ầ u, ch ứ c n ă ng và

• ñối tượng là mộtthc th(entity) cụthểmà thông

thường ta có thểs ờ , nhìn th ấ yhay c ả m nh ậ nñược

Trang 18

• Liên quanñến những thứ ñối tượng làm.

• Tácñộng lên dữliệu củañối tượng

Trang 19

chung cho các ñố i t ượ ng có cùng lo ạ i.

VD: L ớ p XeDap là thi ế t k ế chung cho các ñố i

t ượ ng xe mini, xe ñ òn, xe ñầ m, xe ñ ua, xe leo

• L ớ p ñượ c t ạ o ra khi biên d ị ch

• ðố i t ượ ng t ạ o ra khi th ự c thi ch ươ ng trình.

ðố i t ượ ng là m ộ t th ể hi ệ n (instance) c ủ a 1 l ớ p

Trang 20

M ộ t s ố khái ni ệ m c ơ b ả n (tt)

M ộ t s ố khái ni ệ m c ơ b ả n (tt)

• Truy ề n thông báo

– Thông báo (message): là 1 l ờ i yêu c ầ u 1 ho ạ t

• Chi tiết thực hiện (giá trịcác tham số)

– Truy ề n thông báo: kích ho ạ t hàm cùng tên trên 1 ñố i t ượ ng ñể yêu c ầ u thông tin.

Trang 21

L ậ p

L ậ p trình trình h h ướ ướ ng ng ñố ñố i i t t ượ ượ ng ng (OOP) (OOP)

Thuộ ộc tính c tính + Hàm = Đố ối t i tượ ượng ng

Các thể hiện, đặc tính,

trạng thái của đối

tượng

Các hoạt động, thao tác của đối tượng

Mục tiêu chính

Phân tích bài toán thành nhi ề u ñố i t ượ ng.

Quan tâm ñế n d ữ li ệ u h ơ n th ủ t ụ c.

D ữ li ệ u ñượ c b ả o v ệ (che gi ấ u) và không th ể truy

xu ấ t t ừ bên ngoài ñố i t ượ ng.

 Dữliệu và thủtụcñược

xửlý chặc chẽvới nhau

 Quan tâmñếnmối liên

h giữa thủtục và dữliệu

ðố i t ượ ng 1

ðố i t ượ ng 1

DữliệuHàm

DữliệuHàm

 Mục tiêu là tăng cườngkhảnăngsửdụng lại

22

L ậ p

L ậ p trình trình h h ướ ướ ng ng ñố ñố i i t t ượ ượ ng ng ((tt tt))

• S ự tr ừ u t ượ ng hóa (abstraction)

L ậ p

L ậ p trình trình h h ướ ướ ng ng ñố ñố i i t t ượ ượ ng ng ((tt tt))

• S ự tr ừ u t ượ ng hóa (abstraction)

– Là b ướ c ti ế n hóa ti ế p theo t ừ l ậ p trình c ấ u trúc – Ch ỉ quan tâm ñế n nh ữ ng ñặ c ñ i ể m c ầ n thi ế t (ph ớ t l ờ ñ i nh ữ ng chi ti ế t) tùy vào ng ữ c ả nh:

VD: Phân tích thông tin của 1 người:

- Trong ngữcảnh làm việc trong trường

- Trong ngữcảnh học tại trường? NhanVien

–Mã nhân viên

–Họvà tên

–Năm sinh

–…

Trang 23

–ðược bảo vệ(protected) : chỉtruy xuấtñược từ

– Tận dụng lại các thuộc tính chung

– Tận dụng lại các thao tác tương tự

• Thiết kếlớp gọn nhẹ, ñơn giản hơn

Các ñặ ñặ c c ñ ñ i i ể ể m m c c ủ ủ a a OOP OOP

• Tính th ừ a k ế (tt)

– Chú ý: tránh thi ế t k ế sai v ề m ặ t ý ngh ĩ a

VD: L ớ p XeH ơ i th ừ a k ế t ừ l ớ p BánhXe là SAI.

– L ớ p con ph ả i chính là l ớ p cha, ngoài ra còn – L ớ p con ph ả i chính là l ớ p cha, ngoài ra còn

ph ả i có thêm nh ữ ng ñặ c tr ư ng riêng c ủ a nó:

• Thêm hàm hoặc thêm thuộc tính

• Táiñịnh nghĩa hàm của lớp cha, ñổi kiểu thuộctính

• Dùng hàmảo

Trang 24

Con Con ng ng ườ ườ i i

ph ầ n mà l ớ p cha cho phép ( public + protected ).

thành ph ầ n trùng tên trong l ớ p cha

• Khi truy xuất thành phần trùng tênñó sẽtruy xuất

thành phần của lớp con

thành phần của lớp con

• Muốn truy xuất thành phần của lớp cha, phải chỉ

– Trong C++: <Tên lớp cha> :: ::<Tên hàm>

– Trong Java: super <Tên hàm>

Trang 25

– K ể tên trong l ớ p cha m ộ t ứ ng x ử chung (hàm

ả o – virtual, abstract) cho t ậ p h ợ p các l ớ p con.

– Khi nh ậ n yêu c ầ u, tùy vào ñố i t ượ ng thu ộ c

l ớ p nào s ẽ có ứ ng x ử riêng (th ự c thi hàm

2 “Kêu”: cho t ậ p h ợ p các con v ậ t (chó, mèo, gà,

2 “Kêu”: cho t ậ p h ợ p các con v ậ t (chó, mèo, gà,

• Không nhất thiết phải cầ ñịnh nghĩaở lớp cha

• Ph ả iñượcñịnh nghĩa lạitrong lớp con

– L ớ p ả o:

– L ớ p ả o:

• Chỉdùng khai báo các hàmảo bên trong

• Khôngñược dùngñểtạo rañối tượng

Trang 26

• Hàm trùng tên

• Khác tham số(sốlượng, thứtự, kiểu)

42

UML UML U U nified M odeling LL anguage

Trang 27

Gi ớ i thi thi ệ ệ u u UML UML

– Tạm dịch là ngôn ngữmô hìnhhóa thống nhấ

– Ra ñời vào năm 1997 và hiện nay ñangñược sửdụng rất

phổbiến

– Bao gồm một hệthống cácký hi ệ u ñồ h ọ a, bi ể u ñồ (s ơ

ñồ )thống nhất dùng ñểthiết kếcác hệthống thông tin

ñồ )thống nhất dùng ñểthiết kếcác hệthống thông tin (IS) theo hướngñối tượng

– ðược sửdụng cho cácgiaiñ ạn phân tích, thiết kế, triểnkhaivàkiểm thửphần mềm

– Các CaseTool(Rational Rose, System Architect, Argo UML, Visual Paradigm for UML, Umbrello…) hỗtrợUML trong việc phát sinh chương trình tự ñộng cho các ngôn

– Class Diagram (bi ể u ñồ l ớ p)

– Class Diagram (bi ể u ñồ l ớ p)

– Sequence Diagram (bi ể u ñồ trình t ự )

– Collaboration Diagram (bi ể u ñồ c ộ ng tác)

– State Diagram (bi ể u ñồ tr ạ ng thái)

– Component Diagram (bi ể u ñồ thành ph ầ n)

– Deployment Diagram (bi ể u ñồ tri ể n khai)

S ơ

S ơ ñồ ñồ l l ớ ớ p p (Class Diagram) (Class Diagram)

• L ớ p

Trang 29

• Mô hình hóa vi ệ c bán vé t ạ i r ạ p chi ế u phim theo

góc nhìn c ủ a ng ườ i mua vé / ng ườ i qu ả n lý

• Ti ệ m t ạ p hóa: Ch ủ ti ệ m c ầ n qu ả n lý vi ệ c mua

bán hàng hóa (vi ế t, t ậ p) trong c ử a hàng ñể bi ế t

bán hàng hóa (vi ế t, t ậ p) trong c ử a hàng ñể bi ế t

– Hàng nào mua vào giá bao nhiêu?

– Hàng nào bán ra và giá bao nhiêu?

Áp dụng kỹ thuật lập trình hướngñối tượng và tính

thừa kếcủa nóñểdựng khungñối tượng cho người

phụ trách mua bánñiền thông tin vào và sửdụng

phương thức cho việc mua bán

Bài Bài t t ậ ậ p p v v ề ề nhà

• Ch ọ n các ñố i t ượ ng ngoài th ự c t ế có liên quan v ớ i nhau ñể xây d ự ng khung (thu ộ c tính, ph ươ ng th ứ c) các ñố i t ượ ng v ớ i ñầ y ñủ

các ñặ c ñ i ể m:

– Tính th ừ a k ế – Ả o hóa.

– ð a hình.

• Cho 3 ví d ụ c ụ th ể cho t ừ ng ñố i t ượ ng

• H ạ n n ộ p: 12:00 PM 06/10/2009 (mail ho ặ c

gi ấ y)

Trang 30

Bài n n ộ ộ p p

• Mail:

– Subject: C++ Bai 1 <ma sinh sien>

– <ma sinh vien> <Tên sinh viên>

Trang 31

– Phân biệt chữHOAvà chữth ườ ng

– Gồmchữ, số, ‘_’ và phải bắtñầu bằng chữcái

– ðộdài tối ña là 32

– Nên theo quy cáchñặt tên

Vd: x, hoten, a1, num_of_var, Delta, TEN,

Các khái ni ệ m c ơ b ả n Các khái ni ệ m c ơ b ả n

• Ki ể u d ữ li ệ u

Tên Tên ki ki ể ể u u Kích Kích th th ướ ướ c c Ph Ph ạ ạ m m vi vi

char 1 byte -128  127 unsigned char 1 byte 0  255 int 2 bytes -32768  32767 unsigned int 2 bytes 0  65535 short 2 bytes 0  65535 long 4 bytes -231  231 - 1 unsigned long 4 bytes 0  232 - 1 float 4 bytes 1.2e-38  3.4e38double 8 bytes 2.2e-308 1.8e308

Trang 32

– Bi ế n khai báo trong 1 kh ố i l ệ nh: ch ỉ có ph ạ m vi

ho ạ t ñộ ng trong kh ố i l ệ nh ñ ó.

Vd: if( delta >0 ) {

float x1= (-b + sqrt(delta)) / (2*a);

float x2= (-b - sqrt(delta)) / (2*a);

}

5

Các khái ni ệ m c ơ b ả n Các khái ni ệ m c ơ b ả n

int so = x/c ; return so;

– Khai báo: Vd: #define MAX 100

const int MAX=100;

char *str=“Chuoi Ky Tu”;

char chuoi[50]; strcpy(chuoi,“ ”);

if ( strcmp(chuoi,“”) ==0)

Các khái ni ệ m c ơ b ả n Các khái ni ệ m c ơ b ả n

Cú pháp: ( ( Ki Ki ể ể u u ) ) bi bi ể ể u u th th ứ ứ c c

hoặc Ki Ki ể ể u u ( ( bi bi ể ể u u th th ứ ứ c c ) )

Vd: int a=10, b=3;

float c1 = a / b ; float c2 = float (a/b);

Trang 33

• M ả ng

– Khai báo: < <Ki Ki ể ể u u> < > <Tên Tên m m ả ả ng ng> [< > [<Kích Kích th th ướ ướ c c>]; >];

Vd: int m[10]; float ds[MAX];

– Th ứ t ự ph ầ n t ử : t ừ 0 ñế n (kích th ướ c -1)

Vd:

//CT tính t ổ ng c ủ a 10 s ố Fibonacci ñầ u tiên

long a[10]; a[0] = a[1] = 1;

for (int i = 2; i < 10 ; i++) a[i] = a[i-1] + a[i-2];

#error

Các khái ni ệ m c ơ b ả n Các khái ni ệ m c ơ b ả n

• Nh ậ p xu ấ t

– Thưviện hàm: #include <iostream.h>

– Nhập: cin cin >> >> Bi Bi ế ế n n

– Xuất : cout cout << ( << (Bi Bi ể ể u u th th ứ ứ c c))

– Các kiểu dữliệu có thể nhập xuất :– Các kiểu dữliệu có thể nhập xuất :

char , int, unsigned, long, unsigned long, … float, double, char* , char []

Trang 34

• Tươngñương với 1 câu lệnh

• Tươngñương với 1 câu lệnh

case ‘giá tr ị 1’ : L ệ nh 1; [ break ; ]

case ‘giá tr ị 2’ : L ệ nh 2; [ break ; ]

case ‘giá tr ị n’ : L ệ nh n; [ break ; ]

default : L ệ nh n+1;

Trang 35

Hàm và c ấ u trúc ch ươ ng trình

Hàm và c ấ u trúc ch ươ ng trình

• Hàm - Cú pháp :

<Ki ể u tr ả v ề > <Tên hàm> (Danh sách ki ể u và tham s ố )

{ [ Khai báo d ữ liệu cục bộ]

• Hàm - Khai báo prototype :

<Ki ể u tr ả v ề > <Tên hàm> ( Danh sách ki ể u );

Vd: int Max ( int , int );

int Min ( int , int );

void main() {

Khai báo hàm

void main() {

int a =10 , b =5;

cout <<“ So max= “<< Max (a,b)<< endl ;

cout <<“ So min= “<< Min (a,b)<< endl ; }

int Max ( int x , int y) { }

int Min ( int x , int y) { }

ðịnh nghĩahàm

Trang 36

Hàm và c ấ u trúc ch ươ ng trình

Hàm và c ấ u trúc ch ươ ng trình

• Hàm

– Cách gọi :

Tên hàm(tham s ố theo th ứ t ự t ừ trái sang)

– Tham sốvàñối số: Tham số

Hàm và c ấ u trúc ch ươ ng trình Hàm và c ấ u trúc ch ươ ng trình

• C ấ u trúc ch ươ ng trình

– Chương trình theo dạng lập trình cấu trúc gồmtập hợp nhiều hàmñộc lập nhau

– Hàm main() làhàm thực thi.– Một chương trình chỉcó thể có1 hàm main() duynhất

nhất

– Dạng chung :

22

#include < Thư viện hàm >

Khai báo prototype;

Khai báo dữ liệu toàn cục

ðịnh nghĩa các hàm ñã khai báo

– Trên MS-DOS, kích thước của con trỏlà 2 bytes

• Khai báo : < Ki ể u> *<Tên con tr ỏ >;

• Khai báo : < Ki ể u> *<Tên con tr ỏ >;

• C ấ p vùng nh ớ : Con tr ỏ = new <Ki ể u> [ S ố l ượ ng ];

Vd: int *px= new int;

long *py; py= new long[20];

• Thu h ồ i vùng nh ớ : delete <con tr ỏ >;

Vd: delete px;

Trang 37

Con Con trỏ trỏ ñến ñến 1 1 mảng mảng

10

10 phần phần tử tử kiểu kiểu int int

Tham s ố m ặ c nhiên Tham s ố m ặ c nhiên

• Khái ni ệ m

– Gán cácgiá trịmặc nhiêncho cáctham sốcủa hàm

Ư u ñ i ể m

– Không cần phải hiểu rõ ý nghĩa tất cảcác tham số

– Có thểgiảmñược sốlượng hàm cầnñịnh nghĩa

– Có thểgiảmñược sốlượng hàm cầnñịnh nghĩa

• Khai báo tham s ố m ặ c nhiên

– Tất cảcác tham sốmặc nhiênñều phảiñặ t ở cu ố i hàm.

– Chỉcầnñưa vào khai báo, không cần trongñịnh nghĩa

• G ọ i hàm có tham s ố m ặ c nhiên

– Nếu cung cấ ñủtham số=> dùng tham sốtruyền vào.– Nếukhông ñủtham số=> dùngtham sốmặc nhiên

Trang 38

Hàm thể hiện 1 cửa sổ thông báo trong Visual C++

Có thể gọi hàm theo các dạng sau:

29

MessageBox (“Hien thi thong bao ra man hinh");

MessageBox ( “Chuc nang khong su dung duoc",

• Ví d ụ

void Ham1 ( int a=0, int b=1) {

cout <<“ tham so 1 = “<<a<< endl ;

cout <<“ tham so 2 = “<<b<< endl ; }

void main() {

int x1=1, y1=2;

float x2=3, y2=4;

long x3=5, y3=6;

cout << Max (x1,y1)<<“\t”<< Max (x2,y2)<< endl ;

cout << Max (x3,y1) << endl ;

cout << Max (x3,y2) << endl ;

Trang 39

Hàm inline

• Giảm thời gian thực thi chương trình

• Tăng kích thước của mã lệnh thực thi

• Chỉnênñịnh nghĩa inline khi hàm có kích thước nhỏ

• Cú pháp : thêm từkhóa inline vào trước hàm

VD: inline float sqr(float x) { VD: inline float sqr(float x) {

• Truy ề n theo giá tr ị

– Giá tr ị tham s ố khi ra kh ỏ i hàm s ẽkhông thay không thay ñổ ñổ i i

void Swap1 (int a, int b) {

int temp = a;

a = b;

b = temp;

5 10

x y

a b

main Swap1

STEP 01

x y

5 10

a b

main Swap1

STEP 02

5 10

x y

10 5

a b

main Swap1

STEP 03

Truy ề n tham s ố

Truy ề n tham s ố

• Truy ề n theo ñị a ch ỉ (con tr ỏ )

– Giá tr ị tham s ố khi ra kh ỏ i hàm có th có th ể ể thay thay ñổ ñổ i i

void Swap2 (int * a, int * b) { int temp = * a;

* a = * b;

* b = temp;

5 10

x y

a b

x y

100 200

a b

x y

100 200

a b

main Swap2

STEP

03 100

200

Trang 40

*hoten masosv[]

• Vi ế t struct cho qu ả n lý kho hàng hóa (t ồ n kho) g ồ m các thông tin tên hàng,

Ngày đăng: 19/03/2014, 04:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w