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

Thuc hanh bai so 2 lap trinh de quy voi danh sach

2 927 22

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 2
Dung lượng 23,38 KB

Nội dung

Kỹ thuật lập trình :: Bài thực hành số :: Lập trình đệ quy với cấu trúc liệu danh sách đặc Mục tiêu: Diễn đạt thực tác vụ hướng đệ quy Đệ quy với cấu trúc liệu danh sách đặc So sánh thời gian thực tác vụ danh sách đặc(array) với kỹ thuật duyệt đệ quy Vấn đề 4: Lãi suất kép Ngân hàng A có lãi suất cố định x% Đem khoản tiền y gửi vào ngân hàng A khoảng thời gian n năm Tính số tiền thu (vốn + lãi) Yêu cầu: Gọi P(n) số tiền thu sau n năm gửi số tiền y vào A Lập cơng thức đệ quy tính P(n) Cài đặt hàm đệ quy float lai_kep(float y, int n); trả số tiền thu sau n năm Cài đặt chương trình thực vấn đề hàm int main(); để kiểm tra tính thực nghiệm Nhập liệu hợp lệ cho n y Hiển thị giá trị P(n) hình tương ứng với liệu vào n y từ phím Test: Input Output n=0 y=0 n=1 y =10 n = 104 y =10 n = 106 y =10 Vấn đề : Đệ quy mảng Dãy Q gồm n số ngun khơng có thứ tự Q lưu trữ nhớ mảng int Q[n] Yêu cầu: Cài đặt hàm void input(int Q[], int &n) để sinh ngẫu nhiên n phần tử (1≤n≤10 6) lưu vào mãng Q[] Cài đặt hàm void output(int Q[], int n) để hiển thị phần tử Q[] lên hình Dưới gợi ý xây dựng định nghĩa đệ quy để tính tổng n phần tử dãy Q Sum(q,n) = q[0] + q[1] + q[2] + + q[n-2] +q[n-1] Sum(q,n-1) Cài đặt hàm long sum_rec(int Q[], int n) trả tổng phần tử dãy số Q kỹ thuật đệ quy mô tả Page 1/2 Kỹ thuật lập trình :: Bài thực hành số :: Lập trình đệ quy với cấu trúc liệu danh sách đặc Dưới gợi ý để xây dựng định nghĩa đệ quy tìm phần tử lớn mảng Q  Điều kiện biên: Mảng phần tử trị lớn q[0]  Giải thuật chung: o Max(q,n) = q[0] , q[1] , q[2] , , q[n-2] , q[n-1] o Max(q,n-1) o Cài đặt hàm int max_rec(int Q[], int n) trả giá trị lớn dãy số Q kỹ thuật đệ quy mô tả 10 Định nghĩa đệ quy cho tác vụ tìm phần tử có giá trị nhỏ dãy số Q Từ cài đặt hàm int min_rec(int Q[], int n) trả giá trị bé dãy số Q kỹ thuật đệ quy 11 Cài đặt hàm long sum(int Q[], int n) trả tổng phần tử dãy số Q phương pháp duyệt mảng Q 12 Cài đặt chương trình thực vấn đề hàm int main();  Tạo dãy số Q gồm n số cách sinh ngẫu nhiên (1≤n≤100)  Hiển thị phần tử dãy Q  Hiển thị phần tử lớn nhỏ dãy Q  Tạo dãy số Q gồm n phần tử cách sinh ngẫu nhiên (104≤n≤109) Thực tính tổng Q theo hai cách Đệ quy Không đệ quy so sánh thời gian thực giải thuật với liệu Q(n) Lập báo cáo theo mẫu sau: sum sum_rec n=104 …(s) …(s) n=105 …(s) …(s) n=106 …(s) …(s) n=107 …(s) …(s) n=109 …(s) …(s) Đoạn chương trình hướng dẫn kỹ thuật đo thời gian: #include #include #include using namespace std; long sum_rec(int Q[], int n) ; long sum(int Q[], int n); int main() { int n = 10000;//10^4, 10^5, 10^6, clock_t start= clock(); sum(n); clock_t end = clock(); //Đo thời gian không đq cout

Ngày đăng: 02/11/2018, 22:05

TỪ KHÓA LIÊN QUAN

w