Bài giảng môn Lập trình - Chương 2: Tổng quan về C/C++

Lập trình  
Chương 2: Tổng quan về C/C++  
1
Nội dung chương 2  
2.1 Tổ chức chương trình C/C++  
2.2 Biến và các kiểu dữ liệu cơ bản  
2.3 Các kiểu dữ liệu dẫn xuất trực tiếp  
2.4 Định nghĩa kiểu dữ liệu mới  
2.5 Các lệnh điều khiển chương trình  
2.6 Hàm và thư viện  
2
Chương 2: Tổng quan về C và C++  
2.1 Tổ chꢀc chương trình C/C++  
Tꢀo dꢁ ꢂn dꢃng visual studio .net 2008  
3
Chương 2: Tổng quan về C và C++  
Chương trình tính giai thừa: Phiên bản C  
Lệnh tiền xử lý: Khai báo sử dụng hàm thư viện  
Khai báo hàm  
#include <stdio.h>  
#include <conio.h>  
int gthua(int);  
Chương trình chính  
void main() {  
char c = 'N';  
int N = 1;  
int kq;  
Lời chú thích  
Khai báo biến  
do {  
printf(“\n Nhap mot nguyen duong"); /* Viet ra man hinh*/  
scanf("%d",&N);  
kq = gthua(N);  
/* Nhap tu ban phim cho N*/  
printf(“\n Giai thua cua %d la %d", N, kq);  
printf(“\n Ban co muon tiep tuc khong? Y/N");  
c = getch();  
} while (c=='y' || c=='Y');  
}
int gthua(int n) {  
int kq = 1;  
while (n > 1)  
kq *= n--;  
return kq;  
}
Định nghĩa hàm (thân hàm)  
4
Chương 2: Tổng quan về C và C++  
Chương trình tính giai thừa: Phiên bản C++  
#include <iostream.h>  
#include <conio.h>  
int gthua(int);  
void main() {  
char c = 'N';  
int  
N = 1;  
do {  
cout << “\nNhap mot so nguyen duong: “  
cin >> N;  
int kq = gthua(N);  
cout << “\nGiai thua cua ” << N << “ la “ << kq  
cout << “\nBan co muon tiep tuc khong? Y/N";  
c = getch();  
} while (c == 'y' || c == 'Y');  
}
int gthua(int n) {  
int kq = 1;  
while (n > 1)  
kq *= n--;  
return kq;  
}
5
Chương 2: Tổng quan về C và C++  
Qui tắc soạn thảo mã nguồn  
1. Tên biến, tên hàm, tên kiểu mới:  
. Tránh sử dụng các từ khóa và tên kiểu cơ sở  
. Chꢀ đưꢁc dꢂng các kꢃ tự sau: ‘A’..’Z’, ‘a’..’z’, ‘0’..’9’, ‘_’  
. Chꢀ đưꢁc bắt đầu bằng chữ cái hoặc dấu _  
. Phân biệt giữa chữ hoa và chữ thường.  
. Nên đặt tên ngắn gꢄn và cꢅ ꢃ nghĩa (cꢅ tꢆnh mô tả)  
2. Sau mỗi câu lệnh có chấm phảy (;)  
3. Đoạn { … } đưꢁc coi là nhóm lệnh, không có dấu  
chấm phảy sau đꢅ, trừ khi khai báo kiểu  
4. Cấu trúc mã nguồn theo kiểu phân cấp => dễ đꢄc  
5. Bổ sung chú thích hꢁp lý (/*chú thích một đoạn*/hoặc  
//chú thích một dòng)  
6. Chia một file lớn thành nhiều file nhỏ  
6
Chương 2: Tổng quan về C và C++  
Các từ khóa trong C  
auto  
double  
else  
int  
struct  
break  
case  
long  
switch  
typedef  
union  
enum  
extern  
float  
for  
register  
return  
short  
signed  
sizeof  
static  
char  
const  
continue  
default  
do  
unsigned  
void  
goto  
if  
volatile  
while  
7
Chương 2: Tổng quan về C và C++  
Từ khóa trong C++  
asm  
auto  
bool  
break  
class  
default  
do  
case  
catch  
const_cast  
else  
char  
const  
continue  
extern  
double  
delete  
enum  
float  
false  
explicit  
for  
dynamic_cast export  
friend  
int  
goto  
if  
inline  
namespace  
protected  
return  
static  
long  
mutable  
private  
reinterpret_cast  
sizeof  
new  
operator  
register  
signed  
struct  
public  
short  
static_cast  
this  
switch  
template  
try  
throw  
typeid  
using  
wchar_t  
true  
typedef  
unsigned  
volatile  
typename  
virtual  
while  
union  
void  
8
Chương 2: Tổng quan về C và C++  
Biên dịch (compile)  
. Trong Visual studio .Net 2008: Gꢄi Compile (Ctrl + F7) để biên  
dịch riêng rẽ hoặc Build (F6) để kết hꢁp biên dịch và liên kết  
cho toàn bộ dự án  
. Các kiểu lỗi biên dịch (compile error):  
– Lỗi cú pháp: Sử dụng tên sai qui định hoặc chưa khai báo, thiếu  
dấu chấm phảy ;, dấu đꢅng }  
– Lỗi kiểu: Các số hạng trong biểu thức không tương thꢆch kiểu, gꢄi  
hàm với tham số sai kiểu  
– …  
. Các kiểu cảnh báo biên dịch (warning):  
– Tự động chuyển đổi kiểu làm mất chꢆnh xác  
– Hàm khai báo cꢅ kiểu trả về nhưng không trả về  
– Sử dụng dấu = trong trường hꢁp nghi vấn là so sánh ==  
– …  
9
Chương 2: Tổng quan về C và C++  
Liên kết (link)  
. Liên kết là quá trình ghép nhiều file đꢆch (*.obj, *.lib)  
để tạo ra chương trình chạy cuối cùng *.exe  
. Trong Visual studio .Net 2008: Gꢄi Build (F6)  
. Lỗi liên kết có thể là do:  
– Sử dụng hàm nhưng không có định nghĩa hàm  
– Biến hoặc hàm đưꢁc định nghĩa nhiều lần  
– …  
10  
Chương 2: Tổng quan về C và C++  
Chạy thử và gỡ rối (debug)  
. Chạy thử trong Visual studio .Net 2008: Start  
without debugging hoặc Ctrl+F5  
. Tìm lỗi:  
– Lỗi khi chạy là lỗi thuộc về phương pháp, tư duy, thuật toán,  
không phải về cú pháp  
– Lỗi khi chạy bình thường không đưꢁc báo  
– Lỗi khi chạy rất khꢅ phát hiện, vì thế trong đa số trường hꢁp  
cần tiến hành debug.  
. Chạy Debug trong Visual studio .Net 2008:  
– Chạy tới chỗ đặt cursor: F9  
– Chạy từng dòng lệnh: F10  
– Chạy vào trong hàm: F11  
– Chạy tiếp bình thường: F5  
– Xem kết quả dưới cửa sổ Output hoặc gꢄi QuickWatch  
11  
Chương 2: Tổng quan về C và C++  
Tổ chꢀc bộ nhớ  
Hệ điều hành  
Các CT khác  
Đỉnh ngăn xếp  
Mã chương trình  
Dữ liệu toàn cục  
SP  
n
Array_A  
Vùng nhớ tự do  
f
Ngăn xếp  
(tham biến, biến  
cục bộ)  
k
i
count  
a
Vùng nhớ tự do  
12  
Chương 2: Tổng quan về C và C++  
2.2 Biến và dữ liệu  
. Biểu thức = dữ liệu + phép toán  
. Biểu diễn dữ liệu: Thông qua biến hoặc hằng số, kèm  
theo kiểu  
. Nội dung trong phần này:  
– Các kiểu dữ liệu cơ bản  
– Các phép toán áp dụng  
– Tương thꢆch và chuyển đổi kiểu  
– Khai báo biến, phân loại biến  
13  
Chương 2: Tổng quan về C và C++  
2.2.1 Các kiểu dữ liệu cơ bản của C/C++  
Kiểu  
Kích cỡ thông dụng Phạm vi tối thiểu  
(tính bằng bit)  
char  
8
8
8
−127 to 127  
−127 .. 127  
0 .. 255  
−32767 .. 32767  
-nt-  
0 .. 65535  
−32767 .. 32767  
nt  
0 .. 65535  
−2147483647 .. 2147483647  
nt  
0 .. 4294967295  
Độ chính xác 6 chữ số  
Độ chính xác 10 chữ số  
Độ chính xác 10 chữ số  
-
signed char  
unsigned char  
int  
16/32  
16/32  
16/32  
16  
16  
16  
32  
32  
32  
32  
64  
80  
-
signed int  
unsigned int  
short  
signed short  
unsigned short  
long  
signed long  
unsigned long  
float  
double  
long double  
bool (C++)  
wchar_t (C++)  
16  
−32767 .. 32767  
14  
Chương 2: Tổng quan về C và C++  
Các phép toán cơ bản  
Phép toán Kꢃ hiệu  
Kiểu nguyên Kiểu số thực Kiểu bool  
=
Gán  
X
X
X
X
X
x
+, -, *, /,  
+=, -=, *=, /=  
%, %=  
Số hꢄc  
X
X
X
x
x
++, --  
>, <, >=, <=,  
==, !=  
So sánh  
X
X
X
&&, ||, !  
&, |, ^, ~  
&=, |=, ^=  
<<,>>, <<=,>>=  
? :  
Logic  
X
X
X
x
Logic bit  
Dịch bit  
X
X
x
Lựa chꢄn  
Lũy thừa?  
X
X
Không có!  
15  
Chương 2: Tổng quan về C và C++  
Tương thích và chuyển đổi kiểu  
. Những kiểu dữ liệu tương thꢆch nhau cꢅ thể tự động  
chuyển đổi kiểu:  
– Giữa các kiểu số nguyên với nhau (lưu ý phạm vi giá trị)  
– Giữa các kiểu số thực với nhau (lưu ý độ chính xác)  
– Giữa các kiểu số nguyên và số thực (lưu ý phạm vi giá trị và  
độ chính xác)  
– Kiểu bool sang số nguyên, số thực: true => 1, false => 0  
– Số nguyên, số thực sang kiểu bool: 0 => true, 0 => false  
. Nếu có lỗi hoặc cảnh báo => khắc phục bằng cách ép  
chuyển đổi kiểu  
– VD:  
i = int(5.1) % 2; //C  
j = (int)5.1 + 2; // C++  
16  
Chương 2: Tổng quan về C và C++  
2.2.2 Khai báo biến  
char  
bool  
int  
c = 'N';  
b = true;  
kq;  
Khai báo và khởi tạo giá trị  
Chꢀ khai báo, giá trị bất định  
double  
long  
d;  
count, i=0;  
Khai báo kết hꢁp, chꢀ i=0  
unsigned vhexa=0x00fa;  
unsigned voctal=082;  
Đặt giá trị đầu hexa  
Đặt giá trị đầu octal -> 66 chứ không phải 82  
. C: Toàn bộ biến phải khai báo ngay đầu thân hàm  
. C++: Cꢅ thể khai báo tại chỗ nào cần  
. Phân loại biến:  
– Biến toàn cục: Khai báo ngoài hàm, lưu giữ trong vꢂng nhớ dữ liệu  
chương trình  
– Biến cục bộ: Khai báo trong thân hàm, lưu giữ trong ngăn xếp  
(vꢂng nhớ tự do)  
– Tham biến: Khai báo trên danh sách tham số của hàm, lưu giữ  
trong ngăn xếp  
17  
Chương 2: Tổng quan về C và C++  
Ví dụ khai báo các loại biến  
int N = 1;  
Biến toàn cục  
void main() {  
char c = 'N';  
do {  
cout<<“\nNhap so> 0:";  
cin>>N;  
int kq = gthua(N);  
...  
Biến cục bộ  
} while (c == 'y' || c == 'Y')  
}
Hai biến cục bộ  
cꢂng tên ở hai phạm  
int gthua(int n) {  
vi khác nhau,  
int kq = 1;  
while (n > 1)  
kq *= n--;  
return kq;  
không liên quan gì  
đến nhau!  
}
Tham biến  
18  
Chương 2: Tổng quan về C và C++  
2.3 Các kiểu dữ liệu dẫn xuất trực tiếp  
. Kiểu liệt kê  
. Kiểu hằng  
. Kiểu con trỏ  
. Kiểu mảng  
. Kiểu tham chiếu (C++)  
19  
Chương 2: Tổng quan về C và C++  
2.3.1 Kiểu liệt kê (enum)  
. Tương tự như một kiểu số nguyên.  
. Đưꢁc dꢂng khi:  
– Cần hạn chế phạm vi sử dụng  
– Hoặc khi muốn sử dụng tên cụ thể thay cho hằng số nguyên  
void main()  
{
. Vꢆ dụ  
enum Color {Red, Green, Blue};  
enum WeekDay {Mon = 2,Tue, Wed, Thu, Fri, Sat, Sun = 1 };  
//Tue=3, Wed=4…  
int n=Red;  
cout<<n; //in ra số 0  
Color c=Green;  
n=c; //n=1;  
}
. Lưu ꢃ: không thể gán trực tiếp một giá trị nguyên cho một biến  
enum mà phải ép kiểu  
VD:  
c=2;//Error  
c=Color(2);//OK  
20  
Chương 2: Tổng quan về C và C++  
Tải về để xem bản đầy đủ
pdf 83 trang yennguyen 18180 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng môn Lập trình - Chương 2: Tổng quan về C/C++", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_mon_lap_trinh_chuong_2_tong_quan_ve_cc.pdf