BI GING TIN HC 10 1 Khi nim
BÀI GIẢNG TIN HỌC 10
1. 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
Khi 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.
Để 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?
Để 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)
Vậ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.
Tì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.
2. 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. Muốn máy tính cho ra output thì chúng Máy tính làm ta cần phải chỉ ra cách nào để cho máy dãy các cho ra output thao tác cần thực nhỉ? hiện.
Vậ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 à? 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 Không phải định sao cho sau khi thực vậy đâu. Đó là hiện dãy thao tác ấy, từ một dãy thao Input của bài toán ta nhận tác được sắp xếp theo một được Output cần tìm. trật tự xác định.
b. 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?
Thuậ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;
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
Biểu diễn ví dụ trên bằng sơ đồ khối như sau: Nhập n>0 i← 2; dem ← 0; Đ Đ i > n/2 Dem=0 S S Không là nguyên tố n mod i=0 Đ dem← dem+1 i ← i +1 S Nguyên tố
Cá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.
c. 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. Ví dụ: Đối với ví dụ trên thì sau bước 3 sẽ là bước 4 hoặc kết thúc chương trình
Tí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.
Thuậ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ì?
- Slides: 17