Bài 9. Cấu trúc rẽ nhánh
Chia sẻ bởi Nguyễn Yến |
Ngày 10/05/2019 |
56
Chia sẻ tài liệu: Bài 9. Cấu trúc rẽ nhánh thuộc Tin học 11
Nội dung tài liệu:
TRƯỜNG THPT TAM GIANG
CẤU TRÚC RẼ NHÁNH VÀ LẶP
Tom, ngày mai cậu định làm gì ?
Để tớ nghĩ đã
Nếu ngày mai mưa thì tớ ở nhà học bài
À, nếu ngày mai mưa thì tớ ở nhà học bài, nếu không thì tớ đi xem phim hoạt hình
Nếu ... Thì.
Nếu . thì.
nếu không thì.
Cấu trúc để mô tả các mệnh đề như trên
gọi là cấu trúc rẽ nhánh
Tom: "Nếu ngày mai mưa thì tớ ở nhà học bài"
Câu nói của Tom cho biết việc làm cụ thể nào? Và điều kiện đó là gì ?
Câu nói của Tom có đề cập đến việc gì sẽ xảy ra khi điều kiện đó không được thỏa mãn không?
- Dạng thiếu: Nếu . thì .
Tình huống 1:
Nhận xét:
1. Rẽ nhánh
Tom: "Nếu ngày mai mưa thì tớ ở nhà học bài, nếu không thì tớ đi xem phim hoạt hình"
Câu nói của Tom khẳng định hai việc cụ thể gì ?
Có khi nào cả hai việc cùng được thực hiện không?
Vậy mỗi việc sẽ được thực hiện khi nào?
- Dạng đủ: Nếu . thì . nếu không thì .
Tình huống 2:
1. Rẽ nhánh
Nhận xét:
2. Câu lệnh If – then.
Dạng thiếu
Dạng đủ
a. Cú pháp:
If <Điều kiện> then;
If <Điều kiện> then Else ;
Trong đó:
- Điều kiện là biểu thức quan hệ hoặc biểu thức logic.
- Câu lệnh, câu lệnh1, câu lệnh2 là một câu lệnh của Pascal .
- Trước else không có dấu ;
b. Sơ đồ khối:
Điều kiện
Câu lệnh
Điều kiện
Câu lệnh 1
Câu lệnh 2
Điều kiện
Câu lệnh
Điều kiện
Câu lệnh 1
Câu lệnh 2
T
T
F
F
T
F
T
F
c. Cách thực hiện:
Tính và kiểm tra điều kiện, nếu điều kiện đúng thì thực hiện câu lệnh, còn không thì câu lệnh bị bỏ qua.
Tính và kiểm tra điều kiện, nếu điều kiện đúng thì thực hiện câu lệnh 1, nếu sai thì thực hiện câu lệnh 2.
Dạng thiếu
Dạng đủ
d. Ví dụ:
Vd1: Dạng thiếu:
- Thông báo ra màn hình nếu delta <0 thì phương trình vô nghiệm
Vd2: Dạng đủ:
- Kiểm tra hai số nguyên a, b số nào max?
IF d<0 then writeln(‘phuong trinh vo nghiem’);
IF a>b THEN max:=a ELSE max:=b;
d. Ví dụ:
- Vd3: Viết đoạn chương trình kiểm tra một số nguyên dương m là số chẵn hay số lẽ. In kết quả ra màn hình.
- NHÓM 1: Viết câu lệnh rẽ nhánh dạng thiếu.
- NHÓM 2: Viết câu lệnh rẽ nhánh dạng đủ.
d. Ví dụ:
Var m : word;
Begin
Write(‘nhap m: ’);
Readln(m);
If m mod 2 = 0 then
Write(m,‘ la so chan’)
Else Write(m,‘ la so le’);
Readln;
End.
Chương trình (dạng đủ):
Var m : word;
Begin
Write(‘nhap m: ’);
Readln(m);
If m mod 2 = 0 then
Write(m,‘ la so chan’);
If m mod 2 <> 0 then
Write(m,‘ la so le’);
Readln;
End.
Chương trình (Dạng thiếu):
Var a, b, c: integer; d, x1, x2: real;
Begin
Writeln(‘nhap gia tri cho a, b, c: ’);
Readln(a, b, c);
d:=b*b – 4*a*c;
If d<0 then
write(‘pt vo nghiem’)
Else
x1:=(-b+sqrt(d))/(2*a));
x2:=(-b-sqrt(d))/(2*a));
Writeln(‘x1 = ’,x1:4:1, ‘ x2 = ’,x2:4:1);
Readln; End.
2. Hãy chạy chương trình dưới đây với các bộ dữ liệu:
* 1, -3, 2
* 2, 2, 4
Chương trình:
Var a, b, c: integer; d, x1, x2: real;
Begin
Writeln(‘nhap gia tri cho a, b, c: ’);
Readln(a, b, c);
d:=b*b – 4*a*c;
If d<0 then
write(‘pt vo nghiem’)
Else
x1:=(-b+sqrt(d))/(2*a));
x2:=(-b-sqrt(d))/(2*a));
Writeln(‘x1 = ’,x1:4:1, ‘ x2 = ’,x2:4:1);
Readln; End.
3. Câu lệnh ghép:
- Cú pháp:
Begin
;
End;
- Tác dụng:
Gộp nhiều câu lệnh thành một câu lệnh ghép
4. Một số ví dụ
Viết chương trình giải phương trình bậc hai:
CỦNG CỐ
1. Dưới đây là chương trình kiểm tra và in ra màn hình số lớn nhất trong 2 số a và b. Chương trình có một số lỗi, chỉ ra các lỗi đó. Hãy sửa lại để được một chương trình đúng.
Var a, b:integer;
Begin
Write(‘nhap gia tri cho a va b:’); readln(a,b);
If a Else Write(b,‘ la so lon nhat);
Readln;
End.
2. Viết chương trình tính và in ra màn hình Z biết:
(x, y được nhập từ bàn phím).
Hướng dẫn:
T
F
Z=x*x+y*y, in Z ra
màn hình
Z=sqrt(x+y), in Z ra
màn hình
CẤU TRÚC RẼ NHÁNH VÀ LẶP
Tom, ngày mai cậu định làm gì ?
Để tớ nghĩ đã
Nếu ngày mai mưa thì tớ ở nhà học bài
À, nếu ngày mai mưa thì tớ ở nhà học bài, nếu không thì tớ đi xem phim hoạt hình
Nếu ... Thì.
Nếu . thì.
nếu không thì.
Cấu trúc để mô tả các mệnh đề như trên
gọi là cấu trúc rẽ nhánh
Tom: "Nếu ngày mai mưa thì tớ ở nhà học bài"
Câu nói của Tom cho biết việc làm cụ thể nào? Và điều kiện đó là gì ?
Câu nói của Tom có đề cập đến việc gì sẽ xảy ra khi điều kiện đó không được thỏa mãn không?
- Dạng thiếu: Nếu . thì .
Tình huống 1:
Nhận xét:
1. Rẽ nhánh
Tom: "Nếu ngày mai mưa thì tớ ở nhà học bài, nếu không thì tớ đi xem phim hoạt hình"
Câu nói của Tom khẳng định hai việc cụ thể gì ?
Có khi nào cả hai việc cùng được thực hiện không?
Vậy mỗi việc sẽ được thực hiện khi nào?
- Dạng đủ: Nếu . thì . nếu không thì .
Tình huống 2:
1. Rẽ nhánh
Nhận xét:
2. Câu lệnh If – then.
Dạng thiếu
Dạng đủ
a. Cú pháp:
If <Điều kiện> then
If <Điều kiện> then
Trong đó:
- Điều kiện là biểu thức quan hệ hoặc biểu thức logic.
- Câu lệnh, câu lệnh1, câu lệnh2 là một câu lệnh của Pascal .
- Trước else không có dấu ;
b. Sơ đồ khối:
Điều kiện
Câu lệnh
Điều kiện
Câu lệnh 1
Câu lệnh 2
Điều kiện
Câu lệnh
Điều kiện
Câu lệnh 1
Câu lệnh 2
T
T
F
F
T
F
T
F
c. Cách thực hiện:
Tính và kiểm tra điều kiện, nếu điều kiện đúng thì thực hiện câu lệnh, còn không thì câu lệnh bị bỏ qua.
Tính và kiểm tra điều kiện, nếu điều kiện đúng thì thực hiện câu lệnh 1, nếu sai thì thực hiện câu lệnh 2.
Dạng thiếu
Dạng đủ
d. Ví dụ:
Vd1: Dạng thiếu:
- Thông báo ra màn hình nếu delta <0 thì phương trình vô nghiệm
Vd2: Dạng đủ:
- Kiểm tra hai số nguyên a, b số nào max?
IF d<0 then writeln(‘phuong trinh vo nghiem’);
IF a>b THEN max:=a ELSE max:=b;
d. Ví dụ:
- Vd3: Viết đoạn chương trình kiểm tra một số nguyên dương m là số chẵn hay số lẽ. In kết quả ra màn hình.
- NHÓM 1: Viết câu lệnh rẽ nhánh dạng thiếu.
- NHÓM 2: Viết câu lệnh rẽ nhánh dạng đủ.
d. Ví dụ:
Var m : word;
Begin
Write(‘nhap m: ’);
Readln(m);
If m mod 2 = 0 then
Write(m,‘ la so chan’)
Else Write(m,‘ la so le’);
Readln;
End.
Chương trình (dạng đủ):
Var m : word;
Begin
Write(‘nhap m: ’);
Readln(m);
If m mod 2 = 0 then
Write(m,‘ la so chan’);
If m mod 2 <> 0 then
Write(m,‘ la so le’);
Readln;
End.
Chương trình (Dạng thiếu):
Var a, b, c: integer; d, x1, x2: real;
Begin
Writeln(‘nhap gia tri cho a, b, c: ’);
Readln(a, b, c);
d:=b*b – 4*a*c;
If d<0 then
write(‘pt vo nghiem’)
Else
x1:=(-b+sqrt(d))/(2*a));
x2:=(-b-sqrt(d))/(2*a));
Writeln(‘x1 = ’,x1:4:1, ‘ x2 = ’,x2:4:1);
Readln; End.
2. Hãy chạy chương trình dưới đây với các bộ dữ liệu:
* 1, -3, 2
* 2, 2, 4
Chương trình:
Var a, b, c: integer; d, x1, x2: real;
Begin
Writeln(‘nhap gia tri cho a, b, c: ’);
Readln(a, b, c);
d:=b*b – 4*a*c;
If d<0 then
write(‘pt vo nghiem’)
Else
x1:=(-b+sqrt(d))/(2*a));
x2:=(-b-sqrt(d))/(2*a));
Writeln(‘x1 = ’,x1:4:1, ‘ x2 = ’,x2:4:1);
Readln; End.
3. Câu lệnh ghép:
- Cú pháp:
Begin
End;
- Tác dụng:
Gộp nhiều câu lệnh thành một câu lệnh ghép
4. Một số ví dụ
Viết chương trình giải phương trình bậc hai:
CỦNG CỐ
1. Dưới đây là chương trình kiểm tra và in ra màn hình số lớn nhất trong 2 số a và b. Chương trình có một số lỗi, chỉ ra các lỗi đó. Hãy sửa lại để được một chương trình đúng.
Var a, b:integer;
Begin
Write(‘nhap gia tri cho a va b:’); readln(a,b);
If a Else Write(b,‘ la so lon nhat);
Readln;
End.
2. Viết chương trình tính và in ra màn hình Z biết:
(x, y được nhập từ bàn phím).
Hướng dẫn:
T
F
Z=x*x+y*y, in Z ra
màn hình
Z=sqrt(x+y), in Z ra
màn hình
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Yến
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)