Bài tập thực hành môn công nghệ phần mềm
Số trang: 4
Loại file: doc
Dung lượng: 39.50 KB
Lượt xem: 14
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tài liệu tham khảo về các dạng bài tập thực hành môn công nghệ phần mềm. Tài liệu chỉ mang tính chất tham khảo.
Nội dung trích xuất từ tài liệu:
Bài tập thực hành môn công nghệ phần mềm PHÂN LOẠI DẠNG BÀI TẬP MÔN CÔNG NGHỆ PHẦN MỀM (Tài liệu tham khảo)I, DẠNG BÀI TẬP CHUYỂN CẤU TRÚC VỀ DẠNG TUẦN TỰ VÀ WHILE:Bài 1:Chuyển cấu trúc sau về dạng tuần tự và while:if A then V else T;Giải:Chuyển cấu trúc if A then V else T về dạng tuần tự và while : B := A ; while A do Begin V; A :=not A; end; while not B do Begin T; B:= not B; end;Bài 2:Chuyển cấu trúc sau về dạng tuần tự và while:a) For i:= k to m do Ab) if X then YGiải:a, Chuyển cấu trúc for i:=k to m do A về cấu trúc tuần tự và whilei:=k ;while iwhile A do Begin V; A := not Aend;b, Chuyển cấu trúc repeat C until X :C;while not X do CBài 4:Chuyển cấu trúc sau về dạng tuần tự và while:a, For i:= m downto k do A ;b, Repeat C until D ;Giải:a, Chuyển cấu trúc for i:=m downto k do A về dạng tuần tự và whilei:=m;while i >=k doBegin A; i:=i-1end;b, Chuyển cấu trúc repeat C until DC;while not D do CII, DẠNG BÀI TẬP VỀ ĐẶC TẢ MA TRẬN:Bài 1:Cho ma trận vuông X cấp n, n lẻ. Đặc tả hình thức các điều kiện sau:a) Tổng 2 phần tử ở 2 đầu đường chéo chính bằng 3 lần phần tử cuối cùng của hàng1.b) Phần tử giữa của hàng cuối bằng phần tử giữa của cột cuối.Giải:Đặc tả ma trận vuông cấp n lẻ : X = (xi j)n*nxi j = x[ i, j ]i, j =1..nn = 2k + 1 , k thuôc Ṇa, Tổng 2 phần tử ở 2 đầu đường chéo chính bằng 3 lần phần tử cuối của hàng 1x[ 1, 1 ] + x[ n, n ] = 3 * x[ 1, n ]b, Phần tử giữa của hàng cuối bằng phần tử giữa của cột cuốix[ n, (n+1)/2]=x[ (n+1)/2 , n]Bài 2:Cho ma trận vuông cấp n, n lẻ. Đặc tả hình thức các điều kiện sau:a, Phần tử ở góc trên bên trái bằng phần tử ở góc dươi bên phải.b, Phần tử ở tâm bằng trung bình cộng của 2 phần tử đầu đường chéo phụGiải:Đặc tả ma trận vuông cấp n lẻ :X = (xi j)n*nxi j = x[ i, j ]i, j =1..nn = 2k + 1 trong đó k thuôc N ̣a, Phần tử góc trên bên trái bằng phần tử ở góc dươi bên phảix[ 1, 1 ] = x[n, n]b, Phần tử ở trung tâm bằng trung bình cộng của 2 phần tử đờng chéo phụx[ (n+1)/2, (n+1)/2 ] = (x[1, n] + x[n, 1])/2III, DẠNG BÀI TẬP BẮT LỖI TRONG ĐOẠN CHƯƠNG TRÌNH:Bài 1: Cho đoạn chương trình sau:Uses crt; Var u,v,t : real; Function f: real; Begin u:= u/2; f:= u+5*v-1; End; Begin Write (u=) ; readln(u); Write (v=) ; readln(v); t:=f; Writeln (u:6:2 ,/2 + 5*, v:6:2,-1=,t:6:2); Readln End.- Chương trình cho kết quả đúng hay sai? vì sao? Cho 1 ví dụ cụ thể.Giải:- Chương trình cho kết quả sai vì u là biến toàn cục, nó đợc sử dụng cả trong và ngoàiCTC và lệnh u:=u/2 trong hàm f đã làm thay đổi giá trị được nhập vào của u, lúc in rakết quả sai vì u bị giảm nửa giá trị.- Ví dụ khi nhập u=4 v=3 thì kết quả in ra là 2/2 + 5*3 - 1 = 16Bài 2: Cho đoạn chương trình sau:Var u,v,t : real; Funtion f : real; Var x : real; Begin x:= u/2; f:= x+5*v-1; End; Begin Write (u=) ; readln(u); Write (v=) ; readln(v); t:=f; Writeln (u:6:2 ,/2 + 5*, v:6:2,-1=,t:6:2); End.- Chương trình cho kết quả đúng hay sai?- Nếu thay x bằng u thì kết quả sẽ như thế nào?Giải:- Chương trình cho kết quả đúng.- Nếu thay x bằng u thì kết quả sẽ sai vì khi gọi hàm f, u sẽ bị biến đổi giảm đi nửagiá trị.Bài 3: Cho đoạn chương trình sau: Uses crt; Var u,v,t : real; Function f: real; Begin u:= u/2; f:= x+5*v-1; End; Begin Write (u=) ; readln(u); Write (v=) ; readln(v); t:=f; Writeln (u:6:2 ,/2 + 5*, v:6:2,-1=,t:6:2); Until (u=v); Readln End.- Chương trình có dừng khi ta nhập v bằng u không ? giải thích?Giải:- Chương trình sẽ không dừng khi nhập u = v vì sau khi nhập 2 giá trị bằng nhaunàychương trình tính t sẽ gọi đến hàm first và lúc đó u bị giảm đi do đó u khác v vàvònglặp lại tiếp tục.Bài 4: Cho đoạn chương trình sau:Uses crt; Var u,v,t : real; Function f (u,v:real): real; Begin u:= u/2; f:= x+5*v-1; End; Begin Write (u=) ; readln(u); Write (v=) ; readln(v); t:=f; Writeln (u:6:2 ,/2 + 5*, v:6:2,-1=,t:6:2); Readln End.- Chương trình cho kết quả đúng hay sai?- Nếu thêm var trươc u, v trong hàm f thì kết quả sẽ như thế nào?Giải:- Chương trình cho kết quả đúng vì u, v trong hàm là các biến địa phương được truyềntheo trị, tuy trùng tên vơi các biến toàn cục, viết như vậy sẽ khử được hiệu ứng phụ,nếu nhập vào u=4, v=3 kết quả sẽ in ra : 4/2 + 5*3 - 1 = 16- Nếu thêm var trươc u, v trong hàm f thì kết quả sẽ sai vi sau khi gọi hàm, biến u bịthay đổi giảm đi 1/2 kết quả sẽ là : 2/2 + 5*3 - 1 = 16∃ ∧ ∨ ...
Nội dung trích xuất từ tài liệu:
Bài tập thực hành môn công nghệ phần mềm PHÂN LOẠI DẠNG BÀI TẬP MÔN CÔNG NGHỆ PHẦN MỀM (Tài liệu tham khảo)I, DẠNG BÀI TẬP CHUYỂN CẤU TRÚC VỀ DẠNG TUẦN TỰ VÀ WHILE:Bài 1:Chuyển cấu trúc sau về dạng tuần tự và while:if A then V else T;Giải:Chuyển cấu trúc if A then V else T về dạng tuần tự và while : B := A ; while A do Begin V; A :=not A; end; while not B do Begin T; B:= not B; end;Bài 2:Chuyển cấu trúc sau về dạng tuần tự và while:a) For i:= k to m do Ab) if X then YGiải:a, Chuyển cấu trúc for i:=k to m do A về cấu trúc tuần tự và whilei:=k ;while iwhile A do Begin V; A := not Aend;b, Chuyển cấu trúc repeat C until X :C;while not X do CBài 4:Chuyển cấu trúc sau về dạng tuần tự và while:a, For i:= m downto k do A ;b, Repeat C until D ;Giải:a, Chuyển cấu trúc for i:=m downto k do A về dạng tuần tự và whilei:=m;while i >=k doBegin A; i:=i-1end;b, Chuyển cấu trúc repeat C until DC;while not D do CII, DẠNG BÀI TẬP VỀ ĐẶC TẢ MA TRẬN:Bài 1:Cho ma trận vuông X cấp n, n lẻ. Đặc tả hình thức các điều kiện sau:a) Tổng 2 phần tử ở 2 đầu đường chéo chính bằng 3 lần phần tử cuối cùng của hàng1.b) Phần tử giữa của hàng cuối bằng phần tử giữa của cột cuối.Giải:Đặc tả ma trận vuông cấp n lẻ : X = (xi j)n*nxi j = x[ i, j ]i, j =1..nn = 2k + 1 , k thuôc Ṇa, Tổng 2 phần tử ở 2 đầu đường chéo chính bằng 3 lần phần tử cuối của hàng 1x[ 1, 1 ] + x[ n, n ] = 3 * x[ 1, n ]b, Phần tử giữa của hàng cuối bằng phần tử giữa của cột cuốix[ n, (n+1)/2]=x[ (n+1)/2 , n]Bài 2:Cho ma trận vuông cấp n, n lẻ. Đặc tả hình thức các điều kiện sau:a, Phần tử ở góc trên bên trái bằng phần tử ở góc dươi bên phải.b, Phần tử ở tâm bằng trung bình cộng của 2 phần tử đầu đường chéo phụGiải:Đặc tả ma trận vuông cấp n lẻ :X = (xi j)n*nxi j = x[ i, j ]i, j =1..nn = 2k + 1 trong đó k thuôc N ̣a, Phần tử góc trên bên trái bằng phần tử ở góc dươi bên phảix[ 1, 1 ] = x[n, n]b, Phần tử ở trung tâm bằng trung bình cộng của 2 phần tử đờng chéo phụx[ (n+1)/2, (n+1)/2 ] = (x[1, n] + x[n, 1])/2III, DẠNG BÀI TẬP BẮT LỖI TRONG ĐOẠN CHƯƠNG TRÌNH:Bài 1: Cho đoạn chương trình sau:Uses crt; Var u,v,t : real; Function f: real; Begin u:= u/2; f:= u+5*v-1; End; Begin Write (u=) ; readln(u); Write (v=) ; readln(v); t:=f; Writeln (u:6:2 ,/2 + 5*, v:6:2,-1=,t:6:2); Readln End.- Chương trình cho kết quả đúng hay sai? vì sao? Cho 1 ví dụ cụ thể.Giải:- Chương trình cho kết quả sai vì u là biến toàn cục, nó đợc sử dụng cả trong và ngoàiCTC và lệnh u:=u/2 trong hàm f đã làm thay đổi giá trị được nhập vào của u, lúc in rakết quả sai vì u bị giảm nửa giá trị.- Ví dụ khi nhập u=4 v=3 thì kết quả in ra là 2/2 + 5*3 - 1 = 16Bài 2: Cho đoạn chương trình sau:Var u,v,t : real; Funtion f : real; Var x : real; Begin x:= u/2; f:= x+5*v-1; End; Begin Write (u=) ; readln(u); Write (v=) ; readln(v); t:=f; Writeln (u:6:2 ,/2 + 5*, v:6:2,-1=,t:6:2); End.- Chương trình cho kết quả đúng hay sai?- Nếu thay x bằng u thì kết quả sẽ như thế nào?Giải:- Chương trình cho kết quả đúng.- Nếu thay x bằng u thì kết quả sẽ sai vì khi gọi hàm f, u sẽ bị biến đổi giảm đi nửagiá trị.Bài 3: Cho đoạn chương trình sau: Uses crt; Var u,v,t : real; Function f: real; Begin u:= u/2; f:= x+5*v-1; End; Begin Write (u=) ; readln(u); Write (v=) ; readln(v); t:=f; Writeln (u:6:2 ,/2 + 5*, v:6:2,-1=,t:6:2); Until (u=v); Readln End.- Chương trình có dừng khi ta nhập v bằng u không ? giải thích?Giải:- Chương trình sẽ không dừng khi nhập u = v vì sau khi nhập 2 giá trị bằng nhaunàychương trình tính t sẽ gọi đến hàm first và lúc đó u bị giảm đi do đó u khác v vàvònglặp lại tiếp tục.Bài 4: Cho đoạn chương trình sau:Uses crt; Var u,v,t : real; Function f (u,v:real): real; Begin u:= u/2; f:= x+5*v-1; End; Begin Write (u=) ; readln(u); Write (v=) ; readln(v); t:=f; Writeln (u:6:2 ,/2 + 5*, v:6:2,-1=,t:6:2); Readln End.- Chương trình cho kết quả đúng hay sai?- Nếu thêm var trươc u, v trong hàm f thì kết quả sẽ như thế nào?Giải:- Chương trình cho kết quả đúng vì u, v trong hàm là các biến địa phương được truyềntheo trị, tuy trùng tên vơi các biến toàn cục, viết như vậy sẽ khử được hiệu ứng phụ,nếu nhập vào u=4, v=3 kết quả sẽ in ra : 4/2 + 5*3 - 1 = 16- Nếu thêm var trươc u, v trong hàm f thì kết quả sẽ sai vi sau khi gọi hàm, biến u bịthay đổi giảm đi 1/2 kết quả sẽ là : 2/2 + 5*3 - 1 = 16∃ ∧ ∨ ...
Tìm kiếm theo từ khóa liên quan:
công nghệ thông tin kỹ thuật lập trình công nghệ phần mềm tài liệu học vi tính Bài tập thực hành vi tínhTài liệu liên quan:
-
52 trang 434 1 0
-
62 trang 403 3 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 320 0 0 -
74 trang 303 0 0
-
96 trang 299 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 291 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 286 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 277 0 0 -
Tài liệu hướng dẫn sử dụng thư điện tử tài nguyên và môi trường
72 trang 270 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 269 0 0