/* 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() );
}
}
}
}