ソフトウェア開発技術者
大滝みや子先生の
アルゴリズム教科書

〜よくわかる擬似言語〜

本書に一部誤りが見つかりましたので正誤表を掲載いたします。
ご迷惑をおかけしたことを深くおわび申し上げます。


ページ




17
(〜1刷)

●空欄イ 解説
 最後の比較位置を考えればよい。最後の比較は,下図に示すように,比較対象テキストの右端位置(i)が,テキストの最後の文字位置(n)のときである。したがって,変数iがn以下であるときは,始点移動ループを繰り返すことになるから,【空欄イ】には「i≦n」を入れる。

 

 次の2つのうちいずれかの条件を満たしたとき,始点移動ループを終了する。
一致する文字列が見つかったとき。すなわち,「found=1(空欄ウの解説参照)」となったとき。
最後まで比較し終えたとき。ここで最後の比較は,比較対象テキストの右端位置(i)が,テキストの最後の文字位置(n)のときである。したがって,変数iがnより大きくなった「i>n」とき,始点移動ループを終了する。

 以上,「found = 1 or i > n」が始点移動ループの終了条件である。そこで,繰返し条件である【空欄イ】には,その否定である「found=0 and i≦n」を入れる。なお,foundは0か1かのどちらかにしかなりえないので,「found=0」は「found≠1」と同じである。

17
(〜1刷)
●右段の上の「答え」 イ
イ:i≦n
イ:found=0 and i≦n 
21
(〜2刷)
●空欄エ 解説

26
(〜1刷)
●空欄イ,ウ〈β処理 一つ目の図〉

39
(〜1刷)
●〔手順〕(3)
data[i]=m
data[k]=m
61
(〜1刷)
●左段の二つ目の表
d

図1におけるS
S

図1におけるS
62
(〜2刷)
●脚注 *1
整数演算を行うので、例えば2/5は2となる。


整数演算を行うので、例えば5/2は2となる。
165
(〜3刷)
●設問4 (3)下から5行目
R[i-1, j]&001(2)=001(2) |
R[i+1, j]&001(2)=001(2) |
R[i, j-1]&001(2)=001(2) |
R[i, j+1]&001(2)=001(2)

R[i-1, j]&001(2)=001(2) or
R[i+1, j]&001(2)=001(2) or
R[i, j-1]&001(2)=001(2) or
R[i, j+1]&001(2)=001(2)
166
(〜3刷)
●答え 設問4(3)
R[i-1, j]&001(2)=001(2) | R[i+1, j]&001(2)=001(2) |
R[i, j-1]&001(2)=001(2) | R[i, j+1]&001(2)=001(2)
(R[i-1, j]&1=1 | R[i+1, j]&001(2)=1 | R[i, j-1]&1=1 |
R[i, j+1]&1=1

R[i-1, j]&001(2)=001(2) or R[i+1, j]&001(2)=001(2) or
R[i, j-1]&001(2)=001(2) or R[i, j+1]&001(2)=001(2)
(R[i-1, j]&001(2)=001(2) | R[i+1, j]&001(2)=001(2) |
 R[i, j-1]&001(2)=001(2) | R[i, j+1]&001(2)=001(2)
※001(2)は1でも可
175
(〜1刷)
●傍注(側注) *3
・位置情報=(C2の上位4ビット)×256
・位置情報=(C2の上位4ビット)×256+C1