Gia sư Cần Thơ, Dạy Kèm Cần Thơ

VỮNG TIN - TIẾP BƯỚC - THÀNH CÔNG


Bài tập thực hành Lập trình hình thức và tính toán

Share
avatar
admin
Admin
Admin

Tổng số bài gửi : 1207
Points : 3010
Join date : 11/11/2009
Age : 37
Đến từ : Cần Thơ

Bài tập thực hành Lập trình hình thức và tính toán

Bài gửi  admin on Thu Feb 25, 2010 10:31 am

BÀI TẬP LẬP TRÌNH HÌNH THỨC VÀ TÍNH TOÁN


Bài tập thực hành: download tại đây

Ghi chú:
- Tất cả các bài tập phải viết thành Module và các câu hỏi nhỏ trong bài tập nếu cần thiết nên viết thành Module.
- Khi yêu cầu cài đặt theo hai cách có nghĩa:
o Sử dụng hàm có sẵn.
o Xây dựng thành Module sắp xếp theo thuật toán đã học.


BÀI TẬP CƠ BẢN


Bài 1: Xây dựng Module tìm số lớn nhất của hai số a và b.

Bài 2: Xây dựng Module tìm số lớn nhất của hai số a, b và c.

Bài 3: Xây dựng Module tính n giai thừa theo hai cách:
- Không đệ quy.
- Đệ quy.

Bài 4: Xây dựng Module tìm tất cả các số Fibonaci nhỏ hơn n theo hai cách:
- Không đệ quy.
- Đệ quy.

Bài 5: Xây dựng Module tìm UCLN của hai số a và b theo hai cách:
- Không đệ quy
- Đệ quy.
Bài toán mở rộng: tìm ước số chung lớn nhất của n số a1, a2,…,an-1, an.

Bài 6: Xây dựng Module tìm BCNN của hai số a và b.

Bài 7: Xây dựng Module kiểm tra một số có phải là nguyên tố hay không, nếu đúng trả về kết quả 1, sai trả về kết quả 0.

Bài 8: Xây dựng Module đổi một số từ dạng thập phân sang dạng nhị phân.
Ví dụ: Nhập: 9 -->1001

Bài 9: Xây dựng Module đổi một số từ dạng nhị phân sang dạng thập phân.
Ví dụ: Nhập: 1101 -->13

Bài 10: Xây dựng Module cho vào một danh sách và sau đó ghép các phần tử trong danh sách thành một số.
Ví dụ: {123,3,5,7,90} ---> 12335790

Bài 11: Xây dựng Module cho vào số m sau đó tạo thành 1 danh sách gồm các phần tử có trong số m đã cho và mỗi phần tử có n số, nếu dư số thì cho vào phần tử cuối cùng trong danh sách.
Ví dụ: Vào: m = 1234567 , n =2.
Kq: {12,34,56,7}

Bài 12: Xây dựng Module tìm nghiệm gần đúng của phương trình bằng phương pháp dây cung. Các tham số nhập từ bàn phím.

Bài 13: Xây dựng Module tìm nghiệm gần đúng của phương trình bằng phương pháp tiếp tuyến. Các tham số nhập từ bàn phím.

Bài 14: Xây dựng Module tìm nghiệm gần đúng của phương trình bằng phương pháp chia đôi. Các tham số nhập từ bàn phím.

Bài 15: Xây dựng Module tính gần đúng tích phân bằng công thức Simpson. Các tham số nhập từ bàn phím.

Bài 16: Xây dựng Module tính gần đúng tích phân bằng công thức hình thang. Các tham số nhập từ bàn phím.

Bài 17: Xây dựng Module tính gần đúng căn bậc n bằng công thức Newton.

Bài 18:Viết Modul giải và biện luận số nghiệm thực của phương trình bậc hai ax^2+bx+c=0.

Bài 19: Cho một số n bất kỳ hãy phân tích số n này thành tích các thừa số nguyên tố.
Ví dụ:
- n = 10 = 2*5
- n = 48 = 2*2*2*2*3
Bài 20: Vẽ hình cây cầu và cá.

Bài 21: Vẽ các mặt bậc hai cơ bản.

BÀI TẬP VỀ DANH SÁCH


1. Viết hàm nhập một mảng số nguyên gồm n phần tử.
2. Viết hàm in mảng số nguyên gồm n phần tử
3. Viết hàm tìm phần tử lớn nhất của mảng
4. Viết hàm tìm phần tử lớn nhất trong mảng (trả về giá trị và chỉ số).
5. Viết hàm tìm phần tử nhỏ nhất trong mảng (trả về giá trị và chỉ số).
6. Viết hàm in ra các số nguyên tố trong mảng
7. Viết hàm đếm các số nguyên tố trong mảng
8. Viết hàm trung bình cộng các số nguyên tố trong mảng
9. Viết hàm tính tổng các phần tử chẵn chia hết cho 3.
10. Tính trung bình cộng các phần tử lẻ
11. Viết hàm tính tổng các số chính phương trong mảng
12. Viết hàm liệt kê các số chính phương trong mảng
13. Viết hàm sắp xếp mảng theo thứ tự tăng dần.
14. Viết hàm in ra các số lẻ theo thứ tự trị tuyệt đối tăng dần, các số chẵn theo thứ tự trị tuyệt đối giảm dần.


BÀI TẬP TỔNG HỢP



Bài 1: Tạo ra một danh sách các số nguyên ngẫu nhiên thuộc [20,120] gồm n phần tử (n>0), n nhập từ bàn phím.
a. In ra phần tử đầu, giữa và cuối DS.
b. Sắp xếp DS theo chiều tăng giảm theo hai cách.
c. Chia DS ra thành hai DS mới và trộn các phần tử trong hai mới DS này xen kẻ với nhau thành 1 danh sách mới có n phần tử.
Ví dụ: Ds = {2,7,8,3,11,6,7}->{2,7,8,3},{11,6,7}
->{2,11,7,6,8,7,3}
d. Tính tổng các phần tử trong DS theo hai cách.
e. Tìm tất cả các phần tử trong danh sách lớn hơn 50 và nhỏ hơn 70 lưu vào trong 1 DS mới.
f. Tìm trong DS tất cả các số nguyên tố theo hai cách.
g. Chia DS thành hai DS mới theo DS số chẵn và DS số lẻ.
Ví dụ: Ds = {2,7,8,3,11,6,7}->{2,8,6},{7,3,11,7}

Bài 2: Tạo ra một ma trận cấp (n,n+1) với các số nguyên ngẫu nhiên, cột thứ n+1 chính là hệ số tự do của hệ phương trình tuyến tính n phương trình và n biến. Hãy thực hiện các yêu cầu sau:
a. Hãy trích ma trận (n,n+1) đã cho thành ma trận cấp (n,n) bằng cách bỏ ra cột thứ n+1 (2 cách).
b. Đưa ma trận cấp (n,n) đã trích về dạng tam giác trên và tam giác dưới. Tính định thức của ma trận (2 cách).
c. Tìm ma trận nghịch đảo của ma trận đã trích nếu có (2 cách).
d. Phân rã ma trận đã trích và tính định thức của ma trận (2 cách).
e. Dùng phương pháp Guass tìm nghiệm của hệ phương trình tuyến tính đã tạo.
f. Dùng Phương pháp lặp đơn tìm nghiệm gần đúng của hệ phương trình tuyến tính đã tạo.

Bài 3: Tạo ra một danh sách 100 số nguyên ngẫu nhiên trong đoạn [5,100].
b. Tính tổng tất cả các số trong danh sách.
c. Tính tổng tất cả các số lớn hơn 50 trong danh sách.
d. Tạo ra 1 danh sách mới bao gồm những số lẻ trong danh sách và tính tổng tất cả các số trong danh sánh mới.
e. Tính tổng tất cả các số chẵn trong danh sách.
f. Liệt kê tất cả các số nguyên tố có trong danh sách.Tính tổng tất cả các số nguyên tố trong danh sách vừa liệt kê.
g. Tìm tất cả những số có trong danh sách mà chia hết cho 5.
h. Tìm ước chung lớn nhất của tất cả các số có trong danh sách.

Bài 4: Tạo ra một dãy 30 số nguyên lẻ đầu tiên {1, 3, 5, …}
a. Tính tổng tất cả các số nguyên tố trong dãy.
b. Tính tổng bình phương của tất cả các số trong dãy 1¬2+32+…
c. Tạo ra một dãy mới 30 số nguyên ngẫu nhiên trong đoạn [-100,100]. Tạo ra một dãy mới 60 số bằng cách trộn dãy số này với dãy số đã cho theo thứ xen kẻ.
Ví dụ:
{1, 3, 5, …}
{-2, 100, 7}
->{1, -2, 3, 100, 5, 7, …}
d. Tính giá trị trung bình của một phần tử trong dãy số.
e. Tạo ra danh sách mới gồm 15 số bằng cách bỏ đi những phần tử ở vị trí chẵn.
Ví dụ: {1, 3, 5, 7, 9…}
->{1, 5, 9, …}
f. Tổng tất cả các phần tử ở vị trí chẵn trong dãy.
g. Tạo ra dãy số mới từ dãy số đã cho bằng cách loại bỏ tất cả các số nguyên tố từ dãy đã cho.

Bài 5: Viết modul phát sinh 1 danh sách L gồm 30 phần tử ngẫu nhiên trong khoảng (20,90) và thực hiện các chức năng sau:
a. Tạo danh sách L1, L2 từ danh sách L với L1,L2 tương ứng các phần tử chẵn, lẻ trong danh sách L.
b. Tạo danh sách L3 bằng cách lấy mọi số nguyên tố từ dãy L.
c. Tạo danh sách L4 bằng cách ghép danh sách L1 với L3 theo thứ tự tăng dần.
d. Tạo danh sách L5 bằng cách ghép danh sách L2 với L3 theo thứ tự giảm dần.
e. Phát sinh ngẫu nhiên danh sách S gồm 30 phần tử lẻ trong khoảng (20,90).
f. Vẽ đồ thị điểm với danh sách điểm {x=S,y=L}.
VD: L = {3,4,3,3,8}
S = {1,3,5,7,9}
Danh sách điểm là {{3,1},{4,3},{3,5},{3,7},{8,9}}

Bài 6: Viết modul tạo 2 danh sách L1, L2 gồm 20 phần tử theo các yêu cầu sau:
- L1: phát sinh ngẫu nhiên những số nguyên tố trong khoảng (50,1000).
- L2: phát sinh ngẫu nhiên những số thuộc dãy Fibonacci trong khoảng (50,1000).
Thực hiện các yêu cầu sau:
a. Tạo danh sách L bằng các trộn 2 danh sách L1, L2 theo thứ tự tăng dần.
b. Tạo danh sách S bằng cách các phần tử trong S vừa là số nguyên tố vừa là số thuộc dãy Fibonacci trong L1, L2.
VD: L1 = {3,5,7,13,9}
L2 = {3,5,8,13,21}
S = {3,5,13}
c. Tạo danh sách L3 bằng cách trộn 2 danh sách L1, L2 theo thứ tự giảm dần.
d. Viết modul sắp xếp danh sách L theo thứ tự tăng dần, sử dụng 1 trong những thuật toán sắp xếp đã học.
e. Sử dụng công thức nội suy Largang viết modul nội suy dãy điểm {xi=L1i,yi=L2i}.
VD: X = L 1= {3,4,3,3,8}
Y = L2 = {1,3,5,7,9}
Danh sách điểm là {{3,1},{4,3},{3,5},{3,7},{8,9}}


Được sửa bởi Admin ngày Wed May 25, 2011 8:15 am; sửa lần 4.

phongnguyenvucntt
Nhập môn
Nhập môn

Tổng số bài gửi : 2
Points : 4
Join date : 21/01/2010

vấn đề thắc mắc?

Bài gửi  phongnguyenvucntt on Sun Feb 28, 2010 10:05 am

thầy ơi khi mà tụi em làm bài tập xong thì cách thức gởi bài cho thầy như thế nào? có phải gởi qua mail không? và nén lại toàn bộ các file gời hết cho thấy hay là chỉ gởi file chạy thôi? khi gới có kèm theo các thông tin gì không? đồng thời các bài thầy cho có giới hạn thời gian không? phải làm hết tất cả mới gởi hay làm được bài nào thì gởi bài đó thôi? mong thầy hướng dẫn cụ thể cho tụi em.
cảm ơn thầy rất nhiều! Very Happy

trinhhaidangcntt3k8
Nhập môn
Nhập môn

Tổng số bài gửi : 3
Points : 3
Join date : 27/02/2010

Re: Bài tập thực hành Lập trình hình thức và tính toán

Bài gửi  trinhhaidangcntt3k8 on Tue Mar 02, 2010 3:44 pm

Các bạn theo sự phân công của lớp trưởng,dịch các hàm sau đó lớp trưởng tập hợp lại gõ thành 1 file word sau đó gửi cho thầy,theo tinh thần một lớp làm 1 chương :
lớp 1:Graphics and Sound
lớp 2:Mathematical Functions
lớp 3:Algebraic Computation
lớp 4:Numerical Computation
chương Lists and Matrices thầy đã dạy một phần rồi nên thầy sẽ dạy hết,các bạn chỉ cần làm 4 chương sau,các bạn làm theo sự phân công cùa lớp trưởng,nhờ các bạn nói với các lớp trưởng giùm,tôi chưa có dịp gặp tất cả các lớp trưởng để thông báo xin cảm ơn
*Còn các bài tập trên thì tôi cũng chưa rõ,trước mắt các bạn làm trước đi rồi gặp thầy trao đổi sau
avatar
admin
Admin
Admin

Tổng số bài gửi : 1207
Points : 3010
Join date : 11/11/2009
Age : 37
Đến từ : Cần Thơ

Re: Bài tập thực hành Lập trình hình thức và tính toán

Bài gửi  admin on Tue Mar 02, 2010 10:11 pm

Bài tập này mỗi bạn phải tự làm, bạn nào làm xong thì bài nào thì post lên diễn đàn bài đó để cho các bạn khác tham khảo vì một bài có rất nhiều cách làm.

trinhhaidangcntt3k8
Nhập môn
Nhập môn

Tổng số bài gửi : 3
Points : 3
Join date : 27/02/2010

Tìm max

Bài gửi  trinhhaidangcntt3k8 on Wed Mar 03, 2010 4:16 pm

Mình post 2 bài trước,các bạn đóng góp nha
Bài 1 Tìm max giữa a hai số:
Code:
Max := If[a > b, a, b]
Bài 2 Tìm max giữa ba số :
Code:
Max := If[a > b, a, b, c]
--------
Admin: Hàm Max trùng với module trong hệ thế nên các bạn chú ý trong khi chạy.


Được sửa bởi trinhhaidangcntt3k8 ngày Fri Mar 19, 2010 10:01 am; sửa lần 1.

trinhhaidangcntt3k8
Nhập môn
Nhập môn

Tổng số bài gửi : 3
Points : 3
Join date : 27/02/2010

Re: Bài tập thực hành Lập trình hình thức và tính toán

Bài gửi  trinhhaidangcntt3k8 on Thu Mar 18, 2010 9:31 pm

Dạ cảm ơn thầy,sẵn đây thầy cho em hỏi:trong chương trình mình ghi chú thích dc không???và ghi bằng cách nào vậy thầy ?
avatar
admin
Admin
Admin

Tổng số bài gửi : 1207
Points : 3010
Join date : 11/11/2009
Age : 37
Đến từ : Cần Thơ

Re: Bài tập thực hành Lập trình hình thức và tính toán

Bài gửi  admin on Thu Mar 18, 2010 10:22 pm

Chú thích bằng lệnh sau:

(* chú thích ở đây*)

lephuong
Nhập môn
Nhập môn

Tổng số bài gửi : 1
Points : 2
Join date : 27/02/2010

Re: Bài tập thực hành Lập trình hình thức và tính toán

Bài gửi  lephuong on Mon Apr 05, 2010 8:35 am

trinhhaidangcntt3k8 đã viết:Mình post 2 bài trước,các bạn đóng góp nha
Bài 1 Tìm max giữa a hai số:
Code:
Max := If[a > b, a, b]
Bài 2 Tìm max giữa ba số :
Code:
Max := If[a > b, a, b, c]
Bạn viết code hoàn chỉnh cho tui tham khảo với.
avatar
admin
Admin
Admin

Tổng số bài gửi : 1207
Points : 3010
Join date : 11/11/2009
Age : 37
Đến từ : Cần Thơ

Re: Bài tập thực hành Lập trình hình thức và tính toán

Bài gửi  admin on Mon Apr 05, 2010 9:15 am


Bài 1 Tìm max giữa a hai số:
Code:
Max := If[a > b, a, b]
Bài 2 Tìm max giữa ba số :
Code:
Max := If[a > b, a, b, c]

Nếu sử dụng hàm Max có sẵn tương tự cho bài 1 và 2
Code:
a = Input[];
b = Input[];
c = Input[];
Max[{a, b, c}]

Nếu cài đặt theo Module:
Bài 1:
Code:
Max1[a_, b_] := If[a > b, a, b];
a = Input[];
b = Input[];
Max1[a, b]

Bài 2:
Code:
Max2[a_, b_, c_] := If[a > b && a > c, a, If[b > c, b, c]];
a = Input[];
b = Input[];
c = Input[];
Max2[a, b, c]

thanhtan.hello
Nhập môn
Nhập môn

Tổng số bài gửi : 4
Points : 6
Join date : 06/01/2010

Re: Bài tập thực hành Lập trình hình thức và tính toán

Bài gửi  thanhtan.hello on Wed Apr 14, 2010 9:31 pm

Code:

      a = Input["Nhap vao a"];
      b = Input["Nhap vao b"];
      c = Input["Nhap vao c"];
      Print[a" ; ", b" ; ", c];
Ai giúp tôi với
Khi nhập 1,2,3 thì out không ra 1
avatar
admin
Admin
Admin

Tổng số bài gửi : 1207
Points : 3010
Join date : 11/11/2009
Age : 37
Đến từ : Cần Thơ

Re: Bài tập thực hành Lập trình hình thức và tính toán

Bài gửi  admin on Wed Apr 14, 2010 10:44 pm

thanhtan.hello đã viết:
Code:

      a = Input["Nhap vao a"];
      b = Input["Nhap vao b"];
      c = Input["Nhap vao c"];
      Print[a" ; ", b" ; ", c];
Ai giúp tôi với
Khi nhập 1,2,3 thì out không ra 1

Code:

      a = Input["Nhap vao a"];
      b = Input["Nhap vao b"];
      c = Input["Nhap vao c"];
      Print[a," ; ", b," ; ", c];
avatar
HoYenNhi
Sơ cấp
Sơ cấp

Tổng số bài gửi : 26
Points : 58
Join date : 27/02/2010
Age : 29
Đến từ : Đồng Tháp

Re: Bài tập thực hành Lập trình hình thức và tính toán

Bài gửi  HoYenNhi on Sun Apr 18, 2010 11:34 pm

Code:
Bài 5:
f.   Vẽ đồ thị điểm với danh sách điểm {x=S,y=L}.
VD:    L =  {3,4,3,3,8}
S
  = {1,3,5,7,9}
Danh sách điểm là {{3,1},{4,3},{3,5},{3,7},{8,9}}



Danh sách điểm chỗ này phải là: {{1,3},{3,4},{5,3},{7,3},{9,8}} . Có đúng không Admin?


-------------
Admin: đúng rồi!

Sponsored content

Re: Bài tập thực hành Lập trình hình thức và tính toán

Bài gửi  Sponsored content


    Hôm nay: Tue Dec 11, 2018 9:36 pm