Chương 01: Các đặc điểm mới của C++ | Bài giảng Lập trình hướng đối tượng

Dùng 4 biến  -> cách dài nhất, cơ bản nhất. Dùng mảng -> khai báo biến gọn hơn, một lần thay cho nhiều lần. Bài giảng giúp bạn tham khảo, củng cố kiến thức và ôn tập đạt kết quả cao.

C ĐC ĐIỂM MỚI CỦA C++
Khoa Công nghệ phần mềm
Nội dung
9/20/20 Lập trình hướng đối tượng 2
Một số lưu ý
1
Ngôn ngữ C++
2
Tham số mặc nhiên
3
Tái định nghĩa hàm
4
Truyn tham s
5
5
Inline Functions
6
Phong cách lập trình
vNhững lưu ý về phong cách lập trình:
§ Đặt tên (biến, hàm,)
§ Tab
§ Khai báo prototype
§ {}
20/09/2020 Lập trình hướng đối tượng 3
Bài tập C
vNhập bốn số nguyên xuất các giá trị vừa
nhập
§ bao nhiêu cách để giải quyết?
20/09/2020 Lập trình hướng đối tượng 4
Bài tập C Giải
1. Dùng 4 biến ècách dài nhất, bản nhất
2. Dùng mảng èkhai báo biến gọn n, 1
lần thay cho nhiều lần
3. Dùng mảng vòng lặp do while èviết
code nhập gọn hơn, viết 1 lần thay cho
nhiều lần
4. Dùng mảng vòng lặp for èviết code
gọn hơn, for viết gọn hơn vòng while
20/09/2020 Lập trình hướng đối tượng 5
Bài tập C Giải
5. Dùng mảng, vòng lặp for gộp èviết code
gọn hơn, nhưng không tách riêng được 2
phần nhập xuất
6. Dùng hàm để tách riêng phần nhập xuất
ècode thể tái sử dụng nhiều lần
7. Dùng file để nhập xuất từ file thay cho việc
nhập bằng bàn phím xuất ra màn hình
20/09/2020 Lập trình hướng đối tượng 6
Bài tập C Giải
vCách 1: Dùng 4 biến
20/09/2020 Lập trình hướng đối tượng 7
void main(){
int a1, a2, a3, a4;
printf("\nNhap a1 = ");
scanf("%d", &a1);
printf("\nNhap a2 = ");
scanf("%d", &a2);
printf("\nNhap a3 = ");
scanf("%d", &a3);
printf("\nNhap a4 = ");
scanf("%d", &a4);
printf("\nBan vua nhap 4 so: %d %d %d %d\n", a1, a2, a3, a4);
}
Bài tập C Giải
vCách 2: Dùng mảng
20/09/2020 Lập trình hướng đối tượng 8
void main(){
int a[4];
printf("\nNhap a1 = ");
scanf("%d", &a[0]);
printf("\nNhap a2 = ");
scanf("%d", &a[1]);
printf("\nNhap a3 = ");
scanf("%d", &a[2]);
printf("\nNhap a4 = ");
scanf("%d", &a[3]);
printf("\nBan nhap 4 so:%d %d %d %d\n", a[0], a[1], a[2], a[3]);
}
Bài tập C Giải
vCách 3: Dùng
mảng vòng
lặp while
20/09/2020 Lập trình hướng đối tượng 9
void main(){
int a[4], i;
i = 0;
do{
printf("\nNhap a%d = ", i);
scanf("%d", &a[i]);
i++;
}
while(i<4);
i = 0;
printf("\nBan vua nhap 4 so:");
do{
printf("%d ", a[i]);
i++;
}
while(i<4);
}
Bài tập C Giải
vCách 4: Dùng mảng vòng lặp for
20/09/2020 Lập trình hướng đối tượng 10
void main()
{
int a[4], i;
for (i=0; i<4; i++){
printf("\nNhap a%d = ", i);
scanf("%d", &a[i]);
}
printf("\nBan vua nhap 4 so:");
for (i=0; i<4; i++){
printf("%d ", a[i]);
}
}
Bài tập C Giải
vCách 5: Dùng mảng vòng lặp for gộp
20/09/2020 Lập trình hướng đối tượng 11
void main()
{
int a[4], i;
for (i=0; i<4; i++)
{
printf("\nNhap a%d = ", i);
scanf("%d", &a[i]);
printf("%d ", a[i]);
}
}
Bài tập C Giải
vCách 6: Dùng hàm
20/09/2020 Lập trình hướng đối tượng 12
Bài tập C Giải
vCách 7: Dùng file
20/09/2020 Lập trình hướng đối tượng 13
Lịch sử ngôn ngữ lập trình
20/09/2020 Lập trình hướng đối tượng 14
Lịch sử của C++
vMở rộng của C
vĐầu thập niên 1980: Bjarne Stroustrup
(Bell Laboratories)
vCung cấp khả năng lập trình hướng đối
tượng
vNgôn ngữ lai
20/09/2020 Lập trình hướng đối tượng 15
Môi trường của C++
vBiên dịch thực
thi chương trình
C++:
§ Edit
§ Preprocess
§ Compile
§ Link
§ Load
§ Execute
20/09/2020 Lập trình hướng đối tượng 16
Loader
Primary
Memory
Program is created in
the editor and stored
on disk.
Preprocessor program
processes the code.
Loader puts program
in memory.
CPU takes each
instruction and
executes it, possibly
storing new data
values as the program
executes.
Compiler
Compiler creates
object code and stores
it on disk.
Linker links the object
code with the libraries,
creates a.out and
stores it on disk
Editor
Preprocessor
Linker
CPU
Primary
Memory
.
.
.
.
.
.
.
.
.
.
.
.
Disk
Disk
Disk
Disk
Disk
Khác biệt đối với C
vChú thích
vCác kiểu dữ liệu
vKiểm tra kiểu, đổi kiểu
vPhạm vi khai báo
vKhông gian tên
vHằng
vQuản bộ nhớ
vTham chiếu
20/09/2020 Lập trình hướng đối tượng 17
C++
C
Khác biệt đối với C
vPhạm vi khai báo:
§ Không giống như C, chúng ta thể khai báo một
biến tại một vị trí bất kỳ
trong chương trình.
§ Một biến chỉ tầm tác dụng trong khối lệnh
được khai báo.
§ Do đó, C++ cung cấp toán tử định phạm vi (::) để
xác định biến nào được sử dụng khi xảy ra tình
trạng định nghĩa chồng một tên biến trong một
khối lệnh con.
20/09/2020 Lập trình hướng đối tượng 18
Toán t phm vi
vToán tử phạm vi (::)
§ Thường được dùng để truy cập c biến toàn
cục trong trường hợp biến cục bộ trùng tên
§ dụ:
y = ::x + 3;
20/09/2020 Lập trình hướng đối tượng 19
Toán t phm vi
20/09/2020 Lập trình hướng đối tượng 20
1 // Using the unary scope resolution operator.
2 #include <iostream>
3 #include <iomanip>
4 using namespace std;
5
6 // define global constant PI
7 const double PI = 3.14159265358979;
8 int main()
9 {
10 //define local constant PI
11 const float PI = static_cast< float >( ::PI );
Access the global PI with
::PI.
Cast the global PI to a
float for the local PI.
This example will show
the difference between
float and double.
| 1/51

Preview text:

CÁC ĐẶC ĐIỂM MỚI CỦA C++
Khoa Công nghệ phần mềm Nội dung 1 Một số lưu ý 2 Ngôn ngữ C++ 3 Tham số mặc nhiên 4
Tái định nghĩa hàm 5 Truyền tham số 6 Inline Functions 9/20/20
Lập trình hướng đối tượng 2
Phong cách lập trình
vNhững lưu ý về phong cách lập trình:
§ Đặt tên (biến, hàm,…) § Tab § Khai báo prototype § {} 20/09/2020
Lập trình hướng đối tượng 3 Bài tập C
vNhập bốn số nguyên và xuất các giá trị vừa nhập
§ Có bao nhiêu cách để giải quyết? 20/09/2020
Lập trình hướng đối tượng 4 Bài tập C – Giải
1. Dùng 4 biến ècách dài nhất, cơ bản nhất
2. Dùng mảng èkhai báo biến gọn hơn, 1 lần thay cho nhiều lần
3. Dùng mảng và vòng lặp do while èviết
code nhập gọn hơn, viết 1 lần thay cho nhiều lần
4. Dùng mảng và vòng lặp for èviết code
gọn hơn, for viết gọn hơn vòng while 20/09/2020
Lập trình hướng đối tượng 5 Bài tập C – Giải
5. Dùng mảng, vòng lặp for gộp èviết code
gọn hơn, nhưng không tách riêng được 2 phần nhập xuất
6. Dùng hàm để tách riêng phần nhập xuất
ècode có thể tái sử dụng nhiều lần
7. Dùng file để nhập xuất từ file thay cho việc
nhập bằng bàn phím và xuất ra màn hình 20/09/2020
Lập trình hướng đối tượng 6 Bài tập C – Giải vCách 1: Dùng 4 biến void main(){ int a1, a2, a3, a4; printf("\nNhap a1 = "); scanf("%d", &a1); printf("\nNhap a2 = "); scanf("%d", &a2); printf("\nNhap a3 = "); scanf("%d", &a3); printf("\nNhap a4 = "); scanf("%d", &a4);
printf("\nBan vua nhap 4 so: %d %d %d %d\n", a1, a2, a3, a4); } 20/09/2020
Lập trình hướng đối tượng 7 Bài tập C – Giải vCách 2: Dùng mảng void main(){ int a[4]; printf("\nNhap a1 = "); scanf("%d", &a[0]); printf("\nNhap a2 = "); scanf("%d", &a[1]); printf("\nNhap a3 = "); scanf("%d", &a[2]); printf("\nNhap a4 = "); scanf("%d", &a[3]);
printf("\nBan nhap 4 so:%d %d %d %d\n", a[0], a[1], a[2], a[3]); } 20/09/2020
Lập trình hướng đối tượng 8 Bài tập C – Giải vCách 3: Dùng void main(){ int a[4], i; mảng và vòng i = 0; do{ lặp while printf("\nNhap a%d = ", i); scanf("%d", &a[i]); i++; }while(i<4); i = 0;
printf("\nBan vua nhap 4 so:"); do{ printf("%d ", a[i]); i++; }while(i<4); } 20/09/2020
Lập trình hướng đối tượng 9 Bài tập C – Giải
vCách 4: Dùng mảng và vòng lặp for void main() { int a[4], i; for (i=0; i<4; i++){ printf("\nNhap a%d = ", i); scanf("%d", &a[i]); }
printf("\nBan vua nhap 4 so:"); for (i=0; i<4; i++){ printf("%d ", a[i]); } } 20/09/2020
Lập trình hướng đối tượng 10 Bài tập C – Giải
vCách 5: Dùng mảng và vòng lặp for gộp void main() { int a[4], i; for (i=0; i<4; i++) { printf("\nNhap a%d = ", i); scanf("%d", &a[i]); printf("%d ", a[i]); } } 20/09/2020
Lập trình hướng đối tượng 11 Bài tập C – Giải vCách 6: Dùng hàm 20/09/2020
Lập trình hướng đối tượng 12 Bài tập C – Giải vCách 7: Dùng file 20/09/2020
Lập trình hướng đối tượng 13
Lịch sử ngôn ngữ lập trình 20/09/2020
Lập trình hướng đối tượng 14 Lịch sử của C++ vMở rộng của C
vĐầu thập niên 1980: Bjarne Stroustrup (Bell Laboratories)
vCung cấp khả năng lập trình hướng đối tượng vNgôn ngữ lai 20/09/2020
Lập trình hướng đối tượng 15
Môi trường của C++ Program is created in Editor Disk vBiên dịch và thực the editor and stored on disk.
thi chương trình Preprocessor Preprocessor program Disk processes the code. C++: Compiler creates Compiler Disk object code and stores it on disk. § Edit Linker links the object Linker Disk code with the libraries, creates § Preprocess a.out and Primary stores it on disk Memory § Compile Loader Loader puts program § Link in memory. Disk .. .. .. § Load Primary Memory § Execute CPU CPU takes each instruction and executes it, possibly storing new data .. .. values as the program .. 20/09/2020
Lập trình hướng đối tượng executes. 16
Khác biệt đối với C vChú thích vCác kiểu dữ liệu
vKiểm tra kiểu, đổi kiểu vPhạm vi và khai báo C vKhông gian tên C++ vHằng vQuản lý bộ nhớ vTham chiếu 20/09/2020
Lập trình hướng đối tượng 17
Khác biệt đối với C vPhạm vi và khai báo:
§ Không giống như C, chúng ta có thể khai báo một
biến tại một vị trí bất kỳ trong chương trình.
§ Một biến chỉ có tầm tác dụng trong khối lệnh nó được khai báo.
§ Do đó, C++ cung cấp toán tử định phạm vi (::) để
xác định rõ biến nào được sử dụng khi xảy ra tình
trạng định nghĩa chồng một tên biến trong một khối lệnh con. 20/09/2020
Lập trình hướng đối tượng 18 Toán tử phạm vi vToán tử phạm vi (::)
§ Thường được dùng để truy cập các biến toàn
cục trong trường hợp có biến cục bộ trùng tên § Ví dụ: y = ::x + 3; 20/09/2020
Lập trình hướng đối tượng 19 Toán tử phạm vi 1
// Using the unary scope resolution operator. 2 #include
Access the global PI with 3 #include ::PI. Cast the global PI to a 4 using namespace std;
float for the local PI. 5 This example will show 6
// define global constant PI the difference between 7
const double PI = 3.14159265358979;
float and double. 8 int main() 9 { 10 //define local constant PI 11
const float PI = static_cast< float >( ::PI ); 20/09/2020
Lập trình hướng đối tượng 20