2013-04-24 2 views
0

합금의 새내기입니다. 합금의 직렬 및 병렬 전기 회로에 대한 도움이 필요합니다. 시리즈 회로 그래프를 만들었지 만 일련의 자체 루프를 생략해도 작동하지 않습니다. 또한 일련의 인스턴스 만 표시합니다.직렬 및 병렬 전기 회로 용 모델 합금

abstract sig state{} 

one sig on extends state{} 

one sig off extends state{} 

sig CE{} 

//one sig battery extends CE{} 


abstract sig bulb extends CE{ 
bs : one state 
} 

abstract sig switch extends CE{ 
ss : one state 
} 

sig Circuit{ 
battery: one CE, 
/*eles: set state, 
battery:one eles, 
switch : set eles, 
bulb : set eles, 
wire: eles one-> one eles*/ 
wire: CE->CE 
}{ 
//all e:CE | #(e.wire)=1 and #(wire.e)=1 
battery.^wire=CE 
//no iden & wire 
//all e:CE | e->e not in wire 
} 

pred show{} 

run show for 1 Circuit, 5 CE 

답변

1

내 조언이다 : 스위치, 일련의 전구는 ...에있는 켜져있을 때 나는

내 코드입니다 .. 그래서 국가와 켜기 및 끄기가 확장 상태의 서명이 자신의 것을 보여해야 정말 작고 단순한 것으로 시작하십시오. 예를 들어 전선, 배터리 및 전구, 하위 전구를 켜고 끌 수 있습니다. 모델에 잘못된 점이 하나 있습니다. 와이어를 요소에 연결하는 것만으로는 충분하지 않습니다. 와이어가 연결된 요소의 측면을 식별해야합니다.