Tải bản đầy đủ (.ppt) (48 trang)

CÁC ĐẶC ĐIỂM CỦA C Object

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 (283.03 KB, 48 trang )

Nguyễn Công Huy – Khoa CNTT&TT 1
CÁC ĐẶC ĐIỂM
CÁC ĐẶC ĐIỂM
CỦA C++
CỦA C++

Các khái niệm cơ bản của C++

Lập trình cấu trúc trong C++

Các đặc điểm mới của C++
Nguyễn Công Huy – Khoa CNTT&TT 2
Nội dung
Nội dung

Các khái niệm cơ bản trong C++

Cấu trúc điều khiển

Hàm và cấu trúc chương trình

Con trỏ và chuỗi ký tự

Tham số mặc nhiên của hàm

Tái định nghĩa hàm

Hàm tại chổ (inline)

Truyền tham số


Tham chiếu

Struct
Nguyễn Công Huy – Khoa CNTT&TT 3
Các khái niệm cơ bản

Từ khóa

Dành riêng cho ngôn ngữ  không được đặt tên
trùng với từ khóa.

Là chữ thường
VD : char, int, return, for, else, const, static

Tên

Phân biệt chữ HOA và chữ thường

Gồm chữ, số, ‘_’ và phải bắt đầu bằng chữ cái.

Độ dài tối đa là 32

Nên theo quy cách đặt tên.
VD: x, hoten, a1, num_of_var, Delta, TEN,
Nguyễn Công Huy – Khoa CNTT&TT 4
Các khái niệm cơ bản

Kiểu dữ liệu
Tên kiểu
Tên kiểu

Kích thước
Kích thước
Phạm vi
Phạm vi
char 1 byte -128  127
unsigned char 1 byte
0

 255
int 2 bytes -32768  32767
unsigned int 2 bytes 0  65535
short 2 bytes 0  65535
long 4 bytes
-2
31
 2
31
- 1
unsigned long 4 bytes
0

 2
32
- 1
float 4 bytes
1.2e
-38
 3.4e
38
double 8 bytes

2.2e
-308
 1.8e
308
Nguyễn Công Huy – Khoa CNTT&TT 5
Các khái niệm cơ bản

Biến

Khai báo : bất kỳ vị trí nào trong chương trình

Khởi tạo : có thể vừa khai báo và khởi tạo
VD: int x=5, y=10;
for( int i=0, tong =0 ; i<10 ; i++)
tong +=i ;

Biến khai báo trong 1 khối lệnh : chỉ có phạm
vi hoạt động trong khối lệnh đó.
VD: if( delta >0 ) {
float x1= (-b + sqrt(delta)) / (2*a);
float x2= (-b - sqrt(delta)) / (2*a);

}
Nguyễn Công Huy – Khoa CNTT&TT 6
Các khái niệm cơ bản

Biến

Biến toàn cục : có tác dụng trong toàn bộ CT.


Biến địa phương (cục bộ): chỉ có tác dụng trong
phạm vi của nó.
VD: int so = 5;
void GanSo(int x) {
so = x;
}
int NuaSo(int x) {
int c=2;
int so =x/c ;
return so;
}
Nguyễn Công Huy – Khoa CNTT&TT 7
Các khái niệm cơ bản

Hằng

Khai báo :
VD: #define MAX 100
const int MAX=100;

Một số hằng quan trọng :

Số nguyên: 10 , -5, 300000, 1000L,

Số thực : 3.1416, .5 , 123E-5,

Ký tự : char ch1 = ‘A’ , ch2=97;

Chuỗi ký tự :
char *str=“Chuoi Ky Tu”;

char chuoi[50]; strcpy(chuoi,“ ”);
if ( strcmp(chuoi,“”)==0)
cout << “Chuoi rong”;
Nguyễn Công Huy – Khoa CNTT&TT 8
Các khái niệm cơ bản

Kiểu

Chuyển đổi kiểu :

Mặc nhiên (tự động) :
float x = 3.1416;
int y = x ; float sole = x - y;

Do người lập trình sử dụng :
Cú pháp:
( Kiểu ) biểu thức
( Kiểu ) biểu thức
hoặc
Kiểu ( biểu thức )
Kiểu ( biểu thức )
Ví dụ:
int a=10, b=3;
float c1 = a / b ;
float c2 = float (a/b);
float c3 = (float) a / b ;
float c4 = float (a)/b;
Nguyễn Công Huy – Khoa CNTT&TT 9
Các khái niệm cơ bản


Các phép toán

Số học: + , - , * , / , %

Luận lý: ==, !=, >, <, >=, <=, &&, ||, !

Gán : =

Lấy kích thước: sizeof (đối tượng dữ liệu )

Điều kiện : e1 ? e2 : e3

Lấy địa chỉ : &(biến)

Tăng giảm :
x++ , x , ++x , x
tong+= i ; tich *= i;
/= , %= , -= , &= , |= , ^=
Nguyễn Công Huy – Khoa CNTT&TT 10
Các khái niệm cơ bản

Mảng

Khai báo :
<Kiểu> <Tên mảng> [<Kích thước>];
<Kiểu> <Tên mảng> [<Kích thước>];
VD : int m[10]; float ds[MAX];

Sử dụng : phép toán lấy giá trị phần tử.


Thứ tự phần tử : từ 0 đến (kích thước -1)
VD: // CT tính tổng của 10 số Fibonacci đầu tiên
long a[10]; a[0]=a[1]=1;
for (int i=2; i<10 ; i++)
a[i] = a[i-1] + a[i-2];
long tong=0;
for(i=0 ; i<10 ; i++)
tong+=a[i];
Nguyễn Công Huy – Khoa CNTT&TT 11
Các khái niệm cơ bản

Chú thích

Trên 1 dòng :
// chú thích trên 1 dòng

Trên nhiều dòng :
/* chú thích trên nhiều dòng */

Các chỉ thị tiền biên dịch :
# define # undefine # include
# if # else # endif
# if # elif # else # endif
# ifdef # else # endif
# ifndef # else # endif
# error
Nguyễn Công Huy – Khoa CNTT&TT 12
Các khái niệm cơ bản

Nhập xuất


Thư viện hàm : # include <iostream.h>

Nhập :
cin >> Biến
cin >> Biến

Xuất :
cout << (Biểu thức)
cout << (Biểu thức)

Các kiểu dữ liệu có thể nhập xuất :
char , int, unsigned, long, unsigned long, …
float, double, char* , char []
(void*): lấy địa chỉ đầu của chuỗi

Có thể nhập xuất liên tục trên một dòng.
VD: cout << “Gia tri x = “ << x << “ , y = “ <<y;
cout << “Nhap n = “; cin >> n;
Nguyễn Công Huy – Khoa CNTT&TT 13
Các khái niệm cơ bản

Nhập xuất

Một số hàm định dạng toàn cục:

cin.width(n)

cout.width(n)


cout.precision(n)

cin.seekg(n)

Ký tự đặc biệt : \n, \t, \0, \b, \r

Định dạng khác: endl, ends, flush, …

Nhập chuỗi :

gets(char* str);

cin.getline(char* str, int n);
Nguyễn Công Huy – Khoa CNTT&TT 14
Các khái niệm cơ bản

Cấu trúc 1 chương trình đơn giản
Nguyễn Công Huy – Khoa CNTT&TT 15
Cấu trúc điều khiển

Tuần tự

Câu lệnh : viết trên một hay nhiều dòng

Khối lệnh :

Là dãy các lệnh viết trong cặp { }

Tương đương với 1 câu lệnh


Giá trị của biểu thức điều kiện

Bằng 0 : <=> SAI

Khác 0 : <=> đúng
VD: int x=0;
if(x=2)
cout<< “ x bang 2 “;
else
cout<< “ x khac 2 “;
Nguyễn Công Huy – Khoa CNTT&TT 16
Cấu trúc điều khiển

Rẽ nhánh

if (biểu thức)
Lệnh 1;
else
Lệnh 2;

switch (biểu thức) {
case ‘giá trị 1’ : Lệnh 1; [ break; ]
case ‘giá trị 2’ : Lệnh 2; [ break; ]

case ‘giá trị n’ : Lệnh n; [ break; ]
default : Lệnh n+1;
}
Nguyễn Công Huy – Khoa CNTT&TT 17
Cấu trúc điều khiển


Lặp

while (biểu thức)
Lệnh ;

do
Lệnh ;
while (biểu thức);

for ( e1 ; e2 ; e3 )
Lệnh;
e1 : biểu thức khởi tạo
e2 : biểu thức điều kiện
e3 : biểu thức lặp
Nguyễn Công Huy – Khoa CNTT&TT 18
Cấu trúc điều khiển

Từ khóa break

Thoát ra khỏi cấu trúc switch

Thoát ra khỏi vòng lặp : while, do while, for

Từ khóa continue: Trở về đầu vòng lặp

Lệnh nhảy goto

Dùng chung với nhãn lệnh

Không nên sử dụng vì sẽ phá vở cấu trúc CT


Ưu điểm : thoát khỏi các vòng lặp lồng sâu
Nguyễn Công Huy – Khoa CNTT&TT 19
Hàm và cấu trúc chương trình

Hàm

Cú pháp :
<Kiểu trả về> <Tên hàm> (Danh sách kiểu và tham số)
{ [ Khai báo dữ liệu cục bộ ]
[ Thân hàm ]
[ Câu lệnh return ]
}
VD: int Max ( int x, int y) {
int somax;
somax = (x>y) ? x : y;
return somax;
}
Nguyễn Công Huy – Khoa CNTT&TT 20
Hàm và cấu trúc chương trình

Hàm

Khai báo prototype :
<Kiểu trả về> <Tên hàm> ( Danh sách kiểu );
VD: int Max ( int , int );
int Min ( int , int );
void main() {
int a =10 , b =5;
cout<<“So max= “<< Max(a,b)<<endl;

cout<<“So min= “<< Min(a,b)<<endl;
}
int Max (int x , int y) { }
int Min (int x , int y) { }
Nguyễn Công Huy – Khoa CNTT&TT 21
Hàm và cấu trúc chương trình

Hàm

Cách gọi :
Tên hàm(tham số theo thứ tự từ trái sang)

Tham số và đối số:
int Max ( int x, int y) {
if(x>y) return x;
return y;
}
void main() {
int a =10 , b = 5;
cout<<“So max= “<< Max ( a , b ) << endl;
}
Tham số (hình thức)
Đối số
(Tham số thực tế)
Nguyễn Công Huy – Khoa CNTT&TT 22
Hàm và cấu trúc chương trình

Cấu trúc chương trình

Chương trình theo dạng lập trình cấu trúc gồm

tập hợp nhiều hàm độc lập nhau.

Hàm main() là hàm thực thi.

Một chương trình chỉ có thể có 1 hàm main()
duy nhất.

Dạng chung :
# include < Thư viện hàm >
Khai báo prototype;
Khai báo dữ liệu toàn cục
Định nghĩa các hàm đã khai báo.
Định nghĩa hàm main().
Nguyễn Công Huy – Khoa CNTT&TT 23
Con trỏ và chuỗi ký tự

Khái niệm

Con trỏ lưu địa chỉ của 1 đối tượng dữ liệu khác.

Kích thước con trỏ = 1 ô nhớ của hệ điều hành.

Trên MS-DOS, kích thước của con trỏ là 2 bytes.

Khai báo : < Kiểu> *<Tên con trỏ>;
VD: long x = 20;
long *y; y = &x;

Các phép toán


Địa chỉ :
&
&y

Giá trị : y

Giá trị dữ liệu mà con trỏ đang trỏ tới :
*
*y
20
20
1036H
x
1036
1036
1080H
*y
Nguyễn Công Huy – Khoa CNTT&TT 24
Con trỏ

Cách tính địa chỉ

int x=10; // Chẳng hạn biến x đang ở địa chỉ 1000

int *px = &x; // px =1000

(*px)++; // Gán x=11

px++; // px = 1002 vì px là con trỏ kiểu int


px +=n; // px đang trỏ đến địa chỉ (1002 + 2*n )

Cấp vùng nhớ : Con trỏ =
new
new <Kiểu> [ Số lượng ];
Ví dụ: int *px= new int;
long *py; py= new long[20];

Thu hồi vùng nhớ :
delete
delete <con trỏ>;
Ví dụ: delete px;
delete[] py;
Nguyễn Công Huy – Khoa CNTT&TT 25
Con trỏ

Con trỏ và mảng

Con trỏ là 1 mảng động => kích thước có thể thay đổi.

Mảng như là 1 con trỏ nhưng độ lớn vùng nhớ cố định.
Cách sử dụng mảng và con trỏ gần như giống nhau
Cấp vùng nhớ
vừa đủ
cho con trỏ
Thu hồi lại
vùng nhớ

×