/* une idée de ce qui était attendu
...
1- Preuves :
Q1
cube(c1).
cube(c2).
tétraèdre(tt).
plusGrand(X , Y) :- aGauche(X , Y).
petit(X) :- cube(X).
petit(X) :- tétraèdre(X).
memeTaille(X , Y) :- petit(X) , petit(Y).
memeTaille(X , Y) :- not plusGrand(X , Y) , not plusGrand(Y , X) .
Q2 :.
strate1 : {petit , cube , tétraèdre , plusGrand , aGauche}
strate2 : {memeTaille}
Q3 :
x (cube(x)
<-> x=c1 v x=c2)
x
(tétraèdre(x) <-> x=c1)
x (petit(x)
<-> cube(x) v tétraèdre(x))
(x , y)( memeTaille(x,y)
<-> (petit(x) & petit(y)) v (~ plusGrand(x , y) & ~ plusGrand(y
, x)))
(x , y)( plusGrand(x,y)
<-> aGauche(x , y))
CWA : (x , y) (
~ aGauche(x , y))
Et les axiomes d'égalité, la différenciation des constantes ,
2- Prolog :
ldh2ln(0 , _ , []) :- !.
ldh2ln(N , LDH ,[0|LN]) :- not member(dh(N , _) , LDH),
NN is N-1, ldh2ln(NN , LDH , LN).
ldh2ln(N , LDH ,[Note|LN]) :- member(dh(N , Note) , LDH),
NN is N-1, ldh2ln(NN , LDH , LN).
?- eln(étudiant(et1 , i12345 , [dh(1,5) , dh(2,3) , dh(4,2) , dh(8,5) , dh(3,0)]) , élève(E,M,LN)).
E = et1
M = i12345
LN = [0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 2, 0, 3, 5] ;
No
3-AF + DCG :
départ(e1).
final(e4). final(e7).
transition(e1,a , e1). transition(e1,a , e2). transition(e1,b , e1).
transition(e2,b , e3). transition(e3,b , e4).
transition(e1,b , e5). transition(e5,a , e6). transition(e6,b , e7).
reconnaissance(EXPLISTE , TYPE) :-
départ(E), reconnaissance(EXPLISTE , E , TYPE).
reconnaissance([A|EXPLISTE] , E , TYPE) :- transition(E,A , ES) ,
reconnaissance(EXPLISTE , ES , TYPE).
reconnaissance([] , e4 , 'ABB'). reconnaissance([] , e7 , 'BAB').
%-------------------------------
e1(T) --> [a] , e1(T).
e1(T) --> [b] , e1(T).
e1(T) --> [a] , e2(T).
e1(T) --> [b] , e5(T).
e2(T) --> [b] , e3(T).
e3(T) --> [b] , e4(T).
e4('ABB') --> [].
e5(T) --> [a] , e6(T).
e6(T) --> [b] , e7(T).
e7('BAB') --> [].
public class IntegerDataBag implements Subject { private Collection intergerBAG = new ArrayList(); private Collection observers = new ArrayList(); public void add( Integer i ) { intergerBAG.add( i ); notifyObservers();} public Iterator iterator() { return intergerBAG.iterator();} public Integer remove( int index ) { if( index < intergerBAG.size() ) {Integer i = (Integer) intergerBAG.remove( index ); notifyObservers(); return i;} return null;} private void notifyObservers() { Iterator i = observers.iterator(); while( i.hasNext() ) {Observer o = ( Observer ) i.next(); o.update( this );} }} public class IntegerAdder implements Observer { private IntegerDataBag bag; public IntegerAdder( IntegerDataBag bag ) { this.bag = bag; bag.addObserver( this ); } public void update( Subject o ) { if( o == bag ) { System.out.println( "Le contenu de IntegerDataBag a changé." ); for(int counter = 0, Iterator i = bag.iterator();i.hasNext() ; ){ Integer integer = ( Integer ) i.next(); counter+=integer.intValue();} System.out.println( "la somme des entiers est : " + counter );} } } import java.util.Iterator; public class IntegerPrinter implements Observer { private IntegerDataBag bag; public IntegerPrinter( IntegerDataBag bag ) { this.bag = bag; bag.addObserver( this ); } public void update( Subject o ) { if( o == bag ) { System.out.println( "The contents of the IntegerDataBag have changed." ); System.out.println( "The new contents of the IntegerDataBag contains:" ); Iterator i = bag.iterator(); while( i.hasNext() ) { System.out.println( i.next() ); } } } }