解答2-2 コメント取出し状態図

解答2-7 コメント取出し状態図
エスケープ
中
other
any
\
文字列
定数
other
\n : 行末コメント取出し終了
“
“
/
初期状態
‘
文字
定数2
‘
/
other
/ :
行末
コメント
取出し
初期化
//コメント
Other : コメント取出し
Other : コメント取出し
文字
定数1
other
other
‘
文字定数
エラー
any
\
エスケープ
中
*:
通常
コメント
取出し
初期化
通常コメント
*:
コメント
取出し
*
*:
コメント
取出し
Other : コメント取出し
/ :通常コメント
取出し終了
解答5-4 書籍の登録・削除付きDFDの例
レポート
利用者
要求
ログデータ
要求
分類
貸出要求
管理
報告
報告指令
返却要求
ログデータ
応答
貸出
書籍貸出
情報
返却
ログファイル
書籍管理データ
書籍
登録
書籍情報
書籍
情報
書籍データ
書籍
削除
登録指令
管理指令 指令
分類
削除指令
管理業務者
書籍ID
解答5-6 図5-3のDFDのSC変換例
分類処理を
メインにした例
分類処理
利用者
チェック
利用者
要求読込
利用者
データベース
処理
エラー
メッセージ
出力
貸出
利用者
応答出力
返却
書籍管理
データ処理
ログデータ
出力
解答8-1
税金:
int tax=0;
foaall elem in 要素
tax += 要素.税金;
return tax;
団体or住民
税金
市町村
税金
要素
住民
村
税金:
return 住民税
町
市
解答9-3
1
2
3
4
14
5
6
7
8
9
10
15
E
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
if(from=>to)
pivot=data[…
left=from…
while(left…
while(data[left]…
letf++;
while(data[right]…
right--;
if(left<=right)
temp=data[left];
data[left]=…
data[right]=…
left++; right--;
qsort(data,from,right);
qsort(data,left,to);
11
12
13
辺の数:20 節数:16
CV=20-16+2x1=6
解答9-4の例
n円投入
n/p>=m
C2
子供ボタン
を押す
C3
m円切符
ボタン押
C4
金額表示(n円)
E2
m円切符の
ランプが付く
n>=m
C1
p人分
を押す
E1
2n>=m
2n/p>=m
n-m=k>0
E3
大人用切符を1枚出す
E4
大人用切符をp枚出す
n-mp=k>0
E5
子供用切符を1枚出す
n-m/2=k>0
E6
子供用切符をp枚出す
E7
つり銭をk円出す
n-mp/2=k>0
かつ
または
Operator
Num
Operand
Num
測度
計算式
量
qsort()
3
data
10
要素の種類数
n=n1+n2
26
int
4
from
5
プログラム長
N=N1+N2
112
[]
8
to
5
見積もり長
Ne=n1xlog2N1+n2xlog2N
2
153
,
9
pivot
4
プログラム量
V=Nxlog2n
526
{}
3
left
10
プログラム抽象度
L=Vd/V
0.034
;
14
right
10
見積もり抽象度
Le=(2/n1)x(n2/N2)
0.019
if()
2
temp
3
プログラミング量
E=V/L
>=
1
2
1
見積もり時間
Te=E/18
return
1
Total(N2)
=
6
種類数(n2)
+
1
/
1
while()
3
<=
2
<
1
\++
2
>
1
\--
2
Total(N1)
64
種類数(n1)
18
15317
851
48
8
最も簡単な表現のプログラム量(Vd)
解答9-6
18