Viết chương trình nhập vào 1 số nguyên x hãy tính và đưa ra màn hình giá trị của hàm f(x x 10 x 5 1)
HƯỚNG DẪN GIẢI BÀI TẬP THỰC HÀNH MÔN HỌC NGÔN NGỮ LẬP TRÌNH CPHẦN 1. CÂU LỆNH ĐƠN GIẢN scanf, printfBài 1.01. Lập chương trình khai báo các biến lưu điểm toán, lý, hoá của một học sinh. Nhập vào các điểm số đó và đưa ra màn hình điểm tổng và điểm trung bình cộng của 3 môn học.Bài 1.02. Lập chương trình nhập vào số đo của bán kính hình tròn, tính ra chu vi và diện tích của nó rồi đưa kết quả ra màn hình. Cho biết hằng số có tên M_PI lưu giá trị của số π (≈ 3, 14142) được định nghĩa sẵn.Bài 1.03. Lập chương trình nhập vào số đo 2 cạnh chiều dài, chiều rộng của hình chữ nhật. Tính ra chu vi và diện tích của nó rồi đưa kết quả ra màn hình.Bài 1.04. Lập trình nhập vào giá trị của 2 biến kiểu số thực có tên X và Y. Tính và in ra màn hình giá trị của các biểu thức sau: X3 + Y2 - 2.X.Y + 10; sin(X); cos(X + Y); sin(2.X - Y); eX ; … Chú ý in có định dạng.Bài 1.05. Viết chương trình nhập vào 2 số bất kỳ và đổi giá trị của chúng cho nhau. In các số trước và sau khi đổi giá trị ra màn hình (thử chương trình với 2 cách: dùng biến trung gian và không dùng biến trung gian – cho nhận xét về giới hạn giá trị của 2 biến số trong 2 cách)Cách 1: Dùng biến trung giantg = a; a = b; b = tg;Cách 2: Không dùng biến trung gian:a = a + b; b = a - b; a = a - b;Giảng viên Th.S. Nguyễn Thế Cường - Khoa CNTT-ĐHHH, Email: – - Tel: 0912.402.279Trang 1HƯỚNG DẪN GIẢI BÀI TẬP THỰC HÀNH MÔN HỌC NGÔN NGỮ LẬP TRÌNH CBài 1.06. Nhập vào một giá trị số nguyên dương N và coi đó là đơn vị giây. Hãy đổi khoảng thời gian tính bằng giây đó sang A giờ B phút và C giây (ví dụ: 1000 giay = 0 gio 16 phut 40 giay).Bài 1.07. Nhập vào 2 số x và y. Tính giá trị xy (x mũ y).PHẦN 2. CÂU LỆNH CÓ ĐIỀU KIỆN if, switch… case …Bài 2.01. Lập trình khai báo các biến a, b kiểu số thực. Giải phương trình a.x + b = 0, in kết quả nghiệm ra màn hình.Hướng dẫn giải:• Nhập vào 2 tham số a và b.• Nếu a = 0o Nếu b = 0 =>> phương trình vô số nghiệmo Nếu b != 0 =>> phương trình vô nghiệm• Nếu a != 0 thì nghiệm là x = -b/a;Bài 2.02. Lập chương trình nhập vào một số thực biểu thị số đo của bán kính hình tròn. Kiểm tra xem số đó có là số dương hay không. Nếu có, tính ra chu vi và diện tích của nó rồi đưa kết quả ra màn hình. Nếu không thoả mãn. Cho biết hằng số có tên M_PI lưu giá trị của số π được định nghĩa sẵn.Bài 2.03. Lập trình khai báo các biến a, b, c kiểu số thực. Giải phương trình bậc hai một ẩn a.x2 + b.x + c = 0, in kết quả nghiệm ra màn hình.1. Nếu a khác 0 thì có nghiệm ngayGiảng viên Th.S. Nguyễn Thế Cường - Khoa CNTT-ĐHHH, Email: – - Tel: 0912.402.279Trang 2HƯỚNG DẪN GIẢI BÀI TẬP THỰC HÀNH MÔN HỌC NGÔN NGỮ LẬP TRÌNH C2. Ngược lại (a==0)2.1. Khả năng 1: nếu b==0 thì có vô số nghiệm2.2. Ngược lại (b khác 0) => phương trình vô nghiệmBài 2.04. Lập trình khai báo biến số nguyên a. Yêu cầu người dùng nhập vào giá trị từ 0.. 10. In ra màn hình cách đọc số đó theo kiểu tiếng Việt không dấu. Ví dụ: Nhập vào số 1 thì in ra MOT, nhập vào 2 in ra HAI.Bài 2.05. Nhập vào tâm đường tròn O(x0, y0), bán kính R. Kiểm tra xem 1 điểm (x, y) được đưa vào từ bàn phím có nằm trên, trong hoặc ngoài đường tròn đã cho không?Bài 2.06. Nhập vào từ bàn phím 3 cạnh a, b, c của hình hộp chữ nhật. Kiểm tra xem có thoả mãn là số dương hay không. Nếu thoả mãn, tính thể tích các hình hộp theo công thức V = a.b.c. Hiển thị kết quả lên màn hình, nếu không in ra thông báo "KHONG THOA MAN LA SO DO CANH HINH HOP".Bài 2.07. Nhập từ bàn phím các số thực x1, x2, x3, y1, y2, y3. Kiểm tra các đỉnh có toạ độ (x1, y1), (x2, y2), (x3, y3) có lập thành một tam giác không. Nếu đúng hãy tính: Chu vi, diện tích và các chiều cao tương ứng của tam giác đó. Nếu không thì hiện thông báo lên màn hình (gợi ý )).().(.( cpbpappS−−−=trong đó 2/)( cbap++=) và kiểm tra xem tam giác đó là tam giác vuông, cân, đều hay thườngBài 2.08. Giải và biện luận phương trình bậc nhất hai ẩn: Các hệ số được nhập từ bàn phím =+=+222111cybxacybxaGiảng viên Th.S. Nguyễn Thế Cường - Khoa CNTT-ĐHHH, Email: – - Tel: 0912.402.279Trang 3HƯỚNG DẪN GIẢI BÀI TẬP THỰC HÀNH MÔN HỌC NGÔN NGỮ LẬP TRÌNH CBài 2.09. Lập chương trình yêu cầu người dùng phải nhập vào đúng 4 số nguyên dương. Sau đó tính tổng của 2 số lớn nhất và nhỏ nhất trong 4 số đó. In các kết quả ra màn hình.Bài 2.10. Hãy nhập vào một giá trị là D số KWh điện tiêu thụ trong 1 tháng. Tính tiền điện cần phải trả biết rằng: D ∈ [0..100] đơn giá 450 đ; D ∈ [101..150] đơn giá 600 đ; D ∈ [151..250] đơn giá 800 đ; từ 251 trở lên đơn giá 1000 đ.Bài 2.11. Thực hiện nhập vào 1 số biểu thị năm dương lịch. Hãy in ra màn hình cách đọc năm đó theo âm lịch tương ứng (ví dụ: 2006 – Binh Tuat, 2005 – At Dau, …) Biết năm thứ nhất sau công nguyên là năm Tân Dậu (Ví dụ: Nhập vào 1 thì in ra – Tan Dau).PHẦN 3. CÂU LỆNH LẶP for…, while…, do… while …Bài 3.01. Viết chương trình khai báo biến nguyên i làm biến chạy. In ra màn hình 10 dòng chữ có nội dung là họ tên sinh viên, lớp, khoa.Bài 3.02. Viết chương trình tính tổng của 100 số nguyên dương đầu tiên (bằng 3 kiểu vòng lặp).Bài 3.03. Đưa ra bảng nhiệt độ Celcius Tc từ 00C, 10 C, …1000C và nhiệt độ tương ứng Ferengay Tf theo công thức chuyển đổi: Tf = (9/5). Tc + 32. Biểu diễn thành 2 cột tương ứng (chú ý in có định dạng).Bài 3.04. Tìm các số có 3 chữ số abc, sao cho tổng các lập phương của các chữ số bằng chính số đó (tức là a3 + b3 + c3 = abc = 100.a + 10.b + c). In các kết quả ra màn hình.Hướng dẫn giải:Giảng viên Th.S. Nguyễn Thế Cường - Khoa CNTT-ĐHHH, Email: – - Tel: 0912.402.279Trang 4HƯỚNG DẪN GIẢI BÀI TẬP THỰC HÀNH MÔN HỌC NGÔN NGỮ LẬP TRÌNH CBa chữ số a, b và c mỗi số có thể chạy từ 0 đến 9 và giá trị là từ 100 đến 999.Bài 3.05. Viết chương trình in ra bảng cửu chương.Dòng 1: 1 x 1 = 1 2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 5 x 1 = 5Dòng 2: 1 x 2 = 2 2 x 2 = 2 3 x 2 = 3 4 x 2 = 8 5 x 2 = 10Dòng 3: 1 x 3 = 3 2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15…Dòng 10: 1 x 10 = 102 x 10 = 20 3 x 10 = 30 4 x 10 = 40 5 x 10 = 50Tiếp theo là bảng 6 đến 10Dòng 1: 6 x 1 = 6 7 x 1 = 7 8 x 1 = 8 9 x 1 = 9 10 x 1 = 10Dòng 2: 6 x 2 = 12 7 x 2 = 14 8 x 2 = 16 9 x 2 = 18 10 x 2 = 20Dòng 3: 6 x 3 = 18 7 x 3 = 21 8 x 3 = 24 9 x 3 = 27 10 x 3 = 30…Dòng 10: 6 x 10 = 607 x 10 = 70 8 x 10 = 80 9 x 10 = 90 10 x 10 = 100Để phù hợp màn hình, ta chỉ in 5 cột.Trên cùng 1 dòng thì chỉ số đứng trước tăng từ 1 đến 5, xuống dòng lại quay về tăng từ 1 đến 5.Trên cùng cột thì chỉ số đứng sau tăng từ 1 đến 10, trên cùng 1 dòng thì nó giữ nguyên.Áp dụng vòng for lồng nhau.Giảng viên Th.S. Nguyễn Thế Cường - Khoa CNTT-ĐHHH, Email: – - Tel: 0912.402.279Trang 5HƯỚNG DẪN GIẢI BÀI TẬP THỰC HÀNH MÔN HỌC NGÔN NGỮ LẬP TRÌNH CBài 3.06. Viết chương trình tăng lương. Khai báo và nhập vào giá trị cho biến số luong. Thực hiện tăng lương theo quy luật mỗi lần tăng thêm 200 đ, tăng cho đến khi luong ≥ 1500 đ. In ra màn hình lương cuối cùng và số lần tăng.Bài 3.07. Lập trình giải bài toán sau: Năm 1992 dân số nước ta là 72 triệu người, tốc độ tăng dân số là 1, 02 % / năm. Hỏi đến năm bao nhiêu thì dân số nước ta là 80 triệu người (có thể yêu cầu nhập số dân cuối cùng, thay cho 80 triệu, rồi in ra số năm).Bài 3.08. Nhập số thực a từ bàn phím. Hãy tìm số tự nhiên N nhỏ nhất thoả mãn:1 + 1/2 + 1/3 +…+ 1/n > a. Cho biết giá trị của tổng trên (chú ý kiểm tra điều kiện 1<= a <= 2, 5).Hướng dẫn giải:Dãy tổng tăng dần khi cộng các phân số. Giá trị tăng đến n cuối cùng là không xác định, ví dụ:• Nếu nhập a = 1 thì 1/n = a = 1 =>> n = 1• Nếu a = 1,5 thì 1 + 1/2 = 1,5 = a => n = 2• Nếu a = 2 thì biểu thức là: 1/1 + 1/2 +1/3 + 1/4 = 2,08333 > 2 =>> n = 4• Nếu a = 2.2 thì biểu thức là: 1/1 + 1/2 +1/3 + 1/4 + 1/5 = 2,283 > 2.2 =>> n = 5=>> thuật toán sẽ là cứ cộng dồn theo từng bước cho đến khi tổng > a và trước mỗi lần tăng thì n ++;Giảng viên Th.S. Nguyễn Thế Cường - Khoa CNTT-ĐHHH, Email: – - Tel: 0912.402.279Trang 6HƯỚNG DẪN GIẢI BÀI TẬP THỰC HÀNH MÔN HỌC NGÔN NGỮ LẬP TRÌNH CBài 3.09. Tính gần đúng tổng sau: ...!7!5!3!1753++++=xxxxT Với số hạng cuối cùng của tổng là số hạng đầu tiên có giá trị tuyệt đối < ep, x và ep được nhập từ bàn phím.• Lặp lần 1: T = x / 1! = x / 1;• Lặp lần 2: T = x / 1! + x*x*x / 3! = T + x*x*x / 3!;• Lặp lần 3: T = x / 1! + x*x*x / 3! + x.x.x.x.x/ 5! = T + x.x.x.x.x / 5!;Phân số cuối cùng cũng được kế thừa nhau như sau:Xét tử số: để ts = x thành ts = x.x.x thì ta lấy ts = ts * x * x;Với mẫu số:Ban đầu: ms = 1! = 1; // i = 1Lặp lần 2: i = i + 2 = 3; để mẫu số: từ ms = 1 ! thành ms = 3! = 1.2.3 =>> Nghĩa là: ms = ms * 2 * 3 hay ms = ms * (i -1) * i ;Lặp lần 3: i = i + 2 ; // i = 3 + 2 = 5, thì mẫu số: từ ms = 3 ! thành ms = 5! = 1.2.3.4.5 = 3! .4.5; =>> Do 3! = ms cũ nên ms mới sẽ tính là: ms = ms * (i -1) * i;Bài 3.10. Tính tổng )!12(1....!51!311+++++=nS tới khi an<+)!12(1, với 0 < a < 0, 01 nhập từ bàn phím.Giảng viên Th.S. Nguyễn Thế Cường - Khoa CNTT-ĐHHH, Email: – - Tel: 0912.402.279Trang 7HƯỚNG DẪN GIẢI BÀI TẬP THỰC HÀNH MÔN HỌC NGÔN NGỮ LẬP TRÌNH CBài 3.11. Tính gần đúng giá trị của hàm số ex theo công thức: !...!3!2!1132nxxxxenx+++++=. Giá trị được tính cho tới khi epnxn a (mẫu số là số chẵn). Cho biết giá trị của tổng trên.Bài 3.15. Nhập vào từ bàn phím 3 số thực a, b, c. Kiểm tra xem chúng có tạo thành 3 cạnh một tam giác không? Nếu có kiểm tra xem đó là tam giác gì? (vuông, cân, đều, thường). Tính chu vi, diện tích tam giác đó, nếu không hiện thông báo lên màn hình và yêu cầu nhập lại.Bài 3.16. Số nguyên tố là số chỉ chia hết cho 1 và chính nó. Hãy viết chương trình nhập vào một số nguyên, kiểm tra xem số đó có là số nguyên tố hay không?Bài 3.17. Dãy số Fibonaci là dãy số được định nghĩa: F1=F2=1 ; Fn = Fn-1+ Fn- 2 khi N >2. Viết chương trình tìm phần tử thứ N của dãy số Fibonaci với N được nhập vào từ bàn phím.Giảng viên Th.S. Nguyễn Thế Cường - Khoa CNTT-ĐHHH, Email: – - Tel: 0912.402.279Trang 8HƯỚNG DẪN GIẢI BÀI TẬP THỰC HÀNH MÔN HỌC NGÔN NGỮ LẬP TRÌNH CBài 3.18. Thuật toán sau tìm ước chung lớn nhất của 2 số a và b (giả sử a > b) : UCLN(a, b) = UCLN(b, a-b). Viết chương trình tìm UCLN của 2 số a và b nhập vào từ bàn phím. Chương trình cho phép chạy nhiều lần.Bài 3.19. Số "hoàn hảo" là số mà tổng các ước số của nó lại bằng chính nó. Viết chương trình in ra các số hoàn hảo nhỏ hơn 10.000 ra màn hình. Chương trình cho phép chạy nhiều lần.Phân tích tổng quanBài toán con 1: tìm ước sốBài toán con 2: tìm tổng các ướcNếu tổng các ước = chính số đó => số hoàn hảoGiả sử có số n, thì ước của n chỉ nằm từ 1 đến n/2=> để tìm ước của n thì dùng biến chạy i từ 1 đến n/2Nếu n chia hết cho i thì cộng dồn tổng các ướcSau khi cộng xong, nếu tổng các ước của n bằng chính n thì n là hoàn hảo// không được cho lệnh tong = 0 ở đây vì mỗi lần thử tính hoàn hảo của n thì phải gán tong = 0 từ đầufor (n=2; n <= 10000; n ++) //== thử tất các các số từ 2 đến 10000{tong = 0;//== dùng biến chạy i để kiểm tra ước sốfor(i=1; i |