Bài tập thực hành môn thiết kế lập trình C

7 798 4
Bài tập thực hành môn thiết kế lập trình C

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

Thông tin tài liệu

Bi tập thực hnh Môn Kỹ thuật lập trình Biên soạn: Nguyễn Mạnh Cờng Trang: 1 Một số Bi tập thực hnh môn kỹ thuật lập trình --------------- Chơng I: Biến biểu thức các lệnh nhập xuất 1. Nhập hai số nguyên, tính tổng, hiệu, tích, thơng, đồng d. 2. Nhập một số nguyên, in ra mn hình cách đọc số nguyên đó (VD: số 1252 đọc l: một ngn hai trăm năm chục hai đơn vị). 3. Viết chơng trình tính giá trị biểu thức: F(x) = (x 2 +e x +sin 2 (x))/sqrt(x 2 +1) Chơng II: các cấu trúc điều khiển 1. Viết chơng trình nhập vo một số nguyên n. Kiểm tra xem n chẵn hay lẻ. 2. Viết chơng trình giải v biện luận phơng trình bậc nhất theo hai hệ số a, b nhập từ bn phím. 3. Viết chơng trình giải v biện luận phơng trình bậc hai với các hệ số a, b, c nhập từ bn phím. 4. Viết chơng trình nhập vo số tiền phải trả của khách hng. In ra số tiền khuyến mãi với quy định: nếu số tiền phải trả thuộc [200.000, 300.000) thì khuyến mãi 20%. Nếu số tiền phải trả từ 300.000 trở lên thì khuyến mãi 30%. Còn lại thì không khuyến mãi. 5. Viết chơng trình nhập vo điểm tổng kết của một học sinh v in ra xếp loại cho học sinh đó với quy định: - Xếp loại giỏi nếu tổng điềm từ 8.00 trở lên. - Xếp loại khá nếu tổng điểm từ 7.00 tới cận 8.00. - Xếp loại trung bình nếu tổng điểm từ 5.00 tới cận 7.00. - Còn lại, xếp loại yếu. ------------------- 6. Viết chơng trình nhập vo một tháng bất kỳ, sau đó in ra số ngy có trong tháng (quy định tháng 2 có 28 ngy). ------------------- 7. Viết chơng trình tính n! Bi tập thực hnh Môn Kỹ thuật lập trình 8. Nhập vo một số nguyên, kiểm tra xem một số vừa nhập có phải l số nguyên tố không, in kết luận ra mn hình. 9. Viết chơng trình nhập vo một số nguyên n, sau đó tính giá trị biểu thức: S = n 1 . 3 1 2 1 1 ++++ 10. Viết chơng trình nhập vo một số nguyên n, sau đó tính giá trị biểu thức F = + +++++ lẻ n nếu chẵn n nếu 1 2 1 . 2 1 2 1 2 1 1 2 32 n n 11. Viết chơng trình nhập vo một số thực x v số nguyên n, sau đó tính giá trị biểu thức: S = chẵn n nếu lẻ n nếu ++++ 0 3 . 3 3 12 32 n n xxx x 12. Viết chơng trình nhập vo một số nguyên n trong khoảng [10, 20] (nếu số nhập vo không thuộc khoảng đó thì yêu cầu nhập lại tới khi thoả mãn). Sau đó tính tổng các số liên tiếp từ 1 tới n. 13. Viết chơng trình nhập vo một số nguyên dơng n, sau đó tính tổng các giá trị chẵn, lẻ thuộc đoạn [1, n]. 14. Viết chơng trình nhập vo các số nguyên dơng n, m, sau đó in ra: - Tổng các số chẵn dơng trong khoảng [- n, m]. - Tổng các số chẵn âm trong khoảng [- n, m]. - Tổng các số lẻ dơng trong khoảng [- n, m]. - Tổng các số lẻ âm trong khoảng [- n, m]. 15. Viết chơng trình nhập vo một số nguyên n, sau đó tính tổng các số nguyên tố thuộc đoạn [1 n]. Cho biết có bao nhiêu số nguyên tố thuộc đoạn đó. 16. Dùng while (sau đó viết lại, dùng do/ while) để viết chơng trình in ra số l luỹ thừa 2 bé nhất lớn hơn 1000. 17. Cho dãy số x[] = { 12.3, -45.4, 12, 15, 10.1, 12.5}. Viết chơng trình đảo ngợc dãy số trên. 18. Viết chơng trình tìm số nguyên dơng n nhỏ nhất thoả mãn: 1 + 2 + 3 + + n > 1000. 19. Để tính căn bậc hai của một số dơng a, ta sử dụng công thức lặp sau: Biên soạn: Nguyễn Mạnh Cờng Trang: 2 Bi tập thực hnh Môn Kỹ thuật lập trình x(0) = a; x(n+1) = (x(n) * x(n) + a)/ (2* x(n)) với n >=0. Quá trình lặp kết thúc khi abs((a(n+1) x(n))/x(n)) < . v khi đó x(n+1) đợc xem l giá trị gần đúng của sqrt(a). Viết chơng trình tính căn bậc hai của a với độ chính xác = 0.00001. 20. Lập trình để tính sin(x) với độ chính xác = 0.00001 theo công thức : sin(x) = x x 3 /3! + x 5 / 5! + + (-1) n x (2n+1) / (2n+1)!. 21. Lập trình để tính tổ hợp chập m của n theo công thức: C(m, n) = (n(n-1)(n-m+1))/ m!. Chơng III: kỹ thuật lập trình đơn thể 1. Viết hm kiểm tra xem một số nguyên n có phải l số nguyên tố không. Sau đó, trong chơng trình chính, nhập vo một số nguyên n, kiểm tra tính nguyên tố của số n v thông báo ra mn hình. 2. Viết hm tính n! sau đó, trong chơng trình chính, nhập vo một số nguyên n v tính, in ra kết quả của biểu thức: S = )!1( 1! + + n n 3. Viết hm tính giá trị biểu thức F (trong bi số 10 chơng II) với đối vo l n. Sau đó, trong chơng trình chính, nhập vo hai số a, b, tính v in ra mn hình kết quả của biểu thức: S = )( )()( baF bFaF 4. Viết hm sắp xếp một chuỗi ký tự (từ A->Z). Sau đó, trong chơng trình chính, nhập vo một xâu ký tự bất kỳ, in xâu đã đợc sắp lên mn hình. 5. Viết chơng trình giải phơng trình trùng phơng : ax 4 + bx 2 + c = 0. Kỹ thuật Đệ quy 6. USCLN của hai số a, b đợc định nghĩa nh sau: USCLN(a, b) = a nếu b = 0 = USCLN(b, a%b) nếu b <> 0 Viết hm đệ quy tìm USCLN của hai số nguyên a, b. Trong chơng trình chính, nhập vo hai số nguyên a, b. Tìm v in USCLN của hai số đó lên mn hình. Biên soạn: Nguyễn Mạnh Cờng Trang: 3 Bi tập thực hnh Môn Kỹ thuật lập trình Biên soạn: Nguyễn Mạnh Cờng Trang: 4 7. USCLN của hai số a, b đợc định nghĩa nh sau: USCLN(a, b) = a nếu a = b = USCLN(a-b, b) nếu a > b = USCLN(a, b-a) nếu a < b Viết hm đệ quy tìm USCLN của hai số nguyên a, b. Trong chơng trình chính, nhập vo hai số nguyên a, b. Tìm v in USCLN của hai số đó lên mn hình. 8. Viết hm tìm kiếm đệ quy trên một dãy số nguyên đã đợc sắp. 9. Các số Fibonacci F[i] đợc định nghĩa đệ quy nh sau: F[0] =1; F[1] =1; F[i] = F[i-1] + F[i-2] (với i > 1); (VD: 1, 1, 2, 3, 5, 8, 13) Viết hm đệ quy tìm số Fibonacci thứ n trong dãy. 10. Viết hm đệ quy tính n!. (n Z + ) 11. Viết hm đệ quy tính f(x, n) = x n . (xR, n Z). Viết chơng trình chính sử dụng hm trên để nhập vo số nguyên n, số thực x từ bn phím. Tính v in ra mn hình giá trị của f(x, n). 12. Viết hm đệ quy tính f(x, n) = n!x n . (xR, n Z). Viết chơng trình chính sử dụng hm trên để nhập vo số nguyên n, số thực x từ bn phím. Tính v in ra mn hình giá trị của f(x, n). 13. Viết hm đệ quy để đếm số chữ số có trong một số nguyên bất bỳ (Ví dụ số 1263 có 4 chữ số). Viết chơng trình chính sử dụng hm trên để cho phép nhập vo một số nguyên bất kỳ. In ra mn hình số chữ số của số nguyên vừa nhập. 14. Dãy Catalan đợc định nghĩa đệ quy nh sau: C 1 = 1; C n = C i * C n-i n > 1. Ví dụ: { 1, 1, 2, 5,} Hãy xây dựng hm đệ quy tính số Catalan thứ n bất kỳ (n Z + ). Viết chơng trình chính sử dụng hm trên để tính số Catalan thứ n bất kỳ với n nhập từ bn phím (n Z + ). Chơng IV: kỹ thuật lập trình dùng mảng. Bi tập thực hnh Môn Kỹ thuật lập trình Biên soạn: Nguyễn Mạnh Cờng Trang: 5 1. Cho hai vector x(x 1 , x 2 x n ) v y(y 1 , y 2 y n). Viết chơng trình in ra Tích vô hớng của hai vector trên. 2. Cho hai mảng a v b có các phần tử đều đã đợc sắp tăng. Lập chơng trình trộn hai mảng trên để thu đợc một mảng thứ 3 cũng sắp theo thứ tự tăng bằng hai phơng pháp. 3. Viết chơng trình nhập vo một mảng n số nguyên, sắp xếp mảng theo chiều tăng dần v in kết quả lên mn hình bằng các phơng pháp: - Sắp xếp nổi bọt. - Sắp xếp chọn. - Sắp xếp chèn. 4. Viết chơng trình nhập vo một mảng n số nguyên, tính tổng các phần tử chẵn, các phần tử lẻ, các phần tử chia hết cho 3 v in kết quả ra mn hình. 5. Viết chơng trình nhập vo một dãy số thực, tìm phần tử lớn nhất (tơng tự, tìm phần tử nhỏ nhất) của dãy v in kết quả ra mn hình. 6. Viết chơng trình nhập vo một dãy số nguyên. Tính tổng của các số nguyên tố trong dãy v in kết quả ra mn hình. 7. Viết chơng trình nhập vo một dãy số nguyên v một số nguyên c. Đếm số lần xuất hiện v vị trí xuất hiện của c trong dãy. In các kết quả ra mn hình. 8. Viết chơng trình nhập vo một dãy n số nguyên. Tính trung bình cộng của dãy v in kết quả tính đợc ra mn hình. 9. Một dãy số a gọi l đợc sắp tăng nếu a[i] <= a[i+1] với mọi i; Dãy gọi l đợc sắp giảm nếu a[i] >= a[i+1] với mọi i; Dãy gọi l đợc sắp tăng ngặt nếu a[i] < a[i+1] với mọi i; Dãy gọi l đợc sắp giảm ngặt nếu a[i] > a[i+1] với mọi i; Viết chơng trình nhập một dãy n số thực, kiểm tra xem dãy đã đợc sắp hay cha. Nếu đã đợc sắp thì sắp theo trật tự no (tăng, tăng ngặt, giảm, giảm ngặt?). Nếu cha thì sắp xếp dãy theo chiều tăng dần. In các kết quả lên mn hình. 10. Viết hm tìm kiếm lặp trên một dãy số nguyên đã đợc sắp với độ phức tạp tốt hơn O(n). 11. Viết chơng trình nhập vo một ma trận m x n số nguyên. Tìm các phần tử lớn nhất v bé nhất trên các dòng (tơng tự các cột) của ma trận. (sử dụng for sau đó dùng while, do/ while). Bi tập thực hnh Môn Kỹ thuật lập trình Biên soạn: Nguyễn Mạnh Cờng Trang: 6 12. Viết chơng trình tìm phần tử âm đầu tiên trong ma trận (theo chiều từ trái qua phải, từ trên xuống dới). 13. Viết chơng trình nhập vo một ma trận m x n số nguyên. Tìm phần tử lớn nhất (tơng tự tìm phần tử nhỏ nhất) của ma trận vừa nhập. In kết quả ra mn hình. Có thể sửa lại bi để tìm phần tử lớn nhất (nhở nhất) trên các cột (các dòng) đợc không? 14. Viết chơng trình nhập vo hai ma trân A, B có n hng, m cột. Tính ma trận C = A + B v in kết quả ra mn hình. 15. Viết chơng trình nhập vo hai ma trận A, B, tính v in ra mn hình tích của hai ma trận đó. 16. Viết chơng trình nhập vo một ma trận A có n dòng, m cột. In ra mn hình ma trận chuyển vị của A. (A đợc gọi l ma trận chuyển vị của A nếu A[i, j] = A[j, i] với mọi i, j). 17. Ma trận A đợc gọi l đối xứng qua đờng chéo chính nếu A[i, j] = A[j, i] với mọi i khác j. Viết chơng trình nhập vo một ma trận A, kiểm tra xem A có đối xứng qua đờng chéo chính không. In kết luận lên mn hình. Chơng V: Kỹ thuật lập trình dùng con trỏ Tất cả các bi tập về mảng ở trên đều có thể sửa lại để dùng con trỏ thay vì dùng mảng. Ngoi ra hãy ci đặt thêm các bi tập sau: 1. Viết chơng trình nhập vo một mảng a gồm n phần tử nguyên. Sắp xếp mảng theo chiều giảm dần (lu ý sử dụng tên mảng nh con trỏ v sử dụng con trỏ). 2. Hãy dùng một vòng for để nhập vo một ma trận vuông cấp n với các phần tử thực v tìm phần tử Max của ma trận ny. 3. Viết hm hoán vị hai biến thực a, b bằng cách sử dụng con trỏ (đối vo l hai con trỏ). Viết chơng trình chính nhập hai số thực a, b. Sử dụng hm trên để đổi chỗ a v b. 4. Viết hm giải hệ phơng trình bậc nhất với sáu đối vo l a, b, c, d, e, f v 2 đối ra l x v y. 5. Viết hm tính giá trị đa thức: f(x) = a 0 x n + + a n-1 x + a n . với đối vo l biến nguyên n v mảng thực a. 6. Viết hm cộng hai ma trận vuông a v b cấp n (sử dụng con trỏ). 7. Viết chơng trình tính tích phân của f(x) trên đoạn [a, b] bằng công thức hình thang. Theo đó, tích phân của f(x) trên [a, b] bằng: h * s. Trong đó: h l độ di khoảng phân hoạch đoạn [a, b] thnh n khoảng. Bi tập thực hnh Môn Kỹ thuật lập trình Biên soạn: Nguyễn Mạnh Cờng Trang: 7 s l tổng tất cả các f(a+i*h) với i từ 1 tới n. Sử dụng hm trên để tính tích phân trong đoạn [-1, 4] của: f(x) = (e x -2sin(x 2 ))/ (1+x 4 ). (nghiên cứu cách đa con trỏ vo giải quyết bi toán). //================Tham khảo code một số hm đệ quy======== #include "iostream.h" #include "conio.h" //hm tính n giai thừa ======================================= long gt(int n) { if (n==0) return 1; else return n*gt(n-1); } //hm tìm số Fibonacci thứ n=========================== long Fibo(int n) { if (n<=1) return 1; else return Fibo(n-1)+ Fibo(n-2); } //hm USCLN của a va b=============================== int USCLN(int a, int b) { if (b==0) return a; else return USCLN(b, a%b); } //Hm main========================================= void main() { int n; cout<<"nhap n "; cin>> n; long S = gt(n); cout<<"n gt "<<S; getch(); //===================================== long T = Fibo(n); cout<<"\n so fibonaci thu "<<n<<" la "<<T; getch(); //===================================== int a, b; cout<<"nhap a "; cin>> a; cout<<" nhap b "; cin>>b; cout<<"\n USCLN cua "<<a<<" va "<<b<<" la "<<USCLN(a,b); getch(); } . Bi tập th c hnh Môn Kỹ thuật lập trình Biên soạn: Nguyễn Mạnh C ng Trang: 1 Một số Bi tập th c hnh môn kỹ thuật lập trình --------------- Chơng I:. - Sắp xếp chèn. 4. Viết chơng trình nhập vo một mảng n số nguyên, tính tổng c c phần tử chẵn, c c phần tử lẻ, c c phần tử chia hết cho 3 v in kết quả ra

Ngày đăng: 06/11/2013, 13:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan