Khi truyền trị, hàm sẽ tạo ra một biến cục bộ. để lưu giá trị của biến được truyền.[r]
Trang 1CHƯƠNG 2: NHỮNG VẤN ĐỀ
CƠ BẢN TRONG C++
Trang 3• Câu lệnh: kết thúc bởi dấu “;”
• #include: yêu cầu chương trình dịch chèn thêm file vào mã nguồn
• using namespace
• cout nằm trong namespace std;
• Câu chú thích: Câu chú thích bắt đầu bằng dấu // hoặc nằm trong /* */
Trang 42 Biến
Phải khai báo biến trước khi sử dụng
Có thể khai báo biến ở mọi nơi trong chương trình
Trang 5Kiểu dữ liệu đơn giản
Kiểu nguyên: int , long , short
Kiểu ký tự: char – lưu mã ASCII của ký tự
Ký tự nằm trong dấu ‘’ Ví dụ: ‘a’
Ký tự đặc biệt: \n, \tab, \\, \’, \”, …
Kiểu không dấu: unsigned char , unsigned int ,
unsigned short, unsigned long
Kiểu dấu phẩy động: float , double , long
double
Kiểu bool : có giá trị True/False
Trang 6Kiểu dữ liệu đơn giản …
Trang 7 float y = i/j; // gán 17/2 = 8 cho y, không phải là 8.5
Thực hiện phép toán trên 2 toán hạng có kiểu khác nhau thì toán hạng có kiểu thấp hơn sẽ tự động bị ép về kiểu cao hơn
Ví dụ:
float z = static_cast<float>(i)/j; // ép i thành kiểu float trước khi chia
Trang 8Biến hằng (Constant Variables)
const float PI=3.14;
#define PI 3.14
Định nghĩa ở đầu chương trình
Không xác định kiểu của PI
Trang 9 cout << str << endl; // endl (hoặc \n) là dấu hiệu xuống dòng.
cout << ”i=” << i << endl;
Để định dạng nội dung hiển thị, sử dụng setw (nằm trong
iomanip )
cout<< setw(12) << str << setw(5) << i;
Kết quả: Hello world 8
Trang 10Sử dụng cin
cin là toán tử được định nghĩa trước trong C+ +, tương ứng với luồng vào chuẩn ( standard input stream ).
Toán tử >> đưa nội dung từ luồng vào chuẩn vào biến.
Ví dụ:
int temperature;
cout << ”Enter temperature in Celsius: ”;
cin >> temperature;
Trang 11Header File và Library File
Một số nhiệm vụ được thực hiện bởi Library Function.
Header File chứa khai báo các hàm mà ta cần sử
dụng trong chương trình.
Ví dụ:
#include <math.h>
#include ”myprog.h”
<>: yêu cầu chương trình dịch tìm từ thư mục chuẩn.
” ” : yêu cầu chương trình dịch tìm từ thư mục hiện tại.
Nếu không include Header File thích hợp thì chương trình dịch sẽ báo lỗi.
Trang 12executable file
Trang 133 Toán tử
Trang 14 cout << 10 * i++; // hiển thị 30, sau đó i=4
cout << 10 * ++j; // hiển thị 80, sau đó j=8
Ví dụ:
float x=6.0;
x+=3.5; tương tự x=x+3.5;
Trang 16Toán tử logic
logical and : &&
(x >= 5) && ( x <= 15) // true nếu x nằm trong [5,15]
Toán tử điều kiện (conditional operator) : ? … :
<condition> ? <true expression> : < false expression>
Trang 174 Các câu lệnh
Trang 18Vòng lặp for
increment expression test expression
initialization expression
for ( i=0; i<15; i++ )
initialization expression
body of loop
increment expression
Trang 20Vòng lặp while
•Vòng lặp while được sử dụng khi không biết trước số lần lặp.
•Lặp cho đến khi biểu thức kiểm tra vẫn có giá trị True.
•Ví dụ:
char c=’n’;
while ( c != ’y’){
cout << ”Do you want to continue: (y/n)” << endl;cin >> c;
}
Trang 22cout << ”Do you want to continue: (y/n)” << endl;
cin >> c;
}while ( c != ’y’);
Trang 25true
false
body of else
Trang 29Một số lệnh điều khiển khác
Trang 305 Structure
Structure là một tập hợp các biến đơn giản, tương tự như record trong Pascal.
Khai báo Structure:
Trang 31int feet; Distance length;
float inches; Distance width;
Trang 32enum days_of_week {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
days_of_week day1, day2;
Giá trị của các biến kiểu enum là những giá trị mà enum đã định nghĩa trước.
Các giá trị của enum được lưu dưới dạng số nguyên, bắt đầu từ 0.
Ta có thể thay đổi giá trị nguyên của giá trị đầu trong enum
enum days_of_week {Sun=1, Mon, Tue, Wed, Thu, Fri, Sat};
days_of_enum day=Mon;
cout << day; // Hiển thị 2
Trang 336 Hàm
Khai báo hàm xác định tên hàm, kiểu trả về, và các tham số cần thiết trong lời gọi hàm.
Khai báo hàm thường nằm trong Header File (.h)
Định nghĩa hàm chứa thân hàm.
Định nghĩa hàm thường nằm trong source file (.cpp)
Ví dụ
int fac(int n); // function declaration
int fac(int n) // function definition
Trang 34Truyền trị (Passing by Value)
Khi truyền trị, hàm sẽ tạo ra một biến cục bộ
để lưu giá trị của biến được truyền
Giá trị của biến được truyền không thay đổi.
Trang 35Truyền tham chiếu (Passing by Reference)
Tham chiếu cung cấp bí danh (alias) cho biến.
Khi truyền tham số theo kiểu tham chiếu thì biến cục bộ là bí danh của biến được truyền.
Địa chỉ của biến được truyền cho hàm.
Hàm có thể truy cập trực tiếp trên biến được truyền.
int x=3; int y=5;
swap(x,y); // a,b là bí danh của x,y
Trang 36Tham số hằng
thay đổi giá trị của biến được truyền.
Trang 37Chồng hàm (Overloaded Function)
thuộc vào các tham số truyền.
Trang 40Phạm vi của biến
Một khối lệnh (block) nằm trong dấu { … }
Phạm vi của biến là khối lệnh mà biến được khai báo
Biến được khai báo ở ngoài hàm là biến toàn cục (global variable).
Khai báo biến ở block trong sẽ ẩn khai báo biến trùng tên ở block ngoài.
Trang 41int j=5; // local variable
int i=7; // local i ẩn biến i ở ngoài cout << i; // hiển thị 7
} // kết thúc phạm vi của j và i ở trong cout << i; // hiển thị 3
} // kết thúc phạm vi của i ở ngoài