Giáo trình Ngôn ngữ lập trình C++ - Chương 1: Các khái niệm cơ bản của C++

Các yếu tốcơbản

Môi trường làmviệc của C++

Các bước đểtạo và thực hiện một chương trình

Vào/ra trong C++

pdf19 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 2724 | Lượt tải: 2download
Tóm tắt nội dung Giáo trình Ngôn ngữ lập trình C++ - Chương 1: Các khái niệm cơ bản của C++, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
;< 2 * (cd + cr) << '\n'; 
 return ; 
} 
Chương trình này có thể gõ vào máy và chạy. Khi chạy đến câu lệnh nhập, 
chương trình dừng để chờ nhận chiều dài và chiều rộng, NSD nhập các giá trị cụ thể, 
chương trình sẽ tiếp tục thực hiện và in ra kết quả. Thông qua câu lệnh nhập dữ liệu và 
2 biến cd, cr NSD có thể yêu cầu chương trình cho kết quả của một hình chữ nhật bất 
 12
Chương 1. Các khái niệm cơ bản của C++ 
kỳ chứ không chỉ trong trường hợp hình có chiều dài 23 và chiều rộng 11 như trong ví 
dụ cụ thể trên. 
3. Định dạng thông tin cần in ra màn hình 
Một số định dạng đơn giản được chúng tôi trình bày trước ở đây. Các định dạng 
chi tiết và phức tạp hơn sẽ được trình bày trong các phần sau của giáo trình. Để sử 
dụng các định dạng này cần khai báo file nguyên mẫu ở đầu chương trình 
bằng chỉ thị #include . 
− endl: Tương đương với kí tự xuống dòng '\n'. 
− setw(n): Bình thường các giá trị được in ra bởi lệnh cout << sẽ thẳng theo lề 
trái với độ rộng phụ thuộc vào độ rộng của giá trị đó. Phương thức này qui 
định độ rộng dành để in ra các giá trị là n cột màn hình. Nếu n lớn hơn độ dài 
thực của giá trị, giá trị sẽ in ra theo lề phải, để trống phần thừa (dấu cách) ở 
trước. 
− setprecision(n): Chỉ định số chữ số của phần thập phân in ra là n. Số sẽ được 
làm tròn trước khi in ra. 
− setiosflags(ios::showpoint): Phương thức setprecision chỉ có tác dụng trên 
một dòng in. Để cố định các giá trị đã đặt cho mọi dòng in (cho đến khi đặt lại 
giá trị mới) ta sử dụng phương thức setiosflags(ios::showpoint). 
Ví dụ sau minh hoạ cách sử dụng các phương thức trên. 
Ví dụ 3 : 
#include // để sử dụng cout << 
#include // để sử dụng các định dạng 
#include // để sử dụng các hàm clrscr() và getch() 
void main() 
{ 
 clrscr(); // xoá màn hình 
 cout << "CHI TIÊU" << endl << "=======" << endl ; 
 cout << setiosflags(ios::showpoint) << setprecision(2) ; 
 cout << "Sách vở" << setw(20) << 123.456 << endl; 
 cout << "Thức ăn" << setw(20) << 2453.6 << endl; 
 cout << "Quần áo lạnh" << setw(15) << 3200.0 << endl; 
 13
Chương 1. Các khái niệm cơ bản của C++ 
 getch(); // tạm dừng (để xem kết quả) 
 return ; // kết thúc thực hiện hàm main() 
} 
Chương trình này khi chạy sẽ in ra bảng sau: 
CHI TIÊU 
======== 
Sách vở 123.46 
Thức ăn 2453.60 
Quần áo lạnh 3200.00 
Chú ý: toán tử nhập >> chủ yếu làm việc với dữ liệu kiểu số. Để nhập kí tự hoặc 
xâu kí tự, C++ cung cấp các phương thức (hàm) sau: 
− cin.get(c): cho phép nhập một kí tự vào biến kí tự c, 
− cin.getline(s,n): cho phép nhập tối đa n-1 kí tự vào xâu s. 
các hàm trên khi thực hiện sẽ lấy các kí tự còn lại trong bộ nhớ đệm (của lần nhập 
trước) để gán cho c hoặc s. Do toán tử cin >> x sẽ để lại kí tự xuống dòng trong bộ đệm 
nên kí tự này sẽ làm trôi các lệnh sau đó như cin.get(c), cin.getline(s,n) (máy không 
dừng để nhập cho c hoặc s). Vì vậy trước khi sử dụng các phương thức cin.get(c) hoặc 
cin.getline(s,n) nên sử dụng phương thức cin.ignore(1) để lấy ra kí tự xuống dòng còn 
sót lại trong bộ đệm. Ví dụ đoạn lệnh sau cho phép nhập một số nguyên x (bằng toán tử 
>>) và một kí tự c (bằng phương thức cin.get(c)): 
int x; 
char c; 
cin >> x; cin.ignore(1); 
cin.get(c); 
4. Vào/ra trong C 
Trong phần trên chúng tôi đã trình bày 2 toán tử vào/ra và một số phương thức, 
hàm nhập và định dạng trong C++. Phần này chúng tôi trình bày các câu lênh nhập 
xuất theo khuôn dạng cũ trong C. Hiển nhiên các câu lệnh này vẫn dùng được trong 
chương trình viết bằng C++, tuy nhiên chỉ nên sử dụng hoặc các câu lệnh của C++ 
hoặc của C, không nên dùng lẫn lộn cả hai vì dễ gây nhầm lẫn. Do đó mục này chỉ có 
 14
Chương 1. Các khái niệm cơ bản của C++ 
giá trị tham khảo để bạn đọc có thể hiểu được các câu lệnh vào/ra trong các chương 
trình viết theo NNLT C cũ. 
a. In kết quả ra màn hình 
Để in các giá trị bt_1, bt_2, …, bt_n ra màn hình theo một khuôn dạng mong 
muốn ta có thể sử dụng câu lệnh sau đây: 
 printf(dòng định dạng, bt_1, bt_2, ..., bt_n) ; 
trong đó dòng định dạng là một dãy kí tự đặt trong cặp dấu nháy kép (“”) qui định 
khuôn dạng cần in của các giá trị bt_1, bt_2, …, bt_n. Các bt_i có thể là các hằng, biến 
hay các biểu thức tính toán. Câu lệnh trên sẽ in giá trị của các bt_i này theo thứ tự xuất 
hiện của chúng và theo qui định được cho trong dòng định dạng. 
Ví dụ, giả sử x = 4, câu lệnh: 
printf(“%d %0.2f”, 3, x + 1) ; 
sẽ in các số 3 và 5.00 ra màn hình, trong đó 3 được in dưới dạng số nguyên (được 
qui định bởi “%d”) và x + 1 (có giá trị là 5) được in dưới dạng số thực với 2 số lẻ thập 
phân (được qui định bởi “%0.2f”). Cụ thể, các kí tự đi sau kí hiệu % dùng để định dạng 
việc in gồm có: 
 d in số nguyên dưới dạng hệ thập phân 
 o in số nguyên dạng hệ 8 
 x, X in số nguyên dạng hệ 16 
 u in số nguyên dạng không dấu 
 c in kí tự 
 s in xâu kí tự 
 e, E in số thực dạng dấu phẩy động 
 f in số thực dạng dấu phẩy tĩnh 
− Các kí tự trên phải đi sau dấu %. Các kí tự nằm trong dòng định dạng nếu 
không đi sau % thì sẽ được in ra màn hình. Muốn in % phải viết 2 lần (tức 
%%). 
Ví dụ câu lệnh: printf(“Tỉ lệ học sinh giỏi: %0.2f %%”, 32.486) ; 
sẽ in câu “Tỉ lệ học sinh giỏi: “, tiếp theo sẽ in số 32.486 được làm tròn đến 2 số lẻ 
thập phân lấp vào vị trí của “%0.2f”, và cuối cùng sẽ in dấu “%” (do có %% trong dòng 
định dạng). Câu được in ra màn hình sẽ là: 
 Tỉ lệ học sinh giỏi: 32.49% 
Chú ý: Mỗi bt_i cần in phải có một định dạng tương ứng trong dòng định dạng. 
 15
Chương 1. Các khái niệm cơ bản của C++ 
Ví dụ câu lệnh trên cũng có thể viết: 
 printf(“%s %0.2f” , “Tỉ lệ học sinh giỏi: “, 32.486); 
trong câu lệnh này có 2 biểu thức cần in. Biểu thức thứ nhất là xâu kí tự “Tỉ lệ học 
sinh giỏi:” được in với khuôn dạng %s (in xâu kí tự) và biểu thức thứ hai là 32.486 
được in với khuôn dạng %0.2f (in số thực với 2 số lẻ phần thập phân). 
− Nếu giữa kí tự % và kí tự định dạng có số biểu thị độ rộng cần in thì giá trị in 
ra sẽ được gióng cột sang lề phải, để trống các dấu cách phía trước. Nếu độ 
rộng âm (thêm dấu trừ − phía trước) sẽ gióng cột sang lề trái. Nếu không có 
độ rộng hoặc độ rộng bằng 0 (ví dụ %0.2f) thì độ rộng được tự điều chỉnh 
đúng bằng độ rộng của giá trị cần in. 
− Dấu + trước độ rộng để in giá trị số kèm theo dấu (dương hoặc âm) 
− Trước các định dạng số cần thêm kí tự l (ví dụ ld, lf) khi in số nguyên dài long 
hoặc số thực với độ chính xác gấp đôi double. 
Ví dụ 4 : 
main() 
{ 
 int i = 2, j = 3 ; 
 printf(“Chương trình tính tổng 2 số nguyên:\ni + j = %d”, i+j); 
} 
sẽ in ra: 
Chương trình tính tổng 2 số nguyên: 
i + j = 5. 
b. Nhập dữ liệu từ bàn phím 
 scanf(dòng định dạng, biến_1, biến_2, ..., biến_n) ; 
Lệnh này cho phép nhập dữ liệu vào cho các biến biến_1, …, biến_n. Trong đó 
dòng định dạng chứa các định dạng về kiểu biến (nguyên, thực, kí tự …) được viết như 
trong mô tả câu lệnh printf. Các biến được viết dưới dạng địa chỉ của chúng tức có dấu 
& trước mỗi tên biến. Ví dụ câu lệnh: 
 scanf(“%d %f %ld”, &x, &y, &z) ; 
cho phép nhập giá trị cho các biến x, y, z trong đó x là biến nguyên, y là biến thực 
và z là biến nguyên dài (long). Câu lệnh: 
 16
Chương 1. Các khái niệm cơ bản của C++ 
 scanf(“%2d %f %lf %3s”, &i, &x, &d, s); 
cho phép nhập giá trị cho các biến i, x, d, s, trong đó i là biến nguyên có 2 chữ số, 
f là biến thực (độ dài tùy ý), d là biến nguyên dài và s là xâu kí tự có 3 kí tự. Giả sử 
NSD nhập vào dãy dữ liệu: 12345 67abcd ↵ thì các biến trên sẽ được gán các giá trị 
như sau: i = 12, x = 345, d = 67 và s = “abc”. Kí tự d và dấu enter (↵) sẽ được lưu lại 
trong bộ nhớ và tự động gán cho các biến của lần nhập sau. 
Cuối cùng, chương trình trong ví dụ 3 được viết lại với printf() và scanf() như sau: 
Ví dụ 5 : 
#include // để sử dụng các hàm printf() và scanf() 
#include // để sử dụng các hàm clrscr() và getch() 
void main() 
{ 
 clrscr(); // xoá màn hình 
 printf("CHI TIÊU\n=======\n") ; 
 printf("Sách vở %20.2f\n" , 123.456) ; 
 printf("Thức ăn %20.2f\n" , 2453.6) ; 
 printf(“Quần áo lạnh %15.2f\n" , 3200.0) ; 
 getch(); // tạm dừng (để xem kết quả) 
 return ; // kết thúc thực hiện hàm main() 
} 
BÀI TẬP 
1. Những tên gọi nào sau đây là hợp lệ: 
− x − 123variabe − tin_hoc − toan tin − so-dem 
− RADIUS − one.0 − number# − Radius − nam2000 
2. Bạn hãy thử viết một chương trình ngắn nhất có thể được. 
3. Tìm các lỗi cú pháp trong chương trình sau: 
 17
Chương 1. Các khái niệm cơ bản của C++ 
#include (iostream.h) 
void main(); / Giải phương trình bậc 1 
{ 
cout << 'Day la chương trình: Gptb1.\nXin chao cac ban'; 
getch(); 
} 
4. Viết chương trình in nội dung một bài thơ nào đó. 
5. Viết chương trình in ra 4 dòng, 2 cột gồm các số sau và gióng cột: 
− thẳng theo lề trái 0.63 64.1 
− thẳng theo lề phải 12.78 -11.678 
− thẳng theo dấu chấm thập phân -124. 6 59.002 
 65.7 -1200.654 
6. Hãy viết và chạy các chương trình trong các ví dụ 3, 5. 
7. Chương trình sau khai báo 5 biến kí tự a, b, c, d, e và một biến số nam. Hãy điền 
thêm các câu lệnh vào các dòng … để chương trình thực hiện nhiệm vụ sau: 
− Nhập giá trị cho biến nam 
− Nhập giá trị cho các biến kí tự a, b, c, d, e. 
− In ra màn hình dòng chữ được ghép bởi 5 kí tự đã nhập và chữ "năm" sau đó 
in số đã nhập (nam). Ví dụ nếu 5 chữ cái đã nhập là 'H', 'A', 'N', 'O', 'I' và nam 
được nhap là 2000, thì màn hình in ra dòng chữ: HANOI năm 2000. 
− Nhập chương trình đã sửa vào máy và chạy để kiểm tra kết quả. 
 #include 
 #include 
 main() 
 { 
 int nam; 
 char a, b, c, d, e; 
 clrscr(); 
 cin >> nam ; 
 … ; 
 cin.get(a); cin.get(b); cin.get(c); … ; … ; 
 18
Chương 1. Các khái niệm cơ bản của C++ 
 // in kết quả 
 cout << a << … << … << … << … << " nam " << … ; 
 getch(); 
 } 
 19

File đính kèm:

  • pdfGiáo trình Ngôn ngữ lập trình C++ - Chương 1 Các khái niệm cơ bản của C++.pdf