KỸ THUẬT PHÁT TRIỂN CHƯƠNG TRÌNH

41 7 0
KỸ THUẬT PHÁT TRIỂN CHƯƠNG TRÌNH

Đ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

–Bằng cách thay thếmột dãy các chỉthịbởi một lệnh duy nhấtlệnh gọi hàm/thủtục sẽgiúp mã nguồn dễ đọc và dễduyệt lỗihơn.Hàm có kết quảtrảvềcòn thủtục thì không.Đối sốvà Tham biến Argument

KỸ THUẬT LẬP TRÌNH KỸ THUẬT PHÁT TRIỂN CHƯƠNG TRÌNH NỘI DUNG Hàm Thủ tục Phát triển chương trình phương pháp tinh chỉnh dần bước Định nghĩa sử dụng hàm ngôn ngữ C Hàm/thủ tục đệ quy HÀM VÀ THỦ TỤC Khái niệm hàm, thủ tục Đối số tham biến Truyền liệu cho hàm/thủ tục 1 HÀM VÀ THỦ TỤC Thủ tục (Procedures) Hàm (functions) thể hai dạng chương trình (subprograms) Cho phép lặp lặp lại đoạn code tính tốn định Hàm/thủ tục gọi từ nhiều chỗ khác chương trình – Bằng cách thay dãy thị lệnh (lệnh gọi hàm/thủ tục) giúp mã nguồn dễ đọc dễ duyệt lỗi Hàm có kết trả cịn thủ tục khơng Đối số Tham biến (Arguments and Parameters) Ví dụ { Cộng num1 num2 ghi kết vào biến sum} Procedure Adder(num1 : real; num2 : real; var sum : real); begin sum := num1 + num2; end; Phạm vi biến: • biến cục chương trình • biến tồn cục Vài điểm quan trọng đối tham biến chương trình con: Số lượng đối số hay tham số thực (arguments) thiết phải số tham biến (parameters) Thứ tự quan trọng Đối số tương ứng với tham biến đầu tiên, đối số thứ k tương ứng với tham biến thứ k, … Kiểu liệu đối số phải tương thích với kiểu liệu tham biến tương ứng Tên không quan trọng Tên đối số không thiết phải giống với tên tham biến tương ứng Phân biệt hai cách truyền liệu cho hàm/thủ tục: truyền theo tham chiếu ( by reference ) hay truyền theo trị (by value) Truy n theo tham chi u: vị trí nhớ (địa chỉ) đối số truy n cho chương trình con, cho phép chương trình truy nhập tới bi n thực thay đổi nội dung Truy n theo trị: giá trị đối số truy n cho chương trình con, cho phép chương trình truy nhập đ n “bản sao” bi n Truy n theo trị bảo toàn nội dung bi n ban đầu Ưu điểm hàm/thủ tục • Chia tách kiểm sốt (“Chia để trị”) – Khả quản lý chương trình phát triển • Khả sử dụng lại hàm/thủ tục – Sử dụng hàm/thủ tục có sẵn, chạy ổn định để xây dựng khối chương trình – Tính trừu tượng: che dấu chi tiết bên hàm – Tránh phải lặp lại đoạn chương trình (code) Các bước thực phát triển chương trình Hiểu rõ u cầu tốn: diễn đạt lại tốn ngơn ngữ đặc tả, kí hiệu tốn học hay cơng thức • Mục tiêu chung chương trình gì? • Chương trình cần liệu vào gì? • Dữ liệu chương trình gì? nào? kết xuất đâu? (màn hình, máy in, đĩa?) • Dữ liệu vào nên định dạng nào? • Cơng thức tính hay cách xử lý để có kết (dữ liệu) ra? Các bước thực phát triển chương trình Hình thành ý tưởng cách giải tốn • Chương trình phân tách thành q trình rời rạc (các mơ đun) nào? • Chương trình sử dụng mơ đun nào? Các mô đun giao tiếp với nào? • Những mơ đun có cần tách thành phần chức nhỏ hơn? Thiết kế thuật toán phương pháp tinh chỉnh dần bước Cài đặt chương trình theo thuật tốn • Viết chương trình (việc viết mơ đun hồn thiện sau Thay vào đó, tạm đưa lệnh giả định để chương trình họat động Điều cho phép thử nghiệm tính logic chương trình chính) • Cuối cùng, viết mơ đun Kiểm nghiệm duyệt lỗi mô đun thật kỹ trước đưa vào chương trình Nếu mơ đun phân tách thành nhiều tiến trình nhỏ phải viết mã (code) cho tiến trình trước, thử nghiệm duyệt lỗi cẩn thận ghép lại thành mô đun PHƯƠNG PHÁP TINH CHỈNH TỪNG BƯỚC Chiến lược thiết kế từ xuống (top - down) • Thiết kế giải thuật từ tổng thể đến chi tiết • Module hố tốn – Chia tốn (module chính) thành module module toán biết cách giải • “Chia để trị” – Chia (Divide): Chia toán lớn, thành nhiều toán nhỏ – Trị (Conquer): Giải toán nhỏ – Kết hợp (Combine): Tạo lời giải cho toán cuối cách sử dụng thông tin từ kết giải toán nhỏ 10 PHƯƠNG PHÁP TINH CHỈNH TỪNG BƯỚC Stepwise refinement Module hoá toán, thiết kế kiểu top-down • Bước Trình bày ý giải thuật ngôn ngữ tự nhiên ? Làm gì? • Bước trở đi: Chi tiết hố dần ý giải thuật, sử dụng nhiều ngôn ngữ giả code (giả mã − pseudo code) Kết cuối trình tinh chỉnh chương trình viết ngơn ngữ lập trình chọn trước với cấu trúc liệu dạng lưu trữ, cài đặt cụ thể ? Làm nào? 11 PHƯƠNG PHÁP TINH CHỈNH TỪNG BƯỚC Bài tốn: Tìm số có chữ số mà đảo trật tự hai số số nguyên tố với số cho Bước 0: 12 PHƯƠNG PHÁP TINH CHỈNH TỪNG BƯỚC Bước • Dữ liệu vào: • Dữ liệu ra: Số nguyên dương có chữ số, ngun tố với số đảo • Ý tưởng thuật tốn: – Tìm số từ 10 đến 99 thoả mãn yêu cầu ghi vào mảng S n số lượng số tìm – Hiển thị kết từ mảng S hình 13 PHƯƠNG PHÁP TINH CHỈNH TỪNG BƯỚC Bước Function Tim • Vào: • Ra: mảng S n • Biến nguyên n lưu số lượng số tìm n := 0; Với số x [10 99], Kiểm tra xem x có số đảo ngun tố hay khơng, đưa x vào mảng S n := n + 1; 14 PHƯƠNG PHÁP TINH CHỈNH TỪNG BƯỚC Bước Hàm tìm số đảo • Function Sodao – Vào: x số nguyên dương – Ra: Số đảo x – Ý tưởng: Từ x, lấy chữ số từ bên phải x để tạo số y từ trái sang phải Khởi đầu y:=0 Với x> 0, lặp trình lấy chữ số hàng đơn vị x bổ sung vào bên phải y Tính y := y * 10 + (x mod 10); x := x div 10 Trả số đảo y 15 PHƯƠNG PHÁP TINH CHỈNH TỪNG BƯỚC Bước Kiểm tra xem x số đảo có ngun tố hay khơng Function SodaoNTCN • Vào: x số nguyên dương • Ra: True, x số đảo nguyên tố False, ngược lại • if x Sodao(x) Nguyên tố then Return True else Return False; 16 PHƯƠNG PHÁP TINH CHỈNH TỪNG BƯỚC Bước Kiểm tra hai số ngun dương có ngun tố hay khơng Function NTCN • Vào: x, y số nguyên dương • Ra: True, x y nguyên tố False, ngược lại • if UCLN(x, y) = then Return True else Return False; 17 PHƯƠNG PHÁP TINH CHỈNH TỪNG BƯỚC Bước Tìm UCLN hai số ngun dương: Thuật tốn Euclid • Function UCLN • Vào: m, n nguyên (m >= n>= 0) • Ra: UCLN ước chung lớn m,n • Biến r số nguyên dương Nếu m>n chuyển sang bước 2, ngược lại, hốn chuyển giá trị m n Nếu n trả UCLN = m kết thúc thuật tốn Ngược lại, chuyển sang bước Tính r phần dư phép chia m cho n Gán giá trị n cho m r cho n Quay lại bước 18 PHƯƠNG PHÁP TINH CHỈNH TỪNG BƯỚC Bước • Hàm tìm UCLN Function UCLN(a,b: integer) : integer; Var r: integer; Begin If m < n then Begin r := m; m := n; n := r; end; While n > Begin r := m MOD n; m := n; n := r; end; return m; End; 19

Ngày đăng: 25/01/2024, 18:22

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

  • Đang cập nhật ...

Tài liệu liên quan