pascal广搜题目急求高人写2!!

来源:百度知道 编辑:UC知道 时间:2024/06/21 00:36:23
请用广度搜索写~注意是pascal语言

细胞(cell)
【问题描述】一个矩形阵列由数字0~9组成,数字1~9代表细胞,细胞的定义是沿细胞数字上下左右如果还是细胞数字则为同一细胞,求给定矩阵阵列的细胞个数。
【输入格式】第一行为整数m,n,接着m行,每行n个数字
【输出格式】细胞的个数
【输入样例】cell.in
4 10
0234500067
1034560500
2045600671
0000000089
【输出样例】cell.out
4
请给完整程序……

Program Cell;
Var
a: Array [0..101,0..101] Of Boolean;
i, j, k, m, n: Byte; c: Char;
Procedure Tr(x, y: Word);
Begin
a[x,y]:=False;
If a[x-1,y] Then Tr(x-1, y);
If a[x,y-1] Then Tr(x, y-1);
If a[x+1,y] Then Tr(x+1, y);
If a[x,y+1] Then Tr(x, y+1)
End;
Begin
Assign(Input, 'cell.in'); ReSet(Input);
Assign(Output, 'cell.out'); ReWrite(Output);
FillChar(a, SizeOf(a), False); k:=0;
ReadLn(m, n);
For i:=1 To m Do Begin
For j:=1 To n Do
Begin Read(c); a[i,j]:=c>'0' End;
ReadLn
End;
For i:=1 To m Do
For j:=1 To n Do
If a[i,j] Then
Begin Inc(k); Tr(i, j) End;
Write(k); Close(Input); Close(Output)
End.

再开b数组,
fillchar(b,sizeof(b),0);
readln(n,m);
读入a数组
for i:=1 to n do
for j:=1 to m do
begin
if b[i,j]=0 then