Phương pháp trựctiếp • Xác định trựctiếp đượclờigiải qua mộtthủ tục tính toán (công thức, hệ thức, định luật, ) hoặc qua các bướccăn bản để có đượclờigiải. Việ iải ết ấ đề tê á tí h hỉ là th tá lậ tì h • Việcgiải quyết vấn đề trênmáy tính chỉ là thao tác lập trình hay là sự chuyển đổilờigiảitừ ngôn ngữ tự nhiên sang ngôn ngữ máy tính Æ kỹ thuậtlập trình trên máy tính. • Có ba loạicơ bản: o Lọai thứ nhất, dùng để biểudiễn cho các bài toán đãcólờigiải chính xác bằng một công thứctoánhọcnào đó. ví dụ: tính tổngnsố nguyên dương. ể ễ ầ (1) 1. | 03/04/2008 CÁC PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN TRÊN MÁY TÍNH Phạm Thế Bảo Khoa Toán – Tin học Trường Đại học Khoa học Tự nhiên Phân lọai 1. Phương pháptrựctiếp 2. Phương pháp gián tiếphoặc tìm kiếmlờigiải Phạm Thế Bảo 1 03/04/2008 Phương pháp trựctiếp • Xác định trựctiếp đượclờigiải qua mộtthủ tục tính toán (công thức, hệ thức, định luật, ) hoặc qua các bướccăn bản để có đượclờigiải. • Việcgiải quyết vấn đề têtrênmáy tính chỉ là thao tác lập tìtrình hay là sự chuyển đổilờigiảitừ ngôn ngữ tự nhiên sang ngôn ngữ máy tính Æ kỹ thuậtlập trình trên máy tính. • Có ba loạicơ bản: o Lọai thứ nhất, dùng để biểudiễn cho các bài toán đãcólờigiải chính xác bằng một công thứctoánhọcnàođó. nn(1)+ 1++ 2 . +=n ví dụ: tính tổngnsố nguyên dương. 2 o Loạithứ hai, biểudiễn cho các bài toán có công thứcgiảigần đúng (công thức tính sin, cos, giảiphương trình siêu việt, ). ví dụ:giảiphương trình bậc2 o Loạicuối cùng, biểudiễn các lờigiải không tường minh bằng kỹ thuật đệ quy. Phạm Thế Bảo Chuyển đổidữ liệu bài toán thành dữ liệuchương trình Nguyên lý 1: Dữ liệucủabàitoánsẽđượcbiểudiễnlạidướidạng các biếncủachương trình thông qua các quy tắcxácđịnh của ngôn ngữ lập trình cụ thể 1. Biến-phương tiệnbiểidiễndữ liệucủachương trình 2. Thay đổi giá trị củabiến-lệnh gán 3. Kiểudữ liệu 4. Hằng số 5. Cấu trúc một chương trình Phạm Thế Bảo 2 03/04/2008 Chuyển đổi quá trình tính toán của bài toán thành các cấutrúccủachương trình • Nguyên lý 2 (Định lý Bohn-Jacopini): Mọi quá trình tính toán đềucóthể mô tả và thựchiệndựatrênbacấutrúccơ bản: tuầntự,rẽ nhánh và lặp. 1. Cấutrúctuầntự 2. Cấutrúcrẽ nhánh 1. Rẽ nhánh có điềukiện: if (condition) • rẽ nhánh đơn: if () • rẽ nhánh đôi: if () . else . 2. Rẽ nhiều nhánh: case 3. Rẽ nhánh không có điềukiện: LABEL và GOTO 3. Cấutrúclặp: 1. Lặpxácđịnh 2. Lặp không xác định Phạm Thế Bảo Phân chia bài toán ban đầu thành những bài toán nhỏ hơn • Nguyên lý 3: Mọibàitoánlớn đềucóthể giải quyếtbằng cách phân chia thành những bài toán nhỏ hơn 1. Thủ .