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.

SANALLINEN ALGORITMI
  1. Aseta ikkunan kooksi 600 px vaakaan ja 700 px pystyyn.
  2. Aseta täyttöväriksi eli tekstin väriksi musta.
  3. Aseta tekstin kooksi 20.
  4. Aseta ikkunan taustaväriksi valkoinen.
  5. Määrittele for-silmukka (Määrittele kokonaislukumuuttuja x, joka saa alkuarvon -10. Toista niin kauan kun x on pienempi tai yhtä suuri kuin 10. Kasvata muuttujaa x yhdellä).
    1. Määrittele kokonaislukumuuttuja y1 ja sijoita siihen laskutoimituksen 3*x+2 arvo.
    2. Määrittele kokonaislukumuuttuja y2 ja sijoita siihen laskutoimituksen x+10 arvo.
    3. Tulosta muuttujat x ja y1 paikkaan (10,330+x*30). Kun x kasvaa, niin tulostus menee alaspäin.
    4. Tulosta muuttujat x ja y2 paikkaan (310,330+x*30). Kun x kasvaa, niin tulostus menee alaspäin.

// 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.

SANALLINEN ALGORITMI
  1. Aseta ikkunan kooksi 500 px vaakaan ja 200 px pystyyn.
  2. Aseta täyttöväriksi eli tekstin väriksi musta.
  3. Aseta tekstin kooksi 20.
  4. Aseta ikkunan taustaväriksi valkoinen.
  5. Määrittele for-silmukka (Määrittele kokonaislukumuuttuja x, joka saa alkuarvon -10. Toista niin kauan kun x on pienempi tai yhtä suuri kuin 10. Kasvata muuttujaa x yhdellä).
    1. Määrittele kokonaislukumuuttuja y1 ja sijoita siihen laskutoimituksen 3*x+2 arvo.
    2. Määrittele kokonaislukumuuttuja y2 ja sijoita siihen laskutoimituksen x+10 arvo.
    3. Jos muuttuja y1 on yhtä suuri kuin y2, niin silloin tulosta muuttujan x arvo paikkaan (20,100).

// 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.