0 1 2 3 4 5 6 7 8 9 10 t a , p o n ¥0

情報工学演習
課題25
単語の切り出し(構造体)
【問 5】
登録しようとしている単語テーブルの位置を tn、
tflag は単語ならば 1、区切り記号ならば 0 にします。
初期状態(事前にこの様にしておく)
①
状態フラグ tflag
②
単語表の記入位置 tn を 0
位置
tn→
0
0
0
1
2
t
a
,
←
3
4
5
6
7
p
o
n
¥0
8
9
10
この様にしたと仮定して以下の問題を解いのてください
を0
長さ
1
1
位置を 0 にする
2
長さを 1 にする
3
参照位置 0
(文字が t)の時の作業
前の状態(つまり初期状態のこと)は「区切り」の時、 現在の状態は文字 t を見ているので「単語」です。すなわ
ち、問 4 の A「区切り記号走査中に,単語文字に出会った」という状態です。このときは以下の三つの作業をします。
①
状態フラグ tflag を 1 にする
②
現在の参照位置(即ち 0)を
③
単語テーブルの tn の「長さ」を 1 にする
位置
tn→
0
1
単語テーブルの tn の「位置」に記憶する
長さ
0
長さを+1
2
3
ここを 2 にする
参照位置=1
(文字が a)の時の作業
問 4 の D「単語走査中に,単語文字に出会った」という状態です。このときは次の一つの作業をします。
①
単語テーブルの tn の「長さ」に 1 加える
情報工学演習
課題25
単語の切り出し(構造体)
位置
0
0
tn→
長さ
1
2
3
tn を
参照位置=2
+1
(文字が,)の時の作業
問 4 の C「単語走査中に,区切り記号」の状態です。このときは以下の2つをします。
①
状態フラグ tflag を 0 にする。
②
単語テーブルの記入位置 tn の値を 1 増やす(図に書いてあるので、ここでは特に記入する必要は無い)
位置
0
tn→
0
長さ
2
1
2
3
参照位置=3
(文字がスペース)の時の作業
問 4 の B「区切り記号走査中に,区切り記号」に相当します。この場合は何もする必要がありません。
0
tn→
位置
長さ
0
2
1
2
3
参照位置=4
(文字が p)の時
問4の A「区切り記号走査中に,単語文字に出会った」に相当します。この場合は参照位置=1 の場合と同じく
④
状態フラグ tflag を 1 にする
⑤
現在の参照位置(即ち 4)を
⑥
単語テーブルの tn の「長さ」を 1 にする
単語テーブルの tn の「位置」に記憶する
情報工学演習
課題25
単語の切り出し(構造体)
情報工学演習
課題25
単語の切り出し(構造体)