1. KHÁI NIỆM BÀITOÁN • Là một việc nào đó mà ta muốn máy tính thực hiện để từ thông tin đưa vào (Input) ta tìm được thông tin ra (Output) • Ví dụ: – Tìm UCLN của hai số nguyên dương. • Input: Hai số nguyên dương m và n. • Output: UCLN của m và n. – Bàitoán nấu cơm. • Input: Gạo, nước. • Output: Cơm đã chín. Một bàitoán được tạo bởi 2 thành phần là: Input (giả thiết), Output (kết luận) • Thuậttoán để giải một bàitoá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. • Có hai cách để thể hiện thuật toán: – Liệt kê từng bước. – Vẽ sơ đồ khối. 2. KHÁI NIỆM THUẬTTOÁN Thể hiện thao tác nhập/xuất dữ liệu Thể hiện thao tác so sánh Thể hiện các phép tính toán Quy định trình tự thực hiện các thao tác • Ví dụ: Tìm giá trị lớn nhất của một dãy số nguyên có n phần tử. – Input: số nguyên n và các số hạng a 1 ,a 2 ,…a n . – Output: số lớn nhất của dãy số. – Ý tưởng: • Giả sử a 1 là lớn nhất, ta cho max nhận giá trị a 1 . • Lần lượt so sánh max với các số còn lại trong dãy, nếu max<a i thì max nhận giá trị mới là a i . 2. KHÁI NIỆM THUẬTTOÁN Quả này lớn nhất Còn phòng nào không nhỉ A! còn Quả ở phòng số 1 lớn nhất Còn phòng nào không nhỉ A! còn Waa! Quả này là lớn nhất. Còn phòng nào không nhỉ A! còn Waa! Lớn quá. Quả này lớn nhất Còn phòng nào không nhỉ A! còn Quả ở phòng số 4 vẫn lớn nhất Còn phòng nào không nhỉ A! Hết rồi Vậy, quả ở phòng số 4 là lớn nhất • Ví dụ: Tìm giá trị lớn nhất của một dãy số nguyên có n phần tử. – Thuật toán: • Liệt kê: + B1: Nhập số nguyên dương n và dãy a 1 ,a 2 ,…a n . + B2: max:=a 1 ; i:=2; (hoặc max←a1; i←2;). + B3: Nếu i>n thì số lớn nhất là max. Dừng. + B4: Nếu a i >max thì max:=a i (hoặc max←a i ). + B5: i:=i+1 (hoặc i←i+1) quay lại bước 3. 2. KHÁI NIỆM THUẬTTOÁN • Ví dụ: Tìm giá trị lớn nhất của một dãy số nguyên có n phần tử. – Thuật toán: • Sơ đồ khối: Nhập n, a 1 ,a 2 a n max:=a 1 ; i:=2 i>n i:=i+1 F a i >max Số lớn nhất là max. Dừng T max:=a i T F 2. KHÁI NIỆM THUẬTTOÁN Nhập n, a 1 ,a 2 a n max:=a 1 ; i:=2 i>n i:=i+1 F a i >max Số lớn nhất là max. Dừng T max:=a i T F Nhập n, a 1 ,a 2 a n max:=a 1 ; i:=2 i>n i:=i+1 F a i >max Số lớn nhất là max. Dừng T max:=a i T F 3 1 5 7 6 A 1 2 3 4 5 i < max 2 n 5 3 a i 1 < 3 5 > 5 4 7 7 5 6 =6 ~ > . Input: Hai số nguyên dương m và n. • Output: UCLN của m và n. – Bài toán nấu cơm. • Input: Gạo, nước. • Output: Cơm đã chín. Một bài toán được tạo bởi 2 thành. Input của bài toán, ta nhận được Output cần tìm. • Có hai cách để thể hiện thuật toán: – Liệt kê từng bước. – Vẽ sơ đồ khối. 2. KHÁI NIỆM THUẬT TOÁN Thể