Professional Documents
Culture Documents
6. TỪ BÀI TOÁN ĐẾN CHƯƠNG TRÌNH
6. TỪ BÀI TOÁN ĐẾN CHƯƠNG TRÌNH
CHƯƠNG TRÌNH
(2 tiết)
1. Bài toán và xác định bài toán
Ví dụ 1: Tính tổng các số tự nhiên từ 1 đến 100
Ví dụ 2: Tính quãng đường ô tô đi được trong 2 giờ
với vận tốc 60 km/h
a) Khái niệm:
- Bài toán trong Tin học là một việc nào đó mà con
người muốn máy tính thực hiện
b) Xác định bài toán:
- Input: thông tin đưa vào máy
- Output: thông tin ra
Ví dụ 3:
Xác định bài toán tìm ước chung lớn nhất của 2 số
nguyên dương A và B
- Input: A, B nguyên dương
- Output: ước chung lớn nhất của A và B
2. Giải bài toán trên máy tính
- Chính là đưa cho máy tính dãy hữu hạn các thao tác đơn
giản mà nó có thể thực hiện được để từ Input ta nhận
được Output
- Các bước giải bài toán trên máy tính:
B1: Xác định bài toán
B2: Lựa chọn, mô tả thuật toán
B3: Viết chương trình
3. Thuật toán và mô tả thuật toán
a) Khái niệm:
- Thuật 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
b) Biểu diễn thuật toán
Cách 1: Liệt kê từng bước
Cách 2: Sử dụng sơ đồ khối
Qui ước
Hình Ý nghĩa
i 2 3 45 không là số
nguyên tố
N/i 45/2 45/3
Chia hết Không Chia hết
không?
29 là số nguyên
tố
Trường hợp 2: N=29 (
i 2 3 4 5
N/i 29/2 29/3 29/4 29/5
Chia hết Không Không Không Không
không?
Cách 1: Liệt kê các bước
§ Cách 2: Vẽ
N
=1 ? sơ đồ khối
S
§
N<
4?
S
i2
§
Thông báo N là số
i>? nguyên tố rồi kết thúc
S
S
N có chia
i i +1
hết cho i ?
Hình a Hình b
3 5 9 8 1 7 3 5 8 1 7 9
3 5 8 9 1 7 3 5 1 8 7 9
3 5 1 7 8 9
3 5 8 1 9 7
Lượt thứ ba
3 5 8 1 7 9
Lượt thứ tư
3 1 5 7 8 9 3 5 1 7 8 9
3 1 5 7 8 9
1 3 5 7 8 9
Cách 1: Liệt kê các bước
B1: Nhập N và các số hạng a1, a2,…, aN;
B2: M N;
B3: Nếu M < 2 thì đưa ra dãy A đã sắp xếp rồi kết thúc
B4: M M – 1; i 0;
B5: i i +1;
B6: Nếu i > M thì quay lại B3
B7: Nếu ai > ai+1 thì tráo đổi ai với ai+1 cho nhau;
B8: Quay lại B5.
Nhập N và
a1, a2,..., aN
MN
§
M<2?
Đưa ra A đã sắp xếp rồi kết
S thúc
M M - 1; i 0
ii+1
§
i>M?
C¸ch 2
S VÏ s¬ ®å khèi
Tráo đổi ai
§
và ai+1 ai > ai+1 ?
S
BÀI TẬP
Bài 1: Xác định bài toán tìm ước chung lớn nhất của 2
số nguyên dương A và B
- Input: A, B nguyên dương
- Output: ước chung lớn nhất của A và B
Ý tưởng:
Nếu M=N
- Đúng: UCLN=M (hoặc N) => Kết thúc
- Sai => Xét: nếu M>N đúng: M=M-N, ngược lại
N=N-M
Quá trình lặp lại cho đến khi M=N
Cách 1: Liệt kê các bước
B1: Nhập M, N;
B2: Nếu M = N thì UCLN = M (hoặc N), chuyển sang B5;
B3: Nếu M >N thì M M - N rồi quay lại B2;
B4: N N – M rồi quay B2;
B5: Đưa ra kết quả UCLN rồi kết thúc
Mô phỏng thuật toán tìm UCLN
Lượt
1 2 3
NhËp
M= 25M,N,N= 10 M 25 15 5 5
N 10 10 10 5
§
515
25
M
=5==N
=105???
10 §ưa
¦CLNra(25,10)
M ; KÕt= 5thóc
S
§
M
15
525>>>10
>10
10
N? M
M
M25
M
15---10
N10
N
N N
= 10--M
5
Bài 2: Giải phương trình bậc hai:
ax +bx+c=0 (a khác 0)
2
• Input: a,b,c
• Output: Nghiệm của phương trình
• Thuật toán
S¬ ®å thuËt to¸n gi¶i phương tr×nh bËc hai
NhËp vµo a, b, c
2
D=b - 4ac
®
D<0 PT v« nghiÖm
s
®
s
PT cã 2 nghiÖm
x1,x2 = ( -b ±ÖD )/2a
THUẬT TOÁN TÌM MAX
B2: Max = a1 ; i = 2
B3: Nếu i>N thì đưa giá trị Max rồi kết thúc
B4:
B4.1: Nếu Max < ai thì Max = ai
B4.2: i = i+1 rồi quay lại B3
Cách 2: Sơ đồ khối