Pituuden yksiköt



Tällä simulaatiolla voidaan harjoitella pituuden muutoksia yksiköstä toiseen. Nuoli näyttää, mihin pilkku siirtyy kysytyssä yksikössä. 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
// 18.3.2018
float a = 275; // Laskurin alkuarvo (ikkunan keskellä)
float b = 400; // Laskurin alkuarvo (ikkunan keskellä)
float c = 137; // Laskurin alkuarvo (ikkunan keskellä)
float d = 375; // Laskurin alkuarvo (ikkunan keskellä)
void setup () {
     size(800,600); // 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 < 50)) {
     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 > 50) && (y1 < 100)) {
     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
     }
     }
     if ((y1 > 100) && (y1 < 150)) {
      if ((x1>c) && (c < 750)) { // 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 > 150) && (y1 < 200)) {
      if ((x1>d) && (d < 750)) { // Jos hiiri on oikealla puolen
         d++; // niin kasvata laskuria
      }

      if ((x1<d) && (x1 >= 0)) { // Jos hiiri on vasemmalla puolen
         d--; // niin pienennä laskuria
      }
     }
      
     }
     fill(0); // Musta tekstin väri
     int a2 = round(map(a,0,750,1,99));
     int b2 = round(map(b,0,750,1,16));
     int c2 = round(map(c,0,750,1,7));
     int d2 = round(map(d,0,750,1,7));  
        fill(255);
        noStroke();
        rect(0,150,600,600);
        fill(0);
        noStroke();
        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,799,50); // Piirrä keltainen suorakulmio
        rect(0,50,799,50); // Piirrä keltainen suorakulmio
        rect(0,100,799,50); // Piirrä keltainen suorakulmio
        rect(0,150,799,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ö
        rect(d,150,50,50); // Piirrä punainen neliö
        textSize(20);
        fill(0);
        textSize(20);
        text(""+a2,a+4,40);   
        text(""+(b2-9),b+4,90);
        String merkki="";
        if (c2 == 1) {
          text("km",c+4,140);
          merkki = "km";
        }
        if (c2 == 2) {
          text("hm",c+4,140);
           merkki = "hm";
        }
        if (c2 == 3) {
          text("dam",c+4,140);
           merkki = "dam";
        }
        if (c2 == 4) {
          text("m",c+4,140);
           merkki = "m";
        }
        if (c2 == 5) {
          text("dm",c+4,140);
           merkki = "dm";
        }
        if (c2 == 6) {
          text("cm",c+4,140);
           merkki = "cm";
        }
        if (c2 == 7) {
          text("mm",c+4,140);
           merkki = "mm";
        }
        String merkki2 = "";
        if (d2 == 1) {
          text("km",d+4,190);
          text("km",-20+(b2+(d2-c2))*49,290);
          merkki2 = "km";
        }
        if (d2 == 2) {
          text("hm",d+4,190);
          text("hm",-20+(b2+(d2-c2))*49,290);
          merkki2 = "hm";
        }
        if (d2 == 3) {
          text("dam",d+4,190);
          text("dam",-20+(b2+(d2-c2))*49,290);
          merkki2 = "dam";
        }
        if (d2 == 4) {
          text("m",d+4,190);
          text("m",-20+(b2+(d2-c2))*49,290);
          merkki2 = "m";
        }
        if (d2 == 5) {
          text("dm",d+4,190);
          text("dm",-20+(b2+(d2-c2))*49,290);
          merkki2 = "dm";
        }
        if (d2 == 6) {
          text("cm",d+4,190);
          text("cm",-20+(b2+(d2-c2))*49,290);
          merkki2 = "cm";
        }
        if (d2 == 7) {
          text("mm",d+4,190);
          text("mm",-20+(b2+(d2-c2))*49,290);
          merkki2 = "mm";
        }       
        textSize(50);
        text("0 0 0 0 0 0 0",10,400);
        if (a2 < 10) {
          text("0",345,400);
        }
        if ((a2 >= 10) && (a2 < 20)) {
          text("1",345,400);
        }
        if ((a2 >= 20) && (a2 < 30)) {
          text("2",345,400);
        }
        if ((a2 >= 30) && (a2 < 40)) {
          text("3",345,400);
        }
        if ((a2 >= 40) && (a2 < 50)) {
          text("4",345,400);
        }
        if ((a2 >= 50) && (a2 < 60)) {
          text("5",345,400);
        }
        if ((a2 >= 60) && (a2 < 70)) {
          text("6",345,400);
        }
        if ((a2 >= 70) && (a2 < 80)) {
          text("7",345,400);
        }
        if ((a2 >= 80) && (a2 < 90)) {
          text("8",345,400);
        }
        if ((a2 >= 90) && (a2 < 100)) {
          text("9",345,400);
        }
        if ((a2 == 11) || (a2 == 21) || (a2 == 31) || (a2 == 41)|| (a2 == 51)|| (a2 == 61)|| (a2 == 71)|| (a2 == 81) || (a2 == 91) || (a2 == 1)) {
          text("1",395,400);
        }
        if ((a2 == 12) || (a2 == 22) || (a2 == 32) || (a2 == 42)|| (a2 == 52)|| (a2 == 62)|| (a2 == 72)|| (a2 == 82) || (a2 == 92) || (a2 == 2)) {
          text("2",395,400);
        }
        if ((a2 == 13) || (a2 == 23) || (a2 == 33) || (a2 == 43)|| (a2 == 53)|| (a2 == 63)|| (a2 == 73)|| (a2 == 83) || (a2 == 93) || (a2 == 3)) {
          text("3",395,400);
        }
        if ((a2 == 14) || (a2 == 24) || (a2 == 34) || (a2 == 44)|| (a2 == 54)|| (a2 == 64)|| (a2 == 74)|| (a2 == 84) || (a2 == 94) || (a2 == 4)) {
          text("4",395,400);
        }
        if ((a2 == 15) || (a2 == 25) || (a2 == 35) || (a2 == 45)|| (a2 == 55)|| (a2 == 65)|| (a2 == 75)|| (a2 == 85) || (a2 == 95) || (a2 == 5)) {
          text("5",395,400);
        }
        if ((a2 == 16) || (a2 == 26) || (a2 == 36) || (a2 == 46)|| (a2 == 56)|| (a2 == 66)|| (a2 == 76)|| (a2 == 86) || (a2 == 96) || (a2 == 6)) {
          text("6",395,400);
        }
        if ((a2 == 17) || (a2 == 27) || (a2 == 37) || (a2 == 47)|| (a2 == 57)|| (a2 == 67)|| (a2 == 77)|| (a2 == 87) || (a2 == 97) || (a2 == 7)) {
          text("7",395,400);
        }
        if ((a2 == 18) || (a2 == 28) || (a2 == 38) || (a2 == 48)|| (a2 == 58)|| (a2 == 68)|| (a2 == 78)|| (a2 == 88) || (a2 == 98) || (a2 == 8)) {
          text("8",395,400);
        }
        if ((a2 == 19) || (a2 == 29) || (a2 == 39) || (a2 == 49)|| (a2 == 59)|| (a2 == 69)|| (a2 == 79)|| (a2 == 89) || (a2 == 99) || (a2 == 9)) {
          text("9",395,400);
        }
        if ((a2 == 10) || (a2 == 20) || (a2 == 30) || (a2 == 40)|| (a2 == 50)|| (a2 == 60)|| (a2 == 70)|| (a2 == 80) || (a2 == 90)|| (a2 == 0)) {
          text("0",395,400);
        }
        text("0 0 0 0 0 0 0",448,400);
        text(",",-10+49*b2,400);
        strokeWeight(1);
        rect(-15+(b2+(d2-c2))*49,340,10,-39);
        triangle(-10+(b2+(d2-c2))*49,350,10+(b2+(d2-c2))*49,330,-30+(b2+(d2-c2))*49,330);
        text(a2+"\u00B710",10,550);
        textSize(40);
        if (a2 < 10) {
          text((b2-9),120,515);
        } else {
          text((b2-9),150,515);
        }
        textSize(30);
        float luku = a2;
        if (b2 == 1) {
          if (a2 < 10) {
             text("Paljonko on 0.0000000"+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          } else {
            text("Paljonko on 0.000000"+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          }
        }
        if (b2 == 2) {
           if (a2 < 10) {
           text("Paljonko on 0.000000"+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          } else {
           text("Paljonko on 0.00000"+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          }
        }
         if (b2 == 3) {
          if (a2 < 10) {
            text("Paljonko on 0.00000"+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          } else {
            text("Paljonko on 0.0000"+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          }
        }
        if (b2 == 4) {
          if (a2 < 10) {
            text("Paljonko on 0.0000"+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          } else {
            text("Paljonko on 0.000"+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          }
        }
        if (b2 == 5) {
          if (a2 < 10) {
            text("Paljonko on 0.000"+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          } else {
            text("Paljonko on 0.00"+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          }
        }
        if (b2 == 6) {
          if (a2 < 10) {
              text("Paljonko on 0.00"+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          } else {
            text("Paljonko on 0.0"+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          }
        }
        if (b2 == 7) {
          if (a2 < 10) {
              text("Paljonko on 0.0"+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          } else {
            text("Paljonko on 0."+a2+" "+merkki+" "+merkki2+":nä?",10,240);
          }
        }
        if (b2 == 8) {
          luku = luku/10.0;
           text("Paljonko on "+luku+" "+merkki+" "+merkki2+":nä?",10,240);
        }
        if (b2 == 9) {
          luku = a2;
           text("Paljonko on "+luku+" "+merkki+" "+merkki2+":nä?",10,240);
        }
        if (b2 == 10) {
          luku = luku*10.0;
           text("Paljonko on "+luku+" "+merkki+" "+merkki2+":nä?",10,240);
        }
        if (b2 == 11) {
          luku = luku*100.0;
           text("Paljonko on "+luku+" "+merkki+" "+merkki2+":nä?",10,240);
        }
        if (b2 == 12) {
          luku = luku*1000.0;
           text("Paljonko on "+luku+" "+merkki+" "+merkki2+":nä?",10,240);
        }
        if (b2 == 13) {
          luku = luku*10000.0;
           text("Paljonko on "+luku+" "+merkki+" "+merkki2+":nä?",10,240);
        }
        if (b2 == 14) {
          luku = luku*100000.0;
           text("Paljonko on "+luku+" "+merkki+" "+merkki2+":nä?",10,240);
        }
        if (b2 == 15) {
           text("Paljonko on "+a2+"000000.0 "+merkki+" "+merkki2+":nä?",10,240);
        }
        if (b2 == 16) {
           text("Paljonko on "+a2+"0000000.0 "+merkki+" "+merkki2+":nä?",10,240);
        }      
}