SLIDE1

Sunday, March 15, 2015

sự khác biệt giữa c và c++

Phạ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.

cin
Standard input stream
Normally keyboard
cout
Standard output stream
Normally computer screen
cerr
Standard error stream
Display error messages
cin and cout (and #include <iostream.h>):
cout << "hey";
char name[10];
cin >> name;
cout<<"Hey "<<name<<", nice name." << endl;
cout << endl;
sự khác biệt giữa c và c++
Tham số mặc nhiên
Mục đích:
Gán các giá trị mặc nhiên cho các tham số của hàm.
Khai báo tham số mặc nhiên:
Tất cả các tham số mặc nhiên đều phải để ở cuối hàm.
Chỉ cần đưa vào khai báo, không cần trong định nghĩa.
Gọi hàm có tham số mặc nhiên:
Nếu cung cấp đủ tham số dùng tham số truyền vào.
Nếu không đủ tham số dùng tham số mặc nhiên.
C++ cho phép định nghĩa các hàm trùng tên.
Qui tắc tái định nghĩa:
Các hàm trùng tên phải khác nhau về tham số: Số lượng, thứ tự, kiểu
Qui tắc gọi hàm?
Tìm hàm có kiểu tham số phù hợp
Dùng phép ép kiểu tự động
Tìm hàm gần đúng (phù hợp) nhất
Toán tử cấp phát bộ nhớ động new
int *x;
x = new int; //x = (int*)malloc(sizeof(int));
char *y;
y = new char[100]; //y = (char*)malloc(100);
Toán tử giải phóng vùng nhớ động delete
delete x; // free(x);
delete y; // free(y);
Truyền theo giá trị (tham trị)
Giá trị tham số khi ra khỏi hàm sẽ không thay đổi.
Truyền theo địa chỉ (tham chiếu)
Giá trị tham số khi ra khỏi hàm có thể thay đổi.
Tham chiếu là địa chỉ vùng nhớ được cấp phát cho một biến.
Ký hiệu & đặt trước biến hoặc hàm để xác định tham chiếu của chúng
Ví dụ 1:
int x = 10, *px = &x, &y = x;
*px = 20;
y = 30;
Ví dụ 2:
int arrget(int *a, int i) { return a[i]; }
arrget(a, 1) = 1; // a[1] = 1;
cin >> arrget(a,1); // cin >> a[1];
Ví dụ 3:
void swap1(int x, int y) { int t = x; x = y; y = t; }
void swap2(int *x, int *y) { int *t = x; x = y; y = t; }
void swap3(int &x, int &y) { int t = x; x = y; y = t; }
Bài tập :
Viết chương trình nhập vào một phân số, rút gọn phân số và xuất kết quả.
Viết chương trình nhập vào hai phân số, tìm phân số lớn nhất và xuất kết quả.
Viết chương trình nhập vào hai phân số. Tính tổng, hiệu, tích, thương giữa chúng và xuất kết quả.
Viết chương trình nhập vào một ngày. Tìm ngày kế tiếp và xuất kết quả.
Viết chương trình nhập họ tên, điểm toán, điểm văn của một học sinh. Tính điểm trung bình và xuất kết quả.
Cho một danh sách lưu thông tin của các nhân viên trong một công ty, thông tin gồm:
- Mã nhân viên (chuỗi, tối đa là 8 ký tự)
- Họ và tên (chuỗi, tối đa là 20 ký tự)
- Phòng ban (chuỗi, tối đa 10 ký tự)
- Lương cơ bản (số nguyên)
- Thưởng (số nguyên)
- Thực lãnh (số nguyên, trong đó thực lãnh = lương cơ bản + thưởng )
Hãy thực hiện các công việc sau:
a.Tính tổng thực lãnh tháng của tất cả nhân viên trong công ty.
b.In danh sách những nhân viên có mức lương cơ bản thấp nhất.
c.Đếm số lượng nhân viên có mức thưởng >= 1200000.
d.In danh sách các nhân viên tăng dần theo phòng ban, nếu phòng ban trùng nhau thì giảm dần theo mã nhân viên.