Sziasztok!
Meg tudná vki mondani, hogy miért nem lehet clpfdben korlátokat feltételes
szerkezetben használni? Azt szeretném valahogye elérni, hogy bizonyos
korlátokat csak más korlát-feltételekkel vegyen fel a program. Így ha ez
később meghiusuláshoz vezetne, visszalépjen erre a feltételes szerkezetre a
korábban felvett korlátokat semmissé venné és az else ágat választaná ahol
ismét pár korlát feltétellel vennék fel újabb korlátokat. Gyakorlatilag az
történik, hogy nincs visszalépés. Pedig a slideokban valahol mintha ezt
olvastam volna. 1xűen amint oda jutna hogy az adott feltételekkel felvett
korlátok összesége inkonzisztens, akkor meghiusul az egész. Valószeg én nem
értek vmit nagyon... Hogy lehetne ezt a problémát megoldani valahogyan?
Itt 1 részlet a programból, hátha segít:
( SO #\= 0, X #\= 0 ->
( ElE #= 1, ElEE #=< 0 -> E #= 1
; L == [], ElE #= 0 -> E #= 0
; true
)
; E #= 0
),
E a radarkép éppen vizsgált mezejének értéke. Ha 1 akkor felhőrész, ha 0
akkor égrész, -1 ha radarképen kívül van. SO az E sorának maradék
sorösszege, X az E oszlopának maradék oszlopösszege, figyelembe véve az
eddig vizsgált mezőket. ElE az oszlopban egyel feljebb levő mező értéke.
ElEE a 2vel feljebb levőé. L ==[] akkor teljesül, ha az a vizsgált mező az
utolsó az oszlopban.
Tehát azt akartam leírni, hogy ha SO és X sem 0, tehát a vizsgált mező még
lehet 1es is, 0 is, akkor:
1) Ha a mező fölött levő mező 1, a fölötte levő pedig vagy 0, tehát ég, vagy
radarképen kívüli, akkor a vizsgált mezőnknek mindenképp 1nek kell lennie,
hogy legalább 2x2es felhők legyenek.
2) Ha nem ez a helyzet áll fenn, akkor az else ágra lép, ahol L ==[], tehát
az utolsó mezőn vagyunk, és az előző mező EiE 0, akkor ennek a mezőnek is
0nak kell lennie.
Ha vagy SO vagy X már 0, akkor E mindeképp 0 kell legyen.
Ez így működhet? Mindenképp vizsgálni szeretném a környező mezőket, de mivel
azok mind fd változók lesznek, csak így tudtam megoldani.
Köszönöm a válaszokat!
Csaba
u.i.: bocsi ha 2x ment el a mail :(