1. Trang chủ
  2. » Công Nghệ Thông Tin

PHÂN LOẠI DẠNG BÀI TẬP MÔN CÔNG NGHỆ PHẦN MỀM

7 2,3K 23
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân Loại Dạng Bài Tập Môn Công Nghệ Phần Mềm
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Phần Mềm
Thể loại Tài Liệu Tham Khảo
Định dạng
Số trang 7
Dung lượng 152,88 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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... Đặc tả hình thức các điều kiện sau: a, Phần tử ở góc bên trái bằng phần tử ở góc bên phải... - Chương trình cho kết quả sai

Trang 1

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 A

b) if X then Y

Giải:

a, Chuyển cấu trúc "for i:=k to m do A" về cấu trúc tuần tự và while

Trang 2

i:=k ;

while i<=m do

Begin

A;

i:=i+1;

end;

b, Chuyển về cấu trúc "if X then Y"

while X do

Begin

Y;

X:= not X

end;

Bài 3:

Chuyển cấu trúc sau vế dạng tuần tự và while:

a) if A then V;

b) Repeat C until X;

Giải:

a, Chuyển cấu trúc "if A then V" về dạng tuần tự và while:

while A do

Begin

V ;

A := not A

end;

b, Chuyển cấu trúc "repeat C until X" :

C;

while not X do C

Bài 4:

Trang 3

Giải:

a, Chuyển cấu trúc "for i:=m downto k do A" về dạng tuần tự và while

i:=m

while i >=k do

Begin

A;

i:=i-1

end;

b, Chuyển cấu trúc "repeat C until D"

C;

while not D do C

II, 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àng 1

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*n

xi j = x[ i, j ]

i, j =1 n

n = 2k + 1 k  N

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ành 1 x[ 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ối

x[ n, (n+1)/2]=x[ (n+1)/2 , n]

Bài 2:

Trang 4

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 bên trái bằng phần tử ở góc 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*n

xi j = x[ i, j ]

i, j =1 n

n = 2k + 1 k  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ải

x[ 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])/2

III, 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:= 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

Trang 5

- 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ài CTC 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 ra

kế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 = 16

Bà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ửa giá 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;

Trang 6

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 nhau này chươ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òng lặ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:

Trang 7

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

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w