Ngôn ngữ lập trình C++ - Chương 2: Các kiểu dữ liệu cơ bản, các cấu trúc điều khiển

Đềmục

2.1 Các kiểu dữliệu cơbản

2.2 Các phép gán tắt, phép tăng, phép giảm

2.3 Các phép toán logic

2.4 Thuật toán, mã giả, điều khiển của chương trình, sơ đồkhối

2.5 Sơlược vềcác cấu trúc điều khiển

2.6 Cấu trúc lựa chọn if, if/else

2.7 Phép toán lựa chọn 3 ngôi

2.8 Cấu trúc lặp while

2.9 Thiết lập thuật toán

2.10 Điều khiển lặp bằng con đếm và giá trịcanh

pdf38 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 1671 | Lượt tải: 3download
Tóm tắt nội dung Ngôn ngữ lập trình C++ - Chương 2: Các kiểu dữ liệu cơ bản, các cấu trúc điều khiển, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
icate successful termination
43 
44 } // end function main
pow(x,y) = x mũ y
Đặt độ rộng của output ít nhất 21 ký 
tự. Nếu output ít hơn 21 ký tự thì căn 
phải.
©2004 Trần Minh Châu.
FOTECH. VNU.
60
fig02_21.cpp
output (1 of 1)
Year Amount on deposit
1 1050.00
2 1102.50
3 1157.63
4 1215.51
5 1276.28
6 1340.10
7 1407.10
8 1477.46
9 1551.33
10 1628.89
Các số được căn phải do các lệnh 
setw (với tham số có giá trị 4 và 21).
© 2004 Trần Minh Châu. FOTECH. VNU
61
Chương 2.
Cấu trúc đa lựa chọn switch
• switch
– Test biến với nhiều giá trị
– chuỗi các nhãn case
– trường hợp default không bắt buộc
switch ( variable ) {
case value1: // taken if variable == value1
statements
break; // necessary to exit switch
case value2:
case value3: // taken if variable == value2 or == value3
statements
break;
default: // taken if variable matches no other cases
statements
break;
}
© 2004 Trần Minh Châu. FOTECH. VNU
62
Chương 2.
Cấu trúc đa lựa chọn switch
true
false
.
.
.
case a case a action(s) break
case b case b action(s) break
false
false
case z case z action(s) break
true
true
default action(s)
© 2004 Trần Minh Châu. FOTECH. VNU
63
Chương 2.
Cấu trúc đa lựa chọn switch
• Ví dụ sắp tới
– Chương trình đọc xếp loại điểm (A-F)
– Hiện số lượng mỗi xếp loại được nhập
• Chi tiết về các ký tự
– Các ký tự đơn thường được lưu bằng kiểu dữ liệu char
• char: số nguyên 1-byte, Æcó thể được lưu dưới dạng các giá trị
int
– Có thể coi ký tự là int hoặc char
• 97 là biểu diễn dạng số của chữ ‘a’ thường (ASCII)
• dùng cặp nháy đơn để lấy biểu diễn chữ của ký tự
cout << "The character (" << 'a' << ") has the value " 
 ( 'a' ) << endl;
In ra dòng:
The character (a) has the value 97
©2004 Trần Minh Châu.
FOTECH. VNU.
64
fig02_22.cpp
(1 of 4)
1 // Fig. 2.22: fig02_22.cpp
2 // Counting letter grades.
3 #include 
4 
5 using std::cout;
6 using std::cin;
7 using std::endl;
8 
9 // function main begins program execution
10 int main()
11 {
12 int grade; // one grade
13 int aCount = 0; // number of As
14 int bCount = 0; // number of Bs
15 int cCount = 0; // number of Cs
16 int dCount = 0; // number of Ds
17 int fCount = 0; // number of Fs
18 
19 cout << "Enter the letter grades." << endl
20 << "Enter the EOF character to end input." << endl;
21 
©2004 Trần Minh Châu.
FOTECH. VNU.
65
fig02_22.cpp
(2 of 4)
22 // loop until user types end-of-file key sequence
23 while ( ( grade = cin.get() ) != EOF ) {
24 
25 // determine which grade was input
26 switch ( grade ) { // switch structure nested in while
27 
28 case 'A': // grade was uppercase A
29 case 'a': // or lowercase a
30 ++aCount; // increment aCount
31 break; // necessary to exit switch
32 
33 case 'B': // grade was uppercase B
34 case 'b': // or lowercase b
35 ++bCount; // increment bCount 
36 break; // exit switch
37 
38 case 'C': // grade was uppercase C
39 case 'c': // or lowercase c
40 ++cCount; // increment cCount 
41 break; // exit switch
42 
cin.get() sử dụng dot notation 
(ký hiệu kiểu dấu chấm). Hàm này 
đọc một ký tự từ bàn phím (sau khi 
nhấn Enter), và gán giá trị đó cho 
biến grade. 
cin.get() trả về EOF (end-of-
file), sau khi ký tự EOF được nhập, 
để đánh dấu kết thúc của dữ liệu vào. 
EOF có thể là ctrl-d hoặc ctrl-z, tùy 
theo hệ điều hành. (MS-Windows: 
ctrl-z, Unix/Linux: ctrl-d)
So sánh grade (một biến int) 
với biểu diễn số của A và a.
break kết thúc lệnh switch và chương trình 
chạy tiếp tại lệnh đầu tiên sau cấu trúc switch.
Các lệnh gán là biểu thức có
giá trị bằng biến bên trái dấu 
gán =. Giá trị của lệnh này 
bằng giá trị trả về bởi hàm
cin.get(). 
Đặc điểm này còn được sử
dụng để khởi tạo nhiều biến 
một lúc:
a = b = c = 0;
©2004 Trần Minh Châu.
FOTECH. VNU.
66
fig02_22.cpp
(3 of 4)
43 case 'D': // grade was uppercase D
44 case 'd': // or lowercase d
45 ++dCount; // increment dCount 
46 break; // exit switch
47 
48 case 'F': // grade was uppercase F
49 case 'f': // or lowercase f
50 ++fCount; // increment fCount 
51 break; // exit switch
52 
53 case '\n': // ignore newlines,
54 case '\t': // tabs, 
55 case ' ': // and spaces in input
56 break; // exit switch
57 
58 default: // catch all other characters
59 cout << "Incorrect letter grade entered."
60 << " Enter a new grade." << endl;
61 break; // optional; will exit switch anyway
62 
63 } // end switch
64 
65 } // end while
66 
Lưu ý trường hợp default bao gồm tất 
cả các trường hợp còn lại (chưa xét đến).
Kiểm tra này là cần thiết vì Enter được nhấn sau 
mỗi chữ cái xếp loại được nhập. Việc nhấn Enter
tạo một ký tự xuống dòng cần được loại bỏ. Cũng 
như vậy, ta muốn bỏ qua các ký tự trắng.
©2004 Trần Minh Châu.
FOTECH. VNU.
67
fig02_22.cpp
(4 of 4)
67 // output summary of results
68 cout << "\n\nTotals for each letter grade are:"
69 << "\nA: " << aCount // display number of A grades
70 << "\nB: " << bCount // display number of B grades
71 << "\nC: " << cCount // display number of C grades 
72 << "\nD: " << dCount // display number of D grades
73 << "\nF: " << fCount // display number of F grades
74 << endl;
75 
76 return 0; // indicate successful termination
77 
78 } // end function main
©2004 Trần Minh Châu.
FOTECH. VNU.
68
fig02_22.cpp
output (1 of 1)
Enter the letter grades.
Enter the EOF character to end input.
a
B
c
C
A
d
f
C
E
Incorrect letter grade entered. Enter a new grade.
D
A
b
^Z
Totals for each letter grade are:
A: 3
B: 2
C: 3
D: 2
F: 1
© 2004 Trần Minh Châu. FOTECH. VNU
69
Chương 2.
Cấu trúc lặp do/while
• Tương tự cấu trúc while
– Kiểm tra điều kiện tiếp tục lặp ở
cuối, không kiểm tra ở đầu
– Thân vòng lặp chạy ít nhất một 
lần
• Công thức
do {
statements
} while ( condition );
true
false
action(s)
condition
©2004 Trần Minh Châu.
FOTECH. VNU.
70
fig02_24.cpp
(1 of 1)
fig02_24.cpp
output (1 of 1)
1 // Fig. 2.24: fig02_24.cpp
2 // Using the do/while repetition structure.
3 #include 
4 
5 using std::cout;
6 using std::endl;
7 
8 // function main begins program execution
9 int main()
10 {
11 int counter = 1; // initialize counter
12 
13 do { 
14 cout << counter << " "; // display counter
15 } while ( counter++ <= 10 ); // end do/while 
16 
17 cout << endl;
18 
19 return 0; // indicate successful termination
20 
21 } // end function main
1 2 3 4 5 6 7 8 9 10
Chú ý phép tăng trước (preincrement)
trong phần kiểm tra điều kiện lặp.
© 2004 Trần Minh Châu. FOTECH. VNU
71
Chương 2.
Các lệnh break và continue
• break
– Thoát ngay ra khỏi các cấu trúc while, for, do/while, 
switch
– Chương trình tiếp tục chạy tại lệnh đầu tiên ngay sau cấu 
trúc
• thường được sử dụng để
– Thoát khỏi vòng lặp sớm hơn bình thường
– bỏ qua phần còn lại của switch
©2004 Trần Minh Châu.
FOTECH. VNU.
72
fig02_26.cpp
(1 of 2)
1 // Fig. 2.26: fig02_26.cpp
2 // Using the break statement in a for structure.
3 #include 
4 
5 using std::cout;
6 using std::endl;
7 
8 // function main begins program execution
9 int main()
10 {
11 
12 int x; // x declared here so it can be used after the loop
13 
14 // loop 10 times
15 for ( x = 1; x <= 10; x++ ) {
16 
17 // if x is 5, terminate loop
18 if ( x == 5 )
19 break; // break loop only if x is 5
20 
21 cout << x << " "; // display value of x
22 
23 } // end for 
24 
25 cout << "\nBroke out of loop when x became " << x << endl;
26 
27 return 0; // indicate successful termination
28 
29 } // end function main
Thoát khỏi vòng for khi
break được thực thi.
1 2 3 4
Broke out of loop when x became 5
© 2004 Trần Minh Châu. FOTECH. VNU
73
Chương 2.
Các lệnh break và continue
• continue
– được dùng trong while, for, do/while
– bỏ qua phần còn lại của thân vòng lặp
– chạy tiếp lần lặp tiếp theo
• với các vòng while và do/while
– thực hiện kiểm tra điều kiện lặp ngay sau lệnh continue
• với vòng for
– biểu thức tăng/giảm biến đếm được thực hiện
– sau đó, điều kiện lặp được kiểm tra
©2004 Trần Minh Châu.
FOTECH. VNU.
74
fig02_27.cpp
(1 of 2)
1 // Fig. 2.27: fig02_27.cpp
2 // Using the continue statement in a for structure.
3 #include 
4 
5 using std::cout;
6 using std::endl;
7 
8 // function main begins program execution
9 int main()
10 {
11 // loop 10 times
12 for ( int x = 1; x <= 10; x++ ) {
13 
14 // if x is 5, continue with next iteration of loop
15 if ( x == 5 )
16 continue; // skip remaining code in loop body
17 
18 cout << x << " "; // display value of x
19 
20 } // end for structure
21 
22 cout << "\nUsed continue to skip printing the value 5"
23 << endl;
24 
25 return 0; // indicate successful termination
26 
27 } // end function main
Bỏ qua phần còn lại của thân vòng
for, nhảy đến lần lặp tiếp theo.
1 2 3 4 6 7 8 9 10
Used continue to skip printing the value 5
© 2004 Trần Minh Châu. FOTECH. VNU
75
Chương 2.
Lập trình cấu trúc
Structured-Programming
• Lập trình cấu trúc – Structured programming
– Chương trình dễ hiểu, test, tìm lỗi (debug) và dễ sửa đổi hơn
• Các quy tắc lập trình cấu trúc
– Chỉ sử dụng các cấu trúc điều khiển một đầu vào một đầu ra
– Quy tắc
1) Bắt đầu bằng một sơ đồ khối đơn giản nhất
2) Mỗi hình chữ nhật (hành động) có thể được thay bằng một 
chuỗi gồm 2 hình chữ nhật khác
3) Mỗi hình chữ nhật (hành động) có thể được thay bằng một cấu 
trúc điều khiển tùy ý (tuần tự, if, if/else, switch, while, 
do/while hoặc for)
4) Các quy tắc 2 và 3 có thể được áp dụng nhiều lần và theo thứ 
tự tùy ý
© 2004 Trần Minh Châu. FOTECH. VNU
76
Chương 2.
Lập trình cấu trúc
Structured-Programming
Qui tắc 3
Qui tắc 3Qui tắc 3
Mô tả quy tắc 3 (thay một hình chữ nhật tùy ý bằng một cấu trúc điều khiển)

File đính kèm:

  • pdfNgôn ngữ lập trình C++ - Chương 2 Các kiểu dữ liệu cơ bản, các cấu trúc điều khiển.pdf