Closed Thread
Ðiều Chỉnh
Unread 07-02-2009, 02:24 PM   #1
Default Giúp mình bài tập Pascal này

1. In ra màn hình 1 hình chữ nhật đặc bằng các dấu *
2.cũng như trên, thay bằng hình chữ nhật rỗng
( sử dụng câu lệnh For...to...do và cạnh hình cn nhập từ bàn phím)
Thanks mọi người.
Lk is No 1
:k67:k67:k67
Em còn bé nên chưa bít kí
miss887809 vẫn chưa có mặt trong diễn đàn  
Unread 09-02-2009, 08:31 PM   #2
Arrow

@.@ Em học 11 hở? Giờ sang học kỳ 2 rùi mờ vẫn còn vướng mắc ở cái phần vòng lặp sao?? @.@ Em học ở trường nào đóa? (Anh tò mò thui :P, có thường xuyên cúp học hok )

Code:
{ Phần nhập vào cạnh độ dài 2 cạnh của hcn quá dễ, { em tự làm nhé. { Ở đây, ta quy ước: { chiều dài được gọi là "d" { chiều rộng được gọi là "r" } {in hcn đặc ruột} for i := 1 to d do begin
for j := 1 to r do
write('*');
writeln; {xuống dòng}
end; {------------------------------------------------------} {in hcn rỗng ruột} for i := 1 to d do
begin
if (i = 1) OR (i = d) then
for j := 1 to r do
write('*')
else
begin
write('*'); for j := 2 to r - 1 do
write(' ');
write('*');
end;
writeln;
end;
Xét hình chữ nhật đặc ruột:
********
********
********
thì hình trên có:
dãy các dấu * nằm trên cùng một đường thẳng nằm ngang được xem như là một dòng chứa các dấu sao.
dãy các dấu * nằm trên cùng một đường thẳng đứng được xem như là một cột chứa các dấu sao.
Như vậy, nếu hcn có chiều dài là d và chiều rộng là r thì nó sẽ gồm d dòng và r cột.
Gọi i, j lần lượt là các chỉ số dòng và cột, thì khi này các giá trị của i chạy từ 1 đến d, các giá trị của j chạy từ 1 đến r.

Quy tắc in hcn đặc ruột: ta in lần lượt từng dòng, mỗi dòng có độ dài là d. Như vậy, ta cần in r dòng như thế.

Với i là chỉ số dòng thì tại một thời điểm đang xét (xác định), i sẽ có một giá trị xác định nằm trong khoảng 1 đến d. Ta sẽ đi in từng dòng i, mỗi dòng i có độ dài là r (dấu sao) và ta cần in đủ r dòng i thì thuật toán kết thúc.

Vòng lặp for j với j chạy từ 1 đến r cho phép ta in ra r dấu sao liên tiếp nhau.

Với mỗi giá trị của i, chương trình thực hiện 2 câu lệnh: đầu tiên: in ra r dấu sao, sau đó: xuống dòng.
Sau khi vòng lặp for j lặp lại đủ d dòng thì ta có hình chữ nhật đặc ruột.

2. In hcn rỗng ruột:

Việc in hai dòng đầu tiên hoàn toàn tương tự với trường hợp 1. Riêng đối với các dòng khác với dòng đầu và dòng cuối thì ta chỉ in ra dấu sao ở cột đầu (ứng với j = 1) và ở cột cuối (ứng với j = r), còn ở các cột khác, ta chỉ xuất ra khoảng trắng: ' ' .

Hôm nay anh mệt quá, hết sức để suy nghĩ, giải đáp cho em kỹ càng hơn. Có chỗ nào vẫn không hiểu thì em hỏi nhé.

Lớp em học Pascal đến đâu rùi?
tinhquai vẫn chưa có mặt trong diễn đàn  
Closed Thread

Ðiều Chỉnh

Chuyển đến


Bây giờ là 02:16 AM. Theo múi giờ GMT +7.