.


:




:

































 

 

 

 





 

. . [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
    (Niinteger;
    varSumN, ProdNiinteger)
    var
    l:integer;
    begin
    SumN:=0
    ProdN:=1
    for l:=1 to N do begin
    SumN:=SumN+l
    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];
  top=0;}
  int IsEmpty () {
  return top==0};
  int Size (){
  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 () {
  if (IsEmpty ())
  printf ("Full stack. \n");
  else
  --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





:


: 2016-10-06; !; : 396 |


:

:

, .
==> ...

1574 - | 1356 -


© 2015-2024 lektsii.org - -

: 0.012 .