Tải bản đầy đủ (.pdf) (76 trang)

Lap trinh c++ data types control structures Các kiểu dữ liệu cơ bản Các cấu trúc điều khiển

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (682.01 KB, 76 trang )

.c
om
ng

th

an

co

Ngơn ngữ lập trình C++

cu

u

du
o

ng

Chương 2 – Các kiểu dữ liệu cơ bản
Các cấu trúc điều khiển

CuuDuongThanCong.com

/>

Tài liệu đọc thêm

.c


om

• Tài liệu đọc thêm cho chương này:

cu

u

du
o

ng

th

an

co

ng

– Section 2.1. Complete C++ Language Tutorial (CCLT)
– Day 7. Teach Yourself C++ in 21 Days (TY21)
– Namespace (Sec.5-2.CCLT) (Không bắt buộc)

CuuDuongThanCong.com

/>

Chương 2 – Kiểu dữ liệu và phép toán cơ bản

Cấu trúc điều khiển và cấu trúc chương trình

.c
om

Đề mục
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 tốn

2.10

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

cu

u

du
o

ng

th

an

co

ng


2.1

CuuDuongThanCong.com

/>

Chương 2 – Kiểu dữ liệu và phép toán cơ bản
Cấu trúc điều khiển và cấu trúc chương trình

.c
om

Đề mục (tiếp theo)

Các cấu trúc lồng nhau

2.12

Vòng lặp for

2.13

Cấu trúc đa lựa chọn switch

2.14

Vòng lặp do/while

2.15


break và continue

2.16

Sơ lược về lập trình cấu trúc

cu

u

du
o

ng

th

an

co

ng

2.11

CuuDuongThanCong.com

/>


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

cu

u

du
o

ng

th

an

co

ng

.c
om

char
ký tự hoặc số nguyên 8 bit
short
số nguyên 16 bit
long
số nguyên 32 bit
int
số nguyên độ dài bằng 1 word (16 bit

hoặc 32 bit)
float
số chấm động 4 byte
double
số chấm động 8 byte
long double số chấm động 10 byte
bool
giá trị Boolean, true hoặc false
wchar_t
ký tự 2 byte, lưu bảng chữ cái quốc tế
CuuDuongThanCong.com

/>

2.2 Các phép tốn cơ bản

x = 5;

.c
om

• phép gán – assignation (=)

//x: lvalue, 5: rvalue

ng

– là biểu thức có giá trị là giá trị được gán

cu


u

du
o

ng

th

an

co

• các phép tốn số học - Arithmetic operators
(+, -, *, /, %)
• các phép gán kép - Compound assignation
operators
(+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)
• phép tăng và phép giảm (++, --)

CuuDuongThanCong.com

/>

2.2 Các phép tốn cơ bản

an

co


ng

.c
om

• các phép quan hệ - relational operators
( ==, !=, >, <, >=, <= )
• các phép toán logic - Logic operators ( !, &&, || )
• phép điều kiện - Conditional operator ( ? ).

th

(7 == 5 ? 4 : 3) cho kết quả 3 do 7 khác 5.

cu

u

du
o

ng

• các tốn tử bit - Bitwise Operators
( &, |, ^, ~, <<, >> ).

CuuDuongThanCong.com

/>


2.2 Các phép gán tắt

.c
om

• Các biểu thức gán tắt - Assignment expression
abbreviations

ng

– Phép gán cộng

co

c = c + 3; viết tắt thành c += 3;

an

• Các lệnh có dạng

th

variable = variable operator expression;

ng

có thể được viết lại thành

du

o

variable operator= expression;

• Các phép gán khác
4
5
3
9

u

-=
*=
/=
%=

cu

d
e
f
g

CuuDuongThanCong.com

(d
(e
(f
(g


=
=
=
=

d
e
f
g

*
/
%

4)
5)
3)
9)

/>

• Phép tăng - Increment operator (++)
– có thể được dùng thay cho c += 1

co

– có thể được dùng thay cho c -= 1

ng


• Phép giảm - Decrement operator (--)

.c
om

2.2 Các phép tăng và giảm

an

• Tăng/giảm trước – Preincrement/Predecrement

th

• ++c hoặc --c

du
o

ng

• Giá trị của biến bị thay đổi, sau đó biểu thức chứa nó được tính giá trị.
• Biểu thức có giá trị là giá trị của biến sau khi tăng/giảm

• Tăng/giảm sau - Postincrement/Predecrement

cu

u


• c++ hoặc c--

• Biểu thức chứa biến được thực hiện, sau đó biến được thay đổi.
• Biểu thức có giá trị là giá trị của biến trước khi tăng/giảm

CuuDuongThanCong.com

/>

2.2 Các phép tăng và giảm

.c
om

• Ví dụ: nếu c = 5
– cout << ++c;
• c nhận giá trị 6, rồi được in ra

ng

– cout << c++;

th

an

co

• in giá trị 5 (cout được chạy trước phép tăng).
• sau đó, c nhận giá trị 6


ng

• Khi biến khơng nằm trong biểu thức

du
o

– Tăng trước và tăng sau có kết quả như nhau

cu



u

++c;
cout << c;

c++;
cout << c;

là như nhau
CuuDuongThanCong.com

/>

// Fig. 2.14: fig02_14.cpp
// Preincrementing and postincrementing.
#include <iostream>

using std::cout;
using std::endl;

an

th

assign 5 to c
print 5
print 5 then postincrement
print 6

5
5
6
5
6
6

du
o

ng

// demonstrate postincrement
c = 5;
//
cout << c << endl;
//
cout << c++ << endl;

//
cout << c << endl << endl; //

co

ng

// function main begins program execution
int main()
{
int c;
// declare variable

.c
om

fig02_14.cpp
(1 of 2)

u

// demonstrate preincrement
c = 5;
//
cout << c << endl;
//
cout << ++c << endl;
//
cout << c << endl;
//


cu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27


return 0;

assign 5 to c
print 5
preincrement then print 6
print 6

// indicate successful termination

} // end function main
CuuDuongThanCong.com

/>

2.3 Các phép tốn logic

ng

.c
om

• được dùng làm điều kiện trong các vịng lặp và
lệnh if
• && (logical AND)

co

– true nếu cả hai điều kiện là true


du
o

• || (logical OR)

ng

th

an

if ( gender == 1 && age >= 65 )
++seniorFemales;

– true nếu ít nhất một trong hai điều kiện là true

cu

u

if ( semesterAverage >= 90 || finalExam >= 90 )
cout << "Student grade is A" << endl;

CuuDuongThanCong.com

/>

2.3 Các phép tốn logic

.c

om

• ! (logical NOT, phủ định logic – logical negation)
– trả về giá trị true khi điều kiện là false, và ngược lại

co

ng

if ( !( grade == sentinelValue ) )
cout << "The next grade is " << grade << endl;

an

tương đương với:

cu

u

du
o

ng

th

if ( grade != sentinelValue )
cout << "The next grade is " << grade << endl;


CuuDuongThanCong.com

/>

Nhầm lẫn giữa
phép so sánh bằng (==) và phép gán (=)

.c
om

• Lỗi thường gặp

• Các khía cạnh của vấn đề

ng

– Thường không tạo lỗi cú pháp (syntax error)

co

– biểu thức có giá trị có thể được dùng làm điều kiện

an

• bằng không = false, khác không = true

cu

u


du
o

ng

th

– Các lệnh gán cũng tạo giá trị (giá trị được gán)

CuuDuongThanCong.com

/>

Nhầm lẫn giữa
phép so sánh bằng (==) và phép gán (=)

.c
om

• Ví dụ

ng

if ( 4 == payCode )
cout << "You get a bonus!" << endl;

th

• Nếu == bị thay bởi =


an

co

– Nếu mã tiền lương (paycode) là 4 thì thưởng

du
o

ng

if ( payCode = 4 )
cout << "You get a bonus!" << endl;

cu

u

– Paycode được gán giá trị 4 (không cần biết giá trị của
paycode trước đó)
– lệnh gán cho giá trị true (vì 4 khác 0)
– trường hợp nào cũng được thưởng

CuuDuongThanCong.com

/>

Nhầm lẫn giữa
phép so sánh bằng (==) và phép gán (=)


.c
om

• Lvalue

ng

– là biểu thức có thể xuất hiện tại vế trái của phép gán
– xác định một vùng nhớ có thể được gán trị (i.e, các biến)

co

• x = 4;

an

• Rvalue

du
o

ng

th

– chỉ xuất hiện bên phải phép gán
– hằng, các giá trị (literal)
• khơng thể viết 4 = x;

cu


u

• Lvalue có thể được dùng như các rvalue, nhưng
chiều ngược lại là không thể

CuuDuongThanCong.com

/>

• Trước khi viết chương trình

ng

– Hiểu kỹ bài tốn
– Lập kế hoạch giải quyết bài tốn

.c
om

Viết chương trình

co

• Trong khi viết chương trình

cu

u


du
o

ng

th

an

– Biết lời giải có sẵn cho các bài toán con
– Sử dụng các nguyên lý lập trình tốt

CuuDuongThanCong.com

/>

Thuật tốn - Algorithm

.c
om

• Các bài tốn tin học

ng

– được giải bằng cách thực hiện một chuỗi hành động theo
một thứ tự cụ thể

co


• Thuật tốn: một quy trình quyết định

du
o

ng

th

an

– Các hành động cần thực hiện
– Thứ tự thực hiện
– Ví dụ: cách nấu một món ăn

• Điều khiển của chương trình – Program Control

cu

u

– Chỉ ra thứ tự thực hiện các lệnh

CuuDuongThanCong.com

/>

Mã giả - Pseudocode

ng


– tương tự với ngôn ngữ hàng ngày

.c
om

• Mã giả: ngơn ngữ khơng chính thức được dùng để
mơ tả thuật tốn

co

• Khơng chạy được trên máy tính

th

an

– dùng để mơ tả chương trình trước khi viết chương trình

ng

• dễ chuyển thành chương trình C++

du
o

– chỉ gồm các lệnh chạy

Ví dụ:
tìm số nhỏ hơn trong hai số


cu

u

• khơng cần khai báo biến

CuuDuongThanCong.com

1.

nhập 2 số x,y

2.

nếu x>y thì in y ra màn hình

3.

nếu khơng, in x ra màn hình

/>

Các cấu trúc điều khiển - Control Structures
Khái niệm

.c
om

• Thực thi tuần tự - Sequential execution

– Các lệnh được thực hiện theo thứ tự tuần tự

ng

• Chuyển điều khiển - Transfer of control

ng

th

• 3 cấu trúc điều khiển

an

co

– Lệnh tiếp theo được thực thi không phải lệnh tiếp theo trong
chuỗi lệnh.

du
o

– Cấu trúc tuần tự - Sequence structure
• theo mặc định, chương trình chạy tuần tự từng lệnh

cu

u

– Các cấu trúc chọn lựa - Selection structures

• if, if/else, switch

– Các cấu trúc lặp - Repetition structures
• while, do/while, for
CuuDuongThanCong.com

/>

Các cấu trúc điều khiển

.c
om

• Các từ khóa của C++

– Không thể dùng làm tên biến hoặc tên hàm

ng

C + + K e y w o rd s

co

K e y w o r d s c o m m o n to th e
C a n d C + + p r o g r a m m in g
la n g u a g e s

char

const


continue

default

do

double

else

enum

extern

float

for

goto

if

int

long

register

return


short

signed

sizeof

static

struct

union

unsigned

void

bool

catch

class

const_cast

dynamic_cast

explicit

false


friend

mutable

namespace

new

operator

private

protected

public

reinterpret_cast

static_cast

template

this

throw

true

try


typeid

typename

using

virtual

typedef

volatile

while

u

C + + o n ly k e y w o r d s

inline

cu

asm
delete

du
o

switch


an

case

th

break

ng

auto

wchar_t

CuuDuongThanCong.com

/>

Các cấu trúc điều khiển
true

print “Passed”

.c
om

grade >= 60

ng


false

co

• Sơ đồ khối - Flowchart

ng

th

an

– mơ tả thuật tốn bằng hình vẽ
– gồm các ký hiệu đặc biệt được nối bằng các mũi tên
(flowlines)
– Hình chữ nhật (ký hiệu hành động)

du
o

• kiểu hành động bất kỳ

– ký hiệu oval

cu

u

• Bắt đầu hoặc kết thúc một chương trình,

hoặc một đoạn mã (hình trịn)

• Các cấu trúc điều khiển có đúng 1 đầu vào, 1 đầu ra
– Kết nối đầu ra của một cấu trúc điều khiển với đầu vào của
cấu trúc tiếp theo
– xếp chồng các cấu trúc điều khiển
CuuDuongThanCong.com

/>

Cấu trúc lựa chọn if

.c
om

• Cấu trúc lựa chọn - Selection structure

ng

– chọn giữa các tuyến hành động khác nhau
– ví dụ bằng mã giả:

an

co

If student’s grade is greater than or equal to 60
Print “Passed”

th


– Nếu điều kiện thỏa mãn (có giá trị true)

ng

• lệnh Print được thực hiện, chương trình chạy tiếp lệnh tiếp theo

du
o

– Nếu điều kiện khơng thỏa mãn (có giá trị false)
• lệnh Print bị bỏ qua, chương trình chạy tiếp

cu

u

– Cách viết thụt đầu dịng làm chương trình dễ đọc hơn
• C++ bỏ qua các ký tự trắng (tab, space, etc.)

CuuDuongThanCong.com

/>

Cấu trúc lựa chọn if

.c
om

• Dịch sang C++


co

grade >= 60

true

print “Passed”

false

an

if ( grade >= 60 )
cout << "Passed";

ng

If student’s grade is greater than or equal to 60
Print “Passed”

th

• ký hiệu hình thoi (ký hiệu quyết định)

du
o

ng


– đánh đấu chọn lựa cần thực hiện
– chứa một biểu thức có giá trị true hoặc false

cu

• cấu trúc if

u

• kiểm tra điều kiện, đi theo đường thích hợp

– Single-entry/single-exit

Một biểu thức bất kỳ đều
có thể được sử dụng làm
điều kiện cho lựa chọn.
bằng 0 - false
khác 0 - true
Ví dụ:

3 - 4 có giá trị true
CuuDuongThanCong.com

/>

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

.c
om


• if

– Thực hiện hành động nếu điều kiện thỏa mãn

ng

• if/else

an

co

– thực hiện những hành động khác nhau tùy theo điều kiện được
thỏa mãn hay khơng

th

• mã giả

cu

• mã C++

u

du
o

ng


if student’s grade is greater than or equal to 60
print “Passed”
else
print “Failed”

if ( grade >= 60 )
cout << "Passed";
else
cout << "Failed";
CuuDuongThanCong.com

/>

×