Tài liệu Bài giảng Lập trình C++ - Chương 2 Giới thiệu ngôn ngữ C/C++: CHƯƠNG 2 
GIỚI THIỆU NGÔN NGỮ C/C++ 
1 
LỊCH SỬ RA ĐỜI 
Ngôn ngữ C do Dennis Ritchie xây dựng từ 
năm 1972 tại phòng thí nghiệm Bell 
Telephone với mục đích tạo ngôn ngữ để 
viết HĐH UNIX. Song nhờ có các tính năng 
ưu việt và tính mềm dẻo nên được giới tin 
học chấp nhận 
Năm 1978, xuất bản quyển sách “The C 
programming language” do Kernighan và 
Ritchie viết. 
2 
C++ dựa trên ngôn ngữ lập trình C 
C++ được phát minh bởi Bijarne 
Stroustroup, bắt đầu năm 1979 
Các trình biên dịch phổ biến: Borland 
C++, Microsoft Visual C++ 
3 
ƯU ĐIỂM 
Bộ lệnh phù hợp với phương pháp lập trình có cấu 
trúc module, có thể sử dụng nhiều lần trong chương 
trình hoặc chương trình khác, hỗ trợ lập trình hướng 
đối tượng. 
Kiểu dữ liệu phong phú, cho phép định nghĩa kiểu 
dữ liệu mới. 
 Linh động về cú pháp, ít từ khóa. 
 Ngôn ngữ mạnh và mềm dẻo, được dùng để viết Hệ 
điều hành, chương trình điều khiển, soạn thảo văn 
bản, đồ hoạ, bảng tính và các chương trình dịch ...
                
              
                                            
                                
            
 
            
                 44 trang
44 trang | 
Chia sẻ: honghanh66 | Lượt xem: 1058 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Lập trình C++ - Chương 2 Giới thiệu ngôn ngữ C/C++, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 2 
GIỚI THIỆU NGƠN NGỮ C/C++ 
1 
LỊCH SỬ RA ĐỜI 
Ngơn ngữ C do Dennis Ritchie xây dựng từ 
năm 1972 tại phịng thí nghiệm Bell 
Telephone với mục đích tạo ngơn ngữ để 
viết HĐH UNIX. Song nhờ cĩ các tính năng 
ưu việt và tính mềm dẻo nên được giới tin 
học chấp nhận 
Năm 1978, xuất bản quyển sách “The C 
programming language” do Kernighan và 
Ritchie viết. 
2 
C++ dựa trên ngơn ngữ lập trình C 
C++ được phát minh bởi Bijarne 
Stroustroup, bắt đầu năm 1979 
Các trình biên dịch phổ biến: Borland 
C++, Microsoft Visual C++ 
3 
ƯU ĐIỂM 
Bộ lệnh phù hợp với phương pháp lập trình cĩ cấu 
trúc module, cĩ thể sử dụng nhiều lần trong chương 
trình hoặc chương trình khác, hỗ trợ lập trình hướng 
đối tượng. 
Kiểu dữ liệu phong phú, cho phép định nghĩa kiểu 
dữ liệu mới. 
 Linh động về cú pháp, ít từ khĩa. 
 Ngơn ngữ mạnh và mềm dẻo, được dùng để viết Hệ 
điều hành, chương trình điều khiển, soạn thảo văn 
bản, đồ hoạ, bảng tính và các chương trình dịch 
cho các ngơn ngữ khác . 
4 
KHUYẾT ĐIỂM 
 Cú pháp thuộc loại lạ và khĩ học. Nếu người lập 
trình đã học qua một ngơn ngữ khác thì sẽ dễ 
dàng tiếp cận. 
Một số ký hiệu cĩ nhiều nghĩa khác nhau. Ví dụ: 
dấu “*” là tốn tử nhân, là khai báo con trỏ, là 
tốn tử thay thế,  Việc sử dụng đúng nghĩa các 
tốn tử phụ thuộc vào ngữ cảnh sử dụng. 
 Việc truy nhập tự do vào dữ liệu, việc trộn lẫn 
các kiểu dữ liệu làm cho chương trình cĩ phần 
bất ổn. 
5 
 VÍ DỤ CHƯƠNG TRÌNH C++ 
6 
Viết bằng VC++2003 
hoặc 2005, 2008,  
#include 
using namespace std; 
void main() 
{ 
 cout<<"Xin chao cac ban"; 
} 
Viết bằng VC++6.0 
hoặc BC++3.1 
#include 
void main() 
{ 
 cout<<"Xin chao cac ban"; 
} 
Xuất ra màn hình dịng chữ: “Xin chao cac ban” 
CÁC KHÁI NIỆM 
Lệnh : 
 Là việc thực hiện một chức năng nào đĩ 
(khai báo, gán, xuất, nhập, ) và được 
kết thúc bằng dấu chấm phẩy (;) 
Khối lệnh 
 Khối lệnh gồm nhiều lệnh và được đặt 
trong cặp dấu ngoặc { } 
7 
DÕNG GHI CHƯ (COMMENT) 
Từ vị trí cụ thể đến cuối dịng: dùng // 
ngay tại vị trí đĩ. 
Tạo nhiều dịng ghi chú: dùng cặp ký tự /* 
ngay trước dịng đầu tiên, và cặp ký tự */ 
ngay sau dịng cuối cùng. 
8 
Ví dụ : 
void main() 
{ 
 // đây là câu xin chào 
 cout<<"Xin chao cac ban"; 
 /* kết thúc */ 
} 
TẬP CÁC KÝ TỰ THƯỜNG DÙNG 
Chữ cái hoa: A, B, ..., Z 
Chữ cái thường: a, b, c, ..., z 
Chữ số: 0, 1, ..., 9 
Các ký hiệu tốn học: +, -, *, /, =, (, ),... 
Ký hiệu gạch nối: _ 
Các ký hiệu đặc biệt như: . , ; [] {} ? ! \ & | % #... 
Khơng được dùng các ký hiệu như: α, φ, Ω, 
π,  hoặc tiếng việt cĩ dấu: â, ă, ơ 
 9 
TỪ KHĨA (KEYWORD) 
10 
auto break case char const 
continue default do double else 
enum extern float for goto 
if int long register return 
short signed sizeof static struct 
switch typedef union unsigned void 
volatile while bool catch class 
delete friend inline new namespace 
operator private protected public template 
this throw try 
BIẾN 
Một biến đại diện cho một vùng nhớ hay tập các 
vùng nhớ trên bộ nhớ chính của máy tính. Tên biến 
được dùng để tham khảo đến những vùng nhớ này. 
Biến để lưu trữ các giá trị do người dùng nhập vào 
hoặc các giá trị tạm thời trong quá trình tính tốn. 
Mỗi biến sẽ cĩ tên và kiểu dữ liệu tương ứng. Kiểu 
dữ liệu của biến xác định những giá trị kiểu nào cĩ 
thể được lưu trong biến (ví dụ số hay chữ). 
PHẢI khai báo BIẾN trước khi sử dụng 
11 
CÁC KIỂU DỮ LIỆU 
 Kiểu cơ sở 
 Tích hợp sẵn trong ngơn ngữ 
– Số nguyên 
– Số thực 
– Luận lý 
– Mảng (xét sau) 
– Chuỗi (xét sau) 
 Kiểu tự định nghĩa (xét sau) 
 Dùng những kiểu cơ sở để xây dựng thành những 
kiểu dữ liệu mới cho phù hợp với bài tốn. 
12 
KIỂU SỐ NGUYÊN 
ST
T 
TÊN KIỂU GHI CHÚ 
KÍCH 
THƯỚC 
MIỀN GIÁ TRỊ 
1 char 
Ký tự 1 byte Chứ 255 ký tự 
Sớ nguyên 1 byte -126 đến 127 
2 
unsigned char 
Sớ nguyên 
dương 1 byte 0 đến 255 
3 
short Sớ nguyên 2 bytes -32763 đến 32762 
4 
unsigned short 
Số nguyên 
dương 2 bytes 0 đến 65535 
5 
int Sớ nguyên 4 bytes -2147483648 đến 2147483647 
6 
unsigned int 
Sớ nguyên 
dương 4 bytes 0 đến 4294967295 
7 
long Sớ nguyên 4 bytes -2147483648 đến 2147483647 
8 
unsigned long 
Sớ nguyên 
dương 4 bytes 0 đến 4294967295 
13 
KIỂU SỐ THỰC 
STT TÊN KIỂU 
GHI 
CHÚ 
KÍCH 
THƯỚC 
MIỀN GIÁ TRỊ 
1 
float 
 số thực 
4 bytes 3.4*10–38 đến 3.4*1038 
2 
double 
 số thực 
8 bytes 1.7*10–308 đến 3.4*10308 
3 
long double 
 số thực 
10 bytes 3.4*10–4932 đến 3.4*104932 
14 
STT 
TÊN 
KIỂU 
GHI CHÚ KÍCH THƯỚC GIÁ TRỊ 
1 bool Kiểu luận lý 1 byte 1  true 
0  false 
KIỂU LUẬN LÝ 
QUI TẮC ĐẶT TÊN 
Dùng để đặt tên biến, tên hằng, tên hàm,  
 Bắt đầu bằng một ký tự. 
 Các ký tự trong tên biến chỉ cĩ thể là các 
ký tự chữ, số hoặc dấu gạch dưới (_) 
 Khơng được trùng với các từ khố. 
 Khơng được trùng với phạm vi khai báo. 
 Tên dễ hiểu, súc tích và gợi nhớ. 
 Phân biệt chữ hoa và thường 
15 
KHAI BÁO BIẾN 
Cú pháp 
 tênbiến; 
Ví dụ: 
int a; //Khai báo biến để lưu số nguyên tên a 
float c; //Khai báo biến để lưu số thực tên c 
Khai báo nhiều biến cùng kiểu 
 tênbiến1, tênbiến2, tênbiến3; 
 Ví dụ: 
 int a, x, y; 
16 
KHAI BÁO VÀ KHỞI GÁN GIÁ TRỊ BAN 
ĐẦU CHO BIẾN 
 tênbiến = giá trị; 
Ví dụ: 
 int a = 5; 
 float b = 5.4, c = 9.2; 
 char ch = „n‟; 
17 
ĐỊNH NGHĨA HẰNG SỐ 
 Hằng là đại lượng khơng thay đổi giá trị trong quá 
trình thi hành chương trình 
 Dùng tốn tử #define 
 Cú pháp: #define 
 Ví dụ: #define MAX 100 
 Biến hằng được định nghĩa nhờ từ khố const với 
cú pháp như sau: 
 const = ; 
 Ví dụ: const int MAX = 100; 
 Tên hằng số nên viết bằng chữ in HOA 
18 
CÁC LOẠI HẰNG SỐ 
Hằng số: Đĩ là các giá trị xác định, một hằng 
số cĩ thể là nguyên (cĩ kiểu dữ liệu int, hay long 
int) hay thực (cĩ kiểu dữ liệu là float, double, 
long double). 
Hằng ký tự: Được đặt trong dấu nháy đơn. Ví 
dụ: 'A', 'a' tương ứng với giá trị nguyên 65, 97 
trong bảng mã ASCII. 
Hằng chuỗi: Là tập hợp các ký tự được đặt 
trong cặp dấu nháy kép " ". Ví dụ: “Lap trinh C" 
 Chú ý: Một hằng chuỗi được trữ tận cùng bằng ký tự 
null (\0) 
19 
KÝ HIỆU CÁC PHÉP TỐN 
STT 
PHÉP 
TỐN 
Ý NGHĨA GHI CHÚ 
PHÉP TỐN SỚ HỌC 
1 + Cợng 
2 - Trừ 
3 * Nhân 
4 / Chia 
Đối với 2 số nguyên thì kết quả 
là chia lấy phần nguyên 
5 % Chia lấy phần dư Chỉ áp dụng cho 2 số nguyên 
PHÉP TỐN QUAN HỆ 
1 > Lớn hơn 
2 < Nhỏ hơn 
3 >= Lớn hơn hoặc bằng 
4 <= Nhỏ hơn hoặc bằng 
5 = = Bằng nhau 
6 != Khác nhau 
20 
PHÉP TỐN LOGIC 
1 ! NOT 
2 && AND 
3 || OR 
TỐN TỬ TĂNG GIẢM 
1 ++ Tăng 1 Nếu tốn tử tăng giảm đặt trước 
thì tăng giảm trước rời tính biểu 
thức hoặc ngược lại. 
2 -- Giảm 1 
PHÉP TỐN THAO TÁC TRÊN BIT 
1 & AND 
2 | OR 
3 ^ XOR 
4 << Dịch trái 
5 >> Dịch phải 
6 ~ Lấy phần bù theo bit 
21 
Ví dụ: 
int x = 5, y = 11; 
int z = ++x + y++; 
Kết quả: x=6; y=12; z=17 
Tốn tử điều kiện 
(ĐK)?:<BT cho trường hợp 
sai> 
Ví dụ: 
int n; 
(n%2==0)? n ++ : n --; 
 nếu n = 10 thì giá trị n = 11 
 nếu n = 21 thì giá trị n = 20 
 22 
THỨ TỰ ƯU TIÊN PHÉP TỐN 
Tốn tử Độ ưu tiên Trình tự kết hợp 
() [] -> 1 Từ trái qua phải 
! ~ ++ -- - + * & sizeof 2 Từ phải qua trái 
* / % 3 Từ trái qua phải 
+ - 4 Từ trái qua phải 
> 5 Từ trái qua phải 
= > 6 Từ trái qua phải 
== != 7 Từ trái qua phải 
& 8 Từ trái qua phải 
| 9 Từ trái qua phải 
^ 10 Từ trái qua phải 
&& 11 Từ trái qua phải 
|| 12 Từ trái qua phải 
? : 13 Từ phải qua trái 
= += -= *= /= %= 14 Từ phải qua trái 
23 
CÁC LỖI THƯỜNG GẶP KHI VIẾT CHƯƠNG TRÌNH 
Quên khai báo các biến sử dụng trong 
chương trình. 
Lưu một giá trị vào một biến nhưng khơng 
cùng kiểu dữ liệu với biến. 
Sử dụng biến trong một biểu thức khi nĩ 
chưa cĩ giá trị. Lỗi này thì khơng được phát 
hiện bởi trình biên dịch, khi đĩ giá trị của 
biến là một giá trị bất kỳ và kết quả của 
biểu thức là vơ nghĩa. 
24 
CÁC LỖI THƯỜNG GẶP KHI VIẾT CHƯƠNG TRÌNH 
Sử dụng giá trị của phép chia khơng chính xác. 
Lỗi này thường xuất hiện trong các biểu thức 
cĩ nhiều tốn hạng và lỗi này rất khĩ phát 
hiện. 
 Ví dụ: 3.2 + 2/3 + 1.5 thì sẽ khác (3.2 + 2)/3 
+ 1.5 
Sử dụng một biểu thức mà trong đĩ chứa 
nhiều loại dữ liệu nhưng lại khơng biết chắc 
chắn kiểu dữ liệu của kết quả. 
25 
HÀM NHẬP XUẤT 
Thư viện hàm: iostream.h 
Hàm nhập giá trị từ bàn phím: cin>>tênbiến; 
 Ví dụ: int a; 
 cin>>a; //Người dùng nhập giá trị từ phím sẽ 
lưu vào biến a 
Hàm xuất giá trị ra màn hình: cout<<tênbiến hoặc 
chuỗi ký tự; 
 Ví dụ: int a = 5; 
 cout<<“Gia tri cua a =“<<a; 
 Các biến và chuỗi cách nhau bởi dấu << 
 (chuỗi nằm trong cặp dấu nháy kép “” ) 
26 
VÍ DỤ HÀM NHẬP XUẤT 
#include 
using namespace std; 
void main() 
{ 
 short a; 
 cout<<"Nhap vao so a:"; 
 cin>>a; 
 cout<<"So a vua nhap la :"<<a; 
} 
27 
XUẤT CĨ ĐỊNH DẠNG 
Thư viện iomanip.h 
cout<<setw(n)<<tênbiến; 
 Chừa 1 khoảng n ký tự để xuất giá trị 
Ví dụ: 
 int a=7, b=9; 
 cout<<a<<setw(5)<<b;//Chừa 5 vị trí để xuất giá 
trị b 
Kết quả: 7 9 
28 
XUẤT CĨ ĐỊNH DẠNG 
Ví dụ: 
 float a=7.56745, b=5.339; 
 cout<<a<<endl; 
 cout<<setprecision(2)<<a<<endl; 
 cout<<setprecision(1)<<b<<endl; 
 cout<<setprecision(5)<<b; 
29 
Kết quả: 
7.56745 
7.57 
5.3 
5.339 
cout<<setprecision(n); 
 Xuất số thập phân gồm n chữ số lẻ (phần 
thập phân) 
HÀM NHẬP XUẤT CỦA C 
 Thư viện 
 Xuất: 
 printf(“hằng chuỗi”); 
 Vd: printf(“Xin chao cac ban”); 
 printf(“chuỗi định dạng”, đối số 1, đối số 2); 
 Vd: int a=5; 
 float b=2.7; 
 printf(“Gia tri cua bien a=%d, b=%f“, a, b); 
 Nhập: 
 scanf(“chuỗi định dạng”, &tên biến); 
 Vd: int x; 
 scanf(“%d”, &x); 
 30 
HÀM NHẬP XUẤT CỦA C 
31 
#include 
void main () 
{ 
 float number ; 
 printf ( “Nhap mot so thuoc [1..10]: “) ; 
 scanf ( “%f”, &number) ; 
 if (number >5) 
 printf ( “So ban nhap lon hon 5. \n”) ; 
 printf ( “%f la so ban nhap. “ , number); 
} 
CHUỖI ĐỊNH DẠNG 
STT KIỂU GHI CHÚ ĐỊNH DẠNG 
KIỂU LIÊN TỤC (SỚ THỰC) 
1 float %f 
2 double %lf 
3 long double %lf 
KIỂU RỜI RẠC (SỚ NGUYÊN) 
1 char 
Ký tự %c 
Số nguyên %d 
2 unsigned char Số nguyên dương %d 
3 int Số nguyên %d 
4 unsigned int Sớ nguyên dương %u 
5 long Số nguyên %ld 
6 unsigned long Sớ nguyên dương %lu 
7 char * Chuỗi %s 
32 
XUẤT KÝ TỰ ĐẶC BIỆT 
Ký tự Ý nghĩa Ví dụ 
\‟ Xuất dấu nháy đơn 
cout<<“ \‟ ”; 
Kết quả: „ 
\” Xuất dấu nháy đơi 
cout<<“ \” ”; 
Kết quả: “ 
\\ Xuất dấu chéo ngược “\” 
cout<<“ \\ ”; 
Kết quả: \ 
\0 Ký tự Null 
Dùng để gán ký tự kết thúc 
của chuỗi 
\a Alert : Tiếng bip 
33 
XUẤT KÝ TỰ ĐẶC BIỆT 
Ký tự Ý nghĩa Ví dụ 
\t 
Tab vào mợt đoạn 
ký tự trắng 
cout<<"xyz\tzyx”; 
Kết quả: xyz zyx 
\b Xuất lùi về sau 
cout<<"xyz\t\bzyx”; 
Kết quả: xyzzyx 
\n hoặc 
endl 
Xuống dịng 
cout<<"xyz\nzyx”; 
Kết quả: xyz 
 zyx 
\r Về đầu dịng 
cout<<"xyz\rzyx”; 
Kết quả: zyx 
34 
CÁCH TRÌNH BÀY CHƯƠNG TRÌNH 
Mỗi lệnh nằm trên một dịng. Cuối 
dịng lệnh PHẢI cĩ dấu chấm phẩy (;). 
Lệnh quá dài cĩ thể được viết thành 
nhiều dịng sao cho mỗi lệnh phải được 
quan sát trọn vẹn trong pham vi cửa sổ 
lệnh. 
35 
CÁCH TRÌNH BÀY CHƯƠNG TRÌNH (tt) 
Khơng nên đặt nhiều lệnh trên cùng một 
dịng, ngay cả các khai báo biến, nếu các 
biến cĩ khác kiểu cũng nên đặt trên các 
dịng khác nhau. 
Cĩ các chú thích, ghi chú đầy đủ 
Chương trình phân cấp các khối lệnh con 
theo từng cột 
36 
HƯỚNG DẪN SỬ DỤNG BC++3.1 
37 
TẠO MỚI PROJECT TRONG MS VC++ 2005 
38 
BÀI TẬP 1 
Cho biết kết quả của những lệnh sau: 
int a, b; 
b=a++ + ++a + --a; 
cout<<"a=“<<a<<“, b=“<<b; 
Với a = 2 Kết quả: 
Với a = 9 Kết quả: 
 ------------------------------------------------------------------ 
int a, b; 
b=--a + --a; 
--b; 
cout<<"a=“<<a<<“, b=“<<b; 
Với a = 19 Kết quả: 
Với a = 10 Kết quả: 
39 
int a, b; 
b=a%2 + a/2 + --a; 
cout<<"a=“<<a<<“, b=“<<b; 
Với a = 17 Kết quả: 
Với a = 3 Kết quả: 
----------------------------------------------------------------------------
int a, b; 
b=a/3 + a--; 
cout<<"a=“<<a<<“, b=“<<b; 
Với a = 8 Kết quả: 
Với a =21 Kết quả: 
---------------------------------------------------------------------------
int k; 
cout<<(k%3==0)?k++: k--; 
Với k =10 Kết quả: 
Với k =15 Kết quả: 
40 
Các định danh nào sau đây là khơng hợp lệ? 
 Main 
 Tinh Tong 
 Tinh-Tong 
 Tinh_Tong 
 x_Mu_2 
 2_Mu_2 
 using 
 class 
 Tien$ 
 default 
 yahoo.com 
41 
Cho biết những chỗ sai và sửa lại cho đúng 
int n = -100; 
uint i = -100; 
int = 2.9; 
long m = 2, p = 4; 
int 2k; 
float y = y * 2; 
char ch = “b”; 
Viết chương trình in ra màn hình thơng tin cá nhân theo mẫu sau: 
 Ho ten: 
 Lop: 
 Thong tin lien lac: 
 Dia chi: 
 So dien thoai: 42 
BÀI TẬP 2 
Mơ tả giải thuật bằng mã giả, lưu đồ và viết 
các chương trình sau: 
 Viết chương trình nhập vào giờ phút và 
giây, đổi ra giây và xuất kết quả ra màn 
hình. 
 Viết chương trình nhập vào 3 số nguyên 
a, b và c, tính giá trị trung bình cộng của 
3 số trên và xuất kết quả ra màn hình. 
43 
 Viết chương trình cho phép nhập vào một 
số đo nhiệt độ theo độ Fahrenheit và xuất 
ra nhiệt độ tương đương của nĩ theo độ 
Celsius, sử dụng cơng thức chuyển đổi: 
 Viết chương trình nhập vào 3 số nguyên a, 
b và c, cho biết 3 số vừa nhập cĩ thứ tự 
tăng dần (a<b<c) khơng? Và xuất kết quả. 
 44 
)32(
9
5 00  FC
            Các file đính kèm theo tài liệu này:
 chuong02_gioithieungonnguc_6491.pdf chuong02_gioithieungonnguc_6491.pdf