Bài giảng: NGÔN NGỮ LẬP TRÌNH BẬC CAO

Chia sẻ: bynamemeo

Tham khảo bài thuyết trình 'bài giảng: ngôn ngữ lập trình bậc cao', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Bạn đang xem 20 trang mẫu tài liệu này, vui lòng download file gốc để xem toàn bộ.

Nội dung Text: Bài giảng: NGÔN NGỮ LẬP TRÌNH BẬC CAO

Bài giảng 

NGÔN NGỮ LẬP TRÌNH
BẬC CAO

Ths. Trần Thị Ngọc Linh
NỘI DUNG
 
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
Chương 1. Giới thiệu ngôn ngữ C và C++

1.1 Lịch sử ngôn ngữ C và C++
- Do tác giả Dennis Ritchie và Brian Kerninghan xây
dựng vào những năm 1970
- Đặc điểm căn bản: vừa có đặc trưng của ngôn ngữ
bậc cao và có khá đầy đủ các chức năng của ngôn
ngữ bậc thấp
- Có nhiều ngôn ngữ C:

Hãng Borland: Turbo C→ C++→Delphi
Hãng Microsoft: MicrosoftC→C++→Visual C++
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:
SIMULAR(66)


SMALLTALK(71)


SMALLTALK(80)


ADA(83) C++(86)

EIFFEL(90)

ADA(95) JAVA(95)
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
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.
L ớp
- Là một bản mẫu mô tả các thông tin cấu trúc dữ liệu
và các thao tác hợp lệ của các phần tử dữ liệu.
- Khi một phần tử dữ liệu được khai báo là phần tử
của một lớp thì nó được gọi là đối tượng.
- Các hàm được định nghĩa hợp lệ trong một lớp được
gọi là các phương thức (method) và chúng là các hàm
duy nhất có thể xử lý dữ liệu của các đối tượng của
lớp đó.
- 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:
Mô tả lớp HINH_CN
Mô tả lớp 

HINH_CN


Thuộc tính:
x1,y1
d,r



Phương thức:
Nhập_sl
Diện tích
Chu vi
Hiển thị
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ò.
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.
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
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.
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à cả lớp.
- Hành vi của phép toán tương ứng bội phụ
thuộc vào kiểu dữ liệu mà nó sử dụng để xử
lý.
- Tương ứng bội đóng vai quan trọng trong
việc tạo ra các đối tượng có cấu trúc bên trong
khác nhau nhưng cùng dùng chung một giao
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 đó.
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.
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)

↑ ↑ ↑
Đối tượng Thông báo Thông tin




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
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
 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
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
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
2.1. Các thành phần cơ bản
2.1.1. Bộ ký tự
Bao gồm:
- Các chữ cái: a,…z,A…,Z

- Các chữ số: 0,...,9

- Các ký hiệu phép toán: +,-,*,/, so sánh, ()

- Ký tự nối và dấu gạch dưới

- Các ký hiệu: “;”,”,”,”,’,[,%,…
2.1.2. Tên
- Là tên gọi các biến, tên các hàm, tên lớp do người
sử dụng tạo ra và tuân theo qui tắc sau:
- Bắt đầu bằng chữ cái
- Không được trùng với từ khóa

2.1.3. Từ khóa
- Là từ được C dành riêng cho việc xây dựng các câu
lệnh, các khai báo, các phép tính,…
asm, car, bool, break, marry, catch, to char, class,
const, const_cast, continue, default, delete, do,
double, dynamic_cast, else, enum, explicit, extern,
false, float, for, friend, goto, if, inline, int, long,
mutable, namespace, new, operator, private,
protected, public,
2.1.4. Lời giải thích
- Có thể đặt bất kỳ chỗ nào trong chương trình và
được viết sau ký hiệu: /*
2.1.5. Cấu trúc của một chương trình C và qui tắc viết
chương trình KHAI BÁO THƯ VIỆN
MAIN()


FUNC1() FUNC2() FUNCN()


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
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:


Tên kiểu Phạm vi giá trị Số
byte


short int (enum, int) có dấu: -32768 to 32767 2
unsigned int
không dấu: 0 to 65535



long có dấu:-2147483648 to 2147483647 4
Unsigned long không dấu: 0 to 4294967295
2.2.2.2. Kiểu số thực
- Gồm các kiểu sau:

Tên kiểu Phạm vi giá trị Số byte

float 3.4e + / - 38 (7 digits) 4
double 1.7e + / - 308 (15 digits) 8

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




2.2.2.3. Kiểu ký tự
Tên kiểu Phạm vi giá trị Số byte

char có dấu: -128 to 127 1
unsigned char không dấu: 0 to 255
2.2.2.4. Kiểu Boolean
Tên kiểu Phạm vi giá trị Số byte

bool true hoặc false 1


2.2.3. Các kiểu dữ liệu được định nghĩa bởi
người dùng
 STRUCTURE

 UNION

 CLASS

 Enumeration
Structure
struct []
{ [ ] ;
[ ] ;
...
} [] ;
 Thực chất, struct giống như bản ghi
(record) trong Pascal.
UNION
union []
{ ; ...} [] ;
 Thực chất, union giống như struct, nhưng 
cho phép các biến chia sẻ vùng nhớ, giống 
như bản ghi động trong Pascal. 
Class
class
[] { } [] ;
: Là dữ liệu
(data) và các phương thức
(methods)
: Các lớp cơ sở
(ancestor).
Enumeration
enum [] { [=
], ...} [var_list];
: Tên hằng, được gán
giá trị mặc định nếu có =. Ví
dụ:
Enum Color {White, Black, Red=3,
Yellow};
Như trên, While=0, Black=1, Red=3 và
Yellow=4.
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: () ; 
Ví dụ:
unsigned Ch=65; Khi đó (char) Ch sẽ là 
‘ A’ .
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   
- Khai báo hằng như sau:

Sử dụng const:  const   = ; 
Ví dụ:
# define PI 3.14159265
# define NEWLINE '\n'
# define WIDTH 100
const unsigned char A[2][3] = {65,66,67,68,69,70}; 
const unsigned n=10; 
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
2.2.7. Các tham chiếu
 Biến tham chiếu thực chất là bí danh 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;
 Như vậy, Rm và Rn tương ứng là 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ó. 
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.
 Cú  pháp  (chú  ý  đến  dấu  *):    * 
;
 Ví  dụ:  int  m=10,  *p=m,  *q=20,  *r; char 
*s=”This is a pointer”, *t;
Trong  ví  dụ  này,  p,  q  và  r  là  ba  con  trỏ,  trỏ  tới 
kiểu int. Con trỏ p cụ thể đã trỏ tới vùng nhớ của 
biến  m,  con  trỏ  q  đã  được  cấp  phát  vùng  nhớ  và 
vùng nhớ đó chứa giá trị 20.
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ó 
T dạng: S
H I I S A P O I N T E R \0




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.
2.3. BIỂU THỨC CÂU LỆNH VÀ CÁC
PHÉP TOÁN
2.3.1. Biểu thức và các phép toán

Biểu thức là một công thức tính toán để đạt
được một giá trị thông qua một công thức toán
học nào đó.
Một biểu thức bao gồm:
- Toán tử(operator): được viết ra bằng dấu phép
toán
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ệ
CÁC PHÉP TOÁN (Toán tử)
  Phép toán xử lý một toán hạng
 
Toán tử lấy địa chỉ  *
Phép số âm ­
Phép số dương +
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 ~
 Phép toán xử lý hai toán hạng

Phép nhân, chia, chia dư *, /,%
Phép công, trừ +, ­
Phép dịch trái, phải
Phép đảo bit !
các phép toán quan hệ >,>=, 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

= += -= *= /= %=
12 Toán tử gán Phải
>>= >
với dòng cin. Theo sau toán tử này là biến sẽ
lưu trữ dữ liệu được đọc vào.
Ví dụ:
int age;
cin >> age;
khai báo biến age có kiểu int và đợi nhập dữ
liệu từ cin (bàn phím) để lưu trữ nó trong
biến kiểu nguyên này.
 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.
#include
Please enter an integer 
int main
(){ int i; cout > i; cout > a;
cin >> b;
Trong cả hai trường hợp người sử dụng phải
cung cấp hai dữ liệu, một cho biến a và một
cho biến b và được ngăn cách bởi một dấu
trống hợp lệ: một dấu cách, dấu tab hay kí tự
xuống dòng.
3.1.2. OUTPUT
- Dòng cout được sử dụng với toán tử đã quá tải
Đề thi vào lớp 10 môn Toán |  Đáp án đề thi tốt nghiệp |  Đề thi Đại học |  Đề thi thử đại học môn Hóa |  Mẫu đơn xin việc |  Bài tiểu luận mẫu |  Ôn thi cao học 2014 |  Nghiên cứu khoa học |  Lập kế hoạch kinh doanh |  Bảng cân đối kế toán |  Đề thi chứng chỉ Tin học |  Tư tưởng Hồ Chí Minh |  Đề thi chứng chỉ Tiếng anh
Theo dõi chúng tôi
Đồng bộ tài khoản