Slide bài giảng Lập trình C++ - Lương Trần Hy Hiến - Làm việc với dữ liệu
Kiểu dữliệu cơsở
Kiểu không dấu unsigned
unsigned char
unsigned short
unsigned int
unsigned long
Kiểu rỗng –void
hàm không trảlại kết quả
ứng với mọi kiểu (con trỏvoid)
Nội dung
Kiểu dữ liệu cơ sở
Biến và hằng số
Toán tử và biểu thức
2
Kiểu dữ liệu cơ sở
Số nguyên
char: 1 bytes
short (int): 2 bytes
int: 4 bytes
long (int): 4 bytes
Số thực dấu phẩy động
độ chính xác đơn float: 4 bytes
độ chính xác kép double: 8 bytes
long double: 12 bytes
Ký tự - char: 1 byte
Kiểu logic – bool (C++)
3
Kiểu dữ liệu cơ sở
Kiểu không dấu unsigned
unsigned char
unsigned short
unsigned int
unsigned long
Kiểu rỗng – void
hàm không trả lại kết quả
ứng với mọi kiểu (con trỏ void)
4
Biến (variable)
Dữ liệu được thao tác thông qua các biến
Biến:
là đại lượng được đặt tên
thuộc một kiểu dữ liệu đã xác định
phải được khai báo trước khi sử dụng
5
Tên (name)
Bao gồm các chữ cái, chữ số, dấu gạch dưới _
Không bắt đầu bằng chữ số, không chứa dấu
cách
Không trùng với từ khóa
Ví dụ
i, tmp, diem_so, DiemSo, x1
Nên đặt tên có nghĩa, tránh lạm dụng chữ in
6
Khai báo dữ liệu
Câu lệnh khai báo:
[ … ] ;
Khai báo có khởi tạo:
[= giá trị khởi tạo];
Ví dụ
int m, n;
long tmp, sum = 0;
double r1, r2;
7
Ví dụ
#include
using namespace std;
int main()
{
int m = 0, n = 100;
cout << m << ”, ” << n << endl;
cin >> m >> n;
cout << m << ”, ” << n;
return 0;
}
8
Giá trị khởi tạo mặc định
Phụ thuộc vào hệ thống, thông thường gồm toàn
bit 0
int m;
double d;
cout << m << endl;
cout<< d;
9
Toán tử (phép toán) và biểu thức
Số học
cộng +, trừ -
nhân *, chia /, lấy phần dư % (số nguyên)
Logic
và &&, hoặc ||
phủ định !
so sánh , >=, = =, !=
10
Ví dụ
int m, n, p;
m = n + p;
m = n / p;
m = n % p;
m = m + n;
m = m + n * p;
m = m / (n + p);
11
Ví dụ về toán tử chia “/”
Trình biên dịch dựa vào kiểu của các toán hạng
để quyết định phép chia tương ứng
int main(void)
{“i”, “j” kiểu int, “/” là
int i = 5, j = 4, k;
double f = 5.0, g = 4.0, h;
k = i / j;
h = f / g;
h = i / j;
return 0;
}
phép chia lấy nguyên
k nhận giá trị 1
“f”, “g” kiểu double, “/”
là phép chia số thực
h nhận giá trị 1.25
Phép chia nguyên, bất
kể “h” có kiểu double.
Kết quả là 1.00000
Chuyển đổi kiểu
Toán tử chỉ làm việc với biến cùng kiểu
tự động chuyển đổi thành kiểu lớn hơn
long m , n;
short i;
m = n * i;
i = m * n; // chú ý
double d = m / 2.0;
13
Ép kiểu
làm thay đổi tạm thời kiểu của một biến trong
một biểu thức
Có thể chủ động chuyển đổi kiểu
số nguyên thành số thực
kiểu lớn hơn thành kiểu nhỏ hơn
Ví dụ
double r1, r2;
int m = 10, n = 3;
r1 = m / n;
r2 = (double) m / n;
14
Ép kiểu
int main(void)
{
int i = 5, j = 4;
double f;
f = (double)i / j;
f = i / (double)j;
f = (double)i / (double)j;
f = (double)(i / j);
return 0;
}
Phép chia số nguyên
được thực hiện, kết
quả, 1, được đổi sang
kiểu double, 1.00000
Toán tử và biểu thức (mở rộng)
Dạng mở rộng =
+=, -=, *=, /=,…
Ví dụ
a += b; //a = a + b
a *= b;
a /= b;
a -= b + c; //a = a – (b + c)
16
Toán tử một ngôi ++ và --
Tăng hoặc giảm 1 với biến số nguyên (tốc độ
cao)
Tiền tố
thực hiện toán tử xong thì dùng kết quả đó thực hiện
biểu thức
a = b * ++c;
Hậu tố
thực hiện biểu thức xong mới thực hiện toán tử với
biến đó
a = b * c++;
17
Ví dụ
int i = 5, j = 4;
18
i ++;
-- j;
++ i;
“i” 6
“j” 3
“i” 7
Trước hay sau ?
Thứ tự thực hiện các toán tử ++ và -- phụ thuộc
vào vị trí của chúng (trước hay sau) so với biến:
#include Tương đương:
1. j++;
int main(void)
{
int i, j = 5;
i = ++j;
cout<<"i=“<<i<<“, j=“<<j<<endl;
j = 5;
i = j++;
cout<<"i=“<<i<<“, j=“<<j<<endl;
return 0;
}
i=6, j=6
i=5, j=6
2. i = j;
Tương đương:
1. i = j;
2. j++;
Biểu thức logic
Biểu thức của các giá trị logic
Biểu thức quan hệ
bool a, b, c;
int m, n;
…
a = b && c;
b = (m >= n);
c = true;
20
Logic và số nguyên
Chuyển logic sang số nguyên
Giá trị true, false được chuyển tương ứng thành 1 và 0;
Chuyển số nguyên sang logic
Số nguyên dương tương ứng với true
Số nguyên âm và 0 tương ứng với false
Ví dụ
bool b = false;
cout << b << endl;
b = 10;
cout << b << endl;
21
Kiểu ký tự
Về cơ bản giống như biến số nguyên 1 byte
hiện thị ký tự ra luồng dữ liệu chuẩn (màn hình)
giá trị ký tự được đặt trong ngoặc đơn: ’A’, ’a’
một số hằng ký tự đặc biệt: ’\t’,’\n’,endl,…
char c = ’a’;
cout << c << endl;
cout << (int) c << endl;
c++;
cout << c << endl;
c = 97;
cout << c << endl;
22
Phép gán
Phép gán cũng là một toán tử: có giá trị trả lại
chính là giá trị của biến được gán
kết hợp được phép gán với các toán tử khác
Ví dụ
a = b = 10;
a += a = b;
if ( 0 != (a = b)) {…
}
23
Phạm vi của biến
Biến có phạm vi sử dụng trong block được khai
báo
biến tổng thể (toàn cục): sử dụng trên toàn bộ
ch ng trìnhươ
Chỉ khai báo biến khi cần sử dụng: cục bộ hóa
Hạn chế sử dụng biến tổng thể
dễ xung đột, khó sử dụng lại
24
Ví dụ
#include
int main()
{
int a = 10, b = 20;
{
int tmp = a;
a = b;
b = tmp;
}
cout << a << ”, ” << b << endl;
cout << tmp; // compile error
return 0;
}
25
Ví dụ: biến tổng thể và biến cục bộ
#include
using namespace std;
int a = 0; // global variable
int main()
{
int a = 10; // local variable
cout << a << endl; //In local
a = ::a;
cout << a << endl;//In global
return 0;
}
26
Toán tử bít
Tác động trực tiếp lên các bít
và, hoặc, chỉ hoặc &, |, ^
dịch chuyển bit >
&=, |=, ^=, >=
Ví dụ
int m, n;
m &= n;
m <<= 2;
27
Toán tử ba ngôi ?:
Cú pháp
(biểu thức logic)?(biểu thức A):(biểu thức B)
Ví dụ
int a, b, max;
…
max = (a>b)?(a):(b);
28
Thứ tự ưu tiên
Dấu ngoặc ()
Một ngôi !, ++, --,
Nhân *, chia /, dư %
Cộng +, trừ -
>
So sánh , >=, ==, !=
Toán tử bit: &, |, ^
Logic &&, ||
?:
Gán =, …
29
Hằng số
Hằng số là các giá trị không đổi trong chương
trình
0, ”Hello, world”, …
Có thể khai báo (gán tên) cho hằng số (như các
biến)
const = ;
không thay đổi được giá trị
const int Size = 100;
Một số hằng đã được khai báo
true, false,…
30
Hằng không định kiểu (C)
Có thể khai báo các hằng không định kiểu bằng
chỉ thị chương trình dịch #define
#define PI 3.14
#define TRUE 1
#define FALSE 0
#define NULL 0
…
double x = PI;
Đây là cách làm của ngôn ngữ C, nên hạn chế
sử dụng
31
Tự thực hành
Thao tác thành thạo với các biến số nguyên, số
thực, logic
khai báo (cục bộ, tổng thể)
sử dụng các toán tử khác nhau
chuyển đổi kiểu
kiểm tra thứ tự ưu tiên
kiểm tra biên của các số, tràn số
số và kiểu ký tự
Khai báo hằng số
Nhập dữ liệu từ bàn phím, xuất ra màn hình
32
Bài tập:
Tìm hiểu về hàm xuất nhập dữ liệu chuẩn của
C++: cin, cout
Dữ liệu thực tế được lưu trữ ở đâu và thao tác
nh thế nào?ư
Sự khác nhau giữa câu lệnh khai báo biến và
câu lệnh thông thường (v.d. phép toán)?
33
NHẬP/XUẤT TRONG C++
Thư viện: #include
using namespace std;
Nhập dữ liệu từ bàn phím:
cin >> biến_1 ;
ho c:ặ
cin >> biến_1 >> biến_2 >> biến_3 ;
In dữ liệu ra màn hình:
cout << bt_1 ;
hoặc:
cout << bt_1 << bt_2 << bt_3 ;
cout<< “Chao mung ban den voi C++”;
34
File đính kèm:
Slide bài giảng Lập trình C++ - Lương Trần Hy Hiến - Làm việc với dữ liệu.pdf

