Potenssi

Potenssi



Tämä simulaatio havainnollistaa kertolaskun ja potenssilaskun eroa. Kopioi alla oleva koodi ja aja ohjelma. Älä tee koodiin muutoksia.

// Ohjelman tehnyt e-Oppi Oy
// 21.2.2018
float a = 275; // Laskurin alkuarvo (ikkunan keskellä)
float b = 275; // Laskurin alkuarvo (ikkunan keskellä)

void setup () {
     size(800,400); // 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 < 750)) { // 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 < 750)) { // Jos hiiri on oikealla puolen
         b++; // niin kasvata laskuria
     }

     if ((x1<b) && (x1 >= 0)) { // Jos hiiri on vasemmalla puolen
         b--; // niin pienennä laskuria
     }
     }
  
      
     }
     fill(0); // Musta tekstin väri
     int a2 = round(map(a,0,750,-10,10));
     int b2 = round(map(b,0,750,0,5));
  

     textSize(32);
      if (a2 >= 0) {
       if (b2 == 0) {
           text(a2+"\u00B7"+b2+" = "+a2*b2,10,150);
       }
       if (b2 == 1) {
           text(a2+"\u00B7"+b2+" = "+a2*b2,10,150);
       }
       if (b2 == 2) {
         text(a2+"\u00B7"+b2+" = "+a2+"+"+a2+" = "+a2*b2,10,150);
       }
       if (b2 == 3) {
           text(a2+"\u00B7"+b2+" = "+a2+"+"+a2+"+"+a2+" = "+a2*b2,10,150);
       }
       if (b2 == 4) {
          text(a2+"\u00B7"+b2+" = "+a2+"+"+a2+"+"+a2+"+"+a2+" = "+a2*b2,10,150);
       }
       if (b2 == 5) {
          text(a2+"\u00B7"+b2+" = "+a2+"+"+a2+"+"+a2+"+"+a2+"+"+a2+" = "+a2*b2,10,150);
       }
      
     } else {
 
     if (b2 == 0) {
           text(a2+"\u00B7"+b2+" = "+a2*b2,10,150);
       }
       if (b2 == 1) {
           text(a2+"\u00B7"+b2+" = "+a2*b2,10,150);
       }
       if (b2 == 2) {
         text(a2+"\u00B7"+b2+" = "+a2+""+a2+" = "+a2*b2,10,150);
       }
       if (b2 == 3) {
           text(a2+"\u00B7"+b2+" = "+a2+""+a2+""+a2+" = "+a2*b2,10,150);
       }
       if (b2 == 4) {
          text(a2+"\u00B7"+b2+" = "+a2+""+a2+""+a2+""+a2+" = "+a2*b2,10,150);
       }
       if (b2 == 5) {
          text(a2+"\u00B7"+b2+" = "+a2+""+a2+""+a2+""+a2+""+a2+" = "+a2*b2,10,150);
       }
     }
     
     if (a2 >= 0) {
       if (b2 == 0) {
           text(a2+"\u2070 = "+potenssi(a2,b2),10,200);
       }
       if (b2 == 1) {
           text(a2+"\u00B9 = "+potenssi(a2,b2),10,200);
       }
       if (b2 == 2) {
           text(a2+"\u00B2 = "+a2+"\u00B7"+a2+" = "+potenssi(a2,b2),10,200);
       }
       if (b2 == 3) {
           text(a2+"\u00B3 = "+a2+"\u00B7"+a2+"\u00B7"+a2+" = "+potenssi(a2,b2),10,200);
       }
       if (b2 == 4) {
           text(a2+"\u2074 = "+a2+"\u00B7"+a2+"\u00B7"+a2+"\u00B7"+a2+" = "+potenssi(a2,b2),10,200);
       }
       if (b2 == 5) {
           text(a2+"\u2075 = "+a2+"\u00B7"+a2+"\u00B7"+a2+"\u00B7"+a2+"\u00B7"+a2+" = "+potenssi(a2,b2),10,200);
       }
      
     } else {
 
       if (b2 == 0) {
           text("("+a2+")\u2070 = "+potenssi(a2,b2),10,200);
       }
       if (b2 == 1) {
           text("("+a2+")\u00B9 = "+potenssi(a2,b2),10,200);
       }
       if (b2 == 2) {
           text("("+a2+")\u00B2 = ("+a2+")\u00B7("+a2+") = "+potenssi(a2,b2),10,200);
       }
       if (b2 == 3) {
           text("("+a2+")\u00B3 = ("+a2+")\u00B7("+a2+")\u00B7("+a2+") = "+potenssi(a2,b2),10,200);
       }
       if (b2 == 4) {
           text("("+a2+")\u2074 = ("+a2+")\u00B7("+a2+")\u00B7("+a2+")\u00B7("+a2+") = "+potenssi(a2,b2),10,200);
       }
       if (b2 == 5) {
           text("("+a2+")\u2075 = ("+a2+")\u00B7("+a2+")\u00B7("+a2+")\u00B7("+a2+")\u00B7("+a2+") = "+potenssi(a2,b2),10,200);
       }
     }
     
      if (a2 < 0) {
 
       if (b2 == 0) {
           text(a2+"\u2070 = "+potenssi(a2,b2),10,250);
       }
       if (b2 == 1) {
           text(a2+"\u00B9 = "+potenssi(a2,b2),10,250);
       }
       if (b2 == 2) {
           text(a2+"\u00B2 = "+a2+"\u00B7"+abs(a2)+" = "+(-abs(potenssi(a2,b2))),10,250);
       }
       if (b2 == 3) {
           text(a2+"\u00B3 = "+a2+"\u00B7"+abs(a2)+"\u00B7"+abs(a2)+" = "+(-abs(potenssi(a2,b2))),10,250);
       }
       if (b2 == 4) {
           text(a2+"\u2074 = "+a2+"\u00B7"+abs(a2)+"\u00B7"+abs(a2)+"\u00B7"+abs(a2)+" = "+(-abs(potenssi(a2,b2))),10,250);
       }
       if (b2 == 5) {
           text(a2+"\u2075 = "+a2+"\u00B7"+abs(a2)+"\u00B7"+abs(a2)+"\u00B7"+abs(a2)+"\u00B7"+abs(a2)+" = "+(-abs(potenssi(a2,b2))),10,250);
       }
     }
  
       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
       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ö
       textSize(20);
       fill(0);
       textSize(25);
       text(""+a2,a+4,25);   
       text(""+b2,b+4,55);     
     
}
int potenssi(int d, int e) {
    int tulo = 1;
    for (int h=0; h< e; h++) {
       tulo = tulo*d;
    }
    return tulo;
}