bài tập tin học đại cương 102011 BÀI TẬP TIN HỌC ĐẠI CƯƠNG PHẦN NGÔN NGỮ LẬP TRÌNH C TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ KHOA CÔNG NGHỆ THÔNG TIN A NHẬP XUẤT DỮ LIỆU 1 B LƯU ĐỒ THUẬT TOÁN 2 C CẤU TRÚC RẼ NHÁ.
BÀI TẬP TIN HỌC ĐẠI CƯƠNG PHẦN NGÔN NGỮ LẬP TRÌNH C TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ KHOA CƠNG NGHỆ THÔNG TIN A NHẬP XUẤT DỮ LIỆU B LƯU ĐỒ - THUẬT TOÁN C CẤU TRÚC RẼ NHÁNH D CẤU TRÚC LẶP E HÀM – ĐỆ QUY F MẢNG MỘT CHIỀU 12 10/2011 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ A NHẬP XUẤT DỮ LIỆU Viết chương trình: Tính tổng, hiệu, tích thương hai số nguyên dương Nhập a, Tổng: Hiệu: Tích: Thương: b: 6 + = – = x = / = 10 24 1.50 Tính bậc số thực Nhập số thực: Căn bậc 2.646 Hiển thị mã ASCII kí tự Nhập ký tự: A Mã ASCII ký tự A là: 65 Hiển thị ký tự biết mã ASCII Nhập mã ASCII ký tự: 97 Ký tự có mã ASCII 97 là: a Tính trung bình cộng số nguyên Nhập a, b, c: Trung bình cộng 3, 4, là: 4.67 Tính khoảng cách điểm mặt phẳng Nhập tọa độ điểm A: Nhập tọa độ điểm B: Khoảng cách A(2,3) B(4,6) 3.6 Tính chu vi diện tích hình trịn biết bán kính (sử dụng : PI = 3.1416) Nhập bán kính (theo mét): Đường trịn bán kính 4m có chu vi 25.13 met Hình trịn bán kính 4m có diện tích 50.27 met vuong Tính chu vi diện tích hình chữ nhật biết chiều dài chiều rộng Nhập chiều dài, chiều rộng: Chu vi diện tích hình chữ nhật 4x6 la: 20 24 BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | NHẬP XUẤT DỮ LIỆU 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ * Tính tổng, hiệu, tích, thương hai phân số (tử mẫu số nguyên dương) Nhập phân số Nhập phân số 2/3 cộng 3/4 2/3 trừ 3/4 2/3 nhân 3/4 2/3 chia 3/4 thứ (tử, mẫu): thứ (tử, mẫu): = 1.42 = -0.08 = 0.50 = 0.89 B LƯU ĐỒ - THUẬT TOÁN Thiết kế thuật toán sơ đồ khối: Xác định vị trí (thuộc góc phần tư thứ mấy) góc Nhập vào góc (theo độ): 95 Thuộc góc phần tư thứ 2 Xác định số ngày tháng năm khơng phải năm nhuận Nhập vào tháng: 10 Tháng 10 có 31 ngày! Kiểm tra xem số thực a, b, c độ dài cạnh tam giác không Nhập vào số thực: - a = - b = - c = Đây độ dài cạnh tam giác Tìm ước chung lớn hai số nguyên dương Nhập a: 20 Nhập b: 15 UCLN(a,b): 5 Tính X(n) = + + + … + n Nhập n (n>0): X(3) = 6 Tính Y(n) = × × × … × n Nhập n (n>0): Y(3) = 24 Tính Z(n) = + + + … + 2n Nhập n (n>0): Z(3) = 12 BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | LƯU ĐỒ - THUẬT TỐN 10/2011 KHOA CƠNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Tính A(n) = × × × … × (2n+1) Nhập n (n>0): A(3) = 105 Tính C(n) = 12 + 22 + 32 + … + n2 Nhập n (n>0): C(3) = 14 10 Tính B(n) = – + – + … + (-1)n+1n Nhập n (n>0): B(3) = 11 * Tính D(n) = + (1+2) + (1+2+3) + … + (1+2+3+…+n), với n > Nhập n (n>0): D(3) = 10 12 * Tính trung bình cộng n số thực nhập từ bàn phím Nhập số (nhập Nhập số (nhập Nhập số (nhập Nhập số (nhập Trung bình cộng để dừng): để dừng): để dừng): để dừng): số thực là: C CẤU TRÚC RẼ NHÁNH Viết chương trình: Xác định xem số nguyên chẵn hay lẻ Nhập số nguyên n: 8 số chẵn Xác định học lực dựa vào điểm trung bình sinh viên, biết: Điểm trung bình [0, 4) [4, 5) [5, 6.5) [6.5, 8) [8, 9) [9, 10] Học lực Kém Yếu Trung bình Khá Giỏi Xuất sắc Nhập điểm trung bình: Học lực sinh viên Giỏi Xác định số có giá trị lớn hai số thực a, b Nhập số thực thứ nhất: 12.3 Nhập số thực thứ hai: 3.7 Max(12.30, 3.70) = 12.30 BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | CẤU TRÚC RẼ NHÁNH 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Xác định số có giá trị lớn nhỏ ba số nguyên a, b, c Nhập số thứ nhất: Nhập số thứ hai: Nhập số thứ ba: Min(2, 5, 4) = Max(2, 5, 4) = 5 Giải biện luận phương trình bậc nhất: ax + b = (a, b ) Nhập a, b: 1.5 Phương trình có nghiệm: x = -2 Giải biện luận phương trình bậc hai: ax2 + bx + c = (a, b, c ) Nhập a, b, c: -3 Phương trình có nghiệm phân biệt: x1 = 1, x2 = Hiển thị số tự nhiên từ đến dạng chữ Nhập số (0 9): Số đọc chín Nhập vào số tự nhiên a, b c Xác định xem độ dài cạnh tam giác hay khơng Nếu có tính diện tích tam giác đồng thời kiểm tra xem có phải tam giác đặc biệt hay không (cân, đều, vuông) Nhập a, b, c: Đây cạnh tam giác vng có diện tích Nhập a, b, c: Đây cạnh tam giác có diện tích 5.33 Xác định chữ số lớn số nguyên gồm ba chữ số Nhập số nguyên (gồm chữ số): 362 Chữ số lớn 10 Tính tổng chữ số số nguyên gồm ba chữ số Nhập số nguyên (gồm chữ số): 362 Tổng chữ số 11 11 Xác định số ngày tháng Nhập vào tháng, năm: 10 2011 Tháng 10/2011 có 31 ngày! 12 Tính tiền cước Taxi Biết rằng: 1km 13000đ, km 12000đ, lớn 30km km thêm 11000đ Nhập số km: 31 Tiền cước: 372000 đồng BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | CẤU TRÚC RẼ NHÁNH 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 13 Nhập vào hai số tự nhiên tương ứng chiều rộng chiều dài hình chữ nhật Cho biết hình vng, hình chữ nhật đứng hay hình chữ nhật nằm Nhập vào chiều dài, chiều rộng: Đây hình chữ nhật đứng 14 * Tính cước sử dụng ADSL tháng biết dung lượng sử dụng, biết: Dung lượng 500 MB đầu 500 MB 500 MB Các MB Giá MB 50 đồng 40 đồng 30 đồng 20 đồng Nếu thuê bao sử dụng nhiều tối đa lấy 299000 đồng Nhập số MB sử dụng thuê bao: 810 Tiền cước: 37400 đồng 15 * Xác thời điểm (sau giây) thời điểm (giả sử thời điểm vào hợp lệ) Nhập vào giờ, phút, giây: 01 59 59 01:59:59 sau giây 02:00:00 16 * Xác định ngày ngày (giả sử ngày nhập vào hợp lệ) Nhập vào ngày, tháng, năm: 31 10 2011 Ngày ngày 31/10/2011 ngày 01/11/2011 D CẤU TRÚC LẶP Viết chương trình: Tính n!, với n số nguyên dương Nhập n: 4! = 24 Tính n!, với n số nguyên dương Nhập n: 4! = 1*2*3*4 = 24 Tìm tất ước số số nguyên dương Nhập số nguyên dương: Các ước số là: Tìm tất phương án kết hợp loại giấy bạc 100đ, 200đ, 500đ với số tiền 10000đ Phương án 1: tờ 100đ, tờ 200đ, 18 tờ 500đ Phương án 2: tờ 100đ, 10 tờ 200đ, 16 tờ 500đ … Phương án 537: 98 tờ 100đ, tờ 200đ, tờ 500đ BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | CẤU TRÚC LẶP 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Trả lời câu hỏi sau cách duyệt tất cách để tìm kết quả: Yêu cau sáu bổ ba Ghét cau sáu bổ làm mười Mỗi người miếng trăm người Có mười bảy hỏi người ghét yêu Đáp án: có người thương người ghét Tìm phương án tối ưu (số tờ tiền nhất) kết hợp loại giấy bạc 100đ, 200đ, 500đ với số tiền 10000đ Phương án tối ưu: tờ 100đ, tờ 200đ, 19 tờ 500đ Kiểm tra xem số nguyên dương n có số ngun tố hay khơng? Nhập số ngun dương: 23 23 số nguyên tố Kiểm tra xem số nguyên n ≥ có phải số nguyên tố hay không? Nếu số ngun tố (hợp số) đưa ví dụ (tích a*b a, b khác n) để chứng minh Nhập số nguyên dương: 23 23 số nguyên tố Nhập số tự nhiên: 15 15 hợp số 15 = 3*5 Tìm số nguyên tố nhỏ số nguyên dương n cho trước Nhập số nguyên dương: 11 Các số nguyên tố nhỏ là: 10 Kiểm tra xem số nguyên dương n có phải số phương khơng? Nhập số ngun dương: 14 14 khơng số phương Nhập số ngun dương: 25 25 mơt số phương 25 = 5*5 11 Kiểm tra xem số ngun dương n có phải số hồn hảo hay khơng? (Số hồn hảo số có tổng tất ước số hai lần nó) Nhập số nguyên dương: 6 số hoàn hảo 12 Đếm xem số tự nhiên n có chữ số Nhập số tự nhiên: 1420 Số chữ số 1420 BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | CẤU TRÚC LẶP 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 13 Hiển thị chữ số số tự nhiên n theo thứ tự từ phải sang trái Nhập số tự nhiên: 1420 Các chữ số 1420 14 Tính tổng chữ số số tự nhiên n Nhập số tự nhiên: 1420 Tổng chữ số 1420 15 Tìm chữ số lớn số tự nhiên n Nhập số tự nhiên: 1420 Chữ số lớn 1420 16 Kiểm tra xem số nguyên dương n có phải số Amstrong hay không? (Một số gọi số Amstrong ) Nhập số nguyên dương: 153 153 số Amstrong 17 Tìm ước số chung lớn bội số chung nhỏ hai số nguyên dương a, b Nhập hai số nguyên dương: Ước số chung lớn Bội số chung nhỏ 18 18 Đọc số tự nhiên Nhập số tự nhiên: 1410 Đọc là: bốn không 19 Lấy chữ số vị trí (tính từ phải sang trái) số tự nhiên Nhập số tự nhiên: 1410 Bạn muốn lấy chữ số vị trí thứ:3 Chữ số vị trí thứ (từ phải sang trái) số 1410 : 20 Lấy chữ số vị trí (tính từ trái sang phải) số tự nhiên Nhập số tự nhiên: 1410 Bạn muốn lấy chữ số vị trí thứ:3 Chữ số vị trí thứ (từ trái sang phải) số 1410 : 21 Liệt kê số hoàn hảo nhỏ 9000 Số hồn hảo số có tổng ước số (khơng kể nó) Ví dụ: số số hồn hảo tổng ước số 1+2+3=6 Các số hoàn hảo nhỏ 9000 là: 28 496 8128 22 Liệt kê tất số có chữ số cho tổng lập phương chữ số số 153 370 371 407 BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | CẤU TRÚC LẶP 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 23 In bảng cửu chương từ đến 5 5 5 5 x x x x x x x x x = = = = = = = = = 10 15 20 25 30 35 40 45 | | | | | | | | | 6 6 6 6 x x x x x x x x x = = = = = = = = = 12 18 24 30 36 42 48 54 | | | | | | | | | 7 7 7 7 x x x x x x x x x = = = = = = = = = 14 21 28 35 42 49 56 63 | | | | | | | | | 8 8 8 8 x x x x x x x x x = = = = = = = = = 16 24 32 40 48 56 64 72 | | | | | | | | | 9 9 9 9 x x x x x x x x x = = = = = = = = = 18 27 36 45 54 63 72 81 | | | | | | | | | 24 Vẽ hình chữ nhật đặc kích thước m×n dấu * Nhập m, * * * * * * * * * * * * * * * * n: * * * * 25 Vẽ hình chữ nhật rỗng kích thước m×n Nhập m, * * * * * * * * * * n: * * * * 26 Vẽ tam giác vng cân đặc có độ dài cạnh a Nhập độ dài cạnh: * * * * * * * * * * 27 Vẽ tam giác cân có chiều cao h Nhập chiều cao tam giác: * * * * * * * * * * * * * * * * 28 Vẽ tam giác cân rỗng có chiều cao h Nhập chiều cao tam giác: * * * * * * * * * * * * BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | CẤU TRÚC LẶP 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 29 * Liệt kê tất số Fibonacci nhỏ số tự nhiên n Dãy số Fibonacci { định nghĩa sau: } { Nhập n: 20 1 13 30 * Tính với độ xác 0.01 ( tính theo độ) Biết: với tính theo radian Nhập góc (theo độ): 30 sin(30) = 0.5 31 * Tính với độ xác 0.01 ( tính theo độ) Biết: với tính theo radian Nhập góc (theo độ): 30 cos(60) = 0.5 32 * Tính π với độ xác đến n chữ số sau dấu chấm thập phân, biết: Độ xác (số chữ số sau dấu chấm thập phân): PI = 3.142 Độ xác (số chữ số sau dấu chấm thập phân): PI = 3.1416 E HÀM – ĐỆ QUY Viết chương trình (có sử dụng hàm): Tìm số lớn số thực Nhập số thực: 1.3 7.4 Số lớn là: 7.4 Gợi ý: xây dựng hàm có tham số kiểu số thực (float double), giá trị trả hàm kiểu số thực (float double) BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | HÀM – ĐỆ QUY 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Kiểm tra năm nhuận Chương trình kết thúc nhấn phím ESC Nhập vào năm: 1993 Đây khơng phải năm nhuận Nhấn phím ESC để thốt, phím để tiếp tục (giả sử nhấn ENTER) Nhập vào năm: 1994 Đây năm nhuận Nhấn phím ESC để thốt, phím để tiếp tục (giả sử nhấn ESC) Chú ý: Năm nhuận năm: Chia hết cho không chia hết cho 100, Chia hết cho 400 Gợi ý: Sử dụng hàm getch() để đọc ký tự hỏi có tiếp tục khơng Mã ASCII ESC 27 Sử dụng cấu trúc while để lặp Kiểm tra số nguyên dương có phải ngun tố khơng ? Chương trình kết thúc nhập vào số không Nhập vào số nguyên dương (0 để dừng): > số ngun tốt có ước số Nhập vào số nguyên dương (0 để dừng): 13 > 13 số nguyên tố Nhập vào số nguyên dương (0 để dừng): Gợi ý: Viết hàm để kiểm tra SNT (có đối số số nguyên cần kiểm tra, giá trị trả có kiểu int: =1 SNT, =0 khơng SNT) sau sử dụng cấu trúc while để lặp Trong vòng lặp, trước tiên nhập số nguyên x sau có gọi hàm kiểm tra SNT Tìm số nguyên tố thuộc đoạn [a,b], với a, b hai số nguyên dương cho trước a < b Nhập đoạn [a,b]: 10 20 Các số nguyên tố đoạn [10,20] là: 11, 13, 17, 19 Có tất số Gợi ý: Duyệt số nguyên từ a đến b Với số nguyên, gọi hàm kiểm tra SNT Nếu SNT xuất hình đồng thời « đếm » Để « đếm » số SNT tìm được, cần biến kiểu nguyên, ban đầu khởi tạo =0, lần « đếm » đơn giản tăng biến lên Tính an với n số tự nhiên theo cách đệ quy không đệ quy Tính giai thừa số tự nhiên cách đệ quy không đệ quy Nhập n: 4! = 24 Tính S = 0! + 1! + 2! + 3! + … + n!, với n số tự nhiên Nhập n: S = 0! + 1! + 2! + 3! + 4! = 34 BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | HÀM – ĐỆ QUY 10 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Gợi ý: Có cách để làm: Sử dụng hàm tính giai thừa Cách khơng tối ưu tính (k+1)! khơng tận dụng k! tính trước Giả sử tính xong S = 1! + 2! + … + k! cần phải tính tiếp (k+1)! + (k+2)! + … + n! để bổ sung vào S Để tính tiếp (k+1)! cộng dồn vào S mà khơng phải tính lại từ đầu (nghĩa (k+1)! = * * … * (k+1)) cần tạo biến gt để lưu giá trị giai thừa tính (gt = k!) Cứ lần tính (k+1)! để cộng dồn vào S gán lại gt = gt * (k+1) S = S + gt Tính Cnk với n, k số nguyên dương k n Nhập n, k: C(5,3) = 10 Tìm ước số chung lớn hai số nguyên dương Nhập a, b: 12 UCLN(8,12) = 10 Tìm bội số chung nhỏ hai số nguyên dương Nhập a, b: UCLN(4,6) = 12 11 Tìm ước số chung lớn ba số nguyên dương Nhập a, b, c: 12 10 UCLN(8,12,10) = 12 Tìm bội số chung nhỏ ba số nguyên dương Nhập a, b: UCLN(4,6,5) = 60 13 Tính tổng chữ số số nguyên dương Nhập số nguyên dương: 465 Tổng chữ số 465 15 14 Hiển thị số tự nguyên tố nằm đoạn [a, b], biết số tự nguyên tố số có tổng chữ số số nguyên tố Trên hàng ghi tối đa 20 số Nhập a, b: 10 99 Các số tự nguyên tố thuộc đoạn [10,99] là: 10 11 12 14 16 20 21 23 25 29 30 32 34 38 41 43 47 49 50 52 56 58 61 65 67 70 74 76 83 85 89 92 94 98 15 Tìm số đảo ngược số nguyên dương Nhập số nguyên dương: 1340 Số đảo ngược 1340 số 431 BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | MẢNG MỘT CHIỀU 11 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 16 Tìm số Fibonacci lớn nhỏ số nguyên n cho trước theo cách đệ quy không đệ quy Nhập n: 15 Fibonacci lớn nhỏ 15 13 F MẢNG MỘT CHIỀU Viết chương trình: Nhập vào mảng A gồm n (n ≤ 100) phần tử số nguyên, sau hiển thị mảng vừa nhập lên hình theo dạng sau: a a0 a1 a2 … an-1 Các phần tử khoảng trắng b a0,a1,a2,…,an-1 Các phần tử dấu phẩy c Các phần tử khoảng trắng bao cặp dấu [ ] [a0 a1 a2 … an-1 ] a Nhập Nhập Nhập Nhập Nhập Nhập Nhập Nhập Mảng Mảng Mảng vào số phần tử mảng: phần tử thứ 1: phần tử thứ 2: phần tử thứ 3: phần tử thứ 4: phần tử thứ 5: phần tử thứ 6: 10 phần tử thứ 7: vừa nhập là: 10 vừa nhập là: 1,2,8,4,7,10,9 vừa nhập là: [1 10 9] Khởi tạo mảng có 10 phần tử số nguyên khác đôi Tìm vị trí giá trị phần tử có giá trị lớn mảng Phần tử có giá trị lớn mảng [2 -3 -10 0] phần tử thứ 5, có giá trị Gợi ý: Cần biến để lưu giá trị lớn (vd: max) vị trí tương ứng (vd: maxi) Khởi tạo max = giá trị phần tử đầu tiên, maxi = (tức vị trí phần tử đầu tiên) Duyệt từ phần tử thứ cuối mảng, với phần tử, thấy giá trị lớn max cập nhật max maxi Sinh mảng gồm n (n ≤ 50) phần tử số nguyên ngẫu nhiên có giá trị thuộc [0, 127] Nhập số phần tử: Mảng ngẫu nhiên gồm phần tử là: [3 100 97 23] Gợi ý: Xây dựng hàm để tạo ngẫu nhiên mảng Hàm có đối số mảng số phần tử mảng Hàm không cần giá trị trả (void) Để ngẫu nhiên số nguyên, cần include stdlib.h time.h Trước sinh ngẫu nhiên, gọi srand(time(NULL)) để khởi động sinh ngẫu nhiên Nếu không gọi lần chạy chương trình số “ngẫu nhiên” Mỗi lần muốn có số ngẫu nhiên gọi hàm rand() Hàm trả số nguyên ngẫu nhiên từ đếm RAND_MAX BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | MẢNG MỘT CHIỀU 12 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Trong chương trình chính, khai báo mảng ngun a biến n lưu số phần tử mảng Gọi hàm tạo mảng ngẫu nhiên trên, sau xuất mảng vừa tạo hình Sinh mảng gồm n (n ≤ 40) phần tử số thực ngẫu nhiên có giá trị thuộc [0, 100] Nhập số phần tử: Mảng ngẫu nhiên gồm phần tử là: [3.00 7.20 95.21 97.36 23.23] Sắp xếp tăng dần mảng số ngun có kích thước n (n ≤ 50) phần tử sinh ngẫu nhiên, giá trị phần tử thuộc [1, 500] Nhập số phần tử: Mảng ngẫu nhiên gồm phần tử là: [64 32 66 97 23] Mảng sau xếp là: [23 32 64 66 97] Gợi ý: Sử dụng hàm tạo câu để sinh ngẫu nhiên mảng Tạo hàm để xếp mảng Hàm nhận đối số: mảng nguyên số nguyên số phần tử mảng Hàm khơng có giá trị trả Trong chương trình chính, khai báo mảng ngun a biến n lưu số phần tử mảng Gọi hàm tạo mảng ngẫu nhiên trên, sau gọi hàm xếp mảng cuối xuất mảng vừa xếp hình Khởi tạo hai mảng A B có kích thước n m phần tử (n, m ≤ 40) chứa số nguyên phạm vi [1, 500] Sắp xếp hai mảng theo thứ tự tăng dần, sau trộn mảng lại với cho mảng nhận mảng tăng dần Mảng ban đầu: A: [4 2] B: [6 5] Mảng sau xếp: A: [2 9] B: [1 8] Trộn mảng A B ta được: [1 9] Gợi ý: Sử dụng câu để xếp mảng theo thứ tự tăng dần Trộn hai mảng cách: sử dụng hai biến i j vị trí hai mảng A B Bạn đầu, i=j=0 Sẽ lặp i=m j=n Mỗi lần lặp bổ sung a[i] b[j] vào mảng C đồng thời tăng i j tùy theo giá trị a[i] b[j] (phần tử nhỏ bổ sung) Khi i=m j=n, nghĩa có mảng duyệt hết, đơn giản duyệt phần tử mảng bổ sung vào C Xuất mảng C hình Nhập vào mảng số thực gồm n (n ≤ 30) phần tử, sau kiểm tra xem mảng có đối xứng hay khơng Một mảng { } gọi đối xứng Mảng A: [7.2 5.0 5.0 7.2] Mảng đối xứng Mảng A: [1.0 3.3 3.3 2.0] Mảng không đối xứng BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | MẢNG MỘT CHIỀU 13 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ Gợi ý: Kiểm tra tính đối xứng cách cho biến i chạy từ đến n/2, kiểm tra xem có phần tử tương ứng an-i hay khơng Nếu có tiếp tục duyệt, ngược lại dừng kết luận mảng không đối xứng Nếu duyệt xong, nghĩa thỏa mãn tính đối xứng kết luận mảng đối xứng Nhập vào mảng số nguyên gồm n (n ≤ 20) phần tử sau tính trung bình cộng số chẵn Nhập vào số phần tử mảng: Phần tử thứ 1: Phần tử thứ 2: Phần tử thứ 3: Phần tử thứ 4: Trung bình cộng số chẵn là: 5.00 Liệt kê phần tử có giá trị nhỏ x mảng gồm n (n ≤ 30) phần tử số thực sinh ngẫu nhiên, phần tử có giá trị thuộc đoạn [0, 10] Nhập vào số phần tử mảng: Mảng sinh ngẫu nhiên gồm phần tử là: [2.3 8.5 4.0 7.2 10.0 9.8] Nhập vào x: 5.3 Có phần tử mảng có giá trị nhỏ 5.3 Đó là: 2.3 4.0 10 Nhập vào mảng số thực gồm n (n ≤ 100) phần tử số nguyên k Xóa phần tử thứ k mảng Nhập Phần Phần Phần Phần Nhập Mảng vào số phần tử mảng: tử thứ 1: 3.2 tử thứ 2: 2.3 tử thứ 3: 5.6 tử thứ 4: 8.4 vị trí phần tử cần xóa: sau xóa phần tử thứ là: 3.2 5.6 8.4 11 Xây dựng hàm để xóa phần tử có giá trị x mảng gồm n phần tử số nguyên Hãy sinh mảng nguyên ngẫu nhiên gồm (n ≤ 100) phần tử, phần tử có giá trị thuộc đoạn [0, 200], sau áp dụng hàm để xóa tất phần tử có giá trị x Nhập Mảng Nhập Mảng Có vào số phần tử mảng: sinh ngẫu nhiên gồm phần tử là: 5 vào x: sau xóa phần tử có giá trị 5: phần tử bị xóa khỏi mảng 12 Chèn số nguyên x vào mảng A cho sau chèn, mảng A có thứ tự tăng dần Biết trước mảng A có thứ tự tăng dần Mảng A ban đầu: [1 7] Nhập x: Mảng A sau chèn x = 4: [1 7] BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | MẢNG MỘT CHIỀU 14 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 13 Nhập vào mảng A gồm n (n ≤ 100) phần tử số nguyên dương Trong trình nhập kiểm tra phần tử nhập vào khơng trùng, trùng thơng báo yêu cầu nhập lại Quá trình nhập dừng lại nhập vào số Nhập phần tử thứ 1: Nhập phần tử thứ 2: Nhập phần tử thứ 3: Đã có phần tử mảng Vui lòng nhập lại! Nhập phần tử thứ 3: Nhập phần tử thứ 4: Mảng vừa nhập [5 4], gồm có phần tử 14 Quay vịng mảng A sang phải k vị trí Nhập Nhập Nhập Mảng số phần tử n: mảng A: số vị xoay k: A sau xoay vị trí: Gợi ý: Viết hàm để quay mảng A sang phải k vị trí Có cách để quay sang phải k vị trí Cách 1: tạo mảng sau dễ dàng tính tốn vị trí sau quay mảng ban đầu (tốn thêm nhớ chạy nhanh hơn) Cách 2: quay vị trí, lần quay vị trí (khơng tốn thêm nhớ chạy lâu hơn) 15 Tách mảng số nguyên X thành mảng A B, cho mảng A chứa toàn số lẻ mảng B chứa toàn số chẵn Mảng X sinh cách ngẫu nhiên với phần tử có giá trị thuộc đoạn [1, 50] Nhập số phần tử mảng X: Mảng X sinh ngẫu nhiên: [22 14 30 43 2] Sau tách, ta có: - Mảng A: [7 43] - Mảng B: [22 14 30 2] 16 Nhập vào mảng A gồm n (n ≤ 100) phần tử số nguyên, sau hiển thị dãy tăng có mảng Nhập vào số phần tử mảng: Nhập phần tử thứ 1: Nhập phần tử thứ 2: Nhập phần tử thứ 3: Nhập phần tử thứ 4: Nhập phần tử thứ 5: Nhập phần tử thứ 6: 10 Nhập phần tử thứ 7: Mảng vừa nhập là: [1 10 9] Các dãy tăng mảng là: - Dãy thứ 1: - Dãy thứ 2: 10 - Dãy thứ 3: BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | MẢNG MỘT CHIỀU 15 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 17 Tìm giá trị lớn thứ k mảng A gồm n số tự nhiên (n ≤ 50) Mảng A sinh cách ngẫu nhiên với phần tử có giá trị thuộc đoạn [0, 30] Nhập vào số phần tử mảng: Mảng sinh ngẫu nhiên gồm phần tử là: [1 10 4] Bạn muốn tìm giá trị lớn thứ mấy?: Giá trị lớn thứ mảng Nhập vào số phần tử mảng: Mảng sinh ngẫu nhiên gồm phần tử là: [1 10 4] Bạn muốn tìm giá trị lớn thứ mấy?: Giá trị lớn thứ mảng 18 Tìm giá trị xuất nhiều mảng số nguyên Mảng A ban đầu: [1 5 7] Giá trị xuất nhiều (xuất lần) 19 In tam giác Pascal Mảng chiều cao: 1 1 1 3 1 Gợi ý: Sử dụng mảng: mảng để lưu hàng tam giác, mảng để tính hàng 20 Nhập vào hai số nguyên dương a, b (a, b có tối đa 50 chữ số a > b) Tính tổng hiệu hai số Nhập a: Nhập b: a + b = a – b = 124356847384 293847563 124650694947 124062999821 21 * Nhập vào hai số nguyên dương a, b (a, b có tối đa 50 chữ số) Tính tích hai số Nhập a: 12435684 Nhập b: 2938 a * b = 36536039592 22 * Liệt kê tất chuỗi nhị phân độ dài k theo thứ tự từ điển Nhập k: Các chuỗi nhị phân có độ dài là: 00 01 10 11 BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | MẢNG MỘT CHIỀU 16 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 23 * Liệt kê tất hoán vị tập {1,2, ,n} theo thứ tự từ điển Nhập n: Các hoán vị tập {1,2,3} là: 3 2 3 3 24 * Liệt kê tất tổ hợp chập k n phần tử theo thứ tự từ điển Nhập n, k: Các tổ hợp chập phần tử {1,2,3,4} là: 4 25 ** Liệt kê tất tập tập A (gồm n phần tử mảng cho trước, mảng có thứ tự tăng dần) cho tổng giá trị phần tử tập số nguyên k c ho trước Biết tập A gồm phần tử có giá trị khác đôi Tập A ban đầu: Nhập k: Các tập A có tổng là: Gợi ý: Có cách duyệt dãy nhị phân có độ dài n Mỗi chuỗi tương ứng với tập A (=1 nghĩa thuộc tập A, =0 nghĩa không thuộc tập A) BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | MẢNG MỘT CHIỀU 17 ... (1+2+3) + … + (1+2+3+…+n), với n > Nhập n (n>0): D(3) = 10 12 * Tính trung bình cộng n số thực nhập từ bàn phím Nhập số (nhập Nhập số (nhập Nhập số (nhập Nhập số (nhập Trung bình cộng để dừng): để... thêm 11000đ Nhập số km: 31 Tiền cước: 372000 đồng BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | CẤU TRÚC RẼ NHÁNH 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 13 Nhập vào hai... đầu: [1 7] Nhập x: Mảng A sau chèn x = 4: [1 7] BÀI TẬP TIN HỌC ĐẠI CƯƠNG (BẢN CHƯA HO[N THIỆN) | MẢNG MỘT CHIỀU 14 10/2011 KHOA CÔNG NGHỆ THÔNG TIN, TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ 13 Nhập vào mảng