Simulaatio: Yhtälön ratkaisun etsiminen kokeilemalla
|
// Ohjelman tehnyt e-Oppi Oy, 30.9.2017
int a = 200; // Laskurin alkuarvo (palkille)
void setup () {
size(400,300); // ikkunan koko
textSize(30); // Tekstin koko 30
}
void draw() {
background(255); // Tyhjennä tausta
fill(255,255,0); // Keltainen täyttöväri
rect(0,0,400,50); // Piirrä keltainen suorakulmio
fill(255,0,0); // Punainen täyttöväri
rect(a,0,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 < 350)) { // Jos hiiri on oikealla puolen
a++; // niin kasvata laskuria
}
if ((x1 < a) && (a >0)){ // Jos hiiri on vasemmalla puolen
a--; // niin pienennä laskuria
}
}
}
fill(0); // Musta tekstin väri
int x = round(map(a,0,350,-20,20)); // skaalaa arvot välille [-20,20]
int yv = 3*x+2;
int yo = x+10;
text("3x + 2 = x + 10",10,100);
text("f("+x+")= "+yv,10,150);
text("f("+x+")= "+yo,10,200);
}
Kun katsot koodia, niin sinun tarvitsee muuttaa vain kolmea lihavoitua riviä, jos haluat tutkia muiden yhtälöiden ratkaisuja. Kun suoritat ohjelman, niin ohjelman suoritus näyttää tältä.
Ohjelma toimii yksinkertaisesti. Kun pidät hiiren painiketta pohjassa keltaisella alueella, niin punainen neliö tulee kohti hiiren vaakasuuntaista paikkaa. Punaisen neliön liikkuminen loppuu, kun punaisen neliön vasen reuna saavuttaa hiiren vaakasuuntaisen paikan. Tässä neliön paikka vaakasuunnassa on skaalattu map()-funktiolla välille [-20,20]. Liikuta palkkia, kunnes yhtälön vasenpuoli on sama kuin yhtälön oikea puoli. Olet löytänyt yhtälön ratkaisun kokeilemalla.
Simulaatio-ohjelman toimintaperiaate on selostettu tarkemmin kappaleessa 8.3. Sinun ei tarvitse osata tehdä simulaatio-ohjelmaa itse alusta loppuun, sinun tarvitsee ainoastaan osata käyttää valmiita simulaatioita. Tässä esimerkissä muuta lihavoidut kohdat, jos tutkit jotain toista yhtälöä.
