pascal 挑戰算周長 perimeter

2022-06-03 17:01:52 字數 2726 閱讀 7764

1樓:csol巔峰

它應該是個正方形,先求出他的邊長,不就得了。

2樓:匿名使用者

只考慮方陣。供參考。

const

n=5;

a:array[0..n+1,0..n+1] of byte=(

(0,0,0,0,0,0,0),

(0,1,1,1,1,0,0),

(0,1,1,1,1,0,0),

(0,1,1,1,1,0,0),

(0,0,0,1,0,0,0),

(0,0,1,0,0,0,0),

(0,0,0,0,0,0,0));

vari,j,k:integer;

b:array[0..n+1,0..n+1] of boolean;

s,c:integer;

function inczc(i,j:integer):integer;

vark:integer;

begin

k:=0;

if a[i-1,j]=1 then inc(k);

if a[i+1,j]=1 then inc(k);

if a[i,j-1]=1 then inc(k);

if a[i,j+1]=1 then inc(k);

if k=4 then inczc:=0;

if k=3 then inczc:=1;

if k=2 then inczc:=2;

if k=1 then inczc:=3;

if k=0 then inczc:=4;

end;

procedure next(i,j:integer);

varp,q:integer;

begin

for p:=1 to n do begin for q:=1 to n do if b[p,q] then write('x') else write(' '); writeln; end;

writeln;

if (i-1>=1)and(b[i-1,j]=false)and(a[i-1,j]=1) then begin

b[i-1,j]:=true;

next(i-1,j);

inc(s);

c:=c+inczc(i-1,j);

end;

if (i+1<=n)and(b[i+1,j]=false)and(a[i+1,j]=1) then begin

b[i+1,j]:=true;

next(i+1,j);

inc(s);

c:=c+inczc(i+1,j);

end;

if (j-1>=1)and(b[i,j-1]=false)and(a[i,j-1]=1) then begin

b[i,j-1]:=true;

next(i,j-1);

inc(s);

c:=c+inczc(i,j-1);

end;

if (j+1<=n)and(b[i,j+1]=false)and(a[i,j+1]=1) then begin

b[i,j+1]:=true;

next(i,j+1);

inc(s);

c:=c+inczc(i,j+1);

end;

if (i+1<=n)and(j+1<=n)and(b[i+1,j+1]=false)and(a[i+1,j+1]=1) then begin

b[i+1,j+1]:=true;

next(i+1,j+1);

inc(s);

c:=c+inczc(i+1,j+1);

end;

if (i+1<=n)and(j-1>=1)and(b[i+1,j-1]=false)and(a[i+1,j-1]=1) then begin

b[i+1,j-1]:=true;

next(i+1,j-1);

inc(s);

c:=c+inczc(i+1,j-1);

end;

if (i-1>=1)and(j+1<=n)and(b[i-1,j+1]=false)and(a[i-1,j+1]=1) then begin

b[i-1,j+1]:=true;

next(i-1,j+1);

inc(s);

c:=c+inczc(i-1,j+1);

end;

if (i-1>=1)and(j-1>=1)and(b[i-1,j-1]=false)and(a[i-1,j-1]=1) then begin

b[i-1,j-1]:=true;

next(i-1,j-1);

inc(s);

c:=c+inczc(i-1,j-1);

end;

end;

begin

for i:=0 to n+1 do for j:=0 to n+1 do b[i,j]:=true;

for i:=1 to n do for j:=1 to n do b[i,j]:=false;

s:=1;

c:=2;

b[1,1]:=true;

next(1,1);

writeln('面積=',s);

writeln('周長=',c);

end.

3樓:灰天飛雁

先floodfill一下,然後判斷fill到的格子中處在邊緣(即八面不都有相鄰的x)有哪些,並判斷周長即可。

正方體的周長怎麼算正方體周長面積怎麼算

正方形周長 4a a為正方形的邊長 其他計算公式 若s為正方形的面積,a為正方形的邊長,v為正方形的對角線,則 正方形定義 有一組鄰邊相等且一個角是直角的平行四邊形叫做正方形。四條邊都相等 四個角都是直角的四邊形是正方形。正方形的兩組對邊分別平行,四條邊都相等 四個角都是90 對角線互相垂直 平分且...

正方體周長 面積怎麼算,知道正方形的周長怎麼算面積

正方體是不bai論周長的,凡是幾何體du都沒有周長zhi和麵積的概念,只有側dao面積版,表面積,體積的計算 權。從你補充問的是長方形,估計你想問的是正方形的周長和麵積嗎?如果是,那麼可以回答 正方形的周長 邊長 4,正方形的面積 邊長 邊長長方形的周長 長 寬 2,長方形的面積 長 寬。祝你學習進...

求 正方形的周長計算公式,正方體的周長怎麼算?

因為正方形的四個邊的長度相等,所以正方形的周長是其邊長的4倍,列公式為 設正方形的邊長為a,周長為l,則有 l 4a。四條邊都相等 四個角都是直角的四邊形是正方形。正方形的兩組對邊分別平行,四條邊都相等 四個角都是90 對角線互相垂直 平分且相等,每條對角線都平分一組對角。有一組鄰邊相等且一個角是直...