Khái niệm bài toán Trong TIN HỌC Trong TOÁN HỌC Yêu cầu 1 và 4 được xem là bài toán Tất cả các yêu cầu trên đều được xem là bài toán nào được xem như là một bài toán?... Các yếu tố cầ
Trang 1Tiết 10
Chương I Một số khái niệm cơ bản
của tin học
Trang 2 Xét các yêu cầu sau :
1. Giải phương trình bậc hai ax2+bx+c=0
3. Quản lý các cán bộ trong một cơ quan.
4. Tìm ước chung lớn nhất của hai số nguyên
dương a và b.
5. Xếp loại học tập các học sinh trong lớp.
1 Khái niệm bài
toán
Trong TIN HỌC Trong TOÁN HỌC
Yêu cầu 1 và 4 được
xem là bài toán
Tất cả các yêu cầu trên
đều được xem là bài toán
nào được xem như là một bài toán?
Trang 3Khái niệm bài toán trong
Tin học?
Trong phạm vi tin học, Bài toán là
việc nào đó ta muốn máy tính thực hiện.
Trang 4TIN HỌC
Đưa vào máy thông tin gì
Cần lấy ra thông tin gì
TOÁN HỌC?
Các yếu tố cần quan tâm
khi giải một bài toán
Trong Tin học, để phát biểu một bài toán, ta cần
trình bày rõ Input và Output của bài toán đó.
Trang 5CÁC VÍ DỤ
Trang 6VD3 : Tìm ước chung lớn nhất của hai
Trang 7Nêu một bài toán và
chỉ rõ Input, Output
của bài toán đó?
Xem thêm các ví dụ trong SGK/32
Trang 8TÓM LẠI
Một bài toán được cấu tạo bởi 2 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)
Trang 92 Thuật toán
Hướng dẫn các thao tác cho máy
thực hiện để tìm ra lời giải
Bài toán
Giải bài toán
Thuật toán
Trang 10Input THUẬT TOÁN Output
(Thao tác 1Thao tác 2 Thao tác n)
Thuật toá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 đó, từ Input của bài toán này, ta nhận được Output cần tìm.
BÀI TOÁN
Thuật toán để giải một bài toán là :
• Một dãy hữu hạn các thao tác.
• Các thao tác được sắp xếp theo một trình tự xác định.
• Sau khi thực hiện dãy thao tác đó, từ Input ta tìm được Output của bài toán.
a Thuật toán là gì ?
Trang 11• Bước 3 : Gán cho x giá trị -b/a, rồi qua bước 4.
• Bước 4 : Đưa ra kết quả
x và kết thúc.
Tìm nghiệm phương trình bậc nhất tổng quát
ax + b = 0 ()
Trang 12: Thể hiện các thao tác so sánh
DÙNG SƠ ĐỒ KHỐI
Trong sơ đồ khối, người ta dùng một số biểu
tượng thể hiện các thao tác như :
: Thể hiện các phép toán
: Quy định trình tự thực hiện các
thao tác : Thể hiện các thao tác nhập, xuất
dữ liệu
Trang 13x = -b/a
Sai
Đú ng
Đưa ra x và kết thúc
• Bước 1 : Nhập a, b.
• Bước 2 : Nếu a = 0 thì
quay lại bước 1, ngược
lại thì qua bước 3.
Trang 14Sau một thao tác thì hoặc kết thúc hoặc
có đúng một thao tác để thực hiện tiếp theo.
Thuật toán phải kết thúc sau một số hữu hạn bước.
Thuật toán kết thúc phải nhận được output
TÍnh đúng đắn
Tính chất
Trang 15Tiết 11, 12
Chương I Một số khái niệm cơ bản
của tin học
Trang 16NỘI DUNG BÀI HỌC
1.Khái niệm bài toán
2.Khái niệm thuật toán
a VD 1 : Kiểm tra tính nguyên tố của một số nguyên
dương
3.Một số ví dụ về thuật toán
Trang 17KIỂM TRA TÍNH NGUYÊN TỐ CỦA 1
Trang 18XÁC ĐỊNH BÀI TOÁN
• Nhắc lại :
*INPUT và OUTPUT là gì?
+ Input: là các thông tin đã có (giả thiết)
+ Output: là các thông tin cần tìm dựa vào
các thông tin có từ Input (kết luận)
Trang 19XÁC ĐỊNH BÀI TOÁN
BÀI TOÁN :
Kiểm tra tính nguyên tố của một số nguyên
dương N.
+ Input: ? Nhập số nguyên dương N.
+ Output: ? “N là một số nguyên tố” hoặc “ N
không phải là một số nguyên tố”.
Trang 20XÁC ĐỊNH BÀI TOÁN
Nhắc về số nguyên tố:
Một số là số nguyên tố nếu nó khác nhau
Trang 21 Quay lại bài toán :
Input : Nhập số nguyên dương N.
Output : “N là số nguyên tố” hoặc “N không là số nguyên tố.”
Nội dung bài toán :
Trang 23Ý TƯỞNG
thì sao ? Thông thường:
Người ta xét xem N có ước từ 2 đến [ ] hay không ? (xét lần lượt từ trái sang phải )
Nếu có thì N không là số nguyên
tố và ngược lại.
N
Trang 24Ý TƯỞNG
TÓM LẠI Ý TƯỞNG CỦA BÀI TOÁN
TÓM LẠI Ý TƯỞNG CỦA BÀI TOÁN
Nhập số nguyên dương N nếu :
N = 1 thì N không là số nguyên tố.
N thuộc khoảng 1< N <4 thì N là số nguyên tố.
N ≥ 4 và N không có ước trong đoạn từ 2 đến
phần nguyên căn bậc hai của N ( ký hiệu là
[ ] ) thì N là số nguyên tố N
Trang 25Bước 5: Nếu i> [ V N ] thì
thông báo N là nguyên tố
rồi kết thúc.
Bước 6: Nếu N chia hết
cho i thì thông báo N
không nguyên tố rồi kết
N < 4 ?
i >[ ] ?
N chia hết
cho i ?
Thông báo N là số
nguyên tố rồi kết thúc
Thông báo N không
là số nguyên
tố rồi kết thúc
Đúng Sai
N
Trang 26Đúng Sai
Đúng Sai
a
b c
d e
f g
Trang 27NỘI DUNG BÀI HỌC
1.Khái niệm bài toán
2.Khái niệm thuật toán.
3.Một số ví dụ về thuật toán.
b Ví dụ 2 : Bài toán sắp xếp: Sắp xếp bằng tráo đổi
(Exchange Sort)
Trang 28Mô tả bài toán
Cho dãy A gồm N số nguyên a1,a2,
…,aN Cần sắp xếp các số hạng để dãy A trở thành dãy không giảm
Ví dụ: Dãy A gồm các phần tử 5, 6, 8, 2, 4,
7 ta sẽ sắp lại thành 2, 4, 5, 6, 7, 8.
Trang 30Thuật toán sắp xếp bằng tráo đổi (Exchange Sort):
Trang 31Ý tưởng: Với mỗi cặp số hạng đứng liền kề trong
dãy, nếu số trước lớn hơn số sau ta đổi chỗ chúng cho nhau Việc đó được lặp lại cho đến khi không
có đổi chỗ nào xảy ra nữa
Trang 32NHẬN XÉT
Sau mỗi lần đổi chỗ, giá trị lớn nhất sẽ
chuyển dần về cuối
Sau mỗi lượt có ít nhất một số hạng xếp
đúng và không tham gia vào quá trình đổi
chỗ nữa
Trang 33LIỆT KÊ:
Bước 1: Nhập N, các số hạng a1, a2, a3,…,aN ( N>0)
Bước 2: M N;
Bước 3: Nếu M < 2 thì đưa ra dãy A đã
được sắp xếp rồi kết thúc; Bước 4: M M – 1, i 0;
Bước 5: i i + 1;
Bước 6: Nếu i > M thì quay lại bước 3;
Bước 7: Nếu ai> ai+1 thì đổi chỗ ai
và a Bước 8: quay lại bước 5.i+1;
Trang 34M giảm dần sau mỗi
lượt Sau mỗi lượt
Trang 35Nội dung bài học
Khái niệm bài toán
Khái niệm thuật toán Một số ví dụ về thuật toán
a. Ví dụ 1: Kiểm tra tính nguyên tố của một
Trang 36Kiểm tra bài cũ
N = 27
N = 1 ? Nhập N
N < 4 ?
i >[ ] ?
N chia hết
cho i ?
Thông báo N là số
nguyên tố rồi kết thúc
Thông báo N
không
là số nguyên
tố rồi kết thúc
Đúng
Sai
N
Phân tích tính dừng của thuật toán?
Trang 37Tiết 13
Chương I Một số khái niệm cơ bản
của tin học
Trang 385 >< 6 < > 8 > < 2 > < 4 > 7
THÀNH CÔNG!
Sắp xếp bằng tráo đổi
Hãy tìm vị trí của phần tử
có giá trị là 7
Tìm thấy phần tử có giá
trị là 7 ở vị trí thứ 5
Trang 39Ví dụ:
TÌM 1 QUYỂN SÁCH TRONG 50 QUYỂN???
Trang 40Ví dụ:
THÌ SAO
Trang 41Một số công việc tìm kiếm
Tìm một quyển sách trên kệ
sách;
Tìm 1 từ trong cuốn từ điển;
Tìm 1 học sinh trong danh
sách lớp nào đó;
…
Trang 42Bài toán tìm kiếm
TÌM KIẾM NHỊ PHÂN
TÌM KIẾM
TUẦN TỰ
C Ó 2 THUẬT TOÁN
Trang 43Nội dung bài học
Khái niệm bài toán
Khái niệm thuật toán Một số ví dụ về thuật toán
a. Ví dụ 1: Kiểm tra tính nguyên tố của một
Trang 44Mô tả bài toán:
Với i = 5 thì a5 = 9 9
Trang 45Xác định bài toán:
Dãy A gồm N số nguyên khác nhau: a1,a2, ,aN và số nguyên k;
Chỉ số i sao cho ai =k hoặc thông báo không có số hạng nào của dãy A có giá trị bằng k.
Trang 46Ý TƯỞNG Tìm kiếm tuần tự được
có số hạng nào có giá trị bằng k, kết thúc
B6: Quay lại bước 3.
Thuật toán tìm kiếm tuần
tự
Trang 47B6: Quay lại bước 3
Thuật toán tìm kiếm tuần
Trang 48Minh họa thuật toán với N = 5, k= 6SƠ ĐỒ KHỐI
Trang 50Tiết 14
Chương I Một số khái niệm cơ bản
của tin học
Trang 51Nội dung bài học
Trang 53Xác định bài toán:
Hai số nguyên dương
A và B;
Ước chung lớn nhất của A và B.
Trang 54B2: Nếu A=B thì lấy giá trị
chung này làm ƯCLN rồi
chuyển đến bước 5;
B3: Nếu A>B thì A A - B,
ngược lại B B - A
B4: Quay lại bước 2;
B5: Đưa ra kết quả ƯCLN
Trang 55Minh họa thuật toán với A =54, B=90
Trang 57Minh họa thuật toán với A=20, B=30
Trang 58Tiết 15
Chương I Một số khái niệm cơ bản
của tin học
Trang 59Thuật toán tìm kiếm nhị phân (Binary
Search)
Trang 60Xác định bài toán:
Dãy A gồm N số nguyên a1,a2, ,aN khác nhau
và số nguyên k;
Chỉ số i sao cho ai =k hoặc thông báo không có số hạng nào của dãy A có giá trị bằng k.
Trang 61Nếu a Giua > k thì xét dãy
mới a 1 , a Giua-1;
Nếu a Giua < k thì xét dãy
mới a Giua+1 ,…, a N;
B1: Nhập N, các số hạng a 1 , , a N
và khoá k;
B2: Dau ← 1, Cuoi ← N;
B3: Giua ← [ (Dau + Cuoi)/2];
B4 : Nếu a Giua = k thì thông báo
chỉ số Giua, rồi kết thúc;
B5: Nếu a Giua > k thì đặt Cuoi
=Giua +1, rồi chuyển đến B 7;
B6: Dau ← Giua +1;
B7: Nếu Dau > Cuoi thì thông báo
dãy A không có số cần tìm, rồi kết thúc;
B8: Quay lại B 3;
Thuật toán tìm kiếm nhị
Trang 62Thuật toán tìm kiếm nhị
B3: Giua ← [ (Dau + Cuoi)/2];
B4 : Nếu a Giua = k thì thông báo
chỉ số Giua, rồi kết thúc;
B5: Nếu a Giua > k thì đặt Cuoi
=Giua -1, rồi chuyển đến B
7;
B6: Dau ← Giua +1;
B7: Nếu Dau > Cuoi thì thông
báo dãy A không có số cần
Trang 63Minh họa thuật toán