Slide bài giảng Lập trình C++ cơ bản: 1.Cấu trúc của một chương trình C++… 2.Các đối tượng cơ bản của C++
Trang 1Lập trình C++ căn bản
Trang 2// Program: Display greetings // Author(s): Ima Programmer // Date: 1/24/2001
Trang 3Cấu trúc của một chương trình
C++…
//hàm main được thực thi
//top and down
……….
}
void func2() {
……….
Trang 4// Program: Display greetings // Author(s): Ima Programmer // Date: 1/24/2001
Trang 5Greeting Output
Trang 6Khai báoĐọc dữ liệu
Khai báo có khởI tạo
Area.cpp
#include <iostream>
using namespace std;
int main() {
// Extract length and width
cout << "Rectangle dimensions: ";
float Length; float Width;
cin >> Length >> Width;
// Compute and insert the area
float Area = Length * Width;
cout << "Area = " << Area << " = Length "
<< Length << " * Width " << Width << endl;
return 0;
Trang 7Visual C++ IDE with Area.cpp
Trang 8Area.cpp Output
Trang 9Chú thích
Cho phép đưa các ghi chú vào trong chương trình
Tầm quan trọng
◼ Viết ít lần nhưng đọc nhiều lần
◼ Chương trình phảI dễ hiểu để có thể dễ dàng bảo trì và
nâng cấpC++ có hai dạng chú thích
Trang 10Bộ nhớ RAM…
Byte 0 Byte 1 Byte 2
trình
•Các byte trong RAM được đánh địa chỉ
•Có thể tưởng tượng RAM giống như một băng giấy rất dài , mỗi ô
có độ dài 1 byte (có thể chứa một kí tự)
Trang 11Các đối tượng cơ bản của C++
C++ cung cấp nhiều kiểu đối tượng đựơc nạp sẵn (built-in) Các kiểu đối tượng cơ bản được chia làm 4 loại chính:
◼ Đối tượng số nguyên
Trang 124 Kiểu dữ liệu
Có 4 kiểu dữ liệu cơ bản trong C là: char, int, float, double
TT
Kiểu dữ liệu (Type)
Kích thước (Length)
Miền giá trị (Range)
enum unsigned int short int int unsigned long long
float double long double
– 32,768 đến 32,767 – 32,768 đến 32,767
0 đến 4,294,967,295 – 2,147,483,648 đến 2,147,483,647
3.4 * 10 –38 đến 3.4 * 10 38
1.7 * 10 –308 đến 1.7 * 10 308
3.4 * 10 –4932 đến 1.1 * 10 4932
Trang 14Khai báo biến trong C++…
Dùng để biểu diễn những đại lượng thay đổi
Các biến phải được khai báo trước khi sử dụng
Cú pháp:
Kiểu tên-biến1, tên-biến2, ;
Trang 15Các thành phần của một đối tượng (biến)
Thành phần:
◼ Miền giá trị của biến: kiểu
◼ Tên biến: theo qui tắc đặt tên
◼ Giá trị của biến Miền giá trị và tên biến không thay đổi, còn giá trị có thể thay đổi (thế nào là biến???)
Thao tác trên biến là thao tác trên giá trị của biến,
Trang 16Tên (Định danh) trong C++…
Identifier…
Là một chuỗi gồm :
◼ Các chữ cái : a z , A Z.
◼ Các chữ số : 0 9.
◼ Dấu nối dưới _ (underscore).
Phải bắt đầu bằng : chữ cái hoặc _.
Có thể dài tới 247 kí tự.
Không được trùng với các từ khóa.
Tên (định danh) dùng để đặt cho các đối tượng như:
Trang 17Tên Biến
Tên biến - Nguyên tắc đặt tên
Tên biến không chứa khoảng trống
Tên biến phải được bắt đầu bằng ký tự chữ hoặc dấu gạch chân
Theo sau ký tự đầu tiên có thể là các ký tự chữ, số hoặc dấu gạch chân
Không đặt tên biến trùng với các từ khóa
Trang 18Tên Biến
Tên biến – Lời khuyên
Không nên viết hoa tất cả các từ trong tên biến.
Không nên bắt đầu bằng dấu gạch chân.
Nên đặt tên biến có ý nghĩa, tránh viết tắt quá nhiều để dẫn đến tên biến tối nghĩa.
Tên của biến ngoại trừ biến kiểu enum và tham số nên viết thường ký tự đầu tiên của từ đầu tiên và viết hoa tất cả các ký tự đầu tiên của những
từ còn lại.
Trang 193 Từ khóa
asm break case cdecl char const continue default do
int interrupt long near pascal register return short static
double else enum extern far float for goto huge if
struct signed sizeof switch typedef union unsigned void volatile while
Trang 20Tên Biến
Ví dụ về tên biến không hợp lệ
3a_1 (ký tự đầu là số)
num-odd (sử dụng dấu gạch ngang)
int (đặt tên trùng với từ khóa)
Trang 21Tên Biến
Phạm vi của biến
Biến toàn cục
◼ Là biến được khai báo ngoài tất cả các hàm (kể cả main)
◼ Nó ảnh hưởng đến toàn chương trình
◼ Chu kỳ sống của nó là bắt đầu khi chương trình chạy cho đến đi chương trình kết thúc
Biến cục bộ
◼ Là biến được khai báo bên trong hàm, cấu trúc….
◼ Chỉ ảnh hưởng nội bộ bên trong hàm, cấu trúc đó….
◼ Chu trình sống của nó bắt đầu từ lúc hàm, cấu trúc được gọi thực hiện đến lúc thực hiện xong
Trang 22ĐốI tượng được định nghĩa
có thể mang giá trị rác (giá trị không xác định được)
Trang 23Định nghĩa và khởi tạo
Nếu chỉ định nghĩa thì giá trị của đối tượng không xác định được
Nên xác lập giá trị ngay lúc định nghĩa nếu được
◼ Những đối tượng sẽ nhập thì không cần
Trang 25Kiểu đối tượng số nguyên…
Kiểu số nguyên cơ bản là int
◼ Kích thước của số nguyên phụ thuộc vào phần cứng và trình biên dịch
Thường là 16 bits = 2 bytes (hoặc 32 bits = 4 bytes)Các kiểu số nguyên khác:
◼ short: kích thước ít hơn số nguyên (1 byte)
◼ long: kích thước nhiều hơn số nguyên (4 bytes)
Nhiều kiểu số nguyên cho phép lập trình viên sử dụng bộ nhớ hiệu quả
Trang 26Khai báo biến với kiểu số nguyên…
int x; //Khai báo thông thườngint x=-100; //Khai báo có khởi tạo giá trị
x
2 bytes
Trang 27Kiểu đối tượng kí tự (char)
Kiểu kí tự liên quan mật thiết với kiểu số nguyênCác kí tự được mã hóa bằng một mô hình tương ứng mỗi kí tự với một số nguyên duy nhất
Mỗi kí tự sẽ được lưu trữ bằng 1 bytes ➔ 256 kí tự
Bảng mã ASCII
◼ Ví dụ:
' ' tương ứng 32 '+' tương ứng 43
'A' tương ứng 65 'Z' tương ứng 90
'a' tương ứng 97 'z' tương ứng 122
Trang 29 \t là mã dấu Tab \n là mã dấu xuống dòng
\\ là mã dấu \ \' là mã dấu nháy đơn
\" là mã dấu nháy kép
Ví dụ: '\t' là kí tự Tab, '\n‘ là kí tự xuống dòng
Trang 30Khai báo biến kí tự…
char kitu;
char kitu=‘A’;char kitu=65;char kitu=0x41;
Hòan tòan giống nhau
undefined kitu
Trang 31Hằng chuỗi kí tự
Một chuỗI kí tự hợp lệ là một dãy các kí tự được bao bọc bởI dấu nháy kép Chuỗi không có kí tự được gọI là chuỗi rỗng
◼ “Day la chuoi ki tu"
◼ “Chuoi nay se xuong dong\n"
◼ ""
Là chuỗi kí tự dạng cũ do C cung cấp, C++ cung cấp kiểu đối
tượng chuỗi là string
Trang 32Kiểu đối tượng số thực
Trang 33Khai báo biến thực…
Các hằng số thực
Phần nguyên và phần thực ngăn cách bởi dấu chấm (.)
134.1230.151.125E2 //=112.5
Mặc định của các hằng số thực là kiểu double
double x=11.25E-1;
float y=23.5f;
Trang 34Kiểu lôgic (bool)
Là kiểu thể hiện giá trị đúng sai
Có hai giá trị: true hoặc false
Các phép toán:
◼ && → phép AND (và)
◼ || → phép OR (hoặc)
◼ ! → phép NOT (phủ định)Khai báo:
◼ bool TestResult;
◼ bool laNguyenTo = false;
Trang 35Định nghĩa kiểu dữ liệu mới…
Trang 36Phép toán
Phép toán số họcPhép toán quan hệPhép toán luận lýPhép toán trên bitMột số phép toán khác
Độ ưu tiên
Trang 40áp dụng trên các toán hạng có kiểu dữ liệu char, int, long
Đảo dấu +, – ( ) *, / , % +, –
Thứ tự ưu tiên:
Trang 41Toán tử và độ ưu tiên
Ví dụ
20 - 4 / 5 * 2 + 3 * 5 % 4
(4 / 5) ((4 / 5) * 2) ((4 / 5) * 2) (3 * 5) ((4 / 5) * 2) ((3 * 5) % 4) (20 -((4 / 5) * 2)) ((3 * 5) % 4) (20 -((4 / 5) * 2)) + ((3 * 5) % 4)
Trang 44Phép toán trên bit (bitwise)
Bit a Bit b ~a a & b a | b a ^ b
1 1 0 0
0 0 0 1
0 1 1 1
0 1 1 0
Trang 456 Phép toán
Phép gán: =, +=, –=, *=, /=, %=, <<=, >>=, &=, |=, ^= Phép toán ++,
Toán tử 3 ngôi: ()? … : …
Phép toán khác
Trang 496 Phép toán Độ ưu tiên
Độ ưu tiên Các phép toán Trình tự kết hợp
Trang 51Ép kiểu
float a=6/4; // a==1
float a=(float)6/4; // a==1.5
float a=float(5/4); // a==1
float a=500*700;
// a nhận giá trị sai do tràn kiểu số nguyên
Trang 52Nhập và Xuất dữ liệu…
Nhập dữ liệu…
Trong C++ dùng cin để nhập dữ liệu
cin tượng trưng cho dòng nhập cơ bản (standard input stream)
Cú pháp : cin >> biên1 >> biến2
Ví dụ:
int num1 = 0, num2 = 0;
double factor = 0.0;
cin >> num1 >> factor >> num2;
Giả sử người dùng nhập vào:
10 -3.123 5
Trang 53Nhập và Xuất dữ liệu…
Nhập dữ liệu…
Trong C++ dùng cout để xuất dữ liệu.
cout tương trưng cho dòng xuất cơ bản (standard output stream).
Cú pháp: cout << biên1 << biểu_thức << biên2 << hằng_số
// EX1_02.CPP // Exercising output
#include <iostream>
using namespace std;
int main()
{
int num1 = 1234, num2 = 5678;
cout << endl; // Start on a new line
cout << num1 << num2; // Output two values
cout << endl; // End on a new line
Trang 54Khắc phục sự cố…
Làm thế nào để xuất ra: 1234□□5678 ???
Nếu 1234□□□□□□5678 thì sao???
Cách khắc phục dùng hàm setw(n) của header iomanip
cout << num1<< “ “ <<num2;
và viết trong n khỏang trắng.
Trang 55int num1 = 1234, num2 = 5678;
cout << endl; //Start on a new line
cout << setw(6) << num1 << setw(6) << num2;
//Output two values
cout << endl; //Start on a new line
return 0; //Exit program
}
Trang 56Thay đổi giá trị của đối tượng Toán tử và biểu thức
Trang 57◼ Tính toán biểu thức trước (lượng giá biểu thức)
◼ Giá trị biểu thức được đưa vào đối tượng
Giá trị sẽ được gán vào đối tượng
Trang 58NewStudents OldStudents
27 TotalStudents
Trang 5927 TotalStudents
Trang 60NewStudents OldStudents
27 TotalStudents
Trang 61Ví dụ
Trang 62Ví dụ
int Value1 = 10;
int Value2 = 20;
10 20 Value1
Value2
Trang 63Value1 Value2
10 Hold
Trang 64Value1 Value2
10 Hold
Trang 65Value1 Value2
10 Hold
Trang 6610 Hold
Trang 67Value1 Value2
10 Hold
Trang 68Ví dụ tăng
int i = 1;
Trang 70Định nghĩa const
Từ khóa const để chỉ ra đốI tượng không thể thay đổi giá trị
sau khi định nghĩa và khởi tạo
◼ Đối tượng chỉ đọc
Dùng cho các đối tượng không có nhu cầu thay đổi giá trị hoặc không được thay đổi giá trị
const float Pi = 3.1415;
const int SampleSize = 100;
const int DiemTrungBinh = 5.0;
Dễ quản lý, thay đổi các hằng số
Trang 71Thay đổi giá trị của một biến…
Trang 72Toán tử tăng giảm
Là hai toán tử một ngôi dùng để tăng , giảm một đơn vị trên đối tượng số nguyên.
Trang 73Phạm vi của biến
Phạm vi của biến là vùng mà biến có thể được sử dụng
◼ Bắt đầu tại câu lệnh khai báo biến
◼ Kết thúc tại dấu đóng khối của khối gần nhất chứa nóBiến cục bộ: Khai báo trong hàm (main,…)
Biến toàn cục: khai báo ngoài hàm (main)
Trang 74return 0;
}
Biến tòan cụcPhạm vi tòan bộ chương trình
Biến cục bộ
ERROR!!!
Trang 76Làm thế nào để truy cập biến đang
bị che phủ trong họat vi của nó…
Dùng tóan tử phân giải họat vi (scope resolution operator) ::
cout << “ i bên trong: “ << i;
cout << “ i bên ngòai: “ <<::i;
}return 0;