1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Kỹ thuật lập trình: Bài 5 - ThS. Nguyễn Thành Trung

43 16 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 43
Dung lượng 1,08 MB

Nội dung

Bài giảng Kỹ thuật lập trình - Bài 5: Thiết kế chương trình cung cấp cho người học các kiến thức: Nguyên tắc chung thiết kế chương trình, thiết kế giải thuật, thiết kế giải thuật. Mời các bạn cùng tham khảo nội dung chi tiết.

Trịnh Thành Trung (ThS) trungtt@soict.hust.edu.vn Bài THIẾT KẾ CHƯƠNG TRÌNH Nội dung Nguyên tắc chung Thiết kế giải thuật Thiết kế liệu Nguyên tắc chung Trong thiết kế chương trình Phẩm chất chương trình tốt ▪ Phẩm chất chương trình tốt ▫ Cấu trúc tốt ▫ Logic chương trình + biểu thức diễn đạt theo cách thông thường ▫ Tên dùng chương trình có tính chất miêu tả ▫ Chú thích hợp lý ▫ Tơn trọng chiến lược divide/conquer/association ▪ Làm để tạo chương trình có phẩm chất tốt ▫ Thiết kế top-down ▫ Tinh chỉnh bước Nguyên tắc chung Đơn giản ▪ Thể giải thuật vốn có, đừng kỳ bí ▪ Lựa chọn cấu trúc liệu cho việc viết giải thuật NNLT cụ thể đơn giản ▪ Tìm cách đơn giản hóa biểu thức ▪ Thay biểu thức lặp lặp lại CT tương ứng Nguyên tắc chung Trực tiếp ▪ Sử dụng thư viện lúc ▪ Tránh việc kiểm tra điều kiện không cần thiết Rõ ràng ▪ Dùng cặp dấu đánh dấu khối lệnh để tránh nhập nhằng ▪ Đặt tên biến, hàm, cho tránh nhầm lẫn ▪ Không chắp vá đoạn mã khó hiểu mà nên viết lại Nguyên tắc chung Cấu trúc tốt ▪ Tơn trọng tính cấu trúc chương trình theo mơ thức lập trình: ▫ Module: hàm/ thủ tục ▫ Hướng đối tượng: lớp ▫ Hướng thành phần: thành phần ▫ Hướng dịch vụ: dịch vụ ▪ Viết kiểm thử dựa cấu trúc phân cấp chương trình ▪ Tránh hồn tồn việc dùng goto  Nếu cần nên viết giải thuật giả ngữ, viết NNLT cụ thể Thiết kế giải thuật Algorithms Thiết kế giải thuật ▪ Chia toán thành nhiều toán nhỏ ▪ Tìm giải pháp cho tốn nhỏ ▪ Gộp giải pháp cho toán nhỏ thành giải pháp tổng thể cho toán ban đầu  Đơn giản hóa tốn cách trừu tượng hóa: làm thay làm ▫ Ví dụ: hàm mức trừu tượng ▸ Hàm xếp mảng số nguyên ▸ Hàm nhập vào / xuất ký tự: getchar() , putchar() ▸ Hàm toán học : sin(x), sqrt(x) Thiết kế từ lên Bottom-up design ▪ Bottom-up design  ▫ Thiết kế chi tiết phần ▫ Thiết kế chi tiết phần khác … ▫ Lặp lại hết ▪ Bottom-up design in programming ▫ Viết phần CT cách chi tiết hết ▫ Viết phần CT cách chi tiết hết … ▫ Lặp lại hết Tinh chỉnh In dịng có lề o Hồn thiện WriteLine() void WriteLine(const char *line, int lineLen, int numWords) { for (i = 0; i < lineLen; i++) { if () else { } } } Tinh chỉnh In dịng có lề void WriteLine(const char *line, int lineLen, int numWords) { int extraSpaces, spacesToInsert, i, j; /* Tính số khoảng trống dư thừa cho dòng */ extraSpaces = MAX_LINE_LEN - lineLen; for (i = 0; i < lineLen; i++) { if (line[i] != ' ') putchar(line[i]); else { /* Tính số khoảng trống cần thêm */ spacesToInsert = extraSpaces / (numWords - 1); Số lượng khoảng trống /* In space, cộng thêm spaces phụ */ for (j = 1; j MAX_LINE_LEN) { lineLen, numWords); &lineLen, &numWords); AddWord(word, line, &lineLen); numWords++; } return 0; } Thiết kế liệu Data structure Thiết kế liệu ▪ Cần thiết kế cấu trúc liệu cho phép thực thao tác sau: ▫ Create: Tạo liệu ▫ Add: Thêm liệu thành phần ▫ Search: Tìm kiếm liệu thành phần ▫ Free: Hủy cấu trúc liệu Thiết kế liệu ▪ Ví dụ: Bài tốn cho liệu mẫu sau: ▫ (tên sinh viên, điểm) ▸ (“john smith”, 84) ▸ (“jane doe”, 93) ▸ (“bill clinton”, 81) ▸… ▫ (tên cầu thủ, vị trí chơi sân) ▸ (“Ruth”, 3) ▸ (“Gehrig”, 4) ▸ (“Mantle”, 7) ▸… ▫ (tên biến, giá trị) ▸ (“maxLength”, 2000) ▸ (“i”, 7) ▸ (“j”, -10) ▸… Thanks! Any questions? Email me at trungtt@soict.hust.edu.vn Presentation template by SlidesCarnival ... viết giải thuật giả ngữ, viết NNLT cụ thể Thiết kế giải thuật Algorithms Thiết kế giải thuật ▪ Chia toán thành nhiều toán nhỏ ▪ Tìm giải pháp cho tốn nhỏ ▪ Gộp giải pháp cho toán nhỏ thành giải... trúc tốt ▪ Tơn trọng tính cấu trúc chương trình theo mơ thức lập trình: ▫ Module: hàm/ thủ tục ▫ Hướng đối tượng: lớp ▫ Hướng thành phần: thành phần ▫ Hướng dịch vụ: dịch vụ ▪ Viết kiểm thử dựa cấu... xuống Top-down design ▪ Top-down design  ▫ Thiết kế toàn sản phẩm cách sơ bộ, tổng thể ▫ Tinh chỉnh hoàn thiện ▪ Top-down design in programming ▫ Phác họa hàm main() (bằng lệnh giả ngữ - pseudocode)

Ngày đăng: 11/05/2021, 19:32

TỪ KHÓA LIÊN QUAN