- public class Logique{
-
- boolean e1,e2,s;
- int i;
- String nom;
- String type;
- Logique porte;
-
- public Logique(String nom,String type){
- this.nom=nom;
- this.type=type;
- }
-
- public void etatE1(boolean e){
- e1=e;
- this.operation();
- }
-
- public void etatE2(boolean e){
- e2=e;
- this.operation();
- }
-
- private void operation(){
- boolean anciens;
- anciens=s;
- if(type.equals("non ou")) s=!(e1||e2);
- if(type.equals("non et")) s=!(e1&&e2);
- if(type.equals("non")) s=!e1;
- if(type.equals("et")) s=(e1&&e2);
- if(type.equals("ou")) s=(e1||e2);
- if(anciens!=s){
- if(i==1) porte.etatE1(s);
- if(i==2) porte.etatE2(s);
- }
- }
-
- public void niveau(){
- if(type.equals("non")){
- System.out.println("etat de l entree de "+nom+" : "+e1);
- }
- else{
- System.out.println("etat de l entree 1 de "+nom+" : "+e1);
- System.out.println("etat de l entree 2 de "+nom+" : "+e2);
- }
- System.out.println("etat de la sortie "+nom+" : "+s);
- }
-
-
- public void relie(Logique porte,int n){
- this.porte=porte;
- i=n;
- }
-
- public void niveauE1(){
- System.out.println("etat de l entree 1 de "+nom+" : "+e1);
-
- }
-
- public void niveauE2(){
- System.out.println("etat de l entree 2 de "+nom+" : "+e2);
-
- }
-
- public void niveauS(){
- System.out.println("etat de la sortie "+nom+" : "+s);
- }
-
- }
-
-
- class test{
- public static void main(String arg[]){
-
- //selection des portes logiques
- Logique p1=new Logique("p1","non ou");
- Logique p2=new Logique("p2","non");
-
- //cablage
- p1.relie(p2,1);
-
- //simulation
- p1.etatE1(false);
- p1.etatE2(false);
- System.out.println("cas 1");
- p1.niveau();
- p2.niveau();
- p1.etatE1(false);
- p1.etatE2(true);
- System.out.println("cas 2");
- p1.niveau();
- p2.niveau();
- p1.etatE1(true);
- p1.etatE2(false);
- System.out.println("cas 3");
- p1.niveau();
- p2.niveau();
- }
- }
-
-
-
- class test2{
- public static void main(String arg[]){
-
- //selection des portes logiques
- Logique p1=new Logique("p1","non et");
- Logique p2=new Logique("p2","non et");
-
- //cablage sortie de p1 vers l'entrée 1 de p2
- p1.relie(p2,1);
- //cablage sortie de p2 vers l'entrée 2 de p1
- p2.relie(p1,2);
-
- //séquence d'etat des entrées
- boolean [] entree2={false,true,true,true};
- boolean [] entree1={true,true,false,true};
-
- //simulation
- for(int i=0;i<=3;i++){
- p1.etatE1(entree1[i]);
- p2.etatE2(entree2[i]);
- System.out.println("cas "+i);
- p1.niveauS();
- p2.niveauS();
- }
- }
- }
-
public class Logique{
boolean e1,e2,s;
int i;
String nom;
String type;
Logique porte;
public Logique(String nom,String type){
this.nom=nom;
this.type=type;
}
public void etatE1(boolean e){
e1=e;
this.operation();
}
public void etatE2(boolean e){
e2=e;
this.operation();
}
private void operation(){
boolean anciens;
anciens=s;
if(type.equals("non ou")) s=!(e1||e2);
if(type.equals("non et")) s=!(e1&&e2);
if(type.equals("non")) s=!e1;
if(type.equals("et")) s=(e1&&e2);
if(type.equals("ou")) s=(e1||e2);
if(anciens!=s){
if(i==1) porte.etatE1(s);
if(i==2) porte.etatE2(s);
}
}
public void niveau(){
if(type.equals("non")){
System.out.println("etat de l entree de "+nom+" : "+e1);
}
else{
System.out.println("etat de l entree 1 de "+nom+" : "+e1);
System.out.println("etat de l entree 2 de "+nom+" : "+e2);
}
System.out.println("etat de la sortie "+nom+" : "+s);
}
public void relie(Logique porte,int n){
this.porte=porte;
i=n;
}
public void niveauE1(){
System.out.println("etat de l entree 1 de "+nom+" : "+e1);
}
public void niveauE2(){
System.out.println("etat de l entree 2 de "+nom+" : "+e2);
}
public void niveauS(){
System.out.println("etat de la sortie "+nom+" : "+s);
}
}
class test{
public static void main(String arg[]){
//selection des portes logiques
Logique p1=new Logique("p1","non ou");
Logique p2=new Logique("p2","non");
//cablage
p1.relie(p2,1);
//simulation
p1.etatE1(false);
p1.etatE2(false);
System.out.println("cas 1");
p1.niveau();
p2.niveau();
p1.etatE1(false);
p1.etatE2(true);
System.out.println("cas 2");
p1.niveau();
p2.niveau();
p1.etatE1(true);
p1.etatE2(false);
System.out.println("cas 3");
p1.niveau();
p2.niveau();
}
}
class test2{
public static void main(String arg[]){
//selection des portes logiques
Logique p1=new Logique("p1","non et");
Logique p2=new Logique("p2","non et");
//cablage sortie de p1 vers l'entrée 1 de p2
p1.relie(p2,1);
//cablage sortie de p2 vers l'entrée 2 de p1
p2.relie(p1,2);
//séquence d'etat des entrées
boolean [] entree2={false,true,true,true};
boolean [] entree1={true,true,false,true};
//simulation
for(int i=0;i<=3;i++){
p1.etatE1(entree1[i]);
p2.etatE2(entree2[i]);
System.out.println("cas "+i);
p1.niveauS();
p2.niveauS();
}
}
}