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 đủ
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:
bai_giang_mon_lap_trinh_chuong_2_tong_quan_ve_cc.pdf

