Epäyhtälö

Epäyhtälö



Tämä simulaatio havainnollistaa epäyhtälöä. Ohjelman koodi on seuraava. Kopioi tämä koodi kokonaisuudessaan ohjelmointiympäristöön ja suorita koodi. Sinun ei tarvitse tehdä koodiin mitään muutoksia.

// Ohjelman tehnyt e-Oppi Oy
// 11.3.2018
float a = 165; // Laskurin alkuarvo (ikkunan keskellä)
float b = 220; // Laskurin alkuarvo (ikkunan keskellä)
float c = 385; // Laskurin alkuarvo (ikkunan keskellä)
float d = 412; // Laskurin alkuarvo (ikkunan keskellä)
float e = 310;
void setup () {
     size(600,750); // ikkunan koko   

}

void draw() {
     background(255); // Tyhjennä tausta
       stroke(0); // Musta viivan väri
        strokeWeight(3);
     textSize(20);
  

     int x1 = mouseX; // Selvitä hiiren vaakakoordinaatti
     int y1 = mouseY;
     if (mousePressed == true) {
     if ((y1 > 0) && (y1 < 30)) {
     if ((x1>a) && (a < 550)) { // Jos hiiri on oikealla puolen
         a++; // niin kasvata laskuria
     }

     if ((x1<a) && (x1 > 0)) { // Jos hiiri on vasemmalla puolen
         a--; // niin pienennä laskuria
     }
     }
     if ((y1 > 30) && (y1 < 60)) {
     if ((x1>b) && (b < 550)) { // Jos hiiri on oikealla puolen
         b++; // niin kasvata laskuria
     }

     if ((x1<b) && (x1 > 0)) { // Jos hiiri on vasemmalla puolen
         b--; // niin pienennä laskuria
     }
     }
     if ((y1 > 60) && (y1 < 90)) {
      if ((x1>c) && (c < 550)) { // Jos hiiri on oikealla puolen
         c++; // niin kasvata laskuria
      }

      if ((x1<c) && (x1 > 0)) { // Jos hiiri on vasemmalla puolen
         c--; // niin pienennä laskuria
      }
     }
     if ((y1 > 90) && (y1 < 120)) {
      if ((x1>d) && (d < 550)) { // Jos hiiri on oikealla puolen
         d++; // niin kasvata laskuria
      }

      if ((x1<d) && (x1 >0)) { // Jos hiiri on vasemmalla puolen
         d--; // niin pienennä laskuria
      }
     }
      if ((y1 > 120) && (y1 < 150)) {
      if ((x1>e) && (e < 550)) { // Jos hiiri on oikealla puolen
         e++; // niin kasvata laskuria
      }

      if ((x1<e) && (x1 >0)) { // Jos hiiri on vasemmalla puolen
         e--; // niin pienennä laskuria
      }
     }
     }
     fill(0); // Musta tekstin väri
     float a2 = round(10.0*map(a,0,550,-10,10))/10.0;
     int b2 = round(map(b,0,550,-10,10));
     int c2 = round(map(c,0,550,0,3));
     int d2 = round(map(d,0,550,-10,10));
     int e2 = round(map(e,0,550,0,3));
      
        fill(255);
        noStroke();
        rect(0,150,600,600);
        stroke(200);
        strokeWeight(2);
        for (int z = 0; z < 21; z++) {
           line(z*30,150,z*30,750); 
           line(0,150+z*30,600,150+z*30); 
        }
        strokeWeight(3);
        stroke(0);
        line(300,150,300,750);
        line(0,450,600,450);
        fill(0);
        triangle(590,440,598,450,590,460);
        triangle(300,150,310,160,290,160);
        text("x",580,430);
        text("y",315,170);
        textSize(20);
        text("1",323,470);
        text("1",280,430);
        pushMatrix();
        translate(300,450);
        scale(1,-1);
        if (c2 == 0) {
          epayhtalo(a2,b2,">",d2);
        }
         if (c2 == 1) {
          epayhtalo(a2,b2,">=",d2);
        }
         if (c2 == 2) {
          epayhtalo(a2,b2,"<=",d2);
        }
         if (c2 == 3) {
          epayhtalo(a2,b2,"<",d2);
        }
       
       popMatrix();

        fill(255);
        rect(0,0,600,148);
         stroke(0); // Musta viivan väri
        strokeWeight(3);
           fill(255,255,0); // Keltainen täyttöväri
           rect(0,0,849,30); // Piirrä keltainen suorakulmio
           rect(0,30,849,30); // Piirrä keltainen suorakulmio
           rect(0,60,849,30); // Piirrä keltainen suorakulmio
           rect(0,90,849,30); // Piirrä keltainen suorakulmio
    
         fill(255,100,100); // Punainen täyttöväri
         rect(a,0,50,30); // Piirrä punainen neliö
         rect(b,30,50,30); // Piirrä punainen neliö
         rect(c,60,50,30); // Piirrä punainen neliö
         rect(d,90,50,30); // Piirrä punainen neliö
    
  
         textSize(20);
          fill(0);
          textSize(20);
          text(""+a2,a+4,25);   
          text(""+b2,b+4,55);
          // text(""+c2,c+4,85);   
          text(""+d2,d+4,115);
          textSize(20);
          if (c2 == 0) {
            text(">",c+4,85);
            if (b2 >= 0) {
             text(a2+"x +"+b2+" > "+d2,10,145);
            } else {
             text(a2+"x "+b2+" > "+d2,10,145);
            }
          }
          if (c2 == 1) {
            text("\u2265",c+4,85);
            if (b2 >= 0) {
             text(a2+"x +"+b2+" \u2265 "+d2,10,145);
            } else {
             text(a2+"x "+b2+" \u2265 "+d2,10,145);
            }
          }
          if (c2 == 2) {
            text("\u2264",c+4,85);
            if (b2 >= 0) {
             text(a2+"x +"+b2+" \u2264 "+d2,10,145);
            } else {
             text(a2+"x "+b2+" \u2264 "+d2,10,145);
            }
          }
          if (c2 == 3) {
            text("<",c+4,85);
            if (b2 >= 0) {
             text(a2+"x +"+b2+" < "+d2,10,145);
            } else {
             text(a2+"x "+b2+" < "+d2,10,145);
            }
          }
}
void epayhtalo(float k, float b, String merkki, float arvo) {
     fill(250,200,0,100);
     float b2 = map(b,-10,10,-300,300);
     int s1 = -3000;
     int s2 = 3000;
     float y1 =k*(s1/10.0)+b2;
     float y2 =k*(s2/10.0)+b2;
     stroke(0,0,255);
     strokeWeight(5);
     line(s1/10,y1,s2/10,y2);
     
     float x = (arvo-b)/k;
     strokeWeight(3);
      if ((k == 0) && (merkki== ">")){
        noStroke();
        if (b > arvo) {
        rect(-300,30*arvo,600,300-30*arvo);
        }
       
     }
        if ((k == 0) && (merkki== "<")){
        noStroke();
        if (b < arvo) {
        rect(-300,30*arvo,600,-300-30*arvo);
        }
       
     }
        if ((k == 0) && (merkki== ">=")){
        noStroke();
        if (b >= arvo) {
        rect(-300,30*arvo,600,300-30*arvo);
        }
       
     }
        if ((k == 0) && (merkki== "<=")){
        noStroke();
        if (b <= arvo) {
        rect(-300,30*arvo,600,-300-30*arvo);
        }
       
     }
     
     if ((k > 0) && (merkki == "<")) {
        noStroke();
        rect(30*x,30*arvo,-300-30*x,-300-30*arvo);
         noFill();
        strokeWeight(5);
        stroke(255,0,0);
         ellipse(30*x,arvo*30,20,20);
           line(30*x-10,30*arvo,-300,30*arvo);
     }
      if ((k < 0) && (merkki == "<")) {
         noStroke();
    
        rect(30*x,30*arvo,+300-30*x,-300-30*arvo);
        noFill();
        strokeWeight(5);
        stroke(255,0,0);
         ellipse(30*x,arvo*30,20,20);
         line(30*x+10,30*arvo,300,30*arvo);
     }
       if ((k > 0) && (merkki == ">")) {
        noStroke();
        rect(30*x,30*arvo,300-30*x,300-30*arvo);
        noFill();
        strokeWeight(5);
        stroke(255,0,0);
        ellipse(30*x,arvo*30,20,20);
        line(30*x+10,30*arvo,300,30*arvo);
     }
      if ((k < 0) && (merkki == ">")) {
        noStroke();
        rect(30*x,30*arvo,-300-30*x,300-30*arvo);
        noFill();
        strokeWeight(5);
        stroke(255,0,0);
        ellipse(30*x,arvo*30,20,20);
        line(-300,arvo*30,30*x-10,arvo*30);
     }
       if ((k > 0) && (merkki == "<=")) {
        noStroke();
        rect(30*x,30*arvo,-300-30*x,-300-30*arvo);
         fill(255,0,0);
        strokeWeight(5);
        stroke(255,0,0);
         ellipse(30*x,arvo*30,20,20);
           line(30*x-10,30*arvo,-300,30*arvo);
     }
      if ((k < 0) && (merkki == "<=")) {
         noStroke();
    
        rect(30*x,30*arvo,+300-30*x,-300-30*arvo);
         fill(255,0,0);
        strokeWeight(5);
        stroke(255,0,0);
         ellipse(30*x,arvo*30,20,20);
         line(30*x+10,30*arvo,300,30*arvo);
     }
       if ((k > 0) && (merkki == ">=")) {
        noStroke();
        rect(30*x,30*arvo,300-30*x,300-30*arvo);
         fill(255,0,0);
        strokeWeight(5);
        stroke(255,0,0);
        ellipse(30*x,arvo*30,20,20);
        line(30*x+10,30*arvo,300,30*arvo);
     }
      if ((k < 0) && (merkki == ">=")) {
        noStroke();
        rect(30*x,30*arvo,-300-30*x,300-30*arvo);
         fill(255,0,0);
        strokeWeight(5);
        stroke(255,0,0);
        ellipse(30*x,arvo*30,20,20);
        line(-300,arvo*30,30*x-10,arvo*30);
     }
    noStroke();
}