Termien yhdistäminen



Tämä simulaatio havainnollistaa samanmuotoisten termien yhdistämistä. Kopioi alla oleva koodi ja aja ohjelma. Älä tee koodiin muutoksia.

int a1 = 450; // Laskurin alkuarvo (ikkunan keskellä)
int b1 = 450; // Laskurin alkuarvo (ikkunan keskellä)
int c1 = 450; // Laskurin alkuarvo (ikkunan keskellä)
int d1 = 450; // Laskurin alkuarvo (ikkunan keskellä)
int e1 = 450; // Laskurin alkuarvo (ikkunan keskellä)
int f1 = 450; // Laskurin alkuarvo (ikkunan keskellä)
void setup () {
 size(900,700);
 stroke(0); // Musta viivan väri
}

void draw () {
   background(255);
   strokeWeight(2);
     textSize(25);
     fill(255,255,0); // Keltainen täyttöväri
     rect(0,0,899,30); // Piirrä keltainen suorakulmio
     rect(0,30,899,30); // Piirrä keltainen suorakulmio
     rect(0,60,899,30); // Piirrä keltainen suorakulmio
     rect(0,90,899,30); // Piirrä keltainen suorakulmio
     rect(0,120,899,30); // Piirrä keltainen suorakulmio
     rect(0,150,899,30); // Piirrä keltainen suorakulmio
    
     fill(255,100,100); // Punainen täyttöväri
     rect(a1,0,50,30); // Piirrä punainen neliö
     rect(b1,30,50,30); // Piirrä punainen neliö
     rect(c1,60,50,30); // Piirrä punainen neliö
     rect(d1,90,50,30); // Piirrä punainen neliö
     rect(e1,120,50,30); // Piirrä punainen neliö
     rect(f1,150,50,30); // Piirrä punainen neliö
     
     stroke(0);
     int x1 = mouseX; // Selvitä hiiren vaakakoordinaatti
     int y1 = mouseY;
    if (mousePressed == true) {
     if ((y1 > 0) && (y1 < 30)) {
     if ((x1>a1) && (a1 < 850)) { // Jos hiiri on oikealla puolen
         a1++; // niin kasvata laskuria
     }

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

     if ((x1<b1) && (b1 > 0)) { // Jos hiiri on vasemmalla puolen
         b1--; // niin pienennä laskuria
     }
     }
     if ((y1 > 60) && (y1 < 90)) {
      if ((x1>c1) && (c1 < 850)) { // Jos hiiri on oikealla puolen
         c1++; // niin kasvata laskuria
      }
      if ((x1<c1) && (c1 > 0)) { // Jos hiiri on vasemmalla puolen
         c1--; // niin pienennä laskuria
      }
     }
     if ((y1 > 90) && (y1 < 120)) {
      if ((x1>d1) && (d1 < 850)) { // Jos hiiri on oikealla puolen
         d1++; // niin kasvata laskuria
      }
      if ((x1<d1) && (d1 > 0)) { // Jos hiiri on vasemmalla puolen
         d1--; // niin pienennä laskuria
      }
     }
      if ((y1 > 120) && (y1 < 150)) {
      if ((x1>e1) && (e1 < 850)) { // Jos hiiri on oikealla puolen
         e1++; // niin kasvata laskuria
      }
      if ((x1<e1) && (e1 > 0)) { // Jos hiiri on vasemmalla puolen
         e1--; // niin pienennä laskuria
      }
     }
      if ((y1 > 150) && (y1 < 180)) {
      if ((x1>f1) && (f1 < 850)) { // Jos hiiri on oikealla puolen
         f1++; // niin kasvata laskuria
      }
      if ((x1<f1) && (f1 > 0)) { // Jos hiiri on vasemmalla puolen
         f1--; // niin pienennä laskuria
      }
     }
    }

     fill(0); // Musta tekstin väri
     strokeWeight(2);
     int a2 = round((map(a1,0,850,-9,9)));
     int b2 = round((map(b1,0,850,-9,9)));
     int c2 = round((map(c1,0,850,-9,9)));
     int d2 = round((map(d1,0,850,-9,9)));
     int e2 = round((map(e1,0,850,-9,9)));
     int f2 = round((map(f1,0,850,-9,9)));
    
     text(""+a2,a1+4,23);
     text(""+b2,b1+4,53);
     text(""+c2,c1+4,83);
     text(""+d2,d1+4,113);
     text(""+e2,e1+4,143);
     text(""+f2,f1+4,173);
     translate(0,120);   
     alaatat(a2,b2,c2);
     translate(200,0);
     alaatat(d2,e2,f2);
     translate(250,0);
     alaatat(a2+d2,b2+e2,c2+f2);
     textSize(30);
     text("=",0,100);
}

void alaatat(int a, int b, int c) {
  textSize(30);
  if ((b >= 0) && (c >= 0)) {
    if (a >= 0) {
       text("+"+a+"x +"+b+"y +"+c,50,100);
    } else {
       text(""+a+"x +"+b+"y +"+c,50,100);
    }
  }
  if ((b < 0) && (c >= 0)) {
    if (a >= 0) {
       text("+"+a+"x "+b+"y +"+c,50,100);
    } else {
       text(""+a+"x "+b+"y +"+c,50,100);
    }
  }
  if ((b >= 0) && (c < 0)) {
    if (a >= 0) {
        text("+"+a+"x +"+b+"y "+c,50,100);
    } else {
        text(""+a+"x +"+b+"y "+c,50,100);
    }
   
  }
  if ((b < 0) && (c < 0)) {
      if (a >= 0) {
        text("+"+a+"x "+b+"y "+c,50,100);
    } else {
       text(""+a+"x "+b+"y "+c,50,100);
    }

  }
  textSize(14);
  if (a > 0){
  for (int x1 =1; x1<= a; x1++) {
    fill(255,100,100);
    rect(50,110+20*x1,60,20);
    fill(0);
    text("x",75,125+20*x1);
  }
  }
  if (a < 0) {
    for (int x1 =-1; x1>= a; x1--) {
    fill(100,100,255);
    rect(50,110-20*x1,60,20);
    fill(0);
    text("-x",70,125-20*x1);
  }
  }
  if (b > 0) {
  for (int x1 =1; x1<= b; x1++) {
    fill(255,255,100);
    rect(130,110+20*x1,60,20);
     fill(0);
    text("y",157,125+20*x1);
  }
  }
    if (b < 0) {
  for (int x1 =-1; x1>= b; x1--) {
    fill(100,255,100);
    rect(130,110-20*x1,60,20);
     fill(0);
    text("-y",153,125-20*x1);
  }
  }
  if (c > 0) {
  for (int x1 =1; x1<= c; x1++) {
    fill(255,100,255);
    rect(210,110+20*x1,20,20);
    fill(0);
    text("1",217,125+20*x1);
  }
  }
   if (c < 0) {
    for (int x1 =-1; x1>= c; x1--) {
     fill(100,255,255);
     rect(210,110-20*x1,20,20);
     fill(0);
     text("-1",213,125-20*x1);
  }
  }
  
}