Yhtälön ratkaisua for-silmukan avulla

Yhtälön ratkaisua for-silmukan avulla



Tämä simulaatio havainnollistaa yhtälön ratkaisua for-silmukan avulla. Jos yhtälön vasemman puolen arvo on sama kuin oikean puolen arvo, niin silloin asetetaan punainen väri, muutoin musta väri. Yhtälön ratkaisun näkee punaisella. Kopioi alla oleva koodi ja aja ohjelma. Älä tee koodiin muutoksia. 

// Ohjelman tehnyt: e-Oppi Oy
// 28.2.2018
int a = 600; // Laskurin alkuarvo 
int b = 305; // Laskurin alkuarvo 
int c = 705; // Laskurin alkuarvo 
int d = 375; // Laskurin alkuarvo 
int laskuri = 0;
void setup () {
     size(1000,700); // ikkunan koko
     stroke(0); // Musta viivan väri
     textSize(30); // Tekstin koko
}
void draw() {
     background(255); // Tyhjennä tausta
     int a2 = round(map(a,0,950,-10,10));
     int b2 = round(map(b,0,950,-10,10));
     int c2 = round(map(c,0,950,-10,10));
     int d2 = round(map(d,0,950,-10,10));
 
     fill(0,200,255);
     fill(255);
     rect(500,200,500,500);
     stroke(200);
     pushMatrix();
     translate(500,200);

  
     for (int t=-10; t <= 10; t++) {
        line(t*50,-500,t*50,500);
        line(-500,t*50,500,t*50);
     }
     strokeWeight(3);
     line(0,-500,0,500);
     line(-500,0,500,0);
     strokeWeight(1);
     stroke(0);
     fill(0);
     textSize(20);
     for (int h = -10; h<= 10; h++) {
       int y1 = a2*h+b2;
       int y2 = c2*h+d2;
       if (y1 == y2) { fill(255,0,0); } else { fill(0); }
       text("f("+h+") = "+y1,10,250+h*20);
       text("f("+h+") = "+y2,260,250+h*20);
     }
     popMatrix();
     fill(240);
     noStroke();
     rect(0,200,500,500);
     rect(0,0,1000,200);
  
     stroke(0);  
     strokeWeight(1);
  
     fill(255,255,0); // Keltainen täyttöväri
     rect(0,0,999,50); // Piirrä keltainen suorakulmio
     rect(0,50,999,50); // Piirrä keltainen suorakulmio
     rect(0,100,999,50); // Piirrä keltainen suorakulmio
     rect(0,150,999,50); // Piirrä keltainen suorakulmio

     fill(255,100,100); // Punainen täyttöväri
     rect(a,0,60,50); // Piirrä punainen neliö
     rect(b,50,60,50); // Piirrä punainen neliö
     rect(c,100,60,50); // Piirrä punainen neliö
     rect(d,150,60,50); // Piirrä punainen neliö


     int x1 = mouseX; // Selvitä hiiren vaakakoordinaatti
     int y1 = mouseY;
     if (mousePressed == true) {
     if ((y1 > 0) && (y1 < 50)) {
          if ((x1>a) && (a < 950)) { // Jos hiiri on oikealla puolen
                a++; // niin kasvata laskuria
          }
          if ((x1<a) && (a >= 0)) { // Jos hiiri on vasemmalla puolen
                a--; // niin pienennä laskuria
          }
     }
     if ((y1 > 50) && (y1 < 100)) {
          if ((x1>b) && (b < 950)) { // Jos hiiri on oikealla puolen
                b++; // niin kasvata laskuria
          }
          if ((x1<b) && (b >= 0)) { // Jos hiiri on vasemmalla puolen
                b--; // niin pienennä laskuria
          }
     }
     if ((y1 > 100) && (y1 < 150)) {
          if ((x1>c) && (c < 950)) { // Jos hiiri on oikealla puolen
                c++; // niin kasvata laskuria
          }
          if ((x1<c) && (c > 0)){ // Jos hiiri on vasemmalla puolen
                c--; // niin pienennä laskuria
          }
     }
     if ((y1 > 150) && (y1 < 200)) {
          if ((x1>d) && (d < 950)) { // Jos hiiri on oikealla puolen
                d++; // niin kasvata laskuria
          }
          if ((x1<d) && (d > 0)){ // Jos hiiri on vasemmalla puolen
                d--; // niin pienennä laskuria
          }
      }
    
     }
     fill(0); // Musta tekstin väri
     textSize(25); // Tekstin koko
     text(a2,a+5,45);
     text(b2,b+5,95);
     text(c2,c+5,145);
     text(d2,d+5,195);
  

     textSize(24); // Tekstin koko

     text("void setup () {",10,240);
     text("size(500,500); ",30,270);
     text("background(255);",30,300);
     text("textSize(20);",30,330);
     text("}",10,360);
     text("void draw () {",10,420);
     text("for (int x = -10; x <= 10; x++) {",30,450);
     if (b2 >= 0) {
          text("int y1 = "+a2+"*x+"+b2+";",50,480);
     } else {
          text("int y1 = "+a2+"*x"+b2+";",50,480);
     }
     if (d2 >= 0) {
          text("int y2 = "+c2+"*x+"+d2+";",50,510);
     } else {
          text("int y2 = "+c2+"*x"+d2+";",50,510); 
     }
     text("if (y1==y2) { fill(255,0,0); }",50,540);
     text("else { fill(0); }",50,570);
     text("text(\"f(\"+x+\") = \"+y1,10,250+x*20);",50,600);
     text("text(\"f(\"+x+\") = \"+y2,260,250+x*20);",50,630);
     text("}",30,660);
     text("}",10,690);
   
}