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

Ngôn ngữ lập trình c++ từ cơ bản đến hướng đối tượng

17 47 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

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 1,4 MB

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

Nội dung

Clìịii trách ỉỉlìiệm xiiủì bdiì Biên tập Trììììì bày bìa PGS.TS... Khái n iệ m về ẩốì tưỢng được dùng riêng cho một thực th ể riêng biệt hoặc cho một lớp của nhiều thực thể... Cuôn sác

Trang 2

T S DƯƠNG TỬ CƯỜNG

NGÔN NGỮ LỘP TRÌNH C++

£)AỈ H Ọ C Q U O C G i A HA ÌMỌl ĨRUNG TÀM THÕNG ĨIN ĨHƯ VIÉN

NHÀ X U Ấ T BẢN KH O A HỌC VÀ K Ỹ THUẬTt •

HÀ NÔI

Trang 3

Clìịii trách ỉỉlìiệm xiiủì bdiì

Biên tập

Trììììì bày bìa

PGS.TS Tô Đ á n g Hải ThS Vũ T h ị M in h L u ậ n

H ư ơ n g L a n

NHÀ XUẤT BẢN KHOA HỌC VÀ KỸ THUẬT

70 - Trần Hưng Đạo, Hà Nội

In 1000 bản, khổ 14,5 X 20,5 cm lại Xí nghiệp in NXB Lý hiạn chính Irị

G iấy phép xuất bán số: 150-191, cấp ngày 4/2/2005

In xong và nộp lưu chicu th á n g 10 năin 2003

Trang 4

LỜI N Ó I Đ Ầ U

Ti'ong nliững nảni 1980, ngôn ngữ c đã k h ả n g định đưỢc vị trí quan trọng trong các ngôn ngữ lập trìn h có cấu trúc bởi tín h

đa n ă ng của nìình Một chương trìn h đưỢc thiết kô^ tr ê n ngôn ngữ c thường p h á i huy dưỢc nhiều tác d ụ n g khó có thể hội t ụ ở các ngôn ngữ lặỊ) trìn h khác Tuy vậy khi độ phức tạp của các bài toán cần giai quyôt trôn thực tê ngày càng tà n g thì ngôn ngử

c cũng đã bộc lộ n h ữ n g điểm yêUj n h ấ t là khi clược sử d ụ n g cho các dự án lốn Đố khác phục những h ạ n chê còn tồn tại tro n g

ngôn ngữ c nói riêng và của các ngôn ngữ lập tr ìn h có cấu trúc

nói chung, các nhà thiôt k ế p h ầ n mềm đả p h á t triể n một ý tưỏng inoi Các ý tương này, mặc dù được x u ấ t hiện từ n h ữ n g n á m

1970 n h ư n g chỉ dược sử dụng inột cách rộng rãi để xây dựng phán mềm vào n h ữ n g n ă m 1980 Điểm m âu chôt để xây d ự n g lén ý tương này là khả n ă n g th iế t k ế n h ữ n g p h ầ n mềm m a n g nlìừng đặc tính của thô^ giới thực bên ngoài Kỹ t h u ậ t lập t r ì n h dựa trê n ý iưởng mới này có tên “Kỹ t h u ậ t lập tr ìn h hưống đố*i iưỢng” (Object - O riented - P ro g ram in g OOP) và trê n kỹ t h u ậ t

rnới n à y n h iề u trìn h b iê n dịch đã dược t h i ế t kô^ n h ư S m a llta lk ,

C ' \ V.V

Lập trìn h định hưống đôi tượng đưỢc p h á t triể n từ ngôn xigữ lập tr ìn h có cấu trúc n h ư n g th a y vì xoay q u a n h chức n ă n g của nhiộnì vụ đưỢc đ ặ t ra, OOP lại đ ặ t trọng tâ m của m ình vào việc

xử lý các dữ liệu để thực hiện các chức n ă n g đó Trong lập t r ì n h

đ ịn h hưống đôi tưỢng, k h á i niệm về object (đôl tưỢng) trở t h à n h

Trang 5

một khái niệm trọng tâ m và h ầ u n h ư mọi công việc tro n g ĩiìột chương trìn h đều đưỢc tiến h à n h tr ê n các đôl tưỢng này

Các t h à n h p h ầ n của một OOP bao gồm: đối tưỢng, thuộc tín h , tác động (phương thức) giao diệu và k h ả n à n g n h ìn Ihấy của các đôi tượng Mọi đốĩ tưỢng được th iế t lập trong O OP đều là các câu trúc độc lập bao gồm dữ liệu và các tác động m à đôi

tư ợ ng có thể thực hiện t r ê n các dữ liệu đó Khái n iệ m về ẩốì

tưỢng được dùng riêng cho một thực th ể riêng biệt hoặc cho một lớp của nhiều thực thể Một đổi tưỢng chỉ có th ể thực hiện các tác động đưỢc định nghĩa bên trong nó qua các th ô n g điệp dược gửi đên chính b ả n t h â n đôi tưỢng n à y và điều cần lưu ý là chỉ có

c h ín h đôl tượng này mới có th ể thực hiện các tác động đó Qua

th ô n g điệp này đôi tượng sẽ n h ậ n dưỢc các nhiệm vụ đòi hỏi nó

p h ả i thực hiện N hư vậy, một đôì tưỢng có th ể xem n h ư là một đại lượng mà ở đó hội tụ n h ữ n g đặc điểm sau: có tên, có tr ạ n g

th á i, có các tác động mà đôi tượng có th ể thực hiện và k h ả nán-g

ẩ n đôi vối các đôi tượng khác

Ngôn ngữ là một trong các ngôn ngữ lập t r ì n h được xây

d ự n g từ các ý tưởng mới này và có th ể xem là một đại diộn điển h ìn h cho phương p há p lập tr ìn h mới: lập t r ì n h hướng đôi tưỢng Vói ngôn ngữ này, ta có th ể là m quen với một sô" kh á i

n iệ m mới trong kỹ t h u ậ t lập tr ìn h liên q u a n dến t h ế giới thực:

t í n h đóng góp (encapsulation), tín h th ừ a k ế (inheritance) và tính tương ứng bội (polymorphism) Các đặc tín h không có trong ngôn

n g ữ lập trìn h tru y ề n thông đã làm cho có th ể p h á t huy h ế t tác d ụ n g của m ình khi th iê t k ế các dự á n lốn n h ư n g củng dem lại nhiều khó k h ă n cho các b ạ n mới b ắ t đầu yới % Đã làm

q u e n với thì có th ể n h ậ n th ấ y r ằ n g một chương t r ì n h được viế t trê n ngôn ngữ này sẽ h ế t sức súc tích, rõ rà n g và đặc biệt là

Trang 6

ớ nìộl c h ừ n g mự c nà o đó SG cho p h é p Ị>hát t r i ể n nó t h e o m ộ t s u y

Iighì hcl sức lự nhiên

Sự p h á t t n ổ n của đã trải qua nhiều chặng dưòiìg vối nlìiổu Ị)hiên b a n khác nhau Tài liộu nàv sử dụng phiên b ả n của hàng Borland - Borland c 3.1 để gíới thiệu về ngôn ngữ Đây

là tììn h biên dịch mà theo chúng tôi r ấ t tiện lợi cho việc n g h iê n cứu cùng n hư thiôt kô các p h ầ n mềm Cuôn sách này được biên soạiì dựa trên n h iế u tài liệu khác n h a u và trê n kinh nghiệm của cliíiih tác giả khi làm việc vói Khác vối nội dung của một sô"

tài liộu khác, cuôn sách này được biên soạn đê bạn đọc có thê

làm việc ngav với C++ mà không cần p h ả i biết về ngôn n gữ c

Nội dưng của cuốn sách được chia làm 2 p h ầ n bao gồm 11 chường

P h ầ n I: C++ - Lập trinh cơ bản, bao gồm 6 chương;

Chương I: Các khái niệm cơ bản về C++

Chương II: Các hàm và các dòng n h ậ p xuất

Chương III: Các phép toán và câu lệnh điều khiển

Chương IV: Bộ tien xử lý

Chương V: Biến con trỏ, biến t h a m chiếu và hàm

Chvỉơng VI: Các kiểu dữ liệu phức tạp

Phần II: L ậ p trình hướìig đối tượng, bao gồm 5 chương:

Chương VII: Lớp và đốì tưỢng

Chương IIX: Tính t h ừ a kê

Chương IX: Định nghĩa chồng các h à m và to á n tử

Chương X: Tính tương ứng bội

Chương XI: T h ư viện các dòng n h ậ p x u ấ t

Trang 7

Ngôn ngữ lập trìn h c là một ngôn ngữ lập trìn h khó và c^' lại còn phức tạp hơn ngôn ngữ c vì vậy đòi hỏi ở c h ú n g ta một

t i n h th ầ n chịu khó tìm tòi, h a m hiểu biết T u v vậy, m ột khi bạn

đã n ắ m chắc được ngôn ngữ này, c h ú n g tô i,tin tưởng rằ n g , trong

ta y bạn, sẽ trở t h à n h một công cụ h ế t sức đắc lực và vô cùng tiệ n lợi giúp b ạ n giải quyết các bài to á n kỹ t h u ậ t phức tạ p mà trước đó bạn đã phải v ấ t vả khi giải q u y ế t t r ê n ngôn ngữ c và

các ngôn ngữ khác Chúc các bạn th à n h công.

6

Trang 8

Phần I

C++

LẬP TRÌNH Cơ BẢN

Chương I

CÁC KHÁI N I ỆM C ơ B Ả N VỂ C + +

1.1 CÁC KÝ HIỆU

Các ký hiộu cơ b ả n bao gồm n h ữ n g ký tự được phép sử d ụ n g trơng ngôn ngữ n h ư các chữ cái, sô" và tổ hỢp các ký tự khác C++

sử dụng một sô"ký t ự sau:

- 52 chữ cái in thưòng, in hoa và ký tự gạch nốì:

a, b, c, z, A, B, c, z và _

- Các chữ sô";

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

- Các ký tự đặc b iệ t đưỢc d ù n g riê n g trong ngôn ngữ:

7

Trang 9

- Một sô" ký tự khác n hư d ấ u cách (ký tự trắng), d ấ u xuông

h à n g và dấu canh theo cột

Các từ khoá trong C++ được d ù n g để v iế t và xây d ự n g các

câu lệnh của chương trình C ũng giôVig n h ư c, các từ khoá n à y

luôn được viết bằ n g chữ thưòng và kh ô n g được d ù n g cho các mục

đích khác n h ư đ ặ t tên cho biến, cho h à m v.v

Có th ể liệt kê một sô" từ khoá được sử d ụ n g tro n g C++:

cortst

1.2 HẰNG

Các thông tin m à giá trị không th ể t h a y đổi tro n g chướng

t r ì n h được gọi là hằng Các h ằ n g trong C++ được chia làm một sô" loại sau:

H ằ n g sô hoc: Các h ằ n g này có giá trị b ằ n g giá trị của các

£Ô" m à nó biểu diễn H ằn g sô" học lại được chia là m hai loại

8

Trang 10

Hằng sò nguyên: Loại h ằ ng sô này có thể được biểu diỗn

dưới d ạ ng cơ sô^ 10, cơ sô" 8 và cơ sô' 16

Các hằng cơ sô' 10 có ihể là số’ dương hoặc âm c ẩ n lưu ý là

k iông dược dùng sô^ 0 n hư là cliữ số^ dầu tiên của h ằ n g số^

n J^uyôn

Ví dụ

+ 14 - H ằ n g sô'n guyên dương có giá trị là 14;

-12 ' H ằ n g sô" nguyên âm có giá trị là âm 12;

012 - Không phải là h ằ n g sô" nguvên

Các hằ n g sô' n g u y ê n cơ sô" 8 là các h ằ n g không có dấu và đưỢc biểu diễn b ằ n g các chữ sô" trong hệ đếm cơ số’ 8 - các sô" từ 0 đến 7 Chữ đ ầ u tiê n trong các h à n g kiểu này ph ả i là chữ số’ 0 Đây chính là n g u y ê n n h â n chữ sô" 0 không được sử dụng n h ư chữ sô^ đầu tiên của h ằ n g cơ sô" 10

Ví dụ:

014 • H ằ n g cơ sô" 8 vổi giá trị là 12 (cơ sô" 10)

0114 - H ằ n g cơ sô" 8 vỏi giá trị 76 (cơ số' 10)

Các h ằ n g sô" n g u y ê n cơ sô" 16 được viết không có dấu và luôn đưỢc b ắ t đầu bơi o x hoặc Ox Trong hệ đếm cơ sô" 16 ngoài các

c h ữ sô" từ 0 đến 9 người ta còn sử dụng các chữ cái từ A đến F để

b iể u thị các sô' từ 10 đến 15

Ví dụ:

o x c hoặc Oxc - H ằ n g cơ sô" 16 có giá trị 12 (cơ sô" 10)

OXFF hoặc Oxff - H ằ n g cơ sô" 16 có giá trị 255 (cơ sô" 10)

H ằ n g s ố thực: Là một loại h ằ n g chỉ được được viết dưới

9

Trang 11

d ạ ng cơ số 10 Một h ằ n g sô^ thực có th ể dược biểu diỄa dưói dạng th ậ p p h â n hay dưới d ạ n g khoa học

Ví dụ:

12.0 - H ằng số* thực dương có giá trị là \2.0

-12.5 - H ằng sô" thực âm có giá trị là -12.15

1.2E1 hoặc 1.2el - H ằn g sô" thực với giá trị 12

n h á y đơn, ví dụ 'A', 'B', T Mỗi kỷ tự có giá trị b ằ n g m ã ASCII của nó Ví dụ mã của ‘A' là 65 và '0' là 48

H ằ n g k i ê u c h u ỗ i là một dãy ký tự đưỢc viết tr o n g d ấ u

n h á y kép, ví dụ: "this is a string" là một h ằ n g kiểu chuỗi Đôl vối

h ằ n g kiểu chuỗi cần lưu ý:

• Độ dài của h ằ n g kiểu chuỗi là không h ạ n c h ế và có th ể không chứa ký tự nào

• T rình biên dịch sẽ tự động đưa thêm một byte có giá trị

b ằ n g 0 (NULL) vào sa u chuỗi tro n g quá t r ì n h biên dịch

Để p h â n biệt vói ký tự '0', byte n à y được viết dưỏi d ạ n g '\0 ' Byte n à y đưỢc xem n h ư dấu hiệu k ế t th ú c c ủa chuỗi,

• Nêu d ù n g m ả n g một chiều để lưu t r ữ h ằ n g kiểu chuỗi thì sô" p h ầ n tử của m ả n g ph ả i lớn hơn sô" ký tự của chuỗi

là một đơn vị (để chứa byte NULL)

Các ký tự dùng riêng (ký tự kh ô n g in ra được) có th ể được

sử d ụ n g n hư nh ữ n g ký tự bình thư ờng n h ư n g khi viết c húng

ph ả i th ê m ký tự \ ở trước C h ẳ n g h ạ n khi chỉ đưòng dẫn n h ư một h ằ n g kiểu chuỗi, th a y cho " C :\b o rla n d c \b g i" ta ph ả i viết

" C : \ \ b o r l a n d c \ \ b g i "

10

Trang 12

(V) một sô ký tự thuộc dạng không in ra dược (có giá trị ASCII từ 0 đôn 31) n h ư n g trìỉih biên dịch có th ể n h ậ n biêt được (‘h ú n g Ihôn^^ q u a một cặp ký tự (dưỢc viết b ắ t dầu b ằ ng ký tự \) Các ký tự này thường dược dùng dể điổu khiển m àn hình hoặc máy 111 Báng 1.1 mô tả một sô'ký tự thường hay được sử dụng:

Bảng I ỉ

T á c d ụ n g M ò t ả

t r o n g c

M ả

ASCII

Ký h i ệ u

B>'te tr ắ n g \ 0 0 NULL (null byte)

1 Ù1 \ b 8 BS (Backspace)

Vổ đ ầ u dòng \ r 13 CR (Carier R eturn)

C a n h cột \ t 9 T (Horizontal Tab)

Xuông dòng \ n 10 NL (New line)

S a n g tra n g \ f 12 FF ( Form feed)

'l'ín hiệu chuông \ a 7 bel (Bell)

1.3 BIẾN

Biên là một đại lượng thuộc một kiểu n h ấ t định (sô" nguyên,

sô thực v.v ) m à giá trị có th ể th a y đổi trong quá tr ìn h thực

h iệ n chương trình Mục đích của biến là dùng để lưu trữ dữ liệu

và việc sử d ụ n g biến được thực hiện th ô n g qua tê n của nó Khi

đ ặ t tên cho biến cần p h ả i đảm bảo các qui tắc sau:

• Tên bao gồm một dãy các chữ cái, sô" và ph ả i b ắ t đầu

11

Trang 13

b ằ n g chư cái Không sử d ụ n g các ký tự đặc biệt để đặt tên cho biến kể cả dấu cách

• Tên của biến không được t r ù n g với các từ khoá

• Có sự p h â n biệt giữa chữ thường và chữ hoa k hi đ ặ t tên cho biến

1.4 CÁ C LOẠI DỮ LIỆU VÀ CÁCH KHAI BÁO

T ấ t cả các biến trong ngôn ngữ c và C++ đều ph ả i được

k h á i báo trước khi sử dụng Thông qua việc k h a i báo n à y trìn h biê n dịch xác định kích thước của biến (cấp p h á t bộ nhớ để lưu

t r ữ giá trị của biến trong bộ nhố)

Khai báo biến đưỢc thực hiện qua cú p há p sau:

K i ê u b i ê n T ê n b i ê n ;

Dưới đây sẽ chỉ ra một sô" từ khoá được d à n h cho việc kh a i báo biến, kích thước của biến và k h o ả n g giá trị có th ể được lưu

t r ữ tro n g biến khi k h a i báo b ằ ng các từ khoá n à y (đôl với các loại

m á y sử dụng 16 bit dữ liệu):

Bảng 1.2

K i ể u K í c h t h ư ớ c (b it) G i á t r i •

c h a r 8 [-126 - 125]

u n s ig n e d char 8 [0 ^ 255]

in t 16 -32768 - +32767]

u n s ig n e d int 16 [0 - 65535]

long in t 32 -2e9 -í- +2e9

float 32 [-lOe-37 ^ 10e37

double 64 í-lOe-307 - lOe 3071

12

Trang 14

Trong các kiôu biôn này;

c h a r dừỢc dùng khai báo cho dữ liệu kiếu ký tự;

i n t - dữ Hệu kiểu sô" nguyên:

f l o a t - dử liệu kiểu sô" thực;

d o u b l e - dữ liệu kiểu số’ thực với độ chính xác gấp đôi;

u n s i g n e d - dữ liệu k h ô n g d ấ u (chỉ d ù n g cho c h a r và int);

l o n g - Dữ liệu có độ dài lớn hơn gâ^p hai lần (dùng cho in t

và float)

Các biến có thể được kh a i báo trê n cùng một dòng (ví d ụ in t

intx, y;

float z;

int a;

v ể vị tr í k h a i báo các biến, trong khi ngôn ngữ c đòi hỏi việc kh a i báo các biên ph ả i đưỢc thực hiện ở trước p h ạ m vi m à chúng được sử d ụ n g (thông thường khi b ắ t đầu định n g h ĩa h à m ) thì việc k h a i báo biến trong C++ chỉ cần dược thực hiệ n trưóc khi các biến n à y được sử dụng

1.5 MẢNG

M ảng là tậ p hỢp các biến có cùng kiểu được p h â n bô" lien tục trong bộ nhố Khi sử dụng m ả n g cũng cần phải lưu ý:

• M ản g phải được đ ặ t tên trưóc khi sử dụng N g u y ên tắc

đ ặ t tê n của m ả n g giông n h ư biến;

• Mỗi p h ầ n tử của m ả n g được xem là một biến;

• M ả n g ph ả i được kh a i báo trước khi sử dụng

13

Ngày đăng: 27/03/2020, 23:17

TỪ KHÓA LIÊN QUAN

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