Tải bản đầy đủ (.ppt) (26 trang)

Bài giảng Phương pháp lập trình - Chương 3: Các cấu trúc điều khiển (2016)

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 (898.18 KB, 26 trang )

Chương 3

1


Nội dung trình bày
1.
2.
3.

Cấu trúc tuần tự
Cấu trúc lựa chọn
Cấu trúc lặp

2


1. Cấu trúc tuần tự
(sequence structure)
Thực

hiện các lệnh theo thứ tự từ trên
xuống
Lệnh (GT 34)
Khối lệnh (GT 34)
Ví dụ: các bài tập chương 1, 2

3


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


(selection structure)
Dựa

vào kết quả của biểu thức điều kiện
mà những lệnh tương ứng sẽ được thực
hiện
Các cấu trúc lựa chọn gồm:
◦ if
◦ switch

4


Cú

pháp:

Lưu đồ cú pháp

if (expression)
statement;
◦ expression: biểu thức
◦ statement: câu lệnh
◦ nếu expression là true thì
thực thi statement, ngược lại (là
false) thì khơng làm gì cả
◦ nếu statement có nhiều lệnh thì phải
bao các lệnh bởi cặp dấu { }
5



Viết chương trình nhập vào một số nguyên a. In ra màn hình
kết quả a có phải là số dương không.
#include <iostream.h>
#include <conio.h>
void main()
{
int a;
cout << "Input a = ";
cin>>a;
if (a>=0)
cout << a << " la so duong.”;
getch();
}
6


Cú

pháp:

Lưu đồ cú pháp

if (expression)
statement1;
else
statement2;

◦ expression: biểu thức
◦ statement: câu lệnh

◦ nếu expression là true thì thực thi
statement1, ngược lại, thực thi
statement2
◦ nếu statement1, statement2 có nhiều
lệnh thì phải bao các lệnh bởi cặp dấu { }
7


Viết chương trình nhập vào một số nguyên a. In ra
màn hình kết quả kiểm tra a là số âm hay dương.
#include <iostream.h>
#include <conio.h>
void main()
{
int a;
cout << “Nhap a = "; cin>> a;
if (a>=0)
cout<< a<< " la so duong.”;
else
cout<< a<< " la so am.”;
getch();
}
8


 Có

thể sử dụng các câu lệnh if…else lồng
nhau
 Khi dùng if…else lồng nhau thì else sẽ kết

hợp với if gần nhất chưa có else
 Nếu câu lệnh if “bên trong” khơng có else thì
phải đặt trong cặp dấu {}
 Tham khảo thêm ví dụ GT 38
int a;
cout << “Nhap a = "; cin>> a;
if (a>0)
cout<< a<< " la so duong.”;
else if (a<0)
cout<< a<< " la so am.”;
else
cout<< a<< “ khong duong, khong am.”;
9


Cấu

trúc switch là một cấu trúc lựa chọn
có nhiều nhánh
Được sử dụng khi có các lựa chọn là các
số nguyên
Cú pháp: switch (expression)
{
case value_1: statement_1;
[break;]

case value_n: statement_n;
[break;]
[default : statement;]
}


10


Xem

giải thích
GT 41

11


Lưu

ý:

◦ expression trong switch() phải có
kết quả là giá trị kiểu số nguyên
(int, char, long)
◦ Các giá trị sau case phải là hằng
ngun
◦ Khơng bắt buộc phải có default
◦ Thơng thường, cuối mỗi case có một
lệnh break để thốt khỏi cấu trúc
switch
12


Nhập vào một số nguyên, chia số nguyên này cho 2 lấy phần
dư. Kiểm tra nếu phần dư bằng 0 thì in ra thơng báo “là số

chẵn”, nếu số dư bằng 1 thì in thơng báo “là số lẻ”.
#include <iostream.h>
#include <conio.h>
void main () {
int n, sodu;
cout<<”Nhap vao mot so nguyen: ";
cin>>n;
sodu = n%2;
switch (sodu)
{
case 0: cout << n << ” la so chan."; break;
case 1:
cout<< n<< ” la so le."; break;
}
getch();
}
13


3. Cấu trúc lặp
(loop structure)
Lặp

lại 1 hay nhiều lệnh cho đến khi biểu
thức điều kiện có giá trị sai
Các cấu trúc lặp gồm:
◦ for
◦ while
◦ do ... while
Tuy


nhiên, thứ tự thực hiện các lệnh của
chương trình cịn bị chi phối bởi các lệnh
nhảy như continue, break, goto

14


for ([Exp1]; [Exp2];
[Exp3])
statement;
◦ Exp1:
là biểu thức khởi tạo
◦ Exp2: là biểu thức điều kiện
◦ Exp3: biểu thức điều khiển lặp
◦ nếu statement có nhiều lệnh
thì phải bao các lệnh bởi cặp
dấu { }
Xem

giải thích GT 48

15


Viết chương trình tính tổng các số ngun từ 1
đến n.
#include <iostream.h>
#include <conio.h>
void main()

{
int i, n, sum;
cout<<”Nhap vao 1 so:”; cin>> n;
sum=0;
for (i=1 ; i<=n ; i++)
sum += i;
cout<<”Tong tu 1 den “<< n<< ” la: ”<< sum;
getch();
}
16


C/C++

cho phép Exp1 là một định nghĩa

biến
Ví dụ: for (int i=1; i<=10; ++i)
Bất

kỳ biểu thức nào trong 3 biểu thức
của vịng lặp for đều có thể bỏ qua
Ví dụ: for(; i != 0;) statement;

Xóa

tất cả các biểu thức trong vịng lặp
for sẽ cho một vịng lặp vơ tận
Ví dụ: for (;;) statement;
17



while (expression)
statement;
◦ Bước 1: xác định giá trị
expression
◦ Bước 2: Nếu kết quả là
true thì thực thi statement
và quay lại Bước 1
◦ Bước 3: Nếu kết quả là
false thì thốt khỏi vịng
lặp while
 statement

có thể khơng được
thực hiện lần nào
 nếu statement có nhiều lệnh
thì phải bao các lệnh bởi cặp
dấu { }
18


Viết chương trình tính tổng các số ngun từ 1 tới n.
#include<iostream.h>
#include<conio.h>
void main ()
{
int i, n, sum=0;
cout<<”Nhap n= ”; cin>> n;
i=1;

while (i<=n)
{
sum += i;
i++;
}
Cout<<“tong la:”<getch();
}
19


Vịng

lặp phải kết thúc ở một điểm nào

đó
Bên

trong vịng lặp phải cung cấp một
cách thức nào đó buộc expression trở
thành false, nếu khơng thì sẽ lặp vơ tận

Trong

ví dụ trước thì lệnh i++; là cách
thức tăng biến i để đến khi i>n thì vịng
lặp kết thúc

Khơng


được đặt dấu ; sau biểu thức

while
20


do {
statement;
} while (expression);
◦ Bước 1: thực hiện
statement
◦ Bước 2: xác định giá trị
expression
◦ Bước 3: nếu expression là
true thì quay lại Bước 1
nếu expression là false thì
thốt khỏi vịng lặp
statement

ln được
thực hiện ít nhất 1 lần
21


Viết chương trình in dãy số nguyên từ 1 đến 10.
#include <iostream.h>
#include <conio.h>
void main ()
{
int i;

cout<<“Day so tu 1 den 10: ";
i=1;
do {
cout<< setw(3)<< i;
i+=1;
} while(i<=10);
getch();
}
22


Lệnh

break dùng để thoát khỏi một cấu
trúc điều khiển: while, do...while, for,
switch

Khơng

sử dụng lệnh break bên ngồi các
cấu trúc while, do...while, for, switch

23


Lệnh

continue dùng để kết thúc vòng lặp
hiện tại và bắt đầu vòng lặp tiếp theo


Lệnh

continue chỉ được dùng trong thân
các cấu trúc lặp như for, while, do...while

Câu

lệnh continue thường đi kèm với câu
lệnh if

25


Viết một vòng lặp cho nhập vào từng số,
xử lý nó nhưng bỏ qua những số âm,
chương trình dừng khi số nhập vào là số 0.
do {
cin >> num;
if (num < 0) continue;
// process num here
} while (num != 0);

26


×