Tải bản đầy đủ (.pptx) (142 trang)

NGÔN NGỮ lập TRÌNH

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 (447.77 KB, 142 trang )

NGÔN NGỮ LẬP TRÌNH
C/C++
Vũ Song Tùng

1


NỘI DUNG
Đặc điểm của C/C++

3

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

5

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

22

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

45

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

77

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

123


2


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

Ngôn ngữ C

• 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


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

Ngôn ngữ C++






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)

4


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

Bộ ký tự
Chú thích
Định danh
Hằng
Biến
Vào/ra
5


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

2.1. Bộ ký tự






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à $)


Ví dụ
# include < iostream >
void m ain()
{
int Arr[] = { 1, 2, 3, 4 };
for (int i= 0; i< 4; i+ + )
std::cout < < Arr[i] < < '\t';
}
6


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

2.2. Chú thích

• Dùng để mô tả một hàm hay một đoạn
chương trình
// H àm tính x^ n
// x - sốốthực, n - sốốnguyên dương
double pow er(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 * pow er(x, n - 1);
}

Mô tả hàm

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

Làm rõ nghĩa

7


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

2.3. Định danh

• 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
– 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
Ví dụ
void _foo()
// đúng quy cách
{
int so nguyen; // saivìcó chứa dấố
u cách

int soN guyen; // đúng quy cách
}
8


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

2.4. Hằng

• Các giá trị cụ thể trong chương trình
• Có thể là số nguyên, số thực, ký tự hoặc xâu ký tự
Ví dụ
5 // sốốnguyên kiêể
u int
05 // sốốnguyên biêể
u diêễ
n trong hệ 8
0x5
// sốốnguyên biêể
u diêễ
n trong hệ 16
5u // U hoặc u – sốốnguyên kiêể
u unsigned
5l // L hoặc l– sốốnguyên kiêể
u long
5.0 // sốốnguyên kiêể
u double
'5' // ký tự có giá trịsốố(m ã ASCII) bằng 53
'A' // ký tự có giá trịsốố(m ã ASCII) bằng 65
"5" // xấu ký tự gốồ

m ký tự '5'và ký tự N U LL
9


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

2.4. Hằng
Bảng 2.1. Các ký tự đặc biệt
Ký tự

Mô tả

\t

TAB

\n

ENTER

\’

Nháy đơn

\”

Nháy kép

\\


\ (phân biệt với // của đường dẫn)

\0

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

10


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

2.5. Biến

• 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
• Biến đơn
• Biến mảng
• Biến con trỏ

11


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

2.5. Biến

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

u tển_biểế
n;
Cú pháp
kiểể
u tển_biểế
n = biểể
u_thức_khởể
i_tạo;
Ví dụ

int a, b = 1; // Khaibáo biêố
n đơn
double A[10];
// Khaibáo biêố
nma
ểng
int *pa = & a;// Khaibáo biêố
n con tro


12


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

2.5. Biến
Bảng 2.2. Các kiểu biến
Kiểu
char


Vùng giá trị
-128 … 127

2

–32,768 … 32,767

4

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

4

0 … 4,294,967,295

4

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

long long

8

float

4

–9,223,372,036,854,775,808 …
9,223,372,036,854,775,807
±3.4E±38


double

8

±1.7E±308

long double

8

±1.7E±308

short
int
Số
nguyê unsigned
n
long

Số
thực

Kích thước
(byte)
1

13



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

2.5. Biến

• Một vài chú ý
Ví dụ
void m ain()
{
int x = 10, y;
// Các biêể
u thức

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

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



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

2.5. Biến

• Một vài chú ý
• 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 toán tử sizeof(...) để lấy kích thước của
một kiểu, một hằng hay một biến

// Chương trình W in32 Console Application

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

15


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

2.5. Biến

• Kiểu liệt kê
• Dùng để định danh cho các giá trị kiểu int
enum tển_kiểể
u { danh sách tển };
Ví dụ

enum Boolean { False, True };
// False = 0, True = 1
enum Keys { Enter = 13, Escape = 27, A = 65, B, C };
// B = 66, C = 67

16


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

2.6. Vào/ra

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
– Chuẩn vào (cin) sử dụng toán tử luồng vào (>>)
– Các chuẩn ra (cout, cerr) sử dụng toán tử luồng ra (<<)
Ví dụ
double a, b, c;
cout < < "N hap a, b,c: ";
cin > > a > > b > > c; // D ùng dấố
u cách, TAB hoặc EN TER đêể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 phaikhac 0.\n";


17


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

Giải phương trình bậc 2
Yêu cầu bài toán

• Nhập các hệ số a, b, c từ bàn phím
• Nếu a ≠ 0 thì
– Tính 
– In kết quả ra màn hình với các trường hợp
•  > 0  X1 = …, X2 = …
•  = 0  X1 = X2 = …
•  < 0  Vo nghiem.

18


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

Giải phương trình bậc 2
PhuongTrinhBac2.cpp
# include < iostream >
using nam espace std;

// thư viện vào/ra
// nơikhaibáo các thành phấồ
n chuấể

n

void m ain()
{
double a, b, c;
cout < < "N hap a, b,c: "; cin > > a > > b > > c;
if (a != 0) {
// Đ oạn biêể
u thức gia
ểivà biện luận phương trình //
}
else
cerr < < "H e so a phaikhac 0.";
cout < < endl;
system ("pause");

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

}

19


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

Giải phương trình bậc 2
PhuongTrinhBac2.cpp
// G ia

ểivà 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


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

Bài tập

• Tạo project PhuongTrinhBac2 trên Visual
Studio .NET và kiểm tra với các hệ số:
– a = 1, b = 2, c = 1
– a = 1, b = 2, c = 3
– a = 1, b = 3, c = 2

• Tối ưu đoạn mã giải phương trình bậc 2
Gợi ý. Giảm số lượng các biểu thức 2 * a và sqrt(d)


21


III. Biểu thức và toán tử
Biểu thức
Các toán tử đơn
Các toán tử có cấu
trúc

22


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

3.1. Biểu thức

• Tập hợp của các toán hạng và toán tử
• Kết thúc bằng dấu chấm phảy
• Có thể rỗ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


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

3.2. Các toán tử đơn
Bảng 3.1. Phân loại các toán tử đơn
Nhóm
Gán

Các toán tử

Ghi chú

Số học

+

Tăng/Giảm

++

--

So sánh

==


!=

>

Kiểm tra

?:

Logic

&&

||

!

Xử lý bit

&

|

~

Con trỏ

&

*


new

Truy cập thành viên

::

.

Các loại khác

{}

()

=
-

*

/

^

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

%
<

>=


<=

Cho giá trị 0 hoặc 1
Cho giá trị 0 hoặc 1

<<

>>

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


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

3.2. Các toán tử đơn

• Toán tử gán:
Cú pháp

lvalue = rvalue

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

Ví dụ

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

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×