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

Bài giảng Ngôn ngữ lập trình Bài 9 Lê Nguyễn Tuấn Thành

34 209 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 34
Dung lượng 657,06 KB

Nội dung

Bài giảng Ngôn ngữ lập trình Bài 9 Đệ quy cung cấp cho người học các kiến thức Đệ quy với hàm void, đệ quy với hàm trả về giá trị, suy nghĩ theo kiểu đệ quy. Mời các bạn cùng tham khảo nội dung chi tiết.

NGÔN NGỮ LẬP TRÌNH Bài 9: Đệ Quy Giảng viên: Lê Nguyễn Tuấn Thành Email: thanhlnt@tlu.edu.vn Bộ Môn Công Nghệ Phần Mềm – Khoa CNTT Trường Đại Học Thủy Lợi NỘI DUNG  Đệ quy với hàm void    Đệ quy với hàm trả giá trị   Truy vết lời gọi đệ quy Đệ quy vô hạn (infinite recursion), tràn (overflows) Hàm Power() Suy nghĩ theo kiểu đệ quy   Kỹ thuật thiết kế đệ quy Tìm kiếm nhị phân Bài giảng có sử dụng hình vẽ sách “Practical Debugging in C++, A Ford and T Teorey, Prentice Hall, 2002” GIỚI THIỆU VỀ ĐỆ QUY (RECURSION)  Một  hàm gọi Trong định nghĩa hàm đó, có lời gọi đến hàm  C++ cho phép đệ quy Giống phần lớn ngôn ngữ lập trình bậc cao  Có thể kỹ thuật lập trình hữu ích  Có giới hạn  ĐỆ QUY VỚI HÀM VOID  Chia để trị (Devide and Conquer)    Kỹ thuật thiết kế Chia tác vụ lớn thành tác vụ Tác vụ phiên nhỏ tác vụ gốc!  Khi gọi đệ quy VÍ DỤ ĐỆ QUY VỚI HÀM VOID  Xem xét tác vụ sau:  Tìm kiếm giá trị danh sách Tác vụ 1: tìm kiếm nửa đầu danh sách  Tác vụ 2: tìm kiếm nửa sau danh sách  Các tác vụ phiên nhỏ tác vụ gốc!  Khi điều xảy ra, hàm đệ quy sử dụng  ĐỆ QUY VỚI HÀM VOID: SỐ THEO CHIỀU DỌC Tác vụ: hiển thị chữ số số nguyên theo chiều dọc, số dòng  Ví dụ lời gọi hàm writeVertical(1234); có kết quả:  SỐ THEO CHIỀU DỌC ĐỊNH NGHĨA HÀM ĐỆ QUY Chia vấn đề thành trường hợp  Trường hợp đơn giản/cơ sở: if n=10, có tác vụ con:  Đơn giản in số n hình Hiển thị theo chiều dọc tất chữ số trừ chữ số cuối Hiển thị chữ số cuối Ví dụ: với tham số 1234   Tác vụ 1: hiển thị 1,2,3 theo chiều dọc Tác vụ 2: hiển thị chữ số ĐỊNH NGHĨA HÀM WRITEVERTICAL()  Xét trường hợp slide trước void writeVertical(int n) { if (n < 10) // Trường hợp sở cout

Ngày đăng: 15/05/2017, 09:18

TỪ KHÓA LIÊN QUAN