Upload
sleepingchild
View
520
Download
1
Embed Size (px)
Citation preview
CÚ PHÁP C++ CƠ BẢN
1.Định danh
Định danh:
Xâu ký tự thể hiện tên các biến, phương thức, các lớp và nhãn.
1.1.Quy định với định danh:
- Các ký tự có thể là chữ số, chữ cái, '$' hoặc ‘_’- Tên không được phép:
+ Bắt đầu bởi một chữ số.+ Trùng với từ khóa.
- Phân biệt chữ hoa chữ thườngYourname, yourname, YourName và yourName là 4 định danh khác nhau.
1.2.Từ khóa: Có 73 từ khóa
and and_eq asm auto bitand bitorbool break case catch char class
compl const const_cast continue default delete
do double dynamic_cast else enum explicitexport extern false float for friend
goto if inline int long mutablenamespace new not not_eq operator oror_eq private protected public register reinterpret_cast
return short signed sizeof static static_cast
struct switch template this throw true
try typedef typeid typename union unsignedusing virtual void volatile wchar_t while
xor xor_eq
1.3.Qui ước với định danh
Tên biến:
Là 1 danh từ bắt đầu bằng 1 ký tự in thường các từ tiếp theo bắt đầu là 1 ký tự in hoa.
ex: line, audioSystem…
Biến chỉ số lượng nên có tiền tố “n”: nPoints, nLines
Tên hàm:
Đặt tên “động” cho các hàm.
ex: getTime()
Các hàm trả về boolean nên đc đặt tên thể hiện giá trị nó trả về.
ex: isOctal(c)
Tên class và struct: Dùng chữ hoa tất cả các chữ cái đầu mỗi từ.
ex: Game, GameBoard
2. Các kiểu dữ liệu
Mọi biến đều phải khai báo một kiểu dữ liệu
Các kiểu dữ liệu cơ bản chứa một giá trị đơn
Kích thước và định dạng phải phù hợp với kiểu của nó
2.1.Các kiểu dữu liệu
Tên Số byte
Mô tả Miền giá trị
char 1 ký tự hay kiểu số nguyên 8-bit có dấu: -128 to 127không dấu: 0 to 255
short 2 kiểu số nguyên 16-bit có dấu: -32763 to 32762không dấu: 0 to 65535
long 4 kiểu số nguyên 32-bit có dấu:-2147483648 to 2147483647không dấu: 0 to 4294967295
int * Số nguyên. Độ dài của nó phụ thuộc vào hệthống, như trong MS-DOS nó là 16-bit, trênWindows 9x/2000/NT là 32 bit...
Xem short, long
float 4 Dạng dấu phẩy động 3.4e + / - 38 (7 digits)double
8 Dạng dấu phẩy động với độ chính xác gấpđôi
1.7e + / - 308 (15 digits)
long double
10 Dạng dấu phẩy động với độ chính xác hơnnữa
1.2e + / - 4932 (19 digits)
bool 1 Giá trị logic. Nó mới được thêm vào chuẩnANSI-C++. Bởi vậy không phải tất cả
true hoặc false
cáctrình dịch đều hỗ trợ nó
Các hằng số
Các số nguyêno Cơ số hê 10
o Cơ số hệ 8: bắt đầu bởi 0
o Cơ số hệ 16: bắt đầu bởi 0X,oX,ox,Ox
Ex:75 //hệ 100113 //hệ 80x13 //hệ 16
Số thập phân (dạng dấu phẩy động)o float kết thúc bằng ký tự f (hoặc F)
7.1fo double kết thúc bằng ký tự d (hoặc D)
7.1Do e (hoặc E) được sử dụng trong dạng biểu diễn khoa học:
7.1e2o Một giá trị thực mà không có ký tự kết thúc đi kèm sẽ có kiểu là double
7.1 giống như 7.1d Kí tự và xâu kí tự
o Kí tự: được đặt trong cặp dấu nháy đơn
ex: ‘x’o Xâu kí tự: được đặt trong cặp dấu nháy kép
ex: ‘’x’’, ‘’Hello world’’ Các chuỗi ESCAPSE
2.2.Ép kiểu
Một giá trị thuộc về những kiểu xây dựng sẵn mà chúng ta biết đến thời điểm này đều có thể được chuyển về bất kỳ một kiểu nào khác. Ví dụ:
(int) 3.14 // chuyển 3.14 sang int để được 3
(long) 3.14 // chuyển 3.14 sang long để được 3L
(double) 2 // chuyển 2 sang double để được 2.0
(char) 122 // chuyển 122 sang char có mã là 122
(unsigned short) 3.14 / / được 3 như là một unsigned short
Như đã được trình bày trong các ví dụ, các định danh kiểu xây dựng sẵn có thể được sử dụng như các toán tử kiểu. Các toán tử kiểu là đơn hạng (nghĩa là chỉ có một toán hạng) và xuất hiện bên trong các dấu ngoặc về bên trái toán hạng của chúng. Điều này được gọi là chuyển kiểu tường minh. Khi tên kiểu chỉ là một từ thì có thể đặt dấu ngoặc xung quanh toán hạng:
int(3.14) // như là: (int) 3.14
Trong một vài trường hợp, C++ cũng thực hiện chuyển kiểu không tường minh. Điều này xảy ra khi các giá trị của các kiểu khác nhau được trộn lẫn trong một biểu thức. Ví dụ:
double d = 1; // d nhận 1.0
int i = 10.5; // i nhận 10
i = i + d; // nghĩa là: i = int(double(i) + d)
Trong ví dụ cuối , i + d bao hàm các kiểu không hợp nhau, vì thế trước tiên i được chuyển thành double (thăng cấp) và sau đó được cộng vào d. Kết quả là double không hợp kiểu với i trên phía trái của phép gán, vì thế nó được chuyển thành int (hạ cấp) trước khi được gán cho i.
2.3.Khai báo và khởi tạo biến
Các biến đơn (biến không phải là mảng) cần phải được khởi tạo trước khi sử dụng trong các biểu thức
Có thể kết hợp khai báo và khởi tạo cùng một lúc. Sử dụng dấu =
Ví dụ:
int i; // Khai báo biếni = 0; int k =i+1;cout<<i; // In ra 0cout<<k; // In ra 1
2.4.Phạm vi biến
Global variables (biến toàn cục) có thể được sử dụng ở bất kỳ đâu trong chương trình, ngay sau khi nó được khai báo.
Local variables (biến cục bộ) bị giới hạn trong phần mã mà nó được khai báo.
Thêm vào các biến toàn cục và cục bộ, còn có các biến ngoài (external). Các biến này không những được dùng trong một file mã nguồn mà còn trong tất cả các file được liên kết trong chương trình.
Ví dụ:
#include <stdio.h>
#include<conio.h>
void show() {
int i;//Biến cục bộ
for (i=0; i<100; i++) cout<<i;
}
void main() {
int i; //Biến toàn cục
show();
}
Chú thích
C++ hỗ trợ 2 kiểu chú thích
// Chú thích trên một dòng /* Chú thích
một đoạn */
Câu lệnh
Các câu lệnh kết thúc bởi dấu ; Nhiều lệnh có thể viết trên một dòng. Một câu lệnh có thể viết trên nhều dòng
Ví dụ:
int x=0; int y=1;cout <<
“Hello! My name is Hoang”;
3. Toán tử (Operators)
Kết hợp các giá trị đơn hoặc các biểu thức con thành những biểu thức mới, phức tạp hơn và có thể trả về giá trị.
C++ cung cấp nhiều dạng toán tử sau:
Toán tử số học+, -, *, /, %
Toán tử bitAND: &, OR: |,XOR: ^,NOT: ~Dịch bit: <<,>>
Toán tử quan hệ==, !=, >, <, >=, <=
Toán tử logic&&, ||, !
Toán tử gán=, +=, -=, %=
Toán tử một ngôiĐảo dấu: +, -
Tăng giảm 1 đơn vị: ++, --Phủ định một biểu thức logic: !
4. Cấu trúc điều khiển
4.1. Lệnh if –else
Cú pháp
if (dieu_kien){
cac_cau_lenh;
}
else{
cac_cau_lenh;
}
• Mệnh đề else là tùy chọn
Ví dụ: Kiểm tra số chẵn –lẽ
void main(){
int num =10;
if (num %2 == 0)
cout<<num <<” la so chan”;
else
cout<<num <<”la so le”;
}
4.2. Lệnh switch –case
Kiểm tra một biến đơn với nhiều giá trị khác nhau và thực hiện trường hợp tương ứng- break: Thoát khỏi lệnh swith-case.
- default: kiểm soát các giá trị nằm ngoài các giá trị case.
Ví dụ
Lệnh switch –case
switch (day){
case 1:
s = “Sunday”;
break;
case 2:
s = ”Monday”;
break;
…
case 7:
s = “Saturday”;
break;
default:
s = “error !”;
break;
}
4.3. Vòng lặp while và do...whileThực hiện một câu lệnh hoặc một khối lệnh khi điều kiện vẫn nhận giá trị true. Vòng
while có thể kết thúc mà không thực hiện 1 lệnh nào. Còn do...while sẽ thực hiện lệnh ít nhất 1 lần.
Ví dụ:
int x = 2;
while (x <2 ){
x++;
cout<<x <<”\n”;
int x = 2;
do {
x++;
cout<<x;
} while (x < 2);
4.4. Vòng lặp for
Cú pháp:
for(Startexpr; Testexpr; Incrementexpr){
// code to execute repeatedly
}
Chú ý:- Startexpr chỉ được thực hiện 1 lần.- 3 biểu thức đều có thể vằng mặt.- Có thể khai báo biến trong câu lệnh for.
Ví dụ:
for (int i = 0; i < 10; i++)
sum+=i;
cout<<”Tong cua 10 so tu nhien dau tien la “ <<sum;
4.5. Các lệnh thay đổi cấu trúc điều khiển
break- Có thể được sử dụng để thoát ra ngoài câu lệnh switch.- Kết thúc vòng lặp for, while hoặc do...while.
continue- Có thể được sử dụng cho vòng lặp for, while hoặc do...while.- Bỏ qua các câu lệnh còn lại của vòng lặp hiện thời và chuyển sang thực hiện vòng
lặp tiếp theo.
5. Mảng (array)
Tập hợp hữu hạn các phần tử cùng kiểu. Phải được khai báo trước khi sử dụng. Khai báo:
- Cú pháp:kieudulieu tenmang[KTMANG];
- Ví dụ:float a[100]; //Khai báo mảng một chiềuint matrix[10][10]; //Khai báo mảng hai chiềuint [4] = { 21, 9, 23, 10 };
Chú ý- Nếu không khởi tạo mảng nhận giá trị mặc định tùy thuộc vào kiểu dữ liệu.- Luôn bắt đầu từ phần tử có chỉ số 0.
SO SÁNH VỚI C VÀ JAVA
C++ C Java
OOPHỗ trợ lập trình hướng
đối tượng và hướng cấu trúc
Hỗ trợ lập trình hướng cấu trúc
Hỗ trợ lập trình lập trình hướng đối tượng
Biên dịchSourcecode được dịch
thành mã máySourcecode được dịch thành
mã máy
Sourcecode được dịch thành bytecode. Rồi được
thông dịch bởi JVMKhả
chuyểnKhông Không Có
Kiểu dữ liệu
char,short, int, long int, float, double, long double,bool, pointer
Một số kiểu dữ liệu gồm 2 loại: không dấu
và có dấu
char, short, int, long int, float, double, long double,
pointer
Một số kiểu dữ liệu gồm 2 loại: không dấu và có dấu
Kiểu dữ liệu nguyên thủy: integer, float, char,
Boolean.
Kiểu dữ liệu tham chiếu: array, object
Các kiểu chương
trìnhỨng dụng Ứng dụng
Ứng dụng, applet, ứng dụng web
Toán tử Giống nhau
Cấu trúc điều khiển
Giống nhau
Keyword 73 32 50