Phương pháp biểu diễn thuật toán Phương pháp biểu diễn thuật toán Bởi: Khoa CNTT ĐHSP KT Hưng Yên Khi chứng minh hoặc giải một bài toán trong toán học

Tài liệu tương tự
MỘT SỐ LƯU Ý KHI DẠY CÁC TIẾT ÔN TẬP CHƯƠNG Môn Tin học cung cấp cho học sinh những kiến thức phổ thông về ngành khoa học tin học, hình thành và phát

NGÔN NGƯ LÂ P TRIǸH Biên tập bởi: nguyenvanlinh

Toán bồi dưỡng lớp 4 CHUYÊN ĐỀ BỒI DƯỠNG TOÁN LỚP 4 CÁC BÀI TOÁN VỀ DÃY SỐ Họ và tên học sinh:.. Lớp:. Năm học: Liên hệ: Thầy Minh, 8/18 Ngu

2018 Nhận xét, phân tích, góp ý cho Chương trình môn Tin học trong Chương trình Giáo dục Phổ thông mới

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRUNG TÂM LUYỆN THI THỦ KHOA Hồ Chí Minh - Năm

Chương trình dịch

Chào bạn, mình là Đạt. Chào mừng bạn đã đến với cuốn sách Làm thế nào để có được một triệu lượt xem trên Youtube của mình. Đây là cuốn sách giá trị mà

HỘI THI TIN HỌC TRẺ TỈNH AN GIANG ĐỀ CHÍNH THỨC ĐỀ THI LÝ THUYẾT BẢNG A - KHỐI TIỂU HỌC Khóa ngày: Thời gian : 20 phút (không kể thời gian

Câu lệnh (statement) Câu lệnh (statement) Bởi: Khuyet Danh Trong C# một chỉ dẫn lập trình đầy đủ được gọi là câu lệnh. Chương trình bao gồm nhiều câu

Microsoft Word - QUI CHE QUAN TRI NOI BO CTY.doc

PowerPoint Template

BAN CHẤP HÀNH TRUNG ƯƠNG

Microsoft Word - KHÔNG GIAN TINH THẦN

Những cơ sở của ngôn ngữ C# Những cơ sở của ngôn ngữ C# Bởi: phamvanviet truonglapvy Trong chương này sẽ trình bày về hệ thống kiểu trong C#; phân biệ

50. Làm cách nào để người ta ngoan ngoãn bước vào trại tù mặc dù không biết trước ngày về? Đó là câu hỏi mà nhiều người không bị nếm mùi «học tập cải

Quy_che_quan_tri_Cty_KHP.doc

Microsoft Word - Van pháp ti?ng Vi?t.doc

ĐỨC TIN LÀ GÌ? Đức tin có một tầm quan trọng hết sức cơ bản trong cuộc sống đời người, đặc biệt là người trẻ. Một số người tự nhiên có đức tin, cơ hồ

60. Thống nhất đất nước và ba dòng thác cách mạng Nước Việt Nam đã trải qua nhiều lần bị chia cắt nên ước muốn thống nhất đất nước là một khát vọng tự

CUỘC ĐẤU TRANH XÂY DỰNG VÀ BẢO VỆ CHÍNH QUYỀN DÂN CHỦ NHÂN DÂN BÀI 1 Lãnh đạo xây dựng và bảo vệ chính quyền, chuẩn bị kháng chiến trong cả

Tạp chí KHOA HỌC ĐHSP TPHCM Số 54 năm 2014 PHƯƠNG PHÁP SỬ DỤNG TRÒ CHƠI TRONG DẠY HỌC NGUYỄN THỊ BÍCH HỒNG * TÓM TẮT Bài viết trình bày phương pháp sử

Nhìn Lại Thời Vàng Son của Giáo Dục VNCH Trước Năm 1975 GS Phạm Cao Dương Lời giới thiệu của Phạm Trần: Tôi xin chân thành cảm ơn Giáo sư, Tiến sỹ Lịc

1 LƯU ĐÌNH NAM

PowerPoint Presentation

03_Tap hop_P2_Baigiang

CÁC PHƯƠNG PHÁP GIẢNG DẠY TÍCH CỰC

VĂN TỰ BIỂU ÂM &VĂN TỰ TƯỢNG HÌNH

Bạn Tý của Tôi

03. CTK tin chi - CONG NGHE KY THUAT CO KHI.doc

BỘ GIÁO DỤC VÀ ĐÀO TẠO

No tile

Lập trình cấu trúc trong Visual Basic Lập trình cấu trúc trong Visual Basic Bởi: Nguyễn Sơn Học xong chương này, sinh viên phải nắm bắt được các vấn đ

VI. HƯỚNG DẪN SỬ DỤNG CỔNG THÔNG TIN ĐHQGHN A. Hướng dẫn truy cập: 1. Vào địa chỉ: 2. Màn hình đăng nhập xuất

Microsoft Word - nguyenminhtriet-phugiadinh[1]

SÁCH TRÒ CHƠI AWANA

Số 154 (7.502) Thứ Hai ngày 3/6/2019 XUẤT BẢN TỪ NĂM

Bài toán cây khung nhỏ nhất Bài toán cây khung nhỏ nhất Bởi: Khoa CNTT ĐHSP KT Hưng Yên Bài toán cây khung nhỏ nhất Bài toán cây khung nhỏ nhất của đồ

BỘ GIÁO DỤC VÀ ĐÀO TẠO

Phân tích Bài thơ về tiểu đội xe không kính của Phạm Tiến Duật – Văn hay lớp 9

TRƯỜNG ĐH GTVT TPHCM

Microsoft Word - NOI DUNG BAO CAO CHINH TRI.doc

"NHÂN-QUẢ" & ĐẠO ĐỨC

CHƯƠNG 1

LỌC ĐIỆN

Kinh Phật Thuyết Đại Thừa Vô Lượng Thọ Trang Nghiêm Thanh Tịnh Bình Đẳng Giác

NHỮNG HOẠT ĐỘNG

Uû Ban Nh©n D©n tp Hµ néi Céng hoµ x· héi chñ nghÜa viÖt nam

Các hình thức bảo lãnh ngân hàng Các hình thức bảo lãnh ngân hàng Bởi: Đại Học Kinh Tế Quốc Dân Phân loại theo phương thức phát hành: Bảo lãnh trực ti

TRƯỜNG TRUNG HỌC PHỔ THÔNG FPT BÀI KIỂM TRA NĂNG LỰC TƯ DUY THAM KHẢO Phần 1 Câu 1 Trung bình cộng của ba số là V. Nếu một trong ba số là Z, một số kh

KHÁI QUÁT CHUNG VỀ LUẬT HÀNH CHÍNH 1

DANH MỤC ĐỀ TÀI TIỂU LUẬN MÔN HỌC

PHẠM CÔNG THIỆN Những ngày hoang vu trên mặt đất tản mạn Tất cả đều xuất phát từ cơ cấu của ngôn ngữ, cú pháp, văn phạm, ngữ pháp: tất cả những thứ ấy

No tile

Microsoft Word - doc-unicode.doc

Thiền tông và Tịnh độ tông - chỗ gặp gỡ và không gặp gỡ

Microsoft Word - hbthao-ChientranhPhapThanh.doc

VỊ TRÍ CỦA VIỆT NAM TRONG THẾ GIỚI HIỆN ĐẠI HOÀN CẢNH LỊCH SỬ CỦA CỘNG ĐỒNG QUỐC GIA CỘNG SẢN VÀ SỰ PHÂN CHIA LÃNH THỔ ĐƯỜNG LỐI PHÁT TRIỂN CỦA DÂN TỘ

Microsoft Word - Day_lop_4_P1.doc

Microsoft Word - Dthuyenbi2.doc

Microsoft Word - giao an hoc ki I.doc

10SAI SÓT NGHIỆP VỤ XUẤT NHẬP KHẨU TÌNH HUỐNG THỰC TẾ KHIẾN DOANH NGHIỆP TRẢ GIÁ ĐẮT

CHƯƠNG 1: 1.1. Tổng quan Cảng biển. CÔNG TÁC ĐẢM BẢO AN TOÀN TRONG HOẠT ĐỘNG KHAI THÁC CẢNG BIỂN Khái niệm cảng biển Cảng biển là khu

Chương trình dịch

LUẬN VĂN: Áp dụng quản lý rủi ro vào qui trình thủ tục hải quan đối với hàng hóa xuất, nhập khẩu

NHẬP MÔN CÔNG NGHỆ PHẦN MỀM Giảng viên: Đỗ Thị Thanh Tuyền

LG-P698_VNM_cover.indd

Đàm Loan và Đạo Xước

Phụ lục II

Microsoft Word - doc-unicode.doc

Phan-tich-va-de-xuat-mot-so-giai-phap-hoan-thien-cong-tac-quan-ly-du-an-dau-tu-xay-dung-cong-trinh-cua-tong-cong-ty-dien-luc-mien-nam.pdf

No tile

Print

Microsoft Word - Các QĒ 214 vÀ cùng sự chớ Ăạo của TT - ngÀy 9-7 (1) (2)

Microsoft Word - WDRMainMessagesTranslatedVChiedit.docx

THÔNG TIN QUAN TRỌNG Cuốn sách hướng dẫn này sẽ giúp bạn thực hiện việc bảo trì bảo dưỡng trên thiết bị MTTS CPAP Việc bảo trì bảo dưỡng nên được tiến

Chương 1:

Những Đồng Minh Anh Hùng Harry F. Noyes III FB Hoài Nguyễn Cuộc chiến tranh Việt Nam qua đi hơn 40 năm qua nhưng những luận bàn về cuộc chiến này vẫn

ruot-waranty-full

BÀI TẬP TÌNH HUỐNG

HOC360.NET - TÀI LIỆU HỌC TẬP MIỄN PHÍ 252 đề Toán luyện thi Violympic lớp 3 Đề thi tự luyện nâng cao lớp 3 Bài 1: Tìm x a) x = b) x + 5

SỐ 112 MÙA THU TEXAS 2019 TRANG 47 Đọc Lại Lá Thư Cũ Số 60 AH Trần Trung Trực Không những vậy mà còn hay, xuất sắc là đằng khác. Thử xem: 1- Trang 1-4

Gia sư tiểu học CHUẨN KIẾN THỨC, KĨ NĂNG MÔN TOÁN LỚP 1 (Tuần 1 35) TUẦN: 1 Từ 24/8 đến 28/8 LỚP Tiết Tên bài dạy Yêu cầu c

Việc hôm nay (cứ) chớ để ngày mai

Microsoft Word - BussinessPlanBook-Vietnam-skabelon-nybund.doc

ĐỀ CƯƠNG BÁO CÁO CHÍNH TRỊ TRÌNH ĐẠI HỘI ĐẢNG BỘ TỈNH LẦN THỨ XV

Kinh Niệm Phật Ba La Mật - 4

Nghiên cứu ứng dụng mạng nơtron nhân tạo hỗ trợ công tác chọn thầu thi công ở Việt Nam

Hỏi Đáp Thường Thức Về Chính Trị Thái Trí hỏi Thái Đạo đáp 1. Hỏi: Xin nhận xét đại cương về những nền dân chủ đã có? Đáp: Phê bình các chế độ chính t

Microsoft Word - truyen-an-duong-vuong-va-mi-chau-trong-thuy.docx

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM NGHỆ THUẬT TRUNG ƯƠNG PHẠM THỊ THU HƯƠNG DẠY HỌC MỸ THUẬT THEO HƯỚNG TIẾP CẬN PHÁT TRIỂN NĂNG LỰC Ở TRƯỜ

Binh pháp Tôn Tử và hơn 200 trận đánh nổi tiếng trong lịch sử Trung Quốc Chia sẽ ebook : Tham gia cộng đồng chia sẽ sá

Microsoft Word - coi-vo-hinh.docx

Thứ Số 330 (7.313) Hai, ngày 26/11/ XUẤT BẢN TỪ NĂM 1985 TỔN

Bài tập chương 1 ngôn ngữ lập trình visual basic Bài tập chương 1 ngôn ngữ lập trình visual basic Bởi: Khoa CNTT ĐHSP KT Hưng Yên MỤC TIÊU: SAU KHI HO

LỜI NÓI ĐẦU Ebook miễn phí tại : Khi tình yêu đồng nghĩa với đau khổ, nghĩa là bạn đang yêu mù quáng. Khi phần lớn những cuộc trò chuy

PowerPoint Template

Tình Thương Nhân Loại, bài Đức Diêu Trì Kim Mẫu

Tự hào thanh niên xung phong Tây Nam bộ Trong những năm kháng chiến chống Mỹ cứu nước, cùng với cả nước, hàng ngàn thanh niên xung phong (TNXP) Tây Na

Microsoft Word - Sach TTNT A4_P2.doc

TRẢ LỜI KIẾN NGHỊ CỬ TRI SAU KỲ HỌP THỨ 3 HĐND TỈNH KHÓA IX ĐƠN VỊ: THÀNH PHỐ THỦ DẦU MỘT 1. Cử tri phường Định Hòa phản ánh: Quỹ quốc phòng an ninh k

Bản ghi:

Phương pháp biểu diễn thuật toán Bởi: Khoa CNTT ĐHSP KT Hưng Yên Khi chứng minh hoặc giải một bài toán trong toán học, ta thường dùng những ngôn từ toán học như : "ta có", "điều phải chứng minh", "giả thuyết",... và sử dụng những phép suy luận toán học như phép suy ra, tương đương,...thuật toán là một phương pháp thể hiện lời giải bài toán nên cũng phải tuân theo một số quy tắc nhất định. Ðể có thể truyền đạt thuật toán cho người khác hay chuyển thuật toán thành chương trình máy tính, ta phải có phương pháp biểu diễn thuật toán. Có 3 phương pháp biểu diễn thuật toán : 1. Dùng ngôn ngữ tự nhiên. 2. Dùng lưu đồ-sơ đồ khối (flowchart). 3. Dùng mã giả (pseudocode). Ngôn ngữ tự nhiên Trong cách biểu diễn thuật toán theo ngôn ngữ tự nhiên, người ta sử dụng ngôn ngữ thường ngày để liệt kê các bước của thuật toán (Các ví dụ về thuật toán trong mục 1 của chương sử dụng ngôn ngữ tự nhiên). Phương pháp biểu diễn này không yêu cầu người viết thuật toán cũng như người đọc thuật toán phải nắm các quy tắc. Tuy vậy, cách biểu diễn này thường dài dòng, không thể hiện rõ cấu trúc của thuật toán, đôi lúc gây hiểu lầm hoặc khó hiểu cho người đọc. Gần như không có một quy tắc cố định nào trong việc thể hiện thuật toán bằng ngôn ngữ tự nhiên. Tuy vậy, để dễ đọc, ta nên viết các bước con lùi vào bên phải và đánh số bước theo quy tắc phân cấp như 1, 1.1, 1.1.1,... Bạn có thể tham khảo lại ba ví dụ trong mục 1 của chương để hiểu cách biểu diễn thuật toán theo ngôn ngữ tự nhiên. Lưu đồ - sơ đồ khối Lưu đồ hay sơ đồ khối là một công cụ trực quan để diễn đạt các thuật toán. Biểu diễn thuật toán bằng lưu đồ sẽ giúp người đọc theo dõi được sự phân cấp các trường hợp và 1/7

quá trình xử lý của thuật toán. Phương pháp lưu đồ thường được dùng trong những thuật toán có tính rắc rối, khó theo dõi được quá trình xử lý. Ðể biểu diễn thuật toán theo sơ đồ khối, ta phải phân biệt hai loại thao tác. Một thao tác là thao tác chọn lựa dựa theo một điều kiện nào đó. Chẳng hạn : thao tác "nếu a = b thì thực hiện thao tác B2, ngược lại thực hiện B4" là thao tác chọn lựa. Các thao tác còn lại không thuộc loại chọn lựa được xếp vào loại hành động. Chẳng hạn, "Chọn một hộp bất kỳ và để lên dĩa cân còn trống." là một thao tác thuộc loại hành động. Thao tác chọn lựa (decision) Thao tác chọn lựa được biểu diễn bằng một hình thoi, bên trong chứa biểu thức điều kiện. Thao tác xử lý (process) Thao tác xử lý được biểu diễn bằng một hình chữ nhật, bên trong chứa nội dung xử lý. Ðường đi (route) Khi dùng ngôn ngữ tự nhiên, ta mặc định hiểu rằng quá trình thực hiện sẽ lần lượt đi từ bước trước đến bước sau (trừ khi có yêu cầu nhảy sang bước khác). Trong ngôn ngữ lưu đồ, do thể hiện các bước bằng hình vẽ và có thể đặt các hình vẽ này ở vị trí bất kỳ nên ta phải có phương pháp để thể hiện trình tự thực hiện các thao tác. Hai bước kế tiếp nhau được nối bằng một cung, trên cung có mũi tên để chỉ hướng thực hiện. Chẳng hạn trong hình dưới, trình tự thực hiện sẽ là B1, B2, B3. Từ thao tác chọn lựa có thể có đến hai hướng đi, một hướng ứng với điều kiện thỏa và một hướng ứng với điều kiện không thỏa. Do vậy, ta dùng hai cung xuất phát từ các đỉnh hình thoi, trên mỗi cung có ký hiệu Ð/Ðúng/Y/Yes để chỉ hướng đi ứng với điều kiện thỏa và ký hiệu S/Sai/N/No để chỉ hướng đi ứng với điều kiện không thỏa. 2/7

Ðiểm cuối (terminator) Ðiểm cuối là điểm khởi đầu và kết thúc của thuật toán, được biểu diễn bằng hình ovan, bên trong có ghi chữ bắt đầu/start/begin hoặc kết thúc/end. Ðiểm cuối chỉ có cung đi ra 3/7

(điểm khởi đầu) hoặc cung đi vào (điểm kết thúc). Xem lưu đồ thuật toán giải phương trình bậc hai ở trên để thấy cách sử dụng của điểm cuối. Ðiểm nối (connector) Ðiểm nối được dùng để nối các phần khác nhau của một lưu đồ lại với nhau. Bên trong điểm nối, ta đặt một ký hiệu để biết sự liên hệ giữa các điểm nối. Ðiểm nối sang trang (off-page connector) Tương tự như điểm nối, nhưng điểm nối sang trang được dùng khi lưu đồ quá lớn, phải vẽ trên nhiều trang. Bên trong điểm nối sang trang ta cũng đặt một ký hiệu để biết được sự liên hệ giữa điểm nối của các trang. Ở trên chỉ là các ký hiệu cơ bản và thường được dùng nhất. Trong thực tế, lưu đồ còn có nhiều ký hiệu khác nhưng thường chỉ dùng trong những lưu đồ lớn và phức tạp. Ðối với các thuật toán trong cuốn sách này, ta chỉ cần sử dụng các ký hiệu trên là đủ. 4/7

Mã giả Tuy sơ đồ khối thể hiện rõ quá trình xử lý và sự phân cấp các trường hợp của thuật toán nhưng lại cồng kềnh. Ðể mô tả một thuật toán nhỏ ta phải dùng một không gian rất lớn. Hơn nữa, lưu đồ chỉ phân biệt hai thao tác là rẽ nhánh (chọn lựa có điều kiện) và xử lý mà trong thực tế, các thuật toán còn có thêm các thao tác lặp (Chúng ta sẽ tìm hiểu về thao tác lặp trong các bài sau). Khi thể hiện thuật toán bằng mã giả, ta sẽ vay mượn các cú pháp của một ngôn ngữ lập trình nào đó để thể hiện thuật toán. Tất nhiên, mọi ngôn ngữ lập trình đều có những thao tác cơ bản là xử lý, rẽ nhánh và lặp. Dùng mã giả vừa tận dụng được các khái niệm trong ngôn ngữ lập trình, vừa giúp người cài đặt dễ dàng nắm bắt nội dung thuật toán. Tất nhiên là trong mã giả ta vẫn dùng một phần ngôn ngữ tự nhiên. Một khi đã vay mượn cú pháp và khái niệm của ngôn ngữ lập trình thì chắc chắn mã giả sẽ bị phụ thuộc vào ngôn ngữ lập trình đó. Chính vì lý do này, chúng ta chưa vội tìm hiểu về mã giả trong bài này (vì chúng ta chưa biết gì về ngôn ngữ lập trình!). Sau khi tìm hiểu xong bài về thủ tục - hàm bạn sẽ hiểu mã giả là gì! Một đoạn mã giả của thuật toán giải phương trình bậc hai if (delta > 0) { x 1 =(-b-sqrt(delta))/(2*a) x 2 =(-b+sqrt(delta))/(2*a) xuất kết quả : phương trình có hai nghiệm là x 1 và x 2 } else if (delta == 0) xuất kết quả : phương trình có nghiệm kép là -b/(2*a) else {trường hợp delta < 0 } xuất kết quả : phương trình vô nghiệm * Các từ in đậm là các từ khóa của ngôn ngữ C# 5/7

Sử dụng ngôn ngữ lập trình (Programming Language) Như ta đã thấy, các phương pháp biểu diễn ở trên mới chỉ dừng lại ở mức mô tả ý tưởng để giải quyết bài toán và như vậy còn quá đơn sơ để có thể làm cho máy tính hiểu và thực thi để đưa ra kết quả như mong muốn. Hơn nữa, việc biểu diễn như vậy có thể là không giống nhau (Về ngôn từ, câu chữ, trật tự...) đối với mỗi người khác nhau, do đó máy tính sẽ không thể đủ sức mạnh để xử lý mọi tình huống như vậy. Máy tính chỉ hiểu được các con số 0 và 1 tương ứng với 2 trạng thái "Đóng"-"Tắt" (Có điện và không có điện), trong khi đó con người lại không quen với 2 con số này, thường chỉ quen với các con số, ký tự chữ cái. Và vấn đề này đã được giải quyết theo hướng ôn hoà như sau: Có một "Đối tác" thứ 3 đứng ra làm trung gian, đối tác này có nhiệm vụ chuyển đổi các chỉ thị, câu lệnh của con người thành các chỉ thị mà máy tính có thể hiểu và thực thi được. Đối tác đó gọi là Ngôn ngữ lập trình. Khi có được một ngôn ngữ lập trình, thì việc ra lệnh cho máy tính thực thi các câu lệnh không phải là tuỳ ý như ngôn ngữ tự nhiên mà phải tuân theo những qui tắc do ngôn ngữ đó qui định Các qui tắc mà các ngôn ngữ lập trình này qui định còn được gọi là cú pháp - Syntax của ngôn ngữ đó. Mỗi ngôn ngữ lập trình đều có cú pháp riêng. Vậy: Ngôn ngữ lập trình là một chương trình có nhiệm vụ chuyển đổi các chỉ thị của con người thành các chỉ thị mà máy tính có thể hiểu và thực thi được. Một số ngôn ngữ lập trình phổ biến hiện nay tại Việt nam và Thế giới bao gồm Ngôn ngữ lập trình Pascal, C, C++, C#, Basic, Foxpro, Perl, Java... Một số ví dụ về sự chuyển đổi các chỉ thị của người dùng thành các chỉ thị của máy tính. Dưới đây, Ta lấy một ví dụ về hiển thị tổng của 2 số 100 và 200 lên màn hình trong các Ngôn ngữ lập trình phổ biến hiện nay là Pascal, C#, C/C++, Basic: Begin 1. Trong Pascal : Writeln(100+200); End. 1. Trong C# static void Main () { 6/7

Console.Write(100+200); } 1. Trong Basic: Sub Main MsgBox 100+200 End Sub 1. Trong C/C++ void main () { printf( %d,100+200); } 7/7