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

Bài giảng Lập trình hướng đối tượng C++‎ - Chương 1: Các đặc điểm của 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 (766.99 KB, 45 trang )

Chương 1

CÁC ĐẶC ĐIỂM 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++

1


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
2


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, ...
3


Các khái niệm cơ bản
• Kiểu dữ liệu

Tên kiểu

Kích thước

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

-231 ⇨ 231 - 1

unsigned long

4 bytes

0 ⇨ 232 - 1

float

4 bytes

1.2e-38 ⇨ 3.4e38

double

8 bytes

2.2e-308 ⇨ 1.8e308


4


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);
...

}
5


Các khái niệm cơ bản
• Biến
– Biến tồ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;
}
6


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”;
7


Các khái niệm cơ bản
• Kiểu: Chuyển đổi kiểu :
– Mặc nhiên (tự động) :
float
int

x = 3.1416;
y = x ; float sole = x - y;

– Do người lập trình sử dụng :
( Kiểu ) biểu thức
hoặc Kiểu ( biểu thức )
int
a=10, b=3;
float c1 = a / b ;
float c2 = float (a/b);
float c3 = (float) a / b ;

float c4 = float (a)/b;

Cú pháp:
Vd:

8


Các khái niệm cơ bản
• Các phép tốn








Số học:
Luận lý:
==,
Gán :
Lấy kích thước:
Điều kiện :
Lấy địa chỉ :
Tăng giảm :

+ , - , * , / , %
!=, >, <, >=, <=, &&, ||, !
=


sizeof (đối tượng dữ liệu )
e1 ? e2 : e3
&(biến)

x++ , x-- , ++x , --x
tong+= i ; tich *= i;
/= , %= , -= , &= , |= , ^=
9


Tìm lỗi biến?
int x = 10;
int x = 10;
---------------------int 1x = 10;
---------------------int x1 = 10;
---------------------int x=3, y=4;
int tong = X+Y;

int if = 10;
-------------------int diem so = 10;
-------------------int diem_so = 10;
-------------------int @diem = 10;
-------------------int diem@ = 10;
10


Tìm lỗi tên biến?
int x = 10;
int x = 10;

---------------------int 1x = 10;
---------------------int x1 = 10;
---------------------int x=3, y=4;
int tong = X+Y;

int if = 10;
-------------------int diem so = 10;
-------------------int diem_so = 10;
-------------------int @diem = 10;
-------------------int diem@ = 10;
11


Biến toàn cục và cục bộ?
int x1 = 5;
int x2 = 2;
void GanSo(int x) {
int x1 = x;
Kết quả cuối in ra x1,
x2 = x; }
x2 bằng mấy?
int main(void){
GanSo(3);
cout<<"x1: "<cout<<"; x2: "<getch();
}
12



Các khái niệm cơ bản
• Mảng
– Khai báo: <Kiểu> <Tên mảng> [<Kích thước>];
Vd:

int

m[10];

float

ds[MAX];

– 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];
13


Bài tập – mảng
• Dùng mảng lưu số tự nhiên từ 1 đến 10.
• In dãy số này ra màn hình.
• Tính tổng của dãy số và in ra màn hình.


14


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
#if
#if
#ifdef
#ifndef
#error

#undefine
#else
#elif
#else
#else

#include
#endif
#else
#endif
#endif


#endif

15


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
Xuất : 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 =
cout << “Nhap n = “; cin >> n;

“ <16



Các khái niệm cơ bản
• Nhập xuất
– Một số hàm định dạng tồn cục:
• cin.width(n)
• cout.width(n)

– Ký tự đặc biệt : \n, \t
– Định dạng khác: endl, ends, flush, …

17


Bài tập – nhập xuất
• Viết đoạn lệnh cho phép người dùng
nhập một chuỗi và in chuỗi đó ra màn
hình.

18


Các khái niệm cơ bản
• Cấu trúc 1 chương trình đơn giản

19


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 “;

20


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;
}
21


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

22


Cấu trúc điều khiển
• Từ khóa break
– Thốt ra khỏi cấu trúc switch

– Thốt ra khỏi vịng lặp : while,

do while, for

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

23


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;
}
24


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:


Định
nghĩa
hàm

int Max ( int , int );
Khai báo
int Min ( int , int );
hàm
void main() {
int
a =10 , b =5;
cout<<“So max= “<< Max(a,b)<cout<<“So min= “<< Min(a,b)<}
int Max (int x , int y) { ... }
int Min (int x , int y) { ... }
25


×