You are on page 1of 24

8/25/21  03:30:49 AM

Biến và kiểu

Khai bá o biến
Cá c kiểu dữ liệu thô ng dụ ng

© Lê Minh Hoà ng. All Rights Reserved.


Ví dụ
Yêu cầ u nhớ số thứ nhấ t bằ ng 6
Yêu cầ u nhớ số thứ hai bằ ng 7
Tă ng số thứ nhấ t lên 3 đơn vị (9)
Lấy số thứ nhấ t trừ số thứ hai, đưa ra kết quả
(2)
Mã chương trình trong C++
a = 6;
Biến: Cá ch thô ng thườ ng nhấ t
b = 7;
a = a + 3; để truy cậ p bộ nhớ
result = a – b; Nguyên lý: Gá n cho phầ n bộ
nhớ cầ n sử dụ ng mộ t cá i “tên”

3
Từ khó a (Reserved words)
Từ khó a: ++ quy định mộ t số từ dà nh riêng, phả i sử dụ ng đú ng vớ i cú phá p, dù ng cho mộ t số mụ c
đích nhấ t định, khô ng đượ c dù ng và o mụ c đích khá c.
Danh mụ c từ khó a: alignas, alignof, and, and_eq, asm, auto, bitand, bitor, bool, break, case, catch,
char, char16_t, char32_t, class, compl, const, constexpr, const_cast, continue, decltype, default,
delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto,
if, inline, int, long, mutable, namespace, new, noexcept, not, not_eq, nullptr, operator, or, or_eq,
private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static,
static_assert, static_cast, struct, switch, template, this, thread_local, throw, true, try, typedef,
typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while, xor, xor_eq

4
Tên (Identifiers)
Tên
Cá ch thô ng dụ ng nhấ t để truy cậ p cá c hằ ng, biến, kiểu, hà m…
Quy tắ c đặ t tên
Bắ t đầ u bằ ng chữ cá i (a..z, A..Z, _)
Tiếp theo là chữ cá i hoặ c chữ số (a..z, A..Z, _, 0..9)
Khô ng trù ng vớ i từ khoá
Chú ý: C++ phâ n biệt chữ hoa và chữ thườ ng
5
Đặ t tên đú ng
Tên Đú ng/Sai
Birthday 
Too_hot?  (Khô ng đượ c có dấ u “?”)
First_Initial 
1stprogram  (Khô ng đượ c bắ t đầ u bằ ng số )
down.to.earth  (Khô ng đượ c có dấ u “.”)
see you  (Khô ng đượ c có dấ u cá ch)
OldName  (Tố t, nên viết hoa đầ u từ tiếng Anh)
case  (Trù ng từ khoá )
One+Two  (Khô ng đượ c có dấ u “+”)
6
Dữ liệu và kiểu dữ liệu
Dữ liệu
Là tấ t cả nhữ ng gì đượ c máy tính lưu trữ và xử lý
Tồ n tạ i dướ i nhiều dạ ng khá c nhau, khô ng nhấ t thiết phả i là số
Thể hiện cá c đố i tượ ng cụ thể cầ n xử lý (giá tiền, tên, tuổ i, vă n bả n, tín hiệu...)
Kiểu dữ liệu
Mộ t tậ p hợ p cá c giá trị mà mộ t biến thuộ c kiểu đó có thể nhậ n
Trên tậ p hợ p đó xá c định mộ t số phép toá n.
+, -, *, / vớ i kiểu số thự c
/, % vớ i kiểu số nguyên
&&, ||, !, ^^ vớ i kiểu logic mệnh đề
>, < vớ i kiểu ký tự

7
Nhữ ng kiểu dữ liệu chuẩ n
Cá c kiểu ký tự : Biểu diễn mộ t ký tự trong mộ t bả ng mã nà o đó , chẳ ng hạ n ‘A’
hay ‘$’… Phổ biến nhấ t là kiểu char, biểu diễn cá c ký tự trong bả ng mã ASCII
Cá c kiểu số nguyên: Biểu diễn mộ t số nguyên, cá c kiểu số nguyên đượ c phâ n
loạ i bở i kích thướ c và miền giá trị (có dấ u hay khô ng dấ u)
Cá c kiểu số thự c: Biểu diễn mộ t số thự c, cá c kiểu số thự c đượ c phâ n loạ i bở i
kích thướ c và độ chính xá c
Cá c kiểu logic: Chỉ nhậ n mộ t trong hai giá trị Đú ng (true) hoặ c Sai (false)

8
Cá c kiểu ký tự
Kiểu Kích thước (GCC) Bảng mã
char 8 bit ASCII
wchar_t 16 bit UNICODE

Cá c tham số về kích thướ c và bả ng mã là tương ứ ng vớ i GCC trên Windows, vớ i hệ điều


hà nh và trình dịch khá c, kích thướ c và bả ng mã củ a kiểu char/wchar_t có thể khá c.
char: Kiểu ký tự dù ng phổ biến (trong cá c bà i họ c)
wchar_t: Theo C++ Standard là kiểu ký tự có kích thướ c lớ n nhấ t tù y thuộ c và o hệ điều
hà nh và mô i trườ ng lậ p trình đang sử dụ ng

9
Cá c kiểu số nguyên
Kiểu Kích thước ± Khoảng
signed int và unsigned
unsigned char 8 bit = 1 byte Khô ng 0…28-1
int
signed char 8 bit = 1 byte Có -27…27-1
Hai kiểu số nguyên phổ biến.
unsigned short int 16 bit = 2 bytes Khô ng 0…216-1 Luô n đượ c á nh xạ và o kiểu
signed short int 16 bit = 2 bytes Có -215…215-1 số nguyên tính nhanh nhấ t
unsigned long int 32 bit = 4 bytes Khô ng 0…232-1 Trong GCC 32 bit
signed long int 32 bit = 4 bytes Có -231…231-1 signed int = signed long int
unsigned long long int 64 bit = 8 bytes Khô ng 0…264-1 unsigned int = unsigned
long int
singed long long int 64 bit = 8 bytes Có -263…263-1

10
Cá c kiểu số thự c
Kiểu Kích thướ c Số chữ số Khoả ng
(GCC) có nghĩa
float 32 bit = 4 bytes 7-8 -1.5×1045 … 3.4×1038
double 64 bit = 8 bytes 15-16 -5.0×10324 … 1.7×10308
long double 96 bit = 12 bytes 19-20 -3.6×104951 … 1.1×104932

Đố i vớ i cá c kiểu số thự c, số chữ số có nghĩa quan trọ ng


hơn miền giá trị

11
Kiểu logic
Dữ liệu kiểu logic chỉ là mộ t ô nhớ lưu trữ hai
giá trị ứ ng vớ i hai trạ ng thá i đú ng (true) hoặ c
sai (false)
Kiểu logic trong C++ là bool, chiếm 8 bit (1
byte)
12
Kiểu void
void: Khô ng là kiểu gì cả
void là mộ t kiểu dữ liệu đặ c biệt trong C++, có
thể coi void là kiểu mà ngườ i ta khô ng quan
tâ m tớ i giá trị lưu trong kiểu đó .

13
Khai bá o biến
Biến
Nhậ n giá trị thuộ c mộ t kiểu dữ liệu nà o đó , chiếm lượ ng bộ nhớ do kiểu dữ liệu quy định
Có thể thay đổ i giá trị trong chương trình
Mỗ i khai bá o có dạ ng:
T v1, v2, …, vn;
Trong đó
T: Tên kiểu dữ liệu
v1, v2, …, vn: Cá c tên biến cá ch nhau bở i dấ u phẩy “,”
Khai bá o biến trong C++ có thể nằ m ở bấ t cứ đâ u trong chương trình. Tuy nhiên:
Biến khai bá o bên ngoà i hà m là biến toà n cụ c, có thể dù ng mọ i nơi trong chương trình
Biến khai bá o trong hà m chỉ đượ c dù ng bên trong hà m.

14
Ví dụ về khai bá o biến
int i, j, k; i, j, k là cá c biến số nguyên
double x, y, z; x, y, z là cá c biến số thự c
char ch; ch là mộ t biến ký tự , nhậ n giá

bool b; trị trong bả ng mã ASCII


b là mộ t biến logic, nhậ n mộ t
trong hai giá trị true hoặ c false.

15
Khai bá o biến vớ i giá trị khở i tạ o
Đô i khi ngườ i ta muố n mộ t biến khi khai //Kiểu 1
bá o nhậ n luô n mộ t giá trị khở i tạ o. Khi đó
có thể đưa giá trị khở i tạ o và o trong khai
int x = 2, y = 9;
bá o biến //Kiểu 2
Ví dụ muố n khai bá o mộ t biến số nguyên x
ban đầ u nhậ n giá trị 2 và biến số nguyên y
int x(2), y(9);
ban đầ u nhậ n giá trị 9 //Kiểu 3
Thự c ra ba kiểu khở i tạ o này khá c nhau về
int x{2}, y{9};
bả n chấ t (họ c sau)

16
Ví dụ
#include <iostream>
Yêu cầ u nhớ số thứ nhấ t bằ ng 6 using namespace
std;

Yêu cầ u nhớ số thứ hai bằ ng 7 int main()


{
Tă ng số thứ nhấ t lên 3 đơn vị (9) int a, b;
a = 6;
Lấy số thứ nhấ t trừ số thứ hai, đưa ra b = 7;
a = a + 3;
kết quả (2) int c = a - b;
cout << c;
}
Ví dụ
#include <iostream>
Nhậ p và o mộ t số thự c d using namespace std;

là độ dà i cạ nh mộ t hình int main()


{
double d;
vuô ng cout << "Cho d = ";
cin >> d;
In ra chu vi và diện tích cout << "Chu vi: " << 4 * d <<
'\n';
hình vuô ng đó cout << "Dien tich: " << d * d <<
'\n';
}

18
Xuấ t số thự c theo khuô n dạ ng
#include <iostream>
Cá c kiểu dữ liệu số thự c có khuô n #include <iomanip>
dạ ng mặ c định khi in ra mà n hình using namespace std;

Muố n thay đổ i khuô n dạ ng in vớ i k int main()


{
chữ số sau dấ u chấ m thậ p phâ n:
double d = 12.345678;
Khai bá o sử dụ ng thư viện iomanip
Đẩy ra luồ ng ra chuẩ n hai giá trị cout << fixed <<
setprecision(2);
std::fixed và std::setprecision(k)
cout << d; //12.35
Dù ng cout }

19
Thư viện cmath
Đây là thư viện chứ a hà ng ngà n hà m số toá n
họ c dù ng trong lậ p trình
Muố n dù ng cá c hà m toá n họ c đó chỉ cầ n khai
bá o sử dụ ng thư viện cmath

20
Ví dụ
#include <iostream>
Nhậ
  p và o ba số thự c a, b, c là #include <iomanip>
#include <cmath>
độ dà i ba cạ nh củ a mộ t tam using namespace std;

giá c int main()


{
double a, b, c, p, s;
In ra diện tích tam giá c đó cout << "Cho 3 canh = "; cin >> a >> b >>
c;
vớ i 3 chữ số sau dấ u chấ m p = (a + b + c) / 2;
s = sqrt(p * (p - a) * (p - b) * (p - c));
thậ p phâ n cout << fixed << setprecision(3);
cout << "Dien tich: " << s;
Cô ng thứ c Heron }

21
Hà m Cô ng dụ ng Kiểu tham số Kiểu kết quả
(CSTDLIB) abs() Tính Số
Số nguyên
nguyên Số
Số nguyên
nguyên
(CMATH) abs() Tính Số
Số thự
thự cc Số
Số thự
thự cc
Cá c hà m lượ ng giá c Số thự c Số thự c **
Cá c hà m lượ ng giá c Số thự c Số thự c **
Hà m ngượ c củ a hà m lượ ng giá c Số thự c ** Số thự c
Hà m ngượ c củ a hà m lượ ng giá c Số thự c ** Số thự c
(*)Tính Số thự c Số thự c
Số thự
thự cc Số thự
thự cc
Tính  Số Số
Tính Số
Số thự
thự cc Số
Số thự
thự cc
(*)Tính Số thự c Số thự c
Tính Số thự c Số thự c
Tính Số
Số thự
thự cc Số
Số thự
thự cc
Tính Số
Số thự
thự cc Số
Số thự
thự cc
Tính phầ n nguyên củ a Số thự c Số thự c
Số thự c Số thự c
Là m trò n củ a Số thự c Số thự c
Số thự c Số thự c
Số thự c Số thự c
(*) e ≈ 2.71828182845904523536 (**) Đơn vị đo bằ ng Radian
22
Thư viện bits/stdc++
C++ đi kèm vớ i rấ t nhiều thư viện hỗ trợ
Việc #include <từ ng thư viện> hơi khó nhớ vớ i ngườ i mớ i họ c
GCC cho mộ t header file chung, chỉ cầ n đưa khai bá o
#include<bits/stdc++.h>
để sử dụ ng tấ t cả thư viện chuẩ n
Nhượ c điểm:
Khô ng chuẩ n (chỉ dù ng cho GCC)
Rấ t dễ xung độ t tên khi dù ng chung vớ i using namespace std;
Dịch chậ m, có thể tă ng kích thướ c mã máy.

23
Mộ t số lưu ý về nhậ p/xuấ t
#include <iostream>
Khô ng đồ ng bộ luồ ng nhậ p xuấ t củ a C/C++
using namespace std;
std::ios_base::sync_with_stdio(false);
Khi đã bỏ đồ ng bộ , khô ng đượ c dù ng lẫ n cá ch
int main()
nhậ p xuấ t củ a C và C++ trong cù ng mộ t chương
{
trình.
Khô ng đồ ng bộ luồ ng đọ c/ghi ios_base::sync_with_stdio(fal
std::cin.tie(nullptr) se);
Cô ng dụ ng: Khô ng bắ t buộ c cout phả i đẩy ra hết cin.tie(nullptr);
dữ liệu khi gặ p lệnh đọ c từ cin …
}

24

You might also like