求turbo pascal 解答

来源:百度知道 编辑:UC知道 时间:2024/06/01 12:53:03
请在7月20日前回答
用 PAS语言
一幅图由0和*组成,编程计算由“*”号所围成的图形的面积。面积的计算方法是统计*号所围成的闭合曲线中0的数目。
输入格式:
由0和*组成的字符矩阵,行列数均不超过50。

输出要求:
面积数。

输入输出样例:
样例1 样例2
输入
000000000
0000**000
000*00*00
00*000*00
000***000
000000000

输出 5

先达成一个共识:是不是类似于
00000
0***0
0***0
0***0
00000
面积是0?

var
a:array [0..51,0..51] of char;
i,j,k:byte;
w,h:byte;
f:boolean;
s:byte;
const
y:array [1..4,1..2] of shortint
=((-1,0),(0,-1),(1,0),(0,1));
begin
assign(input,'input.txt'); reset(input);
fillchar(a,sizeof(a),'0');
i:=0;h:=0;w:=0;
while not eof do begin
inc(h);
while not eoln do begin
inc(i); if i>w then w:=i;
read(a[i,h]);
end;
readln;i:=0;
end;
close(input);assign(input,'');reset(input);
for i:=0 to w+1 do begin a[i,0]:='1'; a[i,h+1]:='1'; end;
for i:=0 to h+1 do begin a[0,i]:='1'; a[w+1,i]:='1'; end;
repeat
f:=true;
for i:=1 to w do for j:=1 to h do if a[i,j]='0' then
for k:=1 to 4 do if a[i+y[k,1],j+y[k,2]]='1