1樓:
不像樓上說的那樣,
其實你只有一點錯了
陣列是從1..m,1..n的
因此p可以等於m,
q也可以等於n
所以把 第四行的 p 再試試還不對的話直接問我 2樓: 我現在的計算機裡沒有執行pascal的軟體,程式我看了演算法上應該沒有問題。但是有一點就是字串的操作。pascal的字串我不知道能不能這麼用,但是c可以,但c語言中的字元時從s[0]開始而不是從s[1]。 3樓:此名將註冊 a[p,q]:=0 當然不對了,會使一些完整的細胞斷開,所以細胞數自然多了 我建議再定義一個二維的boolean型陣列,來記錄某個座標是否查詢過 還有一般來說不用再 四個if語句中判斷是否溢位邊界,只要把陣列的下標上標 多定義一位因為初始化為0,所以不是細胞。這一來還減少了工作量 以下是我做的程式,用以參考,思路基本和你一樣: vari,j,k,n,m:integer; s:string; a:array[0..51,0..81] of integer; b:array[0..51,0..81] of boolean; procedure search(x,y:integer); varp,q:integer; begin p:=x;q:=y; if (a[p,q+1]>0) and(b[p,q+1]) then begin b[p,q+1]:=false;search(p,q+1);end; if (a[p,q-1]>0) and(b[p,q-1]) then begin b[p,q-1]:=false;search(p,q-1);end; if (a[p-1,q]>0) and(b[p-1,q]) then begin b[p-1,q]:=false;search(p-1,q);end; if (a[p+1,q]>0) and(b[p+1,q]) then begin b[p+1,q]:=false;search(p+1,q);end; end; begin readln(m,n); for i:=1 to m do begin readln(s); for j:=1 to n do a[i,j]:=ord(s[j])-ord('0'); end; k:=0; fillchar(b,sizeof(b),true); for i:=1 to m do for j:=1 to n do if b[i,j] and (a[i,j]>0) then begin search(i,j); inc(k); end; writeln(k); end. 5.var a array 1.32767 of boolean b array 1.40 of integer i,s,t integer begin for i 1 to 32767 do a i false write 1 8,2 8 a 1 true b 1 1 b 2 2 s 2 repe... 細胞衰老和細胞凋亡,這兩個都是受基因控制的。細胞程式性死亡和細胞凋亡的區別 淵源 kerr bai 1972 最先提出凋亡的概念,與細胞 du壞死的區別是 zhi 細胞通過出芽的方式形dao成許多凋亡小體 凋亡小體內有結構完整的細胞器 不引起炎症 線粒體無變化,溶酶體活性不增加 內切酶活化,dna有... 不一定要有。例如 while n 20 do inc n 因為while之後只有一個語句 inc n 所以不用begin end 如果有多個語句,例如 while n 20 do begin inc n dec n end 這樣就要有begin end 了。記住這個,如果while後只有一個語句,那...pascal程式問題,Pascal程式問題
細胞程式性死亡的機制有哪些,細胞程式性死亡和細胞凋亡的區別
pascal語言中while語句的問題