Bài giảng C - thuật toán
11LẬP TRÌNH C++LẬP TRÌNH C++§1. Thuật toán (§1. Thuật toán (AlgorithmAlgorithm)) 22I. Các khái niệm cơ bản I. Các khái niệm cơ bản Tin học là ngành khoa học nghiên cứu về các phương pháp lưu trữ, xử lý và truyền thông tin tự động có công cụ là Máy tính điện tử. Phần cứng (hardware)Phần cứng (hardware) - thiết bị vật lí của - thiết bị vật lí của MTĐT. Mục tiêu:MTĐT. Mục tiêu:Nâng cao tốc độ xử lý, tăng khả năng lưu Nâng cao tốc độ xử lý, tăng khả năng lưu trữ, tăng độ tin cậy, giảm năng lượng sử trữ, tăng độ tin cậy, giảm năng lượng sử dụng, tăng khả năng ghép nối . dụng, tăng khả năng ghép nối . 33Phần mềm (software)Phần mềm (software) là phương pháp xử là phương pháp xử lý thông tin bao gồm các chương trình có lý thông tin bao gồm các chương trình có chức năng điều khiển, khai thác phần chức năng điều khiển, khai thác phần cứng để thực hiện các yêu cầu xử lý cứng để thực hiện các yêu cầu xử lý thông tin. Mục đích:thông tin. Mục đích:Tìm ra các phương pháp xử lý thông tin Tìm ra các phương pháp xử lý thông tin có hiệu quả, tổ chức dữ liệu tốt và lập có hiệu quả, tổ chức dữ liệu tốt và lập trình thể hiện các phương pháp xử lýtrình thể hiện các phương pháp xử lý 44Công nghệ Thông tin (Information Technologie) là tập hợp các phương pháp khoa học, các phương tiện và công cụ kỹ thuật hiện đại nhằm tổ chức, khai thác và sử dụng có hiệu quả nguồn tài nguyên thông tin trong mọi lĩnh vực hoạt động của con người và xã hội .Công nghệ thông tin được phát triển trên nền Công nghệ thông tin được phát triển trên nền tảng phát triển của các công nghệ Tin học-Điện tảng phát triển của các công nghệ Tin học-Điện tử-Viễn thông và Tự động hoá. tử-Viễn thông và Tự động hoá. Công nghệ Thông tin mang một ý nghĩa rộng rãi Công nghệ Thông tin mang một ý nghĩa rộng rãi hơn: vừa là hơn: vừa là khoa học, vừa là công nghệ, vừa là kỹ thuật, bao trùm cả tin học, viễn thông và tự , bao trùm cả tin học, viễn thông và tự động hoá.động hoá. 55Đơn vị thông tin :Đơn vị thông tin :Các số, các ký tự, các ký hiệu, các lệnh điều Các số, các ký tự, các ký hiệu, các lệnh điều khiển trong máy tính được biểu diễn thông qua khiển trong máy tính được biểu diễn thông qua các số nhị phân chỉ gồm hai chữ số 0 và 1, mỗi các số nhị phân chỉ gồm hai chữ số 0 và 1, mỗi chữ số 0 và 1 đó được gọi là 1 bit. chữ số 0 và 1 đó được gọi là 1 bit. bitbit ( (BIBInary diginary digiT) T) là là đơn vị thông tinđơn vị thông tin nhỏ nhất lưu nhỏ nhất lưu trữ một trong hai chữ số 0 hoặc 1 (tương đương trữ một trong hai chữ số 0 hoặc 1 (tương đương với một trong hai trạng thái tắt hoặc mở) với một trong hai trạng thái tắt hoặc mở) Một số đơn vị bội của bit:Một số đơn vị bội của bit: Tên gọiTên gọiViết tắtViết tắtGiá trịGiá trịByteByteBB8 bit8 bitKiloByteKiloByteKBKB2 2 1010 byte =1024 byte byte =1024 byteMegaByteMegaByteMBMB2 2 1010 KB =1024 KB KB =1024 KBGigaByteGigaByteGBGB2 2 1010 MB =1024 MB MB =1024 MB TeraByteTeraByteTBTB2 2 1010 GB = 1024 GB GB = 1024 GB 66II. Thuật toán và biểu diễn thuật toán II. Thuật toán và biểu diễn thuật toán Thuật toán để giải quyết một bài toán A nào đó là tập các Thuật toán để giải quyết một bài toán A nào đó là tập các chỉ dẫn rõ ràng chính xác theo một trình tự nhất định, sao chỉ dẫn rõ ràng chính xác theo một trình tự nhất định, sao cho sau khi thực hiện theo các chỉ dẫn đó ta được lời giải cho sau khi thực hiện theo các chỉ dẫn đó ta được lời giải của bài toán A.của bài toán A.Ví dụ : Thuật toán Ơclit để tìm USCLN của 2 số tự nhiện a và bVí dụ : Thuật toán Ơclit để tìm USCLN của 2 số tự nhiện a và bLập bảng kiểm tra : a b12 1812 6 6 6B1) vào 2 số tự nhiên a và bB2) Nếu a==b thì B5)B3) Nếu a>b thì a=a-bcòn b=b-a;B4) quay lại B2)B5) in ra a là USCLNB6) kết thúc 77* Các đặc trưng cơ bản của thuật toán* Các đặc trưng cơ bản của thuật toán Tính hữu hạn: Một thuật toán bao giờ cũng phải Tính hữu hạn: Một thuật toán bao giờ cũng phải kết thúc sau một số hữu hạn thao tác.kết thúc sau một số hữu hạn thao tác.Tính xác định: Mọi chỉ dẫn của thuật toán phải Tính xác định: Mọi chỉ dẫn của thuật toán phải được xác định rõ ràng, chính xác và luôn thực được xác định rõ ràng, chính xác và luôn thực hiện được.hiện được.Tính hiệu quả: Thuật toán phải cho ra kết quả Tính hiệu quả: Thuật toán phải cho ra kết quả đúng và tối ưu.đúng và tối ưu.Tính phổ dụng: Một thuật toán gọi là có tính phổ Tính phổ dụng: Một thuật toán gọi là có tính phổ dụng nếu nó giải quyết được một lớp bài toán. dụng nếu nó giải quyết được một lớp bài toán. Giá trị vào (Input value): một thuật toán có thể Giá trị vào (Input value): một thuật toán có thể có môt số giá trị vào (giả thiết của bài toán)có môt số giá trị vào (giả thiết của bài toán)Giá trị ra (Output value): một thuật toán có thể Giá trị ra (Output value): một thuật toán có thể có môt số giá trị ra (lời giải của bài toáncó môt số giá trị ra (lời giải của bài toán)) 88Biểu diễn thuật toánBiểu diễn thuật toán Ví dụ : Thuật toán Ơclit để tìm USCLN của 2 Ví dụ : Thuật toán Ơclit để tìm USCLN của 2 số tự nhiện a và bsố tự nhiện a và bCách 1Cách 1 : Theo các bước : Theo các bước B1) vào 2 số tự nhiên a và bB1) vào 2 số tự nhiên a và bB2) Nếu a==b thì B5)B2) Nếu a==b thì B5)B3) Nếu a>b thì a=a-bB3) Nếu a>b thì a=a-bcòn b=b-a;còn b=b-a;B4) quay lại B2)B4) quay lại B2)B5) in ra a là USCLNB5) in ra a là USCLNB6) kết thúcB6) kết thúc 99Cách 2Cách 2 : Bằng ngôn ngữ có cấu trúc : : Bằng ngôn ngữ có cấu trúc :Bắt đầu Bắt đầu vào 2 số tự nhiên a và bvào 2 số tự nhiên a và bkhi a!=b làmkhi a!=b làmNếu a>b thì a=a-bNếu a>b thì a=a-bcòn b=b-a;còn b=b-a;XNếuXNếuXKhiXKhiin ra a là USCLNin ra a là USCLNKết thúcKết thúc 10Cách 3 : Bằng sơ đồ khối :Thao tácHìnhBắt đầu hay kết thúc thuật toánBắt đầuPhép toán hoặc phép gáni = 1a < bTrueFalseRẽ nhánh theo điều kiệnĐưa ra SNhập, xuất dữ liệu [...]...• Biều diễn thuật toán tìm ƯSCLN bằng sơ đồ khối : Begin Nhập a, b a == b True False b=b-a False a>b ƯSCLN là a True a=a-b End 11 . th c hiện theo c c chỉ dẫn đó ta đư c lời giải cho sau khi th c hiện theo c c chỉ dẫn đó ta đư c lời giải c a bài toán A .c a bài toán A.Ví dụ : Thuật toán. thì a=a-bcòn b=b-a;B4) quay lại B2)B5) in ra a là USCLNB6) kết th c 77* C c đ c trưng c bản c a thuật toán* C c đ c trưng c bản c a thuật toán Tính