.


:




:

































 

 

 

 





 

. . [55]. . , . (data tokens), . .

. . , .

, . 14.1 SumAndProduct. , SumN, . SumN :

N1 SumN1 I1 SumN2 O1 I2 12 N2 SumN3 SumN4 I3.

. 14.1. SumN

 

, 12 1 . ProdN:

N1 ProdN1 I1 ProdN2 11 I2 12 N2 ProdN3 ProdN4 I4

. . 14.1.

14.1. SumAndProduct

SumN ProdN
procedure SumAndProduct
1 1 (Niinteger;
1 1 varSumN, ProdNiinteger)
var
1 1 l:integer;
begin
2 SumN:=0
2 ProdN:=1
3 3 for l:=1 to N do begin
3 SumN:=SumN+l
3 ProdN:=ProdN*l
end
end;

, i - , .

. . , SumAndProduct

SA(SumAndProduct) = {N1 ∙ SumN1 ∙ I1 ∙ SumN2 ∙ 01 ∙ I2 ∙ I2 ∙ N2 ∙ SumN3 ∙ SumN4 ∙ I3,

N1 ∙ ProdN1 ∙ I1 ∙ ProdN2 ∙ I1 ∙ I2 ∙ I2 ∙ N2 ∙ ProdN3 ∙ ProdN4 ∙ I4}.

.

(Class Slice Abstraction) CSA (C) . .

, .

, .

(StrongData Cohesion) , , . , , :

,

SG (CSA(C)) , () .

, .

(Weak Data Cohesion) , , . , . :

,

G (CSA(C)) . . (Data Adhesiveness). , , . :

.

. , . 14.2.

14.2. Stack

array top size Stack
class Stack {int *array, top, size;
public:
Stack (int s) {
2 2 size=s;
2 2 array=new int [size];
2 top=0;}
int IsEmpty () {
2 return top==0};
int Size (){
2 return size};
intVtop(){
3 3 return array [top-1]; }
void Push (int item) {
2 2 2 if (top= =size)
printf ("Empty stack. \n");
else
3 3 3 array [top++]=item;}
int Pop () {
1 if (IsEmpty ())
printf ("Full stack. \n");
else
1 --top;}
};

, CSA(Stack) 19 , 5 12 .

:

SDC(CSA(Stack)) = 5/19 = 0,26

WDC(CSA(Stack)) = 12/19 = 0,63

DA(CSA(Stack)) =(7*2 + 5*3)/(19*3) = 0,51





:


: 2018-10-18; !; : 203 |


:

:

, .
==> ...

1516 - | 1365 -


© 2015-2024 lektsii.org - -

: 0.013 .