Tải bản đầy đủ (.docx) (32 trang)

(Sáng kiến kinh nghiệm) xây dựng thuật toán để giải bài toán bằng cách lập sơ đồ khối

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 (803.57 KB, 32 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO VĨNH PHÚC
TRƯỜNG THPT TAM DƯƠNG II

BÁO

CÁO KẾT QUẢ

NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN
Tên sáng kiến:

XÂY DỰNG THUẬT TOÁN ĐỂ GIẢI
BÀI TOÁN BẰNG CÁCH LẬP SƠ ĐỒ KHỐI

Tác giả sáng kiến:Nguyễn Minh Tuyết
Mã sáng kiến: 08.62.01


SỞ GIÁO DỤC VÀ ĐÀO TẠO VĨNH PHÚC
TRƯỜNG THPT TAM DƯƠNG II

BÁO

CÁO KẾT QUẢ

NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN
Tên sáng kiến:

XÂY DỰNG THUẬT TOÁN ĐỂ GIẢI BÀI
TOÁN BẰNG CÁCH LẬP SƠ ĐỒ KHỐI

Tác giả sáng kiến:Nguyễn Minh Tuyết


Mã sáng kiến: 08.62.01


BÁO CÁO KẾT QUẢ
NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN
I. LỜI GIỚI THIỆU.

Cuộc cách mạng công nghiệp 4.0 mở ra nhiều cơ hội lớn nhưng lại cũng
mang đến nhiều thách thức cho thế hệ trẻ. Trong tương lai, khi robot sẽ thay thế
cơng việc của con người, nhiều lao động có nguy cơ bị thất nghiệp. Chính vì
vậy, các bạn học sinh – thế hệ trẻ ngày nay phải chăm chỉ học cơng nghệ thơng
tin. Mục đích của việc học trong thời đại ngày nay là để trở thành người tự do,
thành cơng dân tồn cầu.
Có rất nhiều con đường dẫn tới thành công cho các bạn học sinh – những
người chủ tương lai của đất nước. Tuy nhiên, các em phải tích cực tiếp cận với
nền cơng nghệ mới và phải khơng ngừng phấn đấu vươn lên.
Chính vì vậy việc trang bị kiến thức về công nghệ cho học sinh ngay khi
còn ngồi trên ghế nhà trường sẽ giúp các em có những hành trang cần thiết để
bắt đầu con đường chinh phục làm chủ công nghệ trong tương lai.
Trong chương trình tin học 11 hiện nay, học sinh được tiếp cận với ngơn
ngữ lập trình bậc cao Pascal. Là một ngơn ngữ lập trình cơ bản giúp các em tiếp
cận với các ngơn ngữ lập trình khac. Tuy nhiên phần lớn các em đều rất lúng
túng trong việc viết chương trình, hoặc chương trình viết ra khơng cho kết quả
tối ưu do việc lựa chọn và xây dựng thuật tốn cịn chưa thành thạo, chưa xây
dựng được thuật tốn tốt nhất cho một bài toán.
Việc lựa chọn và xây dựng thuật tốn để giải bài tốn trên máy tính là
một bước rất quan trọng vì cũng giống như các mơn tự nhiên như tốn, lí hay
hố... để tìm ra kết quả chính xác thì buộc học sinh phải xác định công thức cần
áp dụng là công thức nào.
Từ những lý do nêu trên, qua thực tế giảng dạy bản thân tôi thấy cần đưa

ra một số kinh nghiệm để trao đổi với các đồng nghiệp nhằm giúp học sinh
bước đầu hiểu rõ và tiếp cận với việc lựa chọn và xây dựng thuật toán giải bài
toán để việc lập trình đạt kết quả tốt hơn.
Do đó tơi chọn sáng kiến “Xây dựng thuật toán để giải bài toán bằng
cách lập sơ đồ khối” để các em thấy hứng thú, tích cực chủ động hơn đối với bộ
mơn tin học đặc biệt chương trình tin học lớp 11.

5


II. TÊN SÁNG KIẾN
“Xây dựng thuật toán để giải bài toán bằng cách lập sơ đồ khối”
BI.

TÁC GIẢ SÁNG KIẾN:
-

Họ và tên: Nguyễn Minh Tuyết

-

Địa chỉ tác giả sáng kiến: Trường THPT Tam Dương II

-

Số điện thoại:.0383.543.952

-

E_mail:


IV. CHỦ ĐẦU TƯ TẠO RA SÁNG KIẾN :
Nguyễn Minh Tuyết

V. LĨNH VỰC ÁP DỤNG SÁNG KIẾN:
Sáng kiến áp dụng cho học sinh lớp 11 trong việc lựa chọn và xây dựng
thuật toán để giải bài tốn trước khi tiến hành lập trình giải quyết bài toán.
VI. NGÀY SÁNG KIẾN ĐƯỢC ÁP DỤNG LẦN ĐẦU:
Tháng 9 năm 2016
VII. MÔ TẢ BẢN CHẤT CỦA SÁNG KIẾN:
1.

NỘI DUNG CỦA SÁNG KIẾN:

1.1.

Lý thuyết.

Bài toán.
- Trong phạm vi tin học, có thể quan niệm bài tốn là một việc nào đó mà
ta muốn máy tính thực hiện. Bài toán được cấu tạo bởi hai thành phần cơ
bản:
+ Input: Các thơng tin đã có
+ Output: Các thơng tin cần tìm từ Input
b. Thuật toán.
- Khái niêm: Thuật tốn để giải một bài toán là một dãy hữu hạn các thao
tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy
thao tác ấy , từ Input của bài toán , ta nhận được Output cần tìm.
- Những tính chất của thuật tốn:
a.


+
+

+

Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn lần thực
hiện các thao tác.
Tính xác định: Sau khi thực hiện một thao tác thì hoặc là thuật
tốn kết thúc hoặc là có đúng một thao tác xác định để được thực
hiện bước tiếp theo.
Tính đúng đắn: Sau khi thuật tốn kết thúc, ta phải nhận được
Output cần tìm.

6


Thuật tốn có thể phân loại như sau:
-

-

Thuật tốn khơng rẽ nhánh: Thuật tốn khơng có thao tác so sánh khi
trình bày thuật tốn
Thuật tốn có rẽ nhánh: Thuật tốn có thao tác so sánh khi trình bày
thuật tốn
- Thuật tốn có bước lặp xác định: Xác định trước số lần lặp
Thuật tốn có bước lặp khơng xác định: Khơng xác định được trước số
lần lặp
Các kí hiệu để diễn tả thuật toán bằng sơ đồ khối.

Thể hiện thao tác so sánh

Thể hiện các phép tính tốn

Thể hiện các thao tác nhập, xuất dữ liệu

Quy định trình tự thực hiện các phép tốn
Chú ý:
Với hình ơ van : chỉ có một mũi tên ra với thao tác nhập dữ liệu và một
mũi tên vào cho thao tác in kết quả
Với hình chữ nhật thì có một mũi tên vào và một hướng mũi tên ra
Với hình thoi thì có mộtmũi tên vào và hai g mũi tên ra hai hướng thể
hiện thao tác đúng, sai

7


1.2. Một số ví dụ
. Thuật tốn khơng rẽ nhánh
VD1:
Cho A = x + y;B = x + 5A;

C = A - 3B;

Hãy mơ tả thuật tốn giải bài tốn bằng sơ đồ khối để tính C
HƯỚNG DẪN:
*

Xác định bài tốn
Input: x, y

Output: C

*

Ý tưởng: Muốn tính được C thì đầu tiên ta phải tính A và B

*

Sơ đồ khối
Nhập x, y

Ax+y

B x+ 5*A

C A-3*B

Thông báo C
rồi kết thúc

VD2:
Một người đi xe đạp với vận tốc 10km/h và một người đi xe máy với tốc
độ 30km/h cùng xuất phát từ một vị trí, cùng một thời điểm và đi cùng một
hướng. Lập trình tính khoảng cách giữa hai người sau t giờ (t là số nguyên
dương, t<=15). Dữ liệu t nhập vào từ bàn phím.
Hãy mơ tả thuật tốn giải bài toán bằng sơ đồ khối.
HƯỚNG DẪN:
*

Xác định bài toán

Input: t
Output: khoảng cách

d *Ý tưởng:
8


Tính quãng đường của xe đạp: S1= t*10;
Tính quãng đường của xe máy: S2 = t*30;
Khoảng cách d = S2-S1;
* Sơ đồ khối

Nhập t

S1 t*10;
S2 t*30;

d S2 – S1;

Thông báo d
rồi kết thúc
VD3. Lập trình nhập từ bàn phím hai số thực a và b, tính và đưa ra màn
hình
a)

Trung bình cộng các bình phương của hai số đó

b)

Trung bình cộng các giá trị tuyệt đối của a và b


Hãy mơ tả thuật tốn giải bài tốn bằng sơ đồ khối.
HƯỚNG DẪN:

* Xác định bài toán
Input: a, b
Output: TB1 là trung bình cộng bình phương của hai số a, b;
TB2 là trung bình cộng trị tuyệt đối của hai số a, b

*Ý tưởng:
Tính TB1= (a2+b2)/2;
Tính TB2 = (|a|+|b|)/2;
* Sơ đồ khối
Nhập a, b

TB1 (a*a+b*b)/2;
TB2

(abs(a)+abs(b))/2;

9


Thông báo TB1,
TB2 rồi kết thúc

BÀI TẬP ĐỀ NGHỊ
Hãy mô tả thuật toán giải các bài toán sau bằng sơ đồ khối
Bài 1:
Nhập từ bàn phím các số thực (xa, ya), (xb, yb), (xc, yc) là toạ độ ba đỉnh

A, B, C của tam giác ABC
a) Tính và đưa ra màn hình diện tích tam giác theo cơng thức Hê-rơng
b)

Tính và đưa ra màn độ dài các đường cao ha, hb, hc

Hướng dẫn:
-

Input: xa, ya, xb, yb, xc, yc

-

Output: dientich (S), các đường cao ha, hb, hc

-

Sử dụng các công thức:

Diện tích: s =

p(p-a)(p-b)(p-c) ;

Trong đó a, b, c là độ dài các cạnh của tam giác và p= (a+b+c)/2.
Độ dài cạnh tính theo cơng thức:
a = √(xa−xb)2 +( ya− yb)2
b = √(xc−xb)2 +( yc− yb)2
c = √ (xa−xc)2 +( ya− yc)2

a


2s

2s

b

2s

c

Các đường cao: ha=
; ,
hb=
;
hc=
;
Bài 2. Nhập từ bàn phím toạ độ 3 điểm A,B,C. Tính tích vơ hướng của hai
vectơ

AB





AC

.


Hướng dẫn:
- Input: Toạ độ 3 điểm A, B và C;

10


- Output: Tích vơ hướng

⃗AB.⃗AC

;

- Sử dụng các cơng thức:
AB=(x -x ;y -y )

vectơ:

B

A

B

A

;

AC=(x C -x A ;y C -y A ) ;
Tích vơ hướng:


AB.AC=(x -x ).(x -x )+(y -y ).(y -y )
B

A

C

A

B

A

C

A

;

Bài 3. Cho số nguyên N có bốn chữ số. Hãy dùng các phép DIV và MOD
tính tổng các chữ số của N. Dữ liệu nhập vào từ bàn phím.
Hướng dẫn:
Gọi N = abcd khi đó
d = n mod 10;
N = n div 10;
c = n mod 10;
N = n div 10;
b = n mod 10;
a = n div 10;
Tổng các chữ số T = a+b+c+d

Bài 4. Tính chu vi và diện tích của một hình thang cân có đáy lớn là a,
đáy nhỏ là ab (bb
c

h
a

Hướng dẫn:
-

Tính c = (a-b)/(2* cos(α ¿)

-

Tính h = (a-b)*tan(α ¿/2;

-

Tính chu vi v = a+b+2*c;

-

Tính diện tích s = (a+b)*h/2;

11


. Thuật tốn có phân nhánh
Cấu trúc mơ tả mệnh đề Nếu ... thì...; Nếu ... thì ... nếu khơng thì gọi là cấu

trúc rẽ nhánh dạng thiếu và dạng đủ.
Sơ đồ:
Dạng thiếu

Điều
kiện

Đúng

Câu lệnh

Sai

Dạng đủ

Sai

Điều

Đúng

Sai

Câu lệnh 2

kiện

Câu lệnh 1

* Hoạt động:

-

Dạng thiếu: Điều kiện sẽ được tính và kiểm tra. Nếu điều kiện đúng (có giá
trị true) thì câu lệnh sẽ được thực hiện, ngược lại câu lệnh bị bỏ qua.
Dạng đủ: Điều kiện sẽ được tính và kiểm tra. Nếu điều kiện đúng (có giá rị
true) thì câu lệnh 1 sẽ được thực hiện, ngược lại câu lệnh 2 sẽ được thực
hiện.

12


Chú ý:
Ta có thể sử dụng cấu trúc rẽ nhánh lồng nhau

Đúng

Điều

Câu lệnh 1

kiện 1

Sai
Đúng

Điều
kiện 2

Câu lệnh 2


Sai

…..

Đúng

…..

Sai
Điều
kiện n-1

Đúng

Câu lệnh n-1

Sai

Câu lệnh n

13


VD4:
Tìm số nhỏ nhất trong hai số thực x và y
Hãy mơ tả thuật tốn giải bài tốn bằng sơ đồ khối
*

Xác định bài toán


*

Input: x, y
Output: Số nhỏ nhất trong hai số
Ý tưởng: So sánh hai số số nào nhỏ hơn thì là số nhỏ nhất

Sơ đồ khối

Nhập x,y

S

x>=y

Đúng

Nhỏ nhất là y

và kết thúc
Sai

Nhỏ nhất là x và
kết thúc
VD5:
Tìm số nhỏ nhất trong ba số thực x , y và z
Hãy mơ tả thuật tốn giải bài tốn bằng sơ đồ khối
*

Xác định bài toán
Input: ba số thực x,y,z

Output: Số nhỏ nhất trong ba số

*

Ý tưởng:
Lần lượt so sánh hai số với nhau số nào nhỏ hơn đem so sánh với số còn

lại

14


Sơ đồ khối
Nhập x, y, z

S

Đ

x>y

Đ

x>z

y>z
S

S


Min x

Min z

Min y

VD6: Cho bài

Thông báo Min và
kết thúc
|x| +|y| nếu điểm (x, y) thuộc hình trịn bán kính
r (r>0), tâm (a,b)
x + y trong trường hợp cịn lại

Z=

Hãy mơ tả thuật tốn giải bài toán bằng sơ đồ khối
* Xác định bài toán
Input: x,y,a,b,r
Output: z
* Ý tưởng:
bán kính r (r>0), tâm (a,b) là:

S

z y+x

R*R =s qr(x- a) +s qr( y-

Điều kiện để điểm (x, y) thuộc

R*R = (x - a)2 + (y - b)2
* Sơ đồ khối


N

yxpậh,,a, rb,

15


Đ

Đ

z a bs( x)+ ab (y)

rồiThô kếng tthbáúcoz

S

Đ

VD7: Nhập một điểm thi
của học sinh và phân loại nếu
điểm thấp hơn 5 thì khơng đạt,
từ 5 đến < 6.5 thì trung bình, từ
6.5 đến <8 thì khá, từ 8 đến < 9
thì giỏi, >=9 đến 10 thì xuất
sắc.

Hãy mơ tả thuật toán giải
bài toán bằng sơ đồ khối
*

Xác định bài toán
Input: x
Output: xếp loại của
học sinh theo điểm


16


*

Sơ đồ khối
Nhập x

X< 5

Đúng

xeploai ’khong dat’


Sai
Đúng

X< 6.5


xeploai←’trung binh’

Sai

X< 8 Đúng

xeploai←’kha’

Đúng

xeploai←’gioi’

Sai
X<9

Sai

xeploai←’xuat sac’

Thông báo xeploai
rồi kết thúc

17


BÀI TẬP ĐỀ NGHỊ
Hãy mơ tả thuật tốn giải các bài toán sau bằng sơ đồ khối:
Bài 1: Nhập vào một năm cho ra số ngày của năm đó
Hướng dẫn
Có hai loại ngày là 365 ngày và 366 ngày

Năm nhuận là 365 ngày, không nhuận là 366 ngày
Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng khơng chia
hết cho 100
Bài 2: Tính căn bậc hai của một số
-

-

Hướng dẫn
Sử dụng hàm Sqrt(x)
- Nếu nhập vào số âm thì thơng báo số đó khơng có căn bậc hai
Bài 3: Cho ba số nguyên m , n, k. Nếu ba số này theo thứ tự nhập vào tạo
thành một cấp số cộng thì tăng gấp đơi mỗi số, trong trường hợp cịn lại thì giảm
mỗi số một đơn vị
Hướng dẫn:
-

Tính chất của cấp số cộng: 2*n = m + k
Bài 4. Cho ba số nguyên p, q, r (≠ 0) Kiểm tra ba số theo thứ tự nhập
vào có tạo thành cấp số nhân khơng.
Hướng dẫn:
Tính chất của cấp số nhân: q*q = p*r
. Thuật toán theo chu trình có bước lặp xác định.
Sơ đồ:

Câu lệnh

Điều
kiện


Đúng
1

2

50

VD8: Tính tổngs= 1+a +2+a +…+ 50+a

Sai
50



n=1

n

n+a

18


Hãy mơ tả thuật tốn giải bài tốn bằng sơ đồ khối
*

Xác định bài toán
Input: nhập a
Output: Tổng S


Sơ đồ khối
Nhập a

S0
i1
SS+(i/(i+a)
ii+1

Đúng

i <= 50
Sai
Thơng báo S
rồi kết thúc

VD9:
Tính giai thừa của một số nguyên dương n (n!=1.2.......(n-1).n).

Hãy mô tả thuật toán giải bài toán bằng sơ đồ khối
*

Xác định bài toán
Input: Số nguyên dương n;
Output: Giai thừa của n (GT)

Sơ đồ khối

19



Nhập n

GT1
i1
GTGT*i
ii+1

Đúng

in

Sai
Thơng báo GT
rồi kết thúc

VD10:
Tính tổng P= 1+ 2x + 3x2 + … + nxn-1 +(n+1)xn (x là số thực, n là số
ngun)
Hãy mơ tả thuật tốn giải bài toán bằng sơ đồ khối
*

Xác định bài toán
Input: Số nguyên dương n và x;
Output: Tổng P

Sơ đồ khối

20



Nhập n và x

P1
i1
PP+(i+1)*x^i
ii+1

Đúng

in
Sai
S

Thông báo P
rồi kết thúc
Hãy mô tả thuật toán giải các bài toán sau bằng sơ đồ khối:
Bài 1: Tính tổng
S= 12 + 22 + 32 + ………..+ n2
với n nhập từ bàn phím
Bài 2: Tính tổng

S 1 1!

1

1
1
2! ....... n!

với n nhập từ bàn phím

Bài 3: Tính tích
n

P x 1 *x 2 *...* x n ; (P

xi)
i1

với n nhập từ bàn phím
Hướng dẫn
Các bài trên làm tương tự như ví dụ 8, 9, 10

19


. Thuật tốn theo chu trình có bước lặp khơng xác định.
Sơ đồ:

Điều
kiện

Sai

Đúng

Câu lệnh

VD11:
Tìm ước số chung lớn nhất của hai số nguyên dương x và
y Hãy mô tả thuật toán giải bài toán bằng sơ đồ khối

*

Xác định bài toán
Input: Số nguyên dương x,y;
Output: UCLN(x,y)

Sơ đồ khối
Nhập x,y

Đ

y <>0
S

Đ

sd x mod y;
x y;
y sd;

S

Thông báo UCLN
là x, kết thúc
VD12:

20


Tính


S

1

1
1 ...
1
1
e
1! 2!
n! cho đến khi (n 1)! < 2x 106

Hãy mơ tả thuật tốn giải bài tốn bằng sơ đồ khối
*

Xác định bài toán
Input:
Output: Tổng S;

Sơ đồ khối:

S1

i1
GT 1

T 1/GT

T>=2x10-6


Đ

S S+T
ii+1
GT GT*i
GT 1/GT

S

Thông báo S
và kết thúc

21


VD13. Kiểm tra xem khi nhập một số tự nhiên vào có phải là số ngun tố
hay khơng.
Hãy mơ tả thuật toán giải bài toán bằng sơ đồ khối
*

Xác định bài toán
Input:
Output: Tổng S;

Hướng dẫn
Nhập vào số tự nhiên N
Chú ý: N<=1 thì thơng báo “Khơng xét”
Lấy N chia cho các số tự nhiên lớn hơn 1 và nhỏ hơn nó. Nếu N là số
ngun tố thì các phép chia có số dư khác 0. Nếu N khơng là số ngun tố

thì sẽ có một phép chia có dư bằng 0
Sơ đồ khối:
-

-

Nhập N

Đ

N=1
S

N <4

Đ

S

i

i> [√

2

N]

Đ

Thông báo N là

nguyên tố rồi
kết thúc

S

i i+1

Thông báo N
không là nguyên
tố rồi kết thúc

S

N chia hết
cho i

Đ

22


VD14. Lập trình tính số Fibonaci Fn , với n nhập vào từ bàn phímbiết rằng:
F0=F1=1
F1= F0+ F1
……
Fn= Fn-1 + Fn-2;

Hãy mơ tả thuật tốn giải bài tốn bằng sơ đồ khối
*


Xác định bài toán

Input: số nguyên dương n
Output: F;
Sơ đồ khối:
Nhập N

i 2
F0 1;
F1 1;
F0

i <= N

S
Đ

F F0+F1
F0
F1;
F1 F;
i i+1

Thông báo F

rồi kết thúc

BÀI TẬP ĐỀ NGHỊ
Hãy mô tả thuật toán giải các bài toán sau bằng sơ đồ khối:
Bài 1 :

x

Nhập vào x. Tính
lượng nhập khá nhỏ
Hướng dẫn
-

e 1

x

x2

xn

1!

2! ...

n! cho đến khi

xn 1
(n 1)!

e

với e là

Tương tự VD12.


23


×