Pascal
Modified: Wednesday, 22-12-2021 07:00 AM
Nhập vào số hàng, số cột.
Xuất ra ma trận xoắn ốc có dạng như sau:
Ví dụ số hàng là 3; số cột là 4
1 | 2 | 3 | 4 |
10 | 11 | 12 | 5 |
9 | 8 | 7 | 6 |
Dưới đây là Code của Vương Tú Bình
Lưu ý:
sh: số hàng
sc: số cột
vth: vị trí hàng
vtc: vt cột
program Xoan_Oc;
uses crt ;
var i,j,sh,sc,vth,vtc,dem,ssh,ssc:integer;
a:array[1..100,1..100] of integer;
begin
clrscr;
dem := 0; vtc := 1; vth := 1;
write('nhap sh,sc:'); readln(sh,sc);
ssh := sh;
ssc := sc;
while vth*vtc <= sh*sc do
begin
// Trái qua phải
for j:=vtc to sc do
begin
dem := dem+1;
if dem > ssh*ssc then break;
a[vth,j]:=dem;
end;
// Trên xuống
for i:=vth+1 to sh do
begin
dem := dem+1;
if dem > ssh*ssc then break;
a[i,sc]:=dem;
end;
// Phải qua trái
for j:=sc-1 downto vtc do
begin
dem := dem+1;
if dem > ssh*ssc then break;
a[sh,j]:=dem;
end;
// Dưới lên
for i:=sh-1 downto vth+1 do
begin
dem := dem+1;
if dem > ssh*ssc then break;
a[i,vtc]:=dem;
end;
vth:=vth+1; vtc:=vtc+1;sh:=sh-1; sc:=sc-1;
end;
for vth:=1 to ssh do
begin
for vtc:=1 to ssc do
write(a[vth,vtc]:4);
writeln;
end;
readln;
end.