Tải bản đầy đủ (.pdf) (137 trang)

Slide ngôn ngữ lập trình c c+

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.27 MB, 137 trang )

.c
om

ng

th

an

co

ng

NGƠN NGỮ LẬP TRÌNH
C/C++

cu

u

du
o

Vũ Song Tùng

1
CuuDuongThanCong.com

/>

.c


om

NỘI DUNG
3

co

5

an

Các thành phần cơ bản

ng

Đặc điểm của C/C++

Biểu thức và toán tử

ng

th

22
45

Kiểu dữ liệu trừu tượng

77


Các cấu trúc dữ liệu cơ bản

123

cu

u

du
o

Hàm, mảng và con trỏ

2
CuuDuongThanCong.com

/>

I. Đặc điểm của C/C++

cu

u

du
o

ng

th


an

co

ng

.c
om

• Ngơn ngữ lập trình hàm
• Linh hoạt trong việc sử dụng các kiểu biến
• Truy cập trực tiếp bộ nhớ thơng qua các con
trỏ
• Định nghĩa các kiểu biến mới bằng các
struct
• Có thể chia nhỏ chương trình thành nhiều
mơ-đun

3
CuuDuongThanCong.com

/>

I. Đặc điểm của C/C++

u

du
o


ng

th

an

co

ng

.c
om

Kế thừa các đặc điểm của C
Đa hình bằng kỹ thuật xếp chồng (overload)
Hướng đối tượng bằng các lớp (class)
Sử dụng lại các mã bằng kỹ thuật kế thừa
(inheritance)

cu






4
CuuDuongThanCong.com


/>

.c
om

II. Các thành phần cơ bản

ng

Bộ ký tự

ng

th

an

co

Chú thích
Định danh

cu

u

du
o

Hằng

Biến
Vào/ra
5

CuuDuongThanCong.com

/>

II. Các thành phần cơ bản

co

ng

.c
om

Chữ cái thường : a – z
Chữ cái hoa : A – Z
Chữ số : 0 – 9
Phần lớn các dấu (trừ @ và $)

an






du

o

#include <iostream>

ng

th

Ví dụ

cu

u

void main()
{
int Arr[] = { 1, 2, 3, 4 };
for (int i = 0; i < 4; i++)
std::cout << Arr[i] << '\t';
}
6
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản

co

Mơ tả hàm


Có thể dùng để bỏ tạm thời một
đoạn chương trình

cu

u

du
o

ng

th

an

// Hàm tính x^n
// x - số thực, n - số nguyên dương
double power(double x, int n)
{
/*
double g = 1;
for (int i = 0; i < n; i++)
g *= x;
return g;
*/
if (n == 0)
return 1; // x^0 = 1
return x * power(x, n - 1);

}

ng

.c
om

• Dùng để mơ tả một hàm hay một đoạn
chương trình

Làm rõ nghĩa

7
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản

.c
om

• Tên được đặt cho các hàm, các biến, các kiểu dữ liệu
v.v…
• Các quy tắc định danh

ng

th


an

co

ng

– Chỉ được dùng các chữ cái, chữ số hoặc dấu gạch nối
– Ký tự đầu tiên không là chữ số
– Khơng được phép trùng từ khóa
Chú ý. Ngôn ngữ C/C++ phân biệt chữ cái hoa và chữ cái
thường

du
o

Ví dụ

// đúng quy cách

cu

u

void _foo()
{
int so nguyen;
int soNguyen;
}

// sai vì có chứa dấu cách

// đúng quy cách

8
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản

ng

.c
om

• Các giá trị cụ thể trong chương trình
• Có thể là số ngun, số thực, ký tự hoặc xâu ký
tự

du
o

ng

th

an

số nguyên kiểu int
số nguyên biểu diễn trong hệ 8
số nguyên biểu diễn trong hệ 16

U hoặc u – số nguyên kiểu unsigned
L hoặc l – số nguyên kiểu long
số nguyên kiểu double
ký tự có giá trị số (mã ASCII) bằng 53
ký tự có giá trị số (mã ASCII) bằng 65
xâu ký tự gồm ký tự '5' và ký tự NULL

u

//
//
//
//
//
//
//
//
//

cu

5
05
0x5
5u
5l
5.0
'5'
'A'
"5"


co

Ví dụ

9
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản

.c
om

Bảng 2.1. Các ký tự đặc biệt
Mô tả

\t

TAB

\n

ENTER

\’

Nháy đơn


\”

Nháy kép

\\

\

\0

Ký tự NULL (giá trị bằng 0)

cu

u

du
o

ng

th

an

co

ng

Ký tự


10
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản

th

cu

u

du
o

ng

• Biến đơn
• Biến mảng
• Biến con trỏ

an

co

ng

.c

om

• Là một vùng trong bộ nhớ RAM dùng để lưu
trữ tạm thời các giá trị được xác định bằng
một tên biến
• Phân loại

11
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản

kiểu tên_biến;
kiểu tên_biến = biểu_thức_khởi_tạo;

ng

Cú pháp

.c
om

• Cần khai báo biến trước khi sử dụng

// Khai báo biến đơn
// Khai báo biến mảng
// Khai báo biến con trỏ


cu

u

du
o

int a, b = 1;
double A[10];
int *pa = &a;

ng

th

an

co

Ví dụ

12
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản

Vùng giá trị


char

1

-128 … 127

short

2

int

4

–2,147,483,648 … 2,147,483,647

4

0 … 4,294,967,295

4

–2,147,483,648 … 2,147,483,647

8

–9,223,372,036,854,775,808 …
9,223,372,036,854,775,807

4


±3.4E±38

double

8

±1.7E±308

long double

8

±1.7E±308

ng

long

u

cu

float

co

an
th


unsigned
long long

Số thực

.c
om

Kích thước
(byte)

ng

Kiểu

du
o

Số nguyên

Bảng 2.2. Các kiểu biến

–32,768 … 32,767

13
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản


.c
om

• Một vài chú ý
Ví dụ

co

ng

void main()
{
int x = 10, y;
// Các biểu thức

th

an

Trong một khối ,…-, các tên biến phải khác nhau

cu

u

du
o

ng


for (int i = 0; i < 4; i++)
{
Cùng một tên biến có thể khai báo trong các khối ,…int x = 5;
khác nhau
// Các biểu thức
}
int y;

error C2086: 'int y' : redefinition

}
14
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản

.c
om

• Một vài chú ý

ng

th

an


co

ng

• Kích thước của các kiểu phụ thuộc vào hệ thống mà
chương trình được biên dịch
• Dùng tốn tử sizeof(...) để lấy kích thước của
một kiểu, một hằng hay một biến

du
o

// Chương trình Win32 Console Application

cu

u

int sz;
sz = sizeof(sz);
// sz = 4
sz = sizeof(long long); // sz = 8
sz = sizeof("12345");
// sz = 6

15
CuuDuongThanCong.com

/>


II. Các thành phần cơ bản

.c
om

• Kiểu liệt kê

ng

• Dùng để định danh cho các giá trị kiểu int

an

co

enum tên_kiểu { danh sách tên };

ng

th

Ví dụ

u

du
o

enum Boolean { False, True };
// False = 0, True = 1


cu

enum Keys { Enter = 13, Escape = 27, A = 65, B, C };
// B = 66, C = 67

16
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản

.c
om

Dùng các chuẩn vào/ra trong thư viện iostream để
làm việc với màn hình và bàn phím

co

ng

– Chuẩn vào (cin) sử dụng tốn tử luồng vào (>>)
– Các chuẩn ra (cout, cerr) sử dụng toán tử luồng ra (<<)

an

Ví dụ


cu

u

du
o

ng

th

double a, b, c;
cout << "Nhap a, b, c: ";
cin >> a >> b >> c; // Dùng dấu cách, TAB hoặc ENTER để phân biệt các luồng
if (a != 0)
{
cout << "delta = " << b*b - 4*a*c << '\n';
// Các biểu thức
}
else
cerr << "a phai khac 0.\n";

17
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản

.c

om

u cầu bài tốn

ng

• Nhập các hệ số a, b, c từ bàn phím
• Nếu a ≠ 0 thì

th

an

co

– Tính 
– In kết quả ra màn hình với các trường hợp

cu

u

du
o

ng

•  > 0  X1 = …, X2 = …
•  = 0  X1 = X2 = …
•  < 0  Vo nghiem.


18
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản

// thư viện vào/ra
// nơi khai báo các thành phần chuẩn

ng

#include <iostream>
using namespace std;

.c
om

PhuongTrinhBac2.cpp

cu

u

du
o

ng


th

an

co

void main()
{
double a, b, c;
cout << "Nhap a, b, c: "; cin >> a >> b >> c;
if (a != 0) {
// Đoạn biểu thức giải và biện luận phương trình //
}
else
cerr << "He so a phai khac 0.";
cout << endl;
system("pause");

// in ký tự xuống dịng
// tạm dừng màn hình

}

19
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản


.c
om

PhuongTrinhBac2.cpp

cu

u

du
o

ng

th

an

co

ng

// Giải và biện luận phương trình
double d = b*b - 4*a*c;
if (d >= 0)
{
if (d > 0)
{
cout << "X1 = " << (-b - sqrt(d)) / (2 * a) << ", X2 = "
<< (b - sqrt(d))/(2 * a);

}
else
cout << "X1 = X2 = " << -b / (2 * a);
} // if (d >= 0)
else
cout << "Vo nghiem.";

20
CuuDuongThanCong.com

/>

II. Các thành phần cơ bản

ng
co
an

du
o

ng

th

– a = 1, b = 2, c = 1
– a = 1, b = 2, c = 3
– a = 1, b = 3, c = 2

.c

om

• Tạo project PhuongTrinhBac2 trên Visual
Studio .NET và kiểm tra với các hệ số:

• Tối ưu đoạn mã giải phương trình bậc 2

cu

u

Gợi ý. Giảm số lượng các biểu thức 2 * a và sqrt(d)

21
CuuDuongThanCong.com

/>

.c
om

III. Biểu thức và toán tử
ng

Biểu thức
th

an

co


Các toán tử đơn

cu

u

du
o

ng

Các tốn tử có cấu trúc

22
CuuDuongThanCong.com

/>

III. Biểu thức và tốn tử

th

an

co

ng

.c

om

• Tập hợp của các tốn hạng và tốn tử
• Kết thúc bằng dấu chấm phảy
• Có thể rỗng

cu

u

du
o

ng

Ví dụ

(-b – sqrt(d)) / (2 * a)

 Các toán tử: () - / *
 Các toán hạng:
 Biến: a, b, d
 Hằng: 2
 Hàm: sqrt

23
CuuDuongThanCong.com

/>


III. Biểu thức và toán tử

Gán

=

Số học

+

Tăng/Giảm

++

--

So sánh

==

!=

Kiểm tra

?:

Logic

&&


Các loại khác

cu

Truy cập thành viên

u

~

&

*

new

{}

()

>=

<=

Có thể kết hợp với =

^

Cho giá trị 0 hoặc 1


Cho giá trị 0 hoặc 1

!

|

.

<

an

>

||

::

%

co

/

ng

Con trỏ

*


Ghi chú

&

du
o

Xử lý bit

-

.c
om

Các tốn tử

ng

Nhóm

th

Bảng 3.1. Phân loại các tốn tử đơn

<<

>>

Có thể kết hợp với =


delete

->
[]

,

Thứ tự ưu tiên các toán tử tham khảo tại
/>24
CuuDuongThanCong.com

/>

III. Biểu thức và tốn tử

.c
om

• Tốn tử gán:

lvalue = rvalue

Cú pháp

ng

lvalue – tên_biến, rvalue – một biểu thức

// gán 5 vào a
// tương đương: c = 5; b = c; a = b;

// tương đương: c = 5; a = b + c;

cu

u

du
o

a = 5;
a = b = c = 5;
a = b + (c = 5);

ng

th

an

co

Ví dụ

25
CuuDuongThanCong.com

/>

×