Prosentti

Prosentti




Tämä simulaatio havainnollistaa murtolukua, desimaalilukua ja prosenttilukua. 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
// 28.3.2018
int a = 0; // Laskurin alkuarvo (ikkunan keskellä)
int b = 800; // Laskurin alkuarvo (ikkunan keskellä)

void setup () {
 size(850,700); // ikkunan koko
 stroke(0); // Musta viivan väri
 strokeWeight(3);
}

void draw() {
 textSize(30);
 background(255); // Tyhjennä tausta
 fill(255,255,0); // Keltainen täyttöväri
 rect(0,0,849,50); // Piirrä keltainen suorakulmio
 rect(0,50,849,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ö

 int x1 = mouseX; // Selvitä hiiren vaakakoordinaatti
 int y1 = mouseY;
 if (mousePressed == true) {
 if ((y1 > 0) && (y1 < 50)) {
 if ((x1>a) && (a < 800)) { // 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 < 800)) { // Jos hiiri on oikealla puolen
 b++; // niin kasvata laskuria
 }

 if ((x1<b) && (b>0)) { // Jos hiiri on vasemmalla puolen
 b--; // niin pienennä laskuria
 }
 }
}

 fill(0); // Musta tekstin väri
 float a2 = (map(a,0,800,1,10));
 float b2 = (map(b,0,800,1,10));
 textSize(20);
 text(nfc(a2,1),a+10,35);
 text(nfc(b2,1),b+10,85);
  textSize(30);
 text("Montako prosenttia "+round(a2*10)/10.0+ " on "+round(b2*10)/10.0+":stä?",50,200);
 
 text(""+round(a2*10)/10.0,50,250);
 line(40,260,130,260);
 text(""+round(b2*10)/10.0,50,290);
 text(" = "+round(100*((round(a2*10)/10.0)/(round(b2*10)/10.0)))/100.0+" = "+round(100*round(100*((round(a2*10)/10.0)/(round(b2*10)/10.0)))/100.0)+" %",140,269);
 fill(200,255,0);
 if (((a2/b2) >= 0) && ((a2/b2) <= 1)) {
 arc(150,400,200,200,radians(0),radians(360*round(100*((round(a2*10)/10.0)/(round(b2*10)/10.0)))/100.0),PIE);
 }
 if (((a2/b2) > 1) && ((a2/b2) <= 2)) {
 ellipse(150,400,200,200);
 arc(400,400,200,200,radians(0),radians(360*round(100*((round(a2*10)/10.0)/(round(b2*10)/10.0)))/100.0-360),PIE);
 }
 if (((a2/b2) > 2) && ((a2/b2) <= 3)) {
 ellipse(150,400,200,200);
 ellipse(400,400,200,200);
 arc(650,400,200,200,radians(0),radians(360*round(100*((round(a2*10)/10.0)/(round(b2*10)/10.0)))/100.0-2*360),PIE);
 }
 if (((a2/b2) > 3) && ((a2/b2) <= 4)) {
 ellipse(150,400,200,200);
 ellipse(400,400,200,200);
 ellipse(650,400,200,200);
 arc(60,600,100,100,radians(0),radians(360*round(100*((round(a2*10)/10.0)/(round(b2*10)/10.0)))/100.0-3*360),PIE);
 }
 if (((a2/b2) > 4) && ((a2/b2) <= 5)) {
 ellipse(150,400,200,200);
 ellipse(400,400,200,200);
 ellipse(650,400,200,200);
 ellipse(60,600,100,100);
 arc(170,600,100,100,radians(0),radians(360*round(100*((round(a2*10)/10.0)/(round(b2*10)/10.0)))/100.0-4*360),PIE);
 }
 
 if (((a2/b2) > 5) && ((a2/b2) <= 6)) {
 ellipse(150,400,200,200);
 ellipse(400,400,200,200);
 ellipse(650,400,200,200);
 ellipse(60,600,100,100);
 ellipse(170,600,100,100);
 arc(280,600,100,100,radians(0),radians(360*round(100*((round(a2*10)/10.0)/(round(b2*10)/10.0)))/100.0-5*360),PIE);
 }
 if (((a2/b2) > 6) && ((a2/b2) <= 7)) {
 ellipse(150,400,200,200);
 ellipse(400,400,200,200);
 ellipse(650,400,200,200);
 ellipse(60,600,100,100);
 ellipse(170,600,100,100);
 ellipse(280,600,100,100);
 arc(390,600,100,100,radians(0),radians(360*round(100*((round(a2*10)/10.0)/(round(b2*10)/10.0)))/100.0-6*360),PIE);
 }
 if (((a2/b2) > 7) && ((a2/b2) <= 8)) {
 ellipse(150,400,200,200);
 ellipse(400,400,200,200);
 ellipse(650,400,200,200);
 ellipse(60,600,100,100);
 ellipse(170,600,100,100);
 ellipse(280,600,100,100);
 ellipse(390,600,100,100);
 arc(500,600,100,100,radians(0),radians(360*round(100*((round(a2*10)/10.0)/(round(b2*10)/10.0)))/100.0-7*360),PIE);
 }
 if (((a2/b2) > 8) && ((a2/b2) <= 9)) {
 ellipse(150,400,200,200);
 ellipse(400,400,200,200);
 ellipse(650,400,200,200);
 ellipse(60,600,100,100);
 ellipse(170,600,100,100);
 ellipse(280,600,100,100);
 ellipse(390,600,100,100);
 ellipse(500,600,100,100);
 arc(610,600,100,100,radians(0),radians(360*round(100*((round(a2*10)/10.0)/(round(b2*10)/10.0)))/100.0-8*360),PIE);
 }
 if (((a2/b2) > 9) && ((a2/b2) <= 10)) {
 ellipse(150,400,200,200);
 ellipse(400,400,200,200);
 ellipse(650,400,200,200);
 ellipse(60,600,100,100);
 ellipse(170,600,100,100);
 ellipse(280,600,100,100);
 ellipse(390,600,100,100);
 ellipse(500,600,100,100);
 ellipse(610,600,100,100);
 arc(720,600,100,100,radians(0),radians(360*round(100*((round(a2*10)/10.0)/(round(b2*10)/10.0)))/100.0-9*360),PIE);
 }
}