Yhtälöllä kokonaislukuratkaisu
Haluamme ratkaista yhtälön 3x + 2 = x + 10. Kuinka yhtälö voitaisiin ratkaista tietokoneen avulla? Koska for-silmukan avulla voimme tehdä nopeasti laskutoimituksia, niin teemme silmukan -10:stä 10:een ja samalla laskemme yhtälön vasemman puolen 3x+2 ja oikean puolen x + 10 arvoja erikseen. Tehdään seuraava ohjelma.
|
// Ohjelman tehnyt e-Oppi Oy
// 30.9.2017
void setup () {
size(600,700); // Ikkunan koko
fill(0); // Musta tekstin väri
textSize(20); // Tekstin koko 20
background(255); // Valkea taustan väri
}
void draw() {
for (int x = -10; x <= 10; x++) {
int y1 = 3*x+2; // Laske yhtälön vasen puoli
int y2 = x+10; // Laske yhtälön oikea puoli
text("f("+x+") = "+y1,10,330+x*30); // Tulosta vasen puoli
text("f("+x+") = "+y2,310,330+x*30); // Tulosta oikea puoli
}
}
Ohjelman suoritus näyttää tältä
Milloin vasen puoli on yhtä suuri kuin oikea puoli? Vertaa laskettuja arvoja. Kun x = 4, niin tällöin yhtälön oikea ja vasen puoli ovat samat. Tämä on myös yhtälön ratkaisu. Tietokone osaa löytää yhtälön ratkaisun yksinkertaisesti laskemalla tarpeeksi paljon lausekkeita. If-lauseella voisimme tutkia, milloin yhtälön vasen ja oikea puoli ovat yhtä suuret. Muutetaan koodia.
|
// Ohjelman tehnyt e-Oppi Oy
// 30.9.2017
void setup () {
size(500,200); // Ikkunan koko
fill(0); // Musta tekstin väri
textSize(20); // Tekstin koko
background(255); // Valkea taustaväri
}
void draw() {
for (int x = -10; x <= 10; x++) {
int y1 = 3*x+2; // Yhtälön vasen puoli
int y2 = x+10; // Yhtälön oikea puoli
if (y1 == y2) {
text("Yhtälön 3x+2=x+10 ratkaisu on x = "+x,20,100);
}
}
}
Nyt ohjelma ilmoittaa yhtälön ratkaisun.
![]()
Kun muutat yhtälöä ja jos mitään ei tulostu, niin syynä voi olla
- Yhtälön ratkaisu ei ole välillä [-10, 10]. Kasvata tällöin laskuria kirjoittamalla esimerkiksi
for (int x = -100; x <= 100; x++) - Yhtälöllä on desimaaliratkaisu. Katso esimerkki siitä tämän sivun lopussa.

