Bài tập cơ sỏ dữ liệu và giải thuật
Trung Tâm CNTT – Bài Tập Thực Hành CTDL> Bài Tập Thực Hành C ấu T r úc D ữ L i ệu & G i ải T hu ậ t Khối: Cao ðẳng nghề Trung Cấp Năm 2009 Hướng dẫn: • • • • • • Bài tập thực hành dựa giáo trình: C & Data Structure Bài tập thực hành ñược chia theo làm nhiều Module Mỗi Module ñược thiết kế cho thời lượng 4-6 tiết thực hành lớp với hướng dẫn giảng viên Tùy theo số tiết phân bổ, tuần học thực nhiều Module Sinh viên phải làm tất tập Module tuần tương ứng Những sinh viên chưa hòan tất phần tập lớp có trách nhiệm tự làm tiếp tục nhà Các có dấu (*) tập nâng cao dành cho sinh viên giỏi Trang 1/12 Trung Tâm CNTT – Bài Tập Thực Hành CTDL> Module Bài Viết hàm tính tổng S=1+1/2+1/3…+ 1/N Sử dụng hàm để tính S người dùng nhập N Bài Nhập số a n Tính S =a^1 + a^2 + a^3 + …+ a^n Bài Viết chương trình tính tổng sau: S= + 1/1! +1/2! + 1/3! + … + 1/n! Bài Viết chương trình tính tổng sau: S= 1/1! +(1+2)/2! + (1+2+3)/3! + … + (1+2+3+…n)/n! Bài n Viết chương trình tính tổng sau: S= + x/1! +x /2! + x /3! + … + x /n! Bài Viết chương trình tính tổng sau: S= - x +x^2- x^3+ … (-1)x^n Bài Viết hàm tính tổng chữ số số nguyên Viết chương trình nhập vào số nguyên, dùng hàm kiểm tra xem số có chia hết cho không (Một số chia hết cho tổng chữ số chia hết cho 3) Bài Bài tốn tính tiền lãi gửi ngân hàng: Nhập tiền vốn ban ñầu, số tháng gửi N lãi suất hàng tháng Tính số tiền nhận sau tháng gửi biết tiền lãi hàng tháng ñược gộp vào tiền vốn Số tiền nhận ñược sau tháng hiển thị hình dạng: Tháng 1: 100 Tháng 2: 102 … Ví dụ, tiền vốn là100, lãi suất tháng 2% Sau tháng gửi có số tiền là: Số tiền=100 + 100*0.02 = 102 Sau tháng gửi có số tiền là: Số tiền=102 + 102*0.02 = 104.04 Cơng thức tính tiền thu sau tháng gửi là: Số tiền := Tiền vốn + Tiền vốn * Lãi suất S tin li tr thành tin vn ca tháng sau, tc là: Tin vn := S tin; Qúa trình lặp lặp lại từ tháng ñến tháng N Bài Trở lại tốn tính tiền gửi ngân hàng có tiền lãi hàng tháng gộp vào vốn (bài tập trên) Câu hỏi là: cần gửi tối thiểu tháng để có số tiền > S cho trước Trang 2/12 Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 Trung Tâm Only CNTT – Bài Tập Thực Hành CTDL> For Evaluation Module Bài Nhập số n C(k,n)=n!/(k!*(n-k)!) k nguyên Tính tổ hợp chập k n theo cơng thức sau Bài Tìm số Fibonaci Dãy số Fibonaci { 1, 1, 2, 3, 5, 8, 13, 21,… } ñược dãy ñược nhắc nhiều khối kỹ thuật, xây dựng sau: U0=1, U1=1 , Uk=Uk-1 + Uk-2 với k= 2, 3, 4, a Viết chương trình xuất hình số Fibonaci vị trí thứ n (sử dụng đệ quy) b Viết chương trình xuất hình số Fibonaci vị trí thứ n (KHƠNG sử dụng đệ quy) c Viết chương trình nhập số ngun n xuất n số Fibonaci ñầu tiên Bài a Nhập số nguyên dương m n Tính Ước số chung nhỏ bội số chung lớn m n (sử dụng ñệ quy) b Nhập số nguyên dương m n Tính Ước số chung nhỏ bội số chung lớn m n (khơng sử dụng đệ quy) Bài Viết hàm nhập số giây ñổi thành giở : phút : giây Ví dụ: nhập 3665 giây -> phút giây Bài a Viết hàm kiểm tra số có phải số nguyên tố hay không (số chia hết cho nó) b Viết hàm hiển thị tất số nguyên tố bé số n nhập từ bàn phím c Viết hàm hiển thị tất số nguyên tố bé số n nhập từ bàn phím, in lên hình dịng 19 số d Viết hàm hiển thị tất n số số nguyên tố ñầu tiên tính từ (n nhập từ bàn phím) Ví dụ n=8 kết là: 2,3,5,7,11,13,17,19 Bài Tìm số n bé thỗ s =1 + + +… + n >10000 vã cho biết s có giá trị ? Bài Viết hàm dùng để phân tích số nguyên dương thừa số nguyên tố Ví dụ: nhập n =100 hiển thị : 100=5*5*2*2 Trang 3/12 Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 Trung Tâm Only CNTT – Bài Tập Thực Hành CTDL> For Evaluation Module Bài VCT nhập vào phân số a/b c/d Hãy tính tổng phân số này, yêu cầu phân số kết phải dạng tối giản ví dụ :1/6+1/3=1/2 Bài Viết hàm ñảo ngược thứ tự phần tử mảng số nguyên Ví dụ: mảng nhập vào 10 sau ñảo mảng thành 10 Bài Viết chương trình nhập vào mảng số tự nhiên Hãy xuất hình: - Dịng : gồm số lẻ, tổng cộng có số lẻ - Dòng : gồm số chẵn, tổng cộng có số chẵn - Dịng : gồm số nguyên tố - Dòng : gồm số số nguyên tố Bài Viết chương trình nhập vào mảng, xuất hình: - Phần tử lớn mảng - Phần tử nhỏ mảng - Tính tổng phần tử mảng - Tính trung bình cộng - Tính tổng phần tử số nguyên tố mảng - Tính số lượng phần tử số nguyên tố mảng - Phần tử âm lớn mảng - Phần tử dương nhỏ mảng - Tổng phần tử có bậc hai nguyên - Gồm số lẻ, tổng cộng có số lẻ - Gồm số chẵn, tổng cộng có số chẵn - Kiểm tra tính đối xứng cũa mảng - Tìm phân tử số nguyên tố ñầu tiên mảng - Tìm phân tử số ngun tố mảng Trang 4/12 Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 Trung Tâm Only CNTT – Bài Tập Thực Hành CTDL> For Evaluation Module Bài Tổ chức xây dựng hàm : GiảiPT_bac1 GiảiPT_bac2 với tham số hợp lý Sử dụng hàm ñể giải pt bậc Bài Tổ chức hàm với tham số hợp lý dùng để tính: • Một hàm dùng để tính chu vi diện tính hình trịn từ bán kính • Một hàm dùng để tính chu vi diện tính hình chữ nhật từ chiều dài-rộng • Một hàm dùng để tính MAXMIN số integer • Một hàm dùng để tính bội số chung nhỏ – USC lớn số ngun dương Bài Viết chương trình tính lương cho công nhân xưởng may Mỗi công nhân có vào ngày Tiền lương tính sau: • Từ 5h-8h: 20,000 đ • Từ 8h-11h: 15,000 ñ • Từ 11h-14h: 30,000 ñ • Từ 14h-17h: 22,000 đ • Từ 17h-24h: 40,000 ñ Chú ý: Xây dựng hàm với tham số hợp lý Bài Viết chương trình xây dựng quản lý danh sách liên kết ñơn Thành phần quản lý gồm trỏ pHead pTail (ñầu cuối xâu) Hiển thị menu thực chức sau (mỗi chức thực hàm) Thành phần liệu Node giá trị kiểu integer • Thêm node vào đầu danh • Hiển thị danh sách node sách xâu • Thêm node vào cuối danh • Hủy node (nhập giá trị cần sách tìm) • Thêm nhiều node vào đầu danh • Hủy tịan danh sách sách • Tính tổng giá trị tịan danh • Thêm nhiều node vào cuối danh sách sách • Tìm giá trị lớn nhỏ danh sách • Hiển thị giá trị node thứ n • Tìm node dựa theo giá trị • Sắp xếp danh sách với giá trị nhập vào tăng dần (tự chọn thuật tóan) • Thêm node vào sau node (nhập giá trị để tìm) • ðếm số lượng node xâu Bài Viết chương trình xây dựng quản lý danh sách liên kết ñơn Thành phần quản lý xâu gồm trỏ pHead (ñầu xâu) Hiển thị menu thực chức tương tự tập Trang 5/12 Edited by Foxit Reader Copyright(C) by Foxit Corporation,2005-2009 Trung Tâm Only CNTT – Bài Tập Thực Hành CTDL> For Evaluation Module Bài Viết chương trình xây dựng quản lý danh sách liên kết vịng đơn Thành phần quản lý gồm trỏ pHead Hiển thị menu thực chức sau (mỗi chức thực hàm) Thành phần liệu Node giá trị kiểu integer • Hiển thị tồn danh sách • Hủy tất node số nguyên tố • Thêm node vào danh sách • Tăng giá trị node lên • Tìm node danh sách (giá trị nhập vào) • Tính tổng giá trị tịan danh sách • Hiển thị node số ngun tố • Tìm giá trị lớn nhỏ danh sách • Hủy node danh sách (giá trị nhập vào- tìm • Sắp xếp danh sách tăng dần thấy) • Hủy tịan danh sách Bài Viết chương trình xây dựng quản lý danh sách liên kết đơi Thành phần quản lý gồm trỏ pHead pTail Hiển thị menu thực chức sau (mỗi chức thực hàm) Thành phần liệu Node giá trị kiểu integer • Hủy phần tử danh sách (giá • Hiển thị giá trị toàn danh sách trị nhập vào) theo thứ tự từ đầu đến cuối • Hiển thị node số nguyên tố • Hiển thị giá trị toàn danh sách theo thứ tự từ cuối ñến ñầu • Hủy node danh sách (giá trị nhập vào- tìm • Thêm node vào đầu danh thấy) sách • Hủy tất node số nguyên • Thêm node vào cuối danh tố sách • Tăng giá trị node lên • Thêm node vào sau phần tử (giá trị nhập vào) • Tính tổng giá trị tịan danh sách • Tìm node danh sách • Tìm giá trị lớn nhỏ danh sách • ðếm số lần xuất node danh sách • Sắp xếp danh sách tăng dần • Hủy phần tử đầu danh sách • Hủy tịan danh sách • Hủy phần tử cuối danh sách Bài Viết chương trình xây dựng quản lý danh sách liên kết đơi Thành phần quản lý cho danh sách gồm trỏ pHead Hiển thị menu thực chức sau: • Nhập n phần tử ngẫu nhiên vào danh sách (n nhập vào) • Hiển thị giá trị danh sách, danh sách hàng • Ghép danh sách vào phía sau danh sách 1, đồng thời hủy danh sách • Tìm giá trị lớn danh sách • Tính tổng giá trị danh sách • Chèn danh sách vào danh sách (sau phần tử với giá trị nhập vào) • Sắp xếp danh sách tăng dần • Ghép danh sách vào danh sách cho sau ghép, danh sách tăng dần Trang 6/12 Trung Tâm CNTT – Bài Tập Thực Hành CTDL> Module Bài Viết chương trình xây dựng quản lý danh sách liên kết vịng đơi Thành phần quản lý gồm trỏ pHead Hiển thị menu thực chức sau (mỗi chức thực hàm) Thành phần liệu Node giá trị kiểu integer • Thêm node vào cuối danh sách (giá trị nhập vào) • Lưu trữ danh sách xuống file text • ðọc danh sách từ file text • Sắp xếp danh sách tăng dần • Tìm giá trị trung bình danh sách Bài Viết chương trình xây dựng quản lý danh sách liên kết ñôi Thành phần quản lý gồm trỏ pHead, pTail Thành phần liệu node thông tin sinh viên, bào gồm trường: +Mã sinh viên (int) +Họ tên sinh viên (string) +Lớp (string) +ðiểm Toán (float) +ðiểm Lý (float) +ðiểm Hóa (float) Hiển thị menu thực chức sau (mỗi chức thực hàm) • Hiển thị tồn danh sách • Tìm sinh viên theo mã sinh viên (nhập vào) • Thêm sinh viên vào cuối danh sách ðảm bảo khơng có sinh viên trùng mã • Xóa sinh viên khỏi danh sách từ mã sinh viên (nhập vào) • Nhập lớp Hiển thị danh sách sinh viên thuộc lớp • Tính tổng số sinh viên có điểm tốn >=5 • Hiển thị toàn danh sách sinh viên chứa tên nhập vào o (Ví dụ: nhập tên cần tìm Khuong, hiển thị tồn sinh viên chứa tên Khuong) • Hiển thị danh sách sinh viên yếu (có điểm trung bình =8 khơng có mơn học