ma trận được cấp phát động và các giá trị của chúng phát sinh ngẫu nhiên (Với m, n và p nhập từ bàn phím).. Bài tập[r]
Trang 1CHƯƠNG 2 CÁC MỞ RỘNG CỦA
C++
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Nguyễn Hữu Thể
Trang 31 Lịch sử ngôn ngữ C
Trang 42 Lịch sử ngôn ngữ C++
Mở rộng, tiến hóa từ C
Bjarne Stroustrup (Bell Laboratories)
Đầu những năm 1980: “C with classes”
1984: Tên C++
1987: “The C++ Programming Language” 1st Edition
1997: “The C++ Programming Language” 3rd Edition
Chuẩn hóa quốc tế: ANSI/ISO 1996
Trang 5Lựa chọn ngôn ngữ C++
Đáp ứng các yêu cầu:
Gần gũi với phần cứng
Hiệu suất cao
Tương đối thân thiện với người lập trình
Chuẩn hóa quốc tế (tương lai vững chắc)
Thế mạnh tuyệt đối của ANSI-C:
Phổ biến cho hầu hết các nền vi xử lý, vi điều khiển, DSP
Phổ biến cho “mỗi người lập trình” trên thế giới
Thế mạnh tuyệt đối của ANSI/ISO C++:
Lập trình hướng đối tượng
Lập trình tổng quát (template)
Lập trình toán học (dữ liệu trừu tượng và nạp chồng toán tử)
Trang 63 Các mở rộng của C++
Trang 7Các từ khóa mới của C++
Một số từ khóa (keyword) mới đã được đưa vào C++ ngoài các
từ khóa có trong C
Trang 9Dòng nhập/xuất chuẩn
Ví dụ: Nhập vào hai số Tính tổng và hiệu của hai số
cout<<"Tong cua chung:"<<X+Y<<"\n";
cout<<"Hieu cua chung:"<<X-Y<<"\n";
return 0;
Trang 10Cách chuyển đổi kiểu dữ liệu
#include <iostream.h>
int main(){
int X = 200;
long Y = (long) X; //Chuyển đổi kiểu theo cách của C
long Z = long(X); // Chuyển đổi kiểu theo cách của C++
Trang 11Vị trí khai báo biến
Trang 12Chương trình xen kẻ khai báo biến với lệnh ở dòng 4 đến dòng 12.
24: case ‘/’:
25: if (Y) 26: cout<<"Ket qua:"<<float(X)/Y<<"\n"; 27: else
28: cout<<"Khong the chia duoc!" <<"\n"; 29: break;
30: default : 31: cout<<"Khong hieu toan tu nay!"<<"\n"; 32: }
Trang 14}
Trang 15Toán tử new và delete
else {
Trang 16Object-oriented programming 16
Toán tử new và delete (tt)
pháp:
Trong đó :
Nếu toán tử new cấp phát không thành công => trả về giá trị NULL
Trang 17Toán tử new và delete (tt)
Có thể vừa cấp phát vừa khởi
phat\n";
Trang 18Hàm inline
vùng nhớ
chương trình riêng
Trang 20Phép tham chiếu
void Swap(int *X, int *Y){
int Temp = *X;
*X = *Y;
*Y = *Temp;
}
void Swap(int &X, int &Y){
int Temp = X;
X = Y;
Y = Temp ; }
Trang 21Phép tham chiếu
Trong đó:
Trang 22Phép tham chiếu
biến được chuyển cho tham số của hàm
Trang 24Phép đa năng hóa (Overloading)
tên Đây chính là đa năng hóa hàm
Trang 25Bài tập
dạng nhị phân, bát phân và thập lục phân tương ứng
Kiểm tra xem số nguyên n có thuộc dãy Fibonacci không?
ma trận được cấp phát động và các giá trị của chúng phát sinh ngẫu nhiên (Với m, n và p nhập từ bàn phím)
Trang 26Bài tập
thước là n (n nhập từ bàn phím) Các giá trị của mảng này
được phát sinh ngẫu nhiên trên đoạn [a, b] với a và b đều nhập
từ bàn phím Hãy tìm số dương nhỏ nhất và số âm lớn nhất
trong mảng; nếu không có số dương nhỏ nhất hoặc số âm lớn nhất thì xuất thông báo "không có số dương nhỏ nhất" hoặc
"không có số âm lớn nhất"
số Hàm sẽ trả về giá trị bình phương của tham số và có kiểu cùng kiểu với tham số