Sau khi thực hiện một thao tác thì hoặc là thuật toán kết thúc hoặc là có đúng một thao tác xác định để được thực hiện tiếp theo.. Tính đúng đắn[r]
Trang 21 Khái niệm bài toán
Ví dụ: Minh năm nay 2 tuổi, chị Minh hơn Minh 3 tuổi Hỏi chị của Minh năm nay bao nhiêu tuổi?
Bài toán đưa ra nhằm mục đích gì?
Bài toán đưa ra nhằm yêu cầu chúng ta tìm ra kết quả
Vậy bài toán là gì? Bài toán là yêu cầu đặt ra với
những dữ liệu cho
trước
Trang 3Khi chúng ta lên web của trường để xem điểm, nhập tên
và lớp => kết quả
Như vậy, chúng ta đã có một bài toán cho máy tính
Vậy trong phạm vi tin học, bài toán là gì?
Trong phạm vi tin học, Bài toán là một việc nào đó ta muốn máy tính thực hiện
Trang 4Để giải một bài toán ta phải làm như thế nào?
Để giải một bài toán ta phải biết 2 thông tin sau:
Bài toán cho biết những gì?
Bài toán yêu cầu tìm gì?
Ví dụ: Hoa có 2 cái kẹo mút, Mai hơn Hoa 3 cái kẹo mút Hỏi Mai có mấy cái kẹo mút
Bài toán có 2 thông tin:
Cho biết: Hoa có 2 cái kẹo, Mai hơn Hoa 3 cái
Yêu cầu: Mai có bao nhiêu cái kẹo?
Trang 5Để giải một bài toán trên máy tính thì làm như thế nào?
Khi chúng ta lên web của trường để xem điểm, nhập tên
và lớp => kết quả
Cho biết: tên, lớp
Yêu cầu: Xuất ra điểm
Khi sử dụng máy tính giải bài toán, ta cần quan tâm 2 yếu tố:
- Đưa vào máy thông tin gì (input)
- Cần lấy ra thông tin gì? (output)
Trang 6Vậy bài toán được cấu tạo bởi những thành phần nào?
Bài toán được cấu tạo từ hai thành phần:
- Input: các thông tin đã có
- Output: các thông tin cần tìm từ Input
Ví dụ: Cho 2, 4, 7, 9 Tìm số lớn nhất trong các số đã cho
- Input: 2, 4, 7, 9
- Output: Số lớn nhất
Trang 7Tìm Input và Output cho các bài toán sau?
Ví dụ: Kiểm tra tính nguyên tố của số tự nhiên n
Ví dụ: Tính n!
Ví dụ: Tìm diện tích hình chữ nhật ABCD Biết chiều dài là 20 cm, chiều rộng là 10
Trang 82 Khái niệm thuật toán
a Khái niệm
Khi sử dụng máy tính để làm việc ta cần quan tâm 2 thành phần: input và output Từ input máy tính sẽ cho
ra output cần tìm
Máy tính làm
cách nào để
cho ra output
nhỉ?
Muốn máy tính cho
ra output thì chúng
ta cần phải chỉ ra cho máy dãy các thao tác cần thực
hiện
Trang 9Vậy các thao
tác đó được
thực hiện như
thế nào Cái
nào thực hiện
trước cũng
được à?
Không phải vậy đâu Đó
là một dãy thao tác được sắp xếp theo một trật tự xác định.
Vậy 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ật 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.
Trang 10b Cách biểu diễn bài toán.
Có 2 cách cơ bản:
Biểu diễn bằng cách liệt kê
Ví dụ: Bài toán kiểm tra tính nguyên tố Input: Số nguyên n>0
Input: Số n>0
Output: “n là số nguyên tố” hoặc “n không là số nguyên tố”
Em hãy nêu ý tưởng để giải bài toán này?
Em hãy nêu các bước để giải bài toán này?
Trang 11Thuật toán: Thuật toán có 5 bước
Bước 1: Nhập n>0;
Bước 2: i ← 2; đếm ← 0;
Bước 3: Nếu i > n/2
Bước 3.1: Nếu đếm = 0 thì n là số nguyên tố Bước 3.2: Nếu đếm ≠ 0 thì n không là số nguyên tố Bước 4: Nếu n chia hết i => đếm ← đếm +1
Bước 5: i ← i+1; Quay lại bước 3;
Thực hiện giải bài toán trên với n=5;
Trang 12Biểu diễn bằng sơ đồ khối
Biểu diễn bằng sơ đồ khối có một số quy định như sau:
- Hình thoi thể hiện thao tác so sánh
- Hình chữ nhật thể hiện các phép tính toán
- Hình ô van thể hiện thao tác nhập, xuất dữ liệu
- các mũi tên: thể hiện trình tự thực hiện các thao tác
Trang 13Biểu diễn ví dụ trên bằng sơ đồ khối như sau:
Nhập n>0 i←2;dem ← 0;
n mod i=0
dem← dem+1
Không là nguyên tố
Nguyên tố
Đ S
Đ S
S Đ
Trang 14Các thao tác trong thuật toán phải được mô tả đủ chi tiết
để đối tượng thực hiện thuật toán có thể thực hiện được
Ví dụ: khi tính biểu thức delta trong giải phương trình bậc 2 Máy tính sẽ không biết tính delta như thế nào Vì vậy đòi hỏi người lập trình phải mô tả chi tiết các thao tác để máy tính có thể làm việc
Trang 15c Các tính chất của thuật toán.
Thuật toán có 3 tính chất:
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
Ví dụ: đối với ví dụ trên thì thuật toán sẽ dừng khi i > n/2;
Tính xác định
Sau khi thực hiện một thao tác thì hoặc là thuật toán kết thúc hoặc là có đúng một thao tác xác định để được thực hiện tiếp theo
Trang 16Tính đúng đắn
Sau khi thuật toán kết thúc, ta phải nhận được output cần tìm
Ví dụ: Dựa vào input và sau dãy các thao tác thì cho ta output cần tìm
Trang 17Thuật toán là gì?
Có mấy cách biểu diễn thuật toán?
Thuật toán có những tính chất gì?