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)

pdf9 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 1744 | Lượt tải: 4download
Tóm tắt nội dung 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, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdfSlide 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