Tiểu luận môn học đề tài giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn

26 1 0
Tiểu luận môn học đề tài giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Các định nghĩa tương tự có thể được thực hiện cho độ phức tạp khônggian và độ phức tạp không gian tiệm cận.Về bản chất, độ phức tạp giải thuật là một hàm ước lượng có thể không chính xác

lOMoARcPSD|39270902 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ======***====== TIỂU LUẬN MÔN HỌC Đề tài: Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Giáo viên hướng dẫn: Th.S Đoàn Văn Trung Lớp: Sinh viên: 2022DHCNTT05 Phạm Hùng Cường Phạm Văn Đức Nguyễn Việt Dũng Lương Văn Duy Nguyễn Hữu Hải Hà Nam, tháng 2, năm 2023 1 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 PHIẾU GIAO ĐỀ TÀI BỘ CÔNG THƯƠNG CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Độc lập - Tự do - Hạnh phúc _ _ PHIẾU GIAO ĐỀ TÀI TIỂU LUẬN Họ và tên: … … Lớp: 2022DHCNTT05 Khoa: Công nghệ thông tin Ngành học: Công nghệ thông tin Tên đề tài: Trình bày hiểu biết của em về giải thuật (Algorithm), sơ đồ giải thuật (Flowchart), code giả mã (Pseudo Code), mã nguồn (sourcecode) Mục đích: - Nêu ra được hiểu biết về giải thuật, sơ đồ giải thuật, code giả mã và mã nguồn - Hoàn thành một bài tiểu luận theo chủ đề chủ đề - Hiểu được thế nào là giải thuật, sơ đồ giải thuật, code giả mã và mã nguồn - Biết được cách thức hoạt động, cách sử dụng, cách viết, mục đích của giải thuật , sơ đồ giải thuật, mã giả, mã nguồn Yêu cầu: - Tìm hiểu về giải thuật-Algorthim, sơ đồ giải thuật-Flowchart, code giả mã-Pseudo code, mã nguồn-Source code - Trình bày được các nội dung liên quan đến đề tài Nơi thực tập: Khoa CNTT - Trường Đại học Công nghiệp Hà Nội Kết quả thu được : Bài tiểu luận môn học Ngày giao đề tài: 23/12/2022 Ngày hoàn thành: 15/02/2023 Giáo viên hướng dẫn : Ths Đoàn Văn Trung ĐẠI DIỆN NHÓM Hà Nam, ngày 22 tháng 2 năm 2023 GIÁO VIÊN HƯỚNG DẪN 2 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 PHÂN CÔNG CÔNG VIỆC Tuần Người thực hiện Nội dung công việc Kết quả đạt được 1 Cả nhóm Nhận đề tài, ngiên cứu đề tài, tìm hiểu nội dung, Giải thuật do PH.Cường 2 PH Cường phân chia công việc Sơ đồ giải thuật do NH.Hải NH Hải Mã giả do PV Đức PV Đức Chọn trưởng nhóm Mã nguồn LV.Duy LV Duy NV.Dũng làm trưởng nhóm 3 NV Dũng -Tìm hiểu về giải thuật -Nội dung, tài liệu về chủ đề Cả nhóm -Tìm hiểu về sơ đồ gt -Tìm hiểu về mã giả -Hoàn thành vào thứ tư 4 NV Dũng -Tìm hiểu về mã nguồn -Hoàn thành bài thuyết trình Cả nhóm -Thứ hai bắt đầu làm bài -4 câu hỏi cho phần thuyết 5 Cả nhóm thuyết trình trên phần trình mỗi câu một phần lý mềm powerpoint thuyết -Sáng thứ năm,phân -Bài thuyết trình thành công công, tập thử bài thuyết trình Hai cuốn tài liệu tham khảo -Thêm phần câu hỏi Hoàn thành nội dung cho bài -Thứ 6, Thuyết trình, 4 tiểu luận thành viên mỗi thành Hoàn thiện đẩy đủ cho nội viên thuyết trình một nội dung bài Tiểu luận, Có thêm dung đã giao trước đó một số hình ảnh, bảng biểu -Tìm thêm tài liệu từ Hoàn thành xong bài tiểu sách, giảo trình, bài luận giảng về chủ đề để đưa vào bài tiểu luận, -Chia công việc cho nhóm mỗi người một phần -Tìm thêm thông tin trên mạng -Thực hiện chỉnh sửa, hoàn thiện bài tiểu luận -Hoàn thành các mục còn thiếu của bài tiểu luận -15/2/2023, Hoàn thiện bài Tiểu luận 3 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 LỜI NÓI ĐẦU Ngày nay, khi công nghệ thông tin ngày càng phát triển, khoa học máy tính không ngừng vươn lên Theo đó ngành công nghệ thông tin cũng phát triển rất mạnh Từ đó nghề lập trình viên đã trở thành một công việc phổ biến và được nhiều người theo học Là một lập trình viên thì tất nhiên bạn phải biết lập trình Và một trong nhữn vấn đề của lập trình đó là các thuật toán để giải quyết một thuật toán thì cần biết tới giải thuật Bài tiểu luận của chúng tôi sẽ giúp mọi người tìm hiểu về giải thuật và các nội dung liên quan tới giải thuật như: sơ đồ giải thuật, code giả mã và mã nguồn 4 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 Mục Lục DANH SÁCH HÌNH VẼ 6 DANH SÁCH BẢNG BIỂU 7 CHƯƠNG 1 GIẢI THUẬT VÀ SƠ ĐỒ GIẢI THUẬT .8 1.1 Giải thuật - Algorithm .8 1.1.1 Độ phức tạp của giải thuật 8 1.1.2 Khái niệm giải thuật 9 1.1.3 Một số giải thuật quan trọng 9 1.1.4 Đặc điểm của giải thuật 9 1.1.5 Phân tích giải thuật .10 1.1.6 Cách viết một giải thuật 10 1.2 Sơ đồ giải thuật - Flowchart 11 1.2.1 Flowchart là gì? 11 1.2.2 Mục đích vẽ Flowchart 11 1.2.3 Cách viết Flowchart 12 CHƯƠNG 2 CODE GIẢ MÃ VÀ MÃ NGUỒN .15 2.1 Code giả mã - Pseudo Code 15 2.1.1 Mã giả hữu ích ra sao? 15 2.1.2 Mã giả - Pseudo code là gì 15 2.1.3 Ưu điểm và nhược điểm của mã giả .15 a) Ưu điểm 15 b) Nhược điểm .16 2.1.4 Cách viết pseudo code 16 2.2 Mã nguồn - Sourcecode 19 2.2.1 Mã nguồn - Sourcecode là gì? 19 2.2.2 Mục đích của mã nguồn .19 2.2.3 Vai trò của mã nguồn trong lập trình webside 20 2.2.4 Các loại mã nguồn 20 2.2.5 Cách mã nguồn được thực thi 24 CHƯƠNG 3 KẾT LUẬN 25 5 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Nhóm 3 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn DANH SÁCH HÌNH VẼ 1 Hình ảnh minh họa Flowchart 2 Logo Wordpress 3 Logo Joomla 4 Logo Drupal 5 Logo Magento 6 Logo Opencart 6 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Nhóm 3 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn DANH SÁCH BẢNG BIỂU Một số kí hiệu thường dùng trong Flowchart Mã nguồn mở/ Mã nguồn đóng 7 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 CHƯƠNG 1 GIẢI THUẬT VÀ SƠ ĐỒ GIẢI THUẬT 1.1 Giải thuật - Algorithm 1.1.1 Độ phức tạp của giải thuật Các thuật toán có thể được đánh giá bằng nhiều tiêu chí khác nhau Thông thường, chúng ta sẽ quan tâm đến tốc độ tăng trưởng của thời gian hoặc không gian cần thiết để giải quyết các trường hợp ngày càng lớn hơn của một vấn đề Chúng ta muốn liên kết với một vấn đề một số nguyên gọi là kích thước của vấn đề, là thước đo số lượng dữ liệu đầu vào Ví dụ, kích thước của một bài toán nhân ma trận có thể là kích thước lớn nhất của ma trận được nhân Kích thước của một bài toán đồ thị có thể là số cạnh Thời gian cần thiết của một thuật toán được biểu thị dưới dạng một hàm của kích thước của một vấn đề được gọi là độ phức tạp thời gian của thuật toán Hành vi hạn chế của độ phức tạp khi kích thước tăng lên được gọi là độ phức tạp thời gian tiệm cận Các định nghĩa tương tự có thể được thực hiện cho độ phức tạp không gian và độ phức tạp không gian tiệm cận Về bản chất, độ phức tạp giải thuật là một hàm ước lượng (có thể không chính xác) số phép tính mà giải thuật cần thực hiện (từ đó dễ dàng suy ra thời gian thực hiện của giải thuật) đối với bộ dữ liệu đầu vào (Input) có kích thước n Trong đó, n có thể là số phần tử của mảng trong trường hợp bài toán sắp xếp hoặc tìm kiếm, hoặc có thể là độ lớn của số trong bài toán kiểm tra số nguyên tố, … Giả sử X là một giải thuật và n là kích cỡ của dữ liệu đầu vào Thời gian và lượng bộ nhớ được sử dụng bởi giải thuật X là hai nhân tố chính quyết định hiệu quả của giải thuật X:  Nhân tố thời gian: Thời gian được đánh giá bằng việc tính số phép tính chính (chẳng hạn như các phép so sánh trong thuật toán sắp xếp)  Nhân tố bộ nhớ: Lượng bộ nhớ được đánh giá bằng việc tính lượng bộ nhớ tối đa mà giải thuật cần sử dụng Độ phức tạp của một giải thuật (một hàm f(n)) cung cấp mối quan hệ giữa thời gian chạy và/hoặc lượng bộ nhớ cần được sử dụng bởi giải thuật 8 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 1.1.2 Khái niệm giải thuật Giải thuật Algorithms (hay còn gọi là thuật toán) là một tập hợp hữu hạn các chỉ thị để được thực thi theo một thứ tự nào đó để thu được kết quả mong muốn Giải thuật là độc lập với các ngôn ngữ lập trình Tức là một giải thuật có thể được triển khai trong nhiều ngôn ngữ lập trình khác nhau 1.1.3 Một số giải thuật quan trọng Xuất phát từ quan điểm của cấu trúc dữ liệu, dưới đây là một số giải thuật quan trọng mà chúng ta hay gặp và hay sử dụng: •Giải thuật Tìm kiếm: Giải thuật để tìm kiếm một phần tử trong một cấu trúc dữ liệu •Giải thuật Sắp xếp : Giải thuật để sắp xếp các phần tử theo thứ tự nào đó •Giải thuật Chèn: Giải thuật để chèn phần từ vào trong một cấu trúc dữ liệu •Giải thuật Cập nhật: Giải thuật để cập nhật (hay update) một phần tử đã tồn tại trong một cấu trúc dữ liệu •Giải thuật Xóa: Giải thuật để xóa một phần tử đang tồn tại từ một cấu trúc dữ liệu 1.1.4 Đặc điểm của giải thuật Không phải tất cả các thủ tục có thể được gọi là một giải thuật Một giải thuật nên có các đặc điểm sau: •Tính xác định: Giải thuật nên rõ ràng và không mơ hồ Mỗi một giai đoạn (hay mỗi bước) nên rõ ràng và chỉ mang một mục đích nhất định •Dữ liệu đầu vào xác định: Một giải thuật nên có 0 hoặc nhiều hơn dữ liệu đầu vào đã xác định •Kết quả đầu ra: Một giải thuật nên có một hoặc nhiều dữ liệu đầu ra đã xác định, và nên kết nối với kiểu kết quả bạn mong muốn •Tính dừng: Các giải thuật phải kết thúc sau một số hữu hạn các bước •Tính hiệu quả: Một giải thuật nên là có thể thi hành được với các nguồn có sẵn, tức là có khả năng giải quyết hiệu quả vấn đề trong điều kiện thời gian và tài nguyên cho phép 9 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 •Tính phổ biến: Một giải thuật có tính phổ biến nếu giải thuật này có thể giải quyết được một lớp các vấn đề tương tự • Độc lập: Một giải thuật nên có các chỉ thị độc lập với bất kỳ phần code lập trình nào 1.1.5 Phân tích giải thuật Hiệu quả của một giải thuật có thể được phân tích dựa trên 2 góc độ: trước khi triển khai và sau khi triển khai: Phân tích lý thuyết: Có thể coi đây là phân tích chỉ dựa trên lý thuyết Hiệu quả của giải thuật được đánh giá bằng việc giả sử rằng tất cả các yếu tố khác (ví dụ: tốc độ vi xử lý, …) là hằng số và không ảnh hưởng tới sự triển khai giải thuật Phân tích tiệm cận: Việc phân tích giải thuật này được tiến hành sau khi đã tiến hành trên một ngôn ngữ lập trình nào đó Sau khi chạy và kiểm tra đo lường các thông số liên quan thì hiệu quả của giải thuật dựa trên các thông số như thời gian chạy, thời gian thực thi, lượng bộ nhớ cần dùng, … 1.1.6 Cách viết một giải thuật Không có bất kỳ tiêu chuẩn nào cho trước để viết các giải thuật Các ngôn ngữ lập trình đều có các vòng lặp (do, for, while) và các lệnh điều khiển luồng (if-else), … Có thể sử dụng những lệnh này để viết một giải thuật Từ việc định vị vấn đề, chúng ta sẽ thiết kế ra giải pháp để giải quyết vấn đề đó và sau đó là viết giải thuật Ví dụ: Thiết kế một giải thuật để cộng hai số và hiển thị kết quả Bước 1: Bắt đầu Bước 2: Khai báo ba số a, b & c Bước 3: Định nghĩa các giá trị của a & b Bước 4: Cộng các giá trị của a & b Bước 5: Lưu trữ kết quả của Bước 4 vào biến c Bước 6: In biến c Bước 7: Kết thúc 10 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 1.2.3 Cách vẽ Flowchart a) Một số quy tắt vẽ Quy tắc 1: Sử dụng nhất quán các thành phần Yếu tố đầu tiên chính là tính nhất quán từ hình khối, đường dẫn, văn bản Trong đó:  Hình elip: Thể hiện điểm bắt đầu và kết thúc của một quy trình  Hình chữ nhật: Các bước hay hành động triển khai do cá nhân đảm nhiệm  Hình thoi: Dùng khi có quyết định hay phê chuẩn cần lựa chọn  Đường dẫn mũi tên chỉ hướng của dòng chảy các bước 1 Hình ảnh minh họa Flowchart Quy tắc 2: Sắp xếp luồng dữ liệu khoa học trên cùng một trang Khi bạn muốn tạo ra một biểu đồ hoàn chỉnh, hiệu quả và tốt nhất thì nên tối ưu trên cùng một trang Đây có thể nói là một quy tắc vô cùng quan trọng và then chốt trong quá trình vẽ biểu đồ Flowchart 12 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 Trong trường hợp, biểu đồ có kích thước lớn, bạn có thể sử dụng các mẹo như sau:  Tối ưu câu từ, ý nghĩa một cách ngắn gọn và xúc tích nhất, ;làm cho lưu đồ nhỏ hơn Phông chữ đi kèm lúc này cần hiệu chỉnh to lên để bù đắp việc giảm tỷ lệ trên Tổng quan về phần nhìn bạn dễ nhận thấy giao diện không bị quá bé  Tùy theo số lượng bước, người dùng có thể sắp xếp đường dẫn từ trái sang phải Sau đó, những trình tự còn lại sẽ hạ xuống dòng dưới thực hiện tiếp  Ngoài ra, một cách xử lý khác là chia Flowchart lớn ra thành các tập hợp nhỏ Đầu tiên, bạn hãy vẽ lưu đồ miêu tả tổng quan các bước hoàn chỉnh của quy trình Trong mỗi bản chính này sẽ chứa một siêu liên kết đến các sơ đồ riêng biệt hiển thị chi tiết bước đó Quy tắc 3: Đặt dòng trả về phía dưới biểu đồ Quy tắc còn lại trong vẽ Flowchart đó chính là đặt dòng trả về phía dưới biểu đồ luồng Thực tế, chúng ta đọc văn bản từ đầu trang xuống một cách tự nhiên theo tuần tự Do đó, mọi dòng trả ngược về trước cần đặt bên dưới Trong trường hợp xuất hiện 2 dòng cần trả về tuyệt đối không được trùng nhau b) Cách vẽ Flowchart trong lập trình Nhìn sơ qua, việc vẽ Flowchart có vẻ khá đơn giản Khi bạn chỉ cần sử dụng các loại hình khối và mũi tên trong đó Có 4 bước cơ bản để vẽ một sơ đồ giải thuật: Bước 1: Xác định điểm bắt đầu và kết thúc Bước 2: Xác định biến truyền vào và ra Bước 3: Xác định các lệnh rẽ nhánh, lặp và điều kiện Bước 4: Bật máy tính lên và vẽ thôi Thông thường, mỗi flow chart sẽ tương ứng với một chức năng (function trong sản phẩm của bạn) Bạn không cần vẽ chi tiết việc mình cần làm gì trong code Mà chỉ cần vẽ ra luồng chính để hoàn thành chức năng đó mà thôi Nếu chức năng đó phức tạp, chúng ta lại bóc nhỏ chúng ra thành các chức năng đơn giản hơn Và vẽ flow chart cho các chức năng nhỏ đó 13 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 Một số kí hiệu thường dùng trong Flowchart: Ý Nghĩa Sắp xếp STT Kí Hiệu Ý Nghĩa STT Kí Hiệu Hướng đi 1 Nhiều tài liệu Bắt đầu, kết thúc 8 Kết nối Chuẩn bị 2 Điều kiện, rẽ 9 nhánh,lựa chọn 3 Nhập thông tin 10 4 Thực hiện xử lí 11 5 Tài liệu đi kèm 12 6 Lưu trữ 13 7 Chờ đợi 14 Một số công cụ vẽ Flowchart: -Draw.io Làm việc với Draw.io, bạn sẽ được thực hiện từng thao tác từ nhỏ đến lớn cũng như được tùy chỉnh và cá nhân hóa lưu đồ của mình Đây là một công cụ miễn phí và là webapp nên có thể dùng ở bất cứ đâu, miễn là có máy tính Mình cũng thường dùng công cụ này nhất -Creately Creately nằm trong top những website tạo lưu đồ uy tín nhất trên thế giới thể hiện qua việc luôn là đối tác lớn và được đề xuất sử dụng bởi NASA, Amazon, Paypal, Cũng là webapp nên dùng rất tiện lợi -Lucidchart Lucidchart là một website vẽ lưu đồ với hệ thống các kiểu lưu đồ cực kì phong phú, phù hợp với nhiều lĩnh vực Lucidchart sẽ tự động tìm kiếm cho bạn những kiểu phù hợp hoặc có những gợi ý sao cho các bạn có thể làm việc được một cách tốt nhất, từ cơ bản cho tới nâng cao 14 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 CHƯƠNG 2 CODE GIẢ MÃ VÀ MÃ NGUỒN 2.1 Code giả mã - Pseudo Code 2.1.1 Mã giả hữu ích ra sao? Mã giả (code giả mã)-Pseudocode giúp bạn lập kế hoạch cho ứng dụng của mình trước khi viết Nó giúp bạn tạo các thuật toán theo định dạng dễ đọc hơn cú pháp code Ví dụ JavaScript rất dễ đọc nếu bạn biết ngôn ngữ lập trình này Các thuật ngữ cụ thể như window.prompt hoặc console.log không tiết lộ nhiều về thuật toán Nếu bạn phỏng vấn để trở thành một kỹ sư phần mềm, nhà tuyển dụng sẽ không mong muốn bạn ghi nhớ cú pháp Họ sẽ hỏi kiến thức của bạn về các thuật toán và cấu trúc Bạn sẽ viết code tốt hơn nhiều nếu xây dựng các thuật toán và cấu trúc của mình trước khi bắt đầu viết code 2.1.2 Mã giả - Pseudo code là gì Pseudocode (mã giả hay code giả mã) là một cách mô tả lập trình không chính thức, không yêu cầu bất kỳ cú pháp ngôn ngữ lập trình nào Pseudocode chỉ đơn giản là việc triển khai một thuật toán dưới dạng chú thích và văn bản thông tin bằng tiếng Anh Do không thuộc về bất kỳ ngôn ngữ lập trình nào, cú pháp của mã giả cũng không giống cú pháp của ngôn ngữ lập trình Chính vì vậy, máy tính không thể thông dịch hay phiên dịch pseudocode Mục đích của pseudocode chính là tạo ra một dàn ý hoặc bản nháp sơ bộ cho chương trình Nhờ vậy, System Designers có thể dễ dàng truyền đạt các yêu cầu của các dự án đến lập trình viên 2.1.3 Ưu điểm và nhược điểm của mã giả a) Ưu điểm Pseudocode là một trong những cách tốt nhất để bắt đầu triển khai một thuật toán Nhờ pseudocode, khả năng đọc code của các lập trình viên tương lai dễ dàng được cải thiện Cho dù sau này họ lựa chọn sử dụng loại ngôn ngữ lập trình nào đi chăng nữa Trong rất nhiều ngành nghề, tiếp cận tài liệu đóng vai trò cực kỳ quan trọng Và điều này cũng tương tự trong ngành công nghiệp phần mềm Ở đó, pseudocode 15 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 đang đóng vai trò như cầu nối giữa phần mềm với thuật toán hoặc lưu đồ (flowchart) Lúc này, pseudocode chính là tài liệu thô truyền tải những yêu cầu của dự án đến các thành viên Pseudocode giúp cho giai đoạn viết code của lập trình viên trở nên dễ dàng hơn Bởi, mục tiêu chính của mã giả chính là giải thích chính xác từng dòng, từng đoạn trong chương trình b) Nhược điểm Pseudocode không cung cấp một đồ thị biểu diễn trực quan về logic của chương trình Không có định dạng cố định cho mã giả Mỗi công ty đều viết pseudocode theo cách riêng của mình bởi không có một tiêu chuẩn cố định cho mã giả 2.1.4 Cách viết pseudo code Để viết pseudocode, bạn có thể tham khảo quy trình dưới đây: 1 Sắp xếp đầu công việc theo trình tự và viết pseudocode tương ứng 2 Bắt đầu thiết lập các mục tiêu chính và mục tiêu nhánh của các mã giả Viết một chương trình đầy đủ bằng pseudocode đòi hỏi rất nhiều câu lệnh và keyword khác nhau giống như lập trình thông thường Hãy dựa vào các keyword với những câu lệnh pseudocode để xây dựng các thuật toán Điều kiện Câu lệnh có điều kiện rất quan trọng trong lập trình Các câu lệnh này là câu lệnh IF hoặc câu lệnh IF/ELSE, có thể thêm logic vào code Các câu lệnh này được viết bằng pseudocode, sử dụng:  IF  ELSE  ELSE IF  THEN Ở đây, chương trình thực hiện một câu lệnh IF/ELSE đơn giản được viết bằng pseudocode Hãy xem thử bạn có thể xác định những gì code này đang cố gắng thực hiện chỉ bằng cách đọc nó START 16 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 PROGRAM isOdd Create variable Choice Ask the user for a number READ INPUT into Choice IF Choice is even THEN PRINT "No" ELSE PRINT "Yes" ENDIF END Đó là một chương trình khá đơn giản, yêu cầu người dùng đưa ra một con số và làm một điều gì đó tùy thuộc vào việc số đó là số lẻ hay số chẵn Phép lặp Một phần thiết yếu khác của lập trình là phép lặp (iteration), còn được gọi là tạo vòng lặp Một số vòng lặp phổ biến là for và while Cả hai đều có thể được viết bằng pseudocode START PROGRAM forLoop FOR 1 through 12 PRINT "Hello" ENDFOR END Thuật toán này dành cho một chương trình sẽ in 12 lần chữ “Hello” Điều này cho thấy việc viết một vòng lặp trong pseudocode đơn giản như thế nào Các vòng lặp while cũng được viết rất dễ dàng START PROGRAM whileLoop Create variable Counter SET Counter equal to 1 WHILE Counter is less than 10 Print "Hello" 17 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 INCREMENT Counter ENDWHILE END Một thuật toán khá đơn giản khác sử dụng vòng lặp while để in ra “Hello” Cả hai ví dụ vòng lặp đều có khởi đầu và kết thúc rõ ràng cho phép lặp Bạn cũng có thể viết những vòng lặp do-while Các keyword trong pseudocode sẽ là REPEAT và UNTIL START PROGRAM doWhileLoop Create variable Counter SET Counter equal to 1 REPEAT Print "Hello" INCREMENT Counter UNTIL Counter is equal to 10 END Giống như vòng lặp do-while, điều này sẽ thực hiện một hành động cho đến khi các tiêu chí nhất định được đáp ứng Một khi nó được đáp ứng, vòng lặp sẽ thoát ra Hàm Hàm là người bạn tốt nhất lập trình viên Chúng chứa code có thể được gọi đi gọi lại và sử dụng trong tất cả các ngôn ngữ lập trình cấp cao Thêm hàm vào pseudocode rất dễ dàng START PROGRAM sampleFunction PRINT "This is a function" END Bạn có thể gọi các hàm trong pseudocode call sampleFunction Hàm rất đơn giản và bạn có thể thêm bất kỳ logic nào bạn thích 18 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 Xử lý lỗi Có thể viết code phản ứng với lỗi là điều rất quan trọng khi các ứng dụng được phát triển Bạn có thể bao gồm những code này vào pseudocode của mình Bạn có thể xử lý các lỗi và ngoại lệ (exception) bằng cách sử dụng keyword: EXCEPTION Ở đây, một thuật toán đơn giản sẽ “bắt” được lỗi START PROGRAM catchError Create variable Number Ask the user for a number READ INPUT into Number EXCEPTION WHEN Number is not a number PRINT "Error: Please pick a number" END 2.2 Mã nguồn - Sourcecode 2.2.1 Mã nguồn - Sourcecode là gì? Source code hay còn được gọi là mã nguồn (bộ mã nguồn) được tạo bởi các lập trình viên bằng cách sử dụng những ngôn ngữ lập trình như: Java, PHP, Ruby, C#, Các dòng lệnh được hiển thị dưới dạng văn bản, mỗi một source code (mã nguồn) là tập hợp của rất nhiều dòng lệnh khác nhau giúp tạo ra những tác vụ mà người dùng có thể thực hiện ngay trên website Source code càng thân thiện người dùng sẽ càng có nhiều trải nghiệm tích cực, điều này góp phần nâng cao cảm xúc mua bán trao đổi của khách hàng đối với website nói chung và với doanh nghiệp nói riêng Trong lập trình website, mã nguồn chính là một trong những thành tố cơ bản giúp kết nối giao diện của trang web với hệ thống cơ sở dữ liệu Mục đích cuối cùng đó là tạo ra một website hoàn chỉnh 2.2.2 Mục đích của mã nguồn Mục đích chính của mã nguồn là làm nền tảng để tạo ra các phần mềm Ngoài ra mã nguồn còn có nhiều mục đích khác như: hạn chế cho những người có 19 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 Giải thuật, sơ đồ giải thuật, code giả mã, mã nguồn Nhóm 3 kĩ năng mới có thể truy cập, những người có quyền hạn với mã nguồn mới có thể truy cập, điều chỉnh và cài đặt phần mềm Một mục đích khác nữa là giúp các nhà phát triển, lập trình viên khác có thể tiếp tục xây dựng chương trình tương tự trên các hệ điều hành khác, hoặc nâng cấp phiên bản hiện tại lên Tuy nhiên cũng là một bài toán, với lập trình thì sẽ có vô vàn cách giải quyết, thế nên việc ghi chú lại mục đích của dòng mã là rất cần thiết Để các lập trình viên, các nhà phát triển khác hiểu người đi trước đã làm gì, sau đó họ sẽ tiếp bước thực hiện công việc 2.2.3 Vai trò của mã nguồn trong lập trình webside Website ngày nay được ví như là bộ mặt của một công ty, tổ chức trên mạng Internet Website ra đời để tiếp cận và tăng tương tác với khách hàng mà công ty muốn hướng đến Nhằm phục vụ nhu cầu (xem tin tức, đọc profile công ty, ) khách hàng họ truy cập vào Website Họ thực hiện rất nhiều thao tác, tương ứng với nhiều câu lệnh khác nhau Mã nguồn là khung xương cho toàn bộ những thao tác đó Bao gồm những hành động đơn giản như kéo chuột, rê chuột, nhấp đúp cho đến phức tạp như cho hàng vào giỏ, điền thông tin vào form, download ebook, tìm kiếm tài liệu v.v 2.2.4 Các loại mã nguồn Hiện nay source code được chia thành hai loại là mã nguồn mở và mã nguồn đóng Tùy vào nhu cầu và mục đích sử dụng website mà các lập trình viên có thể lựa chọn mã nguồn đóng hoặc mở Mã nguồn mở Mã nguồn đóng Là dạng mã nguồn được chia sẻ Là dạng mã nguồn được các lập trình Khái công khai, người dùng có thể tự tải viên thiết lập riêng cho một website niệm xuống, chỉnh sửa và tiến hành sử nào đó Muốn chỉnh sửa cần phải có dụng theo ý mình tài khoản truy cập Tính Tính bảo mật thấp vì các hacker Tính bảo mật cao vì toàn bộ mã bảo mật cũng có thể tìm thấy các mã nguồn nguồn đều được thiết kế riêng theo mở này vậy nên các thông tin dữ từng yêu cầu và được thiết lập cả bảo liệu của bạn rất dễ bị đánh cắp mật vậy nên hacker rất khó xâm nhập 20 Downloaded by SAU DO (saudinh3@gmail.com)

Ngày đăng: 27/03/2024, 16:03

Tài liệu cùng người dùng

Tài liệu liên quan