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

Tài liệu Bài giảng: NGÔN NGỮ LẬP TRÌNH BẬC CAO docx

175 1,3K 9

Đ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 đề Ngôn Ngữ Lập Trình Bậc Cao
Tác giả Ths. Trần Thị Ngọc Linh
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia Hà Nội
Chuyên ngành Lập trình và Công nghệ thông tin
Thể loại Bài giảng
Thành phố Hà Nội
Định dạng
Số trang 175
Dung lượng 687 KB

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

Nội dung

Sự thay đổi căn bản ở chỗ, một chương trình hướng đối tượng được thiết kế xoay quanh dữ liệu mà chúng ta có thể làm việc trên đó, hơn là theo bản thân chức năng của chương trình.. Một số

Trang 1

Bài giảng

NGÔN NGỮ LẬP TRÌNH

BẬC CAO

Ths Trần Thị Ngọc Linh

Trang 2

Chương 1 Giới thiệu ngôn ngữ C và C++

Chương 2 Các thành phần cơ bản, các kiểu dữ

liệu cơ sở và các phép toán Chương 3 Các thao tác xử lý INPUT/OUTPUT Chương 4 Cấu trúc điều khiển

NỘI DUNG

Trang 3

Chương 1 Giới thiệu ngôn ngữ C và C++

- Có nhiều ngôn ngữ C:

Hãng Borland: Turbo C→ C++→DelphiHãng Microsoft: MicrosoftC→C++→Visual C++

Trang 4

1.2 Lịch sử phát triển của lập trình hướng đối

tượng

Lập trình hướng đối tượng(LTHĐT) không phải là đặc quyền của một ngôn ngữ đặc biệt nào Các khái niệm trong LTHĐT được thể hiện trong nhiều ngôn ngữ lập trình khác nhau Những ngôn ngữ cung cấp được khả năng LTHĐT được gọi là ngôn ngữ LTHĐT Do đó

sự phát triển của lập trình hướng đối tượng Ta

có thể tổng quan chúng như sau:

Trang 5

SIMULAR(66) SMALLTALK(71) SMALLTALK(80)

JAVA(95)

ADA(95)

EIFFEL(90)

Trang 6

Khái niệm về lập trình hướng đối tượng

 Lập trình hướng đối tượng (Object Oriented Programming- gọi tắt là OOP) chính là phương pháp lập trình lấy đối tượng (Object) làm nền tảng để xây dựng thuật giải, xây dựng chương trình

 Khái niệm hướng đối tượng được xây dựng trên nền tảng của khái niệm lập trình có cấu trúc và sự trừu tượng hóa dữ liệu Sự thay đổi căn bản ở chỗ, một chương trình hướng đối tượng được thiết kế xoay quanh dữ liệu mà chúng ta có thể làm việc trên đó, hơn

là theo bản thân chức năng của chương trình Điều này hoàn toàn tự nhiên một khi chúng ta hiểu rằng mục tiêu của chương trình là xử lý dữ liệu

Trang 7

1.3 Một số khái niệm trong lập trình hướng đối tượng

Đối tượng

- Trong thế giới thực, khái niệm đối tượng được hiểu như là một thực thể, nó có thể là người, vật hoặc một bảng dữ liệu cần xử lý trong chương trình, Trong

LTHĐT thì đối tượng là biến thể hiện của lớp.

đó

Trang 8

- Mỗi đối tượng có riêng cho mình một bản sao các phần tử dữ liệu của lớp Mỗi lớp bao gồm: danh sách các thuộc tính (attribute) và danh sách các phương thức

để xử lý các thuộc tính đó

- Công thức phản ánh bản chất của kỹ thuật LTHĐT là:

Đối tượng = Dữ liệu + Phương thức

Ví dụ: Xét lớp HINH_CN bao gồm các thuộc tính: (x1,y1) toạ độ góc trên bên trái, d,r là chiều dài và chiều rộng của HCN Các phương thức nhập số liệu cho HCN, hàm tính diện tích, chu vi và hàm hiển thị Lớp HINH_CN có thể được mô tả như sau:

Trang 9

Phương thức:

Nhập_sl Diện tích Chu vi Hiển thị

Trang 10

Chú ý: Trong LTHĐT thì lớp là khái niệm tĩnh, có thể nhận biết ngay từ văn bản chương trình, ngược lại đối tượng là khái niệm động, nó được xác định trong bộ nhớ của máy tính, nơi đối tượng chiếm một vùng bộ nhớ lúc thực hiện chương trình Đối tượng được tạo ra để xử lý thông tin, thực hiện nhiệm vụ được thiết kế, sau đó

bị hủy bỏ khi đối tượng đó hết vai trò.

Trang 11

Trừu tượng hóa:

Là cách biểu diễn những đặc tính chính và bỏ qua những chi tiết vụn vặt hoặc những giải thích Khi xây dựng các lớp, ta phải sử dụng khái niệm trừu tượng hóa

Ví dụ:

Ta có thể định nghĩa một lớp để mô tả các đối tượng trong không gian hình học bao gồm các thuộc tính trừu tượng như là kích thước, hình dáng, màu sắc và các phương thức xác định trên các thuộc tính này

Trang 12

BAO GÓI THÔNG TIN

- Việc đóng gói dữ liệu và các phương thức vào một đơn vị cấu trúc lớp được xem như một nguyên tắc bao gói thông tin

- Dữ liệu được tổ chức sao cho các đối tượng ở lớp khác không truy nhập vào, mà chỉ cho phép các phương thức trong cùng lớp hoặc trong những lớp có quan hệ kế thừa với nhau mới được quyền truy nhập Chính các phương thức của lớp sẽ đóng vai trò như là giao diện giữa dữ liệu của đối tượng và phần còn lại của chương trình

- Nguyên tắc bao gói dữ liệu để ngăn cấm sự truy nhập trực tiếp trong lập trình được gọi là sự che giấu thông tin

Trang 13

KẾ THỪA

Là quá trình mà các đối tượng của lớp này được quyền sử dụng một số tính chất của các đối tượng của lớp khác Sự kế thừa cho phép ta định nghĩa một lớp mới trên cơ sở một hay nhiều lớp đã có,

ta còn nói các phương thức đó trong lớp con cháu (descendant) được dẫn xuất (derivation) từ các lớp

tổ tiên (ancestor)

Lớp mới này, ngoài những thành phần được kế thừa, sẽ có thêm những thuộc tính và các hàm mới Nguyên lý kế thừa hỗ trợ cho việc tạo ra cấu trúc phân cấp các lớp

Trang 14

Tương ứng bội

- Là khả năng của một khái niệm (chẳng hạn các phép toán) có thể sử dụng với nhiều chức năng khác nhau

Ví dụ:

Phép cộng (+) có thể dùng để thực hiện cho các toán hạng là số, là xâu và

Trang 15

Liên kết động

Là dạng liên kết các thủ tục và hàm khi chương trình thực hiện lời gọi tới các hàm, thủ tục đó Như vậy trong liên kết động, nội dung của đoạn chương trình ứng với thủ tục, hàm sẽ không được biết cho đến khi thực hiện lời gọi tới thủ tục, hàm đó

Trang 16

TRUYỀN THÔNG BÁO

- Truyền thông báo cho một đối tượng là yêu cầu đối tượng thực hiện một việc gì đó Cách ứng

xử của đối tượng được mô tả bên trong lớp thông qua các phương thức.

- Trong chương trình, thông báo gửi đến cho một đối tượng chính là yêu cầu thực hiện một công việc cụ thể, nghĩa là sử dụng những hàm tương ứng để xử lý dữ liệu đã được khai báo trong đối tượng đó Vì vậy, trong thông báo phải chỉ ra được hàm cần thực hiện trong đối tượng nhận thông báo Thông báo truyền đi cũng phải xác định tên đối tượng và thông tin truyền đi

Trang 17

Ví dụ: Lớp CONGNHAN có thể là đối tượng cụ thể được đại diện bởi Hoten nhận được thông báo cần tính lương thông qua hàm TINHLUONG đã được xác định trong lớp CONGNHAN Thông báo đó sẽ được xử lý như sau:

CONGNHAN.TINHLUONG (Hoten)

Trong chương trình hướng đối tượng, mỗi đối tượng chỉ tồn tại trong thời gian nhất định Đối tượng được tạo ra khi nó được khai báo và sẽ bị hủy bỏ khi chương trình ra khỏi miền xác định của đối tượng đó Sự trao đổi thông tin chỉ có thể thực hiện trong thời gian đối tượng tồn tại

Trang 18

Các ưu điểm của lập trình

hướng đối tượng

 Thông qua thừa kế, loại bỏ được đoạn chương trình dư thừa khi mô tả dữ liệu

 Chương trình được xây dựng từ các đơn thể có khả năng trao đổi với nhau nên việc thiết kế và lập trình sẽ tuân theo quy trình nhất định

 Sự che giấu thông tin đảm bảo cho sự an toàn, không bị ảnh hưởng bởi chương trình khác

Trang 19

 Dễ mở rộng và nâng cấp hệ thống

 Kỹ thuật truyền thông báo giúp cho việc

mô tả giao diện với các hệ thống bên ngoài trở nên đơn giản hơn

 Có thể quản lý được độ phức tạp của phần mềm

 Có thể xây dựng được ánh xạ giữa các đối tượng có thực bên ngoài với các đối tượng trong chương trình

Trang 20

1.4 Cài đặt C++

- Có sẵn trong bộ nhớ gốc

- Chạy chương trình Install trong disk 1 và làm theo hướng dẫn

1.5 Môi trường Borland C++

1.6 Thiết lập cấu hình cho môi trường

Trang 21

Chương 2 Các thành phần cơ bản, các kiểu dữ liệu cơ sở và các phép toán

Trang 23

KHAI BÁO THƯ VIỆN

2.2 Các kiểu dữ liệu và cách khai báo

2.2.1 Khái niệm về kiểu dữ liệu

- Là kiểu được định nghĩa trong C để giải quyết các bài toán Gồm kiểu dữ liệu cơ sở, kiểu dẫn xuất, kiểu do người dùng định nghĩa

Trang 24

2.2.2 Kiểu dữ liệu cơ sở và khai báo

2.2.2.1 Kiểu số nguyên

- Các kiểu số nguyên bao gồm:

byte

short int (enum, int)

unsigned int

có dấu: -32768 to 32767 không dấu: 0 to 65535

2

long

Unsigned long

có dấu:-2147483648 to 2147483647 không dấu: 0 to 4294967295

4

Trang 25

2.2.2.2 Kiểu số thực

- Gồm các kiểu sau:

2.2.2.3 Kiểu ký tự

long double 1.2e + / - 4932 (19 digits) 10

char

unsigned char

có dấu: -128 to 127

Trang 28

struct, nhưng cho phép các biến chia sẻ vùng nhớ, giống như bản ghi động trong Pascal

Trang 29

<:baselist>: Các lớp cơ sở (ancestor).

Trang 30

Enum Color {White, Black, Red=3,

Yellow};

Như trên, While=0, Black=1, Red=3 và Yellow=4

Trang 31

2.2.4 Sự tương thích giữa các kiểu

Mặc dù một số kiểu có cùng số

byte nhưng chúng không tương

thích Để gán giá trị cho nhau, phải

sử dụng phép quy đổi kiểu Cú

pháp: (<Type>) <BThức>;

Ví dụ:

Trang 32

2.2.5 Định nghĩa và khai báo hằng

- Hằng là đại lượng có giá trị không đổi Có các loại hằng(int, long, Float, double, xâu, ký tự)

- Định nghĩa: #define <ConstName> < BThức >

- Khai báo hằng như sau:

Sử dụng const: const <Type>

Trang 33

2.2.6 Các hình thức chuyển đổi kiểu giá trị

- Với các kiểu dữ liệu chuẩn ta có thể thực hiện các phép chuyển kiểu ngầm định

- Có hai loại chuyển kiểu:

Chuyển kiểu ngầm định(tự động): được thực hiện bởi trình biên dịch

Chuyển kiểu tường minh(ép kiểu): thường được dùng trong các câu lệnh gọi hàm để gửi các tham số có kiểu khác với các tham số hình thức tương ứng

Cú pháp:

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

Trang 34

2.2.7 Các tham chiếu

của biến khác đã được khai báo, và được sử dụng như với biến bình

thường Ví dụ: Int m=10, n,

&Rm=m, &Rn=n;

tham chiếu của m và n, được sử

dụng như m và n Giá trị của biến sẽ thay đổi khi thay đổi giá trị của biến tham chiếu tương ứng với nó

Trang 35

2.2.8 Biến con trỏ

 Biến con trỏ được sử dụng rộng rãi trong Borland C++ Mỗi con trỏ chiếm bốn byte và trỏ tới vùng nhớ gồm một số byte liên tục Kích thước vùng nhớ này phụ thuộc kiểu mà con trỏ trỏ tới.

Trang 36

Các con trỏ s và t đều trỏ tới kiểu char, tức là xâu ký tự Vùng nhớ của s gồm 18 byte đã được cấp phát, byte cuối cùng là ký tự NULL báo kết thúc xâu, có dạng:

Các con trỏ r và t đều chưa được cấp phát vùng nhớ Chúng có thể được sử dụng để trỏ tới các vùng nhớ của các con trỏ cùng kiểu.

Đặc biệt, với khai báo: char u[20]= This is a

pointer; thì thực chất u là mảng các ký tự

(char) Ta có thể cho s hoặc t trỏ tới u, nhưng

không thể thay đổi địa chỉ của u và cũng không thể trực tiếp thay đổi giá trị của u.

Trang 37

- Toán tử(operator): được viết ra bằng dấu phép toán

- Toán hạng(operand): Có thể là hàng, biến, là hàm.

Trang 38

2.3 BIỂU THỨC CÂU LỆNH VÀ CÁC PHÉP

TOÁN

 Biểu thức được phân loại:

- Biểu thức số học: là biểu thức tính ra giá trị bằng số.

- Biểu thức logic: là biểu thức về nguyên tắc chỉ

nhận hai giá trị True hoặc False

- Biểu thức quan hệ: là biểu thức chứa các toán tử quan hệ

Trang 39

Toán tử đảo bit !

Toán tử tăng lên 1 ++

Toán tử giảm đi 1

Phép lấy phần bù một ~

Trang 40

Phép nhân, chia, chia dư *, /,%

Trang 41

2.3.2 QUY TĂC THỰC HIỆN BT HAY THỨ TỰ ƯU TIÊN

CÁC PHÉP TOÁN

Quy tắc

 Khi viết các biểu thức phức tạp với nhiều toán hạng chúng ta chưa

rõ được toán hạng nào được tính trước, toán hạng nào được tính sau

Trang 42

2.3.2 QUY TĂC THỰC HIỆN BT HAY THỨ TỰ ƯU TIÊN

4 * / % Toán tử số học Trái

Trang 43

2.3.2 QUY TĂC THỰC HIỆN BT HAY THỨ TỰ

ƯU TIÊN CÁC PHÉP TOÁN

5 + - Toán tử số học Trái

6 << >> Dịch bit Trái

7 < <= > >= Toán tử quan hệ Trái

8 == != Toán tử quan hệ Trái

9 & ^ | Toán tử thao tác bit Trái

10 && || Toán tử logic Trái

11 ?: Toán tử điều kiện Phải

Trang 44

2.3.3 CÂU LỆNH

 Câu lệnh được cách nhau bởi dấu chấm phẩy

 Câu lệnh được chia ra làm hai lạo: câu lện đơn giản và câu lệnh có cấu trúc.

 Lện đơn giản: là những lệnh không chứa các lênh khác, như lệnh gán, lời gọi hàm loại hàm Void

 Lệnh có cấu trúc: là khối lệnh, lệnh rẽ nhánh

và lệnh lặp, như if( ) else,

switch,for( ),do while

Trang 45

2.3.4 LỆNH HỢP THÀNH

hay hay nhiều lệnh đơn giản thậm chí

có cả lệnh ghép bên trong nó Lệnh ghép được đặt trong cập { }.

phẩy(;),

cách các câu lệnh chứ không phải là dấu kết thúc câu lệnh và nó không phụ thuộc vào câu lệnh.

Trang 46

2.3.5 CÁC HÀM SỐ HỌC CHUẨN

 Các hàm số học chuẩn là các hàm được định nghĩa sẵn, được sử dụng với số nguyên

và đối số là số thực Chúng được nằm trong tệp thư viện <Math.h>

 Việc chuyển số thực sang sô nguyên nhờ hai hàm chuản: hàm làm tròn và hàm cắt

 Quy ước tham số nguyên là i, tham số thực

là f

Trang 48

2.3.6 CÁC PHÉP TOÁN THEO BIT

được dùng với các phép tính theo bit: Như Not(^), And(&), Or(|) Các tác vụ này không dùng được với kiểu dữ liệu float, double.

diễn nhị phân trong máy.

và 1.

Trang 49

2.3.6 CÁC PHÉP TOÁN THEO BIT Bảng toán tử theo bít

Trang 51

2.3.8 Toán tử điều kiện

 Toán tử điều kiện này thực hiện như sau: Thoạt đầu tính toán biểu thức điều kiện nếu giá trị của biểu thức này đúng thì nhận giá trị của Bt1, trái lại nhận giá trị của Bt2.

VDụ: (a>b)? (max=a): (max=b);

Trang 52

2.3.9 CÁC PHÉP TĂNG, GIẢM ĐI 1

Phép tăng và giảm đi 1 C++ cho phép viết gọn lại như sau:

Sự khác nhau giữa hai cách viết i++ và ++i là: trong biểu thức: Biến= biểuthức;

- nếu biểu thức ++i thì i sẽ được tăng giá trị trước khi gán

- nếu biểu thức i++ thì i sẽ được tăng giá trị sau khi thực hiện phép gán

i = i +1 i ++ hoặc ++ ii= i -1 i hoặc i

Trang 53

2.3.10 Toán tử dãy

 Là dãy các biểu thức tính toán được cách nhau bởi dấu phẩy, có dang: tb1,bt2 , trong đó biểu thức có thể chứa một dãy các lệnh.

Vdu1: a*b,x+y, trong đó biểu thức tính a*b như một giá trị,sau đó tính giá trị biểu thức x+y.

Vd2: (a>b)? (max=a, min=b): (max=b,min=a);

Trang 54

Chương 3 Các thao tác xử lý INPUT/

Trang 55

cin chỉ bắt đầu sử lý dữ liệu nhập từ bàn phím sau khi phím Enter được gõ Vì vậy dù bạn chỉ nhập một kí tự thì cin vẫn sẽ kiên nhẫn chờ cho đến khi bạn gõ phím Enter

Trang 56

The value you entered is 702 and its double is 1404.

Trang 57

Bạn có thể dùng cin để nhập một lúc nhiều dữ liệu từ người dùng:

Trang 58

3.1.2 OUTPUT

- Dòng cout được sử dụng với toán tử đã quá tải

<< (overloaded - bạn sẽ hiểu rõ hơn về thuật ngữ này trong phần lập trình hướng đối tượng)

cout << "Output sentence";

// Hiển thị Output sentence lên màn hình

cout << 120; // Hiển thị số 120 lên màn hình

cout << x; // Hiển thị nội dung biến x lên màn hình

- Toán tử << được gọi là toán tử chèn vì nó chèn dữ liệu

đi sau nó vào dòng dữ liệu đứng trước

Trang 59

Chú ý rằng ở dòng đầu tiên chúng ta sử dụng dấu ngoặc kép vì đó là một chuỗi kí tự Khi chúng ta muốn sử dụng các hằng xâu kí tự ta phải đặt chúng trong cặp dấu ngoặc kép để chúng có thể được phân biệt với các biến

Ví dụ: hai lệnh sau đây là hoàn toàn khác nhau:

cout << "Hello"; // Hiển thị Hello lên màn hình

cout << Hello; // Hiển thị nội dung của biến Hello lên màn hình

Trang 60

- Toán tử chèn (<<) có thể được sử dụng nhiều lần trong một câu lệnh:

cout << "Hello, " << "I am " << "a C++ sentence";

- Câu lệnh trên sẽ in thông báo:

Hello, I am a C++ sentence lên màn hình

- Sự tiện lợi của việc sử dụng lặp lại toán tử chèn (<<) thể hiện

rõ khi chúng ta muốn hiển thị nhiều biến và hằng hơn là chỉ một biến:

cout << "Hello, I am " << age << " years old and my email address is " << email_add;

Trang 61

- Cần phải nhấn mạnh rằng cout không nhảy xuống dòng sau khi xuất dữ liệu, vì vậy hai câu lệnh sau :

cout << "This is a sentence.";cout << "This is another sentence.";

sẽ được hiển thị trên màn hình:

This is a sentence.This is another sentence

- Bởi vậy khi muốn xuống dòng chúng ta phải sử dụng kí

tự xuống dòng, trong C++ là \n:

cout << "First sentence.\n ";

cout << "First sentence.\n ";

cout << "Second sentence.\nThird sentence.";

sẽ viết ra màn hình như sau:

Ngày đăng: 22/12/2013, 21:16

HÌNH ẢNH LIÊN QUAN

BẢNG CÁC HÀM SỐ HỌC CHUẨN - Tài liệu Bài giảng: NGÔN NGỮ LẬP TRÌNH BẬC CAO docx
BẢNG CÁC HÀM SỐ HỌC CHUẨN (Trang 47)
BẢNG CÁC HÀM SỐ HỌC CHUẨN - Tài liệu Bài giảng: NGÔN NGỮ LẬP TRÌNH BẬC CAO docx
BẢNG CÁC HÀM SỐ HỌC CHUẨN (Trang 47)
Bảng toán tử theo bít - Tài liệu Bài giảng: NGÔN NGỮ LẬP TRÌNH BẬC CAO docx
Bảng to án tử theo bít (Trang 49)

TỪ KHÓA LIÊN QUAN

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

w