Polynomi pinta-alasta ja piiristä

Polynomi pinta-alasta ja piiristä

Tällä simulaatiolla voit tutkia, kuinka suorakulmion pinta-alasta ja piiristä muodostetaan polynomi. Lisäksi ohjelma laskee polynomin arvon. Ensimmäinen vaakapalkki muuttaa suorakulmion leveyttä ja toinen vaakapalkki muuttaa suorakulmion korkeutta. Koska yhden neliön korkeus ja leveys on x, suorakulmion leveys ja korkeus ilmaistaan x:n avulla. Kolmas palkki muuttaa muuttujan x arvoa, minkä jälkeen ohjelma laskee polynomin arvon tällä muuttujalla.



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
// 21.3.2018
int a = 1; // Laskurin alkuarvo 
int b = 1; // Laskurin alkuarvo 
int c = 1; // Laskurin alkuarvo 
void setup () {
     size(600,700); // ikkunan koko
     stroke(0); // Musta viivan väri
     textSize(30);
}

void draw() {
     background(255); // Tyhjennä tausta
     fill(255,255,0); // Keltainen täyttöväri
     rect(0,0,599,50); // Piirrä keltainen suorakulmio
     rect(0,50,599,50); // Piirrä keltainen suorakulmio
     rect(0,100,599,50); // Piirrä keltainen suorakulmio
     fill(255,100,100); // Punainen täyttöväri
     rect(a,0,50,50); // Piirrä punainen neliö
     rect(b,50,50,50); // Piirrä punainen neliö
     rect(c,100,50,50); // Piirrä punainen neliö
     int x1 = mouseX; // Selvitä hiiren vaakakoordinaatti
     int y1 = mouseY; // selvitä hiiren pystykoordinaatti
      if (mousePressed == true) {
     if ((y1 > 0) && (y1 < 50)) {
         if ((x1>a) && (a < 550)) { // 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 < 550)) { // 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 < 550)) { // Jos hiiri on oikealla puolen
             c++; // niin kasvata laskuria
         }
         if ((x1<c) && (c > 0)) { // Jos hiiri on vasemmalla puolen
             c--; // niin pienennä laskuria
         }
     }
    }
     fill(0); // Musta tekstin väri
     int a2 = round(map(a,0,550,1,10));
     int b2 = round(map(b,0,550,1,10));
     int c2 = round(map(c,0,550,1,10));
     text("A(x) = "+a2+"x\u00B7"+b2+"x = "+a2*b2+"x\u00B2",10,200);
     text("A("+c2+") = "+a2*b2+"\u00B7"+c2+"\u00B2 = "+a2*b2*c2*c2,10,240);
     text("p(x) = "+a2+"x +"+b2+"x + "+a2+"x +"+b2+"x = "+(2*a2+2*b2)+"x",10,280);
     text("p("+c2+") = "+(2*a2+2*b2)+"\u00B7"+c2+" = "+((2*a2+2*b2)*c2),10,320);
     text(a2+"x",30+((a2*30)/2.0),380+b2*30);
     text(b2+"x",60+a2*30,360+((b2*30)/2.0));
     text(a2,a+10,35);
     text(b2,b+10,85);
     text(c2,c+10,135);
     fill(0,200,255);
     rect(50,350,30*a2,30*b2);
     for (int l= 1; l <= a2; l++) {
          line(50+l*30,350,50+l*30,350+30*b2);
     }
     for (int l= 1; l <= b2; l++) {
          line(50,350+l*30,50+a2*30,350+l*30);
     }
}