Pitkä MathCheck-ohje (uuteen välilehteen)
Tällä sivulla voit tarkastaa laskelmiasi ja päättelyitäsi siinä määrin kuin MathCheck pystyy niitä tarkastamaan. Monesta MathCheckin ymmärtämästä tehtävälajista on syötetty valmiiksi yksi tai kaksi esimerkkiä. Kokeile niitä ja/tai pyyhi ne pois ja kirjoita oma laskelmasi tai päättelysi tilalle. Vastausruudun kokoa voi säätää sen oikeasta alakulmasta.
Aritmeettisen lausekkeen sieventäminen
(Epä)yhtälö(ryhmän) ratkaiseminen
Propositiologiikan lausekkeen sieventäminen
Lineaarinen luonnollisten, kokonais- tai reaalilukujen predikaattilogiikka
Taulukkoväittämien vertaaminen
Lausekepuun piirtäminen
Lausekepuiden vertaaminen
Merkkijonon jäsennyspuu
Kielioppien vertaaminen
Funktion kuvaaja
Muuta
MathCheck tarkastaa sievennöksiä testaamalla useilla muuttujien arvoyhdistelmillä. Tarkastustapa ei ole täydellinen, mutta huomaa melko varmasti muut virheet kuin eroavaisuudet nimittäjien nollakohdissa. Jos haluat tarkastaa useita sievennöksiä samalla kertaa, kirjoita niiden väliin arithmetic. Muuttujat i, …, n ja I, …, N ovat oletusarvoisesti kokonaislukuja ja muut reaalilukuja, mutta muuttujan tyypin voi myös asettaa. Tarkastuksessa käytettävää muuttujien arvoaluetta voi rajoittaa assume-rakenteella (jonka lopussa on puolipiste). Jos rajoitat arvoaluetta kovin voimakkaasti, virheiden huomaamiskyky heikkenee.
Tässä toimintamoodissa MathCheck tekee periaatteessa täydellistä työtä (olettaen, että kaikki tarvittavat laskelmat mahtuvat tietokoneen lukualueeseen, ja että ohjelmointivirheitä ei ole). Hintana on, että muuttujien kertolaskuja (ja siksi myöskään esimerkiksi muuttujien neliöitä) ei voida käsitellä, logaritmeista yms. puhumattakaan. Jakolasku sallitaan, jos siitä ei sievennettäessä synny muuttujien kertolaskuja. Myös kvanttorien käyttö on sallittua. Kovin monimutkaiset väittämät voivat saada MathCheckin tukehtumaan. Kaikki muuttujat ovat reaalilukuja.
Tässä toimintamoodissa MathCheck tekee täydellistä työtä — poislukien mahdolliset ohjelmointivirheet. MathCheck käyttää ainakin kahta totuusarvoa F ja T. Voit valita, onko myös kolmas totuusarvo U eli ”määrittelemätön” käytössä. Käytettävissä ovat propositiologiikan operaattorit ¬ ∧ ∨ → ↔ && || ↠, päättelyoperaattorit ⇐ ⇒ ⇔ ≡ sekä alipäättelyt. Operaattori ⇔ samaistaa ja ≡ ei samaista totuusarvot U ja F. Operaattorit && ja || kohtelevat määrittelemätöntä kuten ohjelmointikielissä, ja ↠ on Łukasiewiczin implikaatio.
Näissäkin toimintamoodeissa MathCheck tekee täydellistä työtä — edellä mainituilla varauksilla. Edellä mainitun propositiologiikan kaluston (paitsi ↠) lisäksi käytettävissä ovat vertailuoperaattorit = ≠ < ≤ ≥ > ja kvanttorit ∀ ∃. Niitä voidaan soveltaa aritmeettisiin termeihin. Termeissä voi olla vakioita, muuttujia, yhteenlaskuja ja vakioilla kertomisia. Luonnollisten lukujen tapauksessa termeissä voi olla myös operaattoreita mod ja div. Reaalilukujen tapauksessa ne eivät ole sallittuja, mutta vähennyslasku ja itseisarvo sekä joissakin tilanteissa jakolasku ovat.
Reaalilukujen tapaus on itse asiassa sama toimintamoodi kuin edellä mainittu (Epä)yhtälö(ryhmän) ratkaiseminen sillä erotuksella, että siellä vaaditaan lopputuloksen olevan ratkaistu kaikkien muuttujien suhteen, mutta tässä alla ei vaadita.
Kokonaislukujen toimintamoodi on uusin ja monipuolisin (mutta tätä kirjoitettaessa puutteellisesti testattu). Siinä termeissä voi olla vakioita, muuttujia, yhteen- ja vähennyslaskuja, vakioilla kertomisia, itseisarvoja, operaattoreita mod ja div sekä joitakin bitittäisiä loogisia operaattoreita. Isoja kirjaimia voidaan määritellä tarkoittamaan propositioita tai parametroituja kaavoja. Lisäksi voidaan pyytää tulostamaan termin tai kaavan esitys deterministisenä äärellisenä automaattina.
Taulukkoväittämien vertaaminen on laskennallisesti hyvin vaikeaa. Mikään ohjelma ei voi selvitä siitä täydellisesti. MathCheck vertaa väittämät kokeilemalla muutamalla pienellä taulukolla, joiden alkiot ovat kokonaislukuja väliltä 0, …, 3. Tällä tavalla saadaan kiinni suuri osa väittämien eroista, mutta ei kaikkia. Kannattaa verrata operaattorilla === eikä <=>, koska jälkimmäinen ei katso virheeksi tilanteita, joissa toinen tuottaa F ja toinen on määrittelemätön.
Jos haluat monta lausekepuuta, erota lausekkeet puolipisteellä. Jos haluat että muuttuja tulkitaan propositioksi, käytä isoa kirjainta.
Valmiina annettu esimerkki havainnollistaa, että näkymätön kertolasku ja * eli ⋅ ovat eri operaattori, vaikka niillä onkin sama merkitys. Esimerkki havainnollistaa myös, että MathCheck jättää turhat sulut huomiotta.
Kirjoita ylempään ruutuun kielioppi BNF:llä esitettynä ja alempaan ruutuun merkkijono. MathCheck kertoo kuuluuko merkkijono kieleen ja jos kuuluu, niin piirtää jäsennyspuun. Tässä MathCheck tekee täydellistä työtä, kunhan tarkastustehtävä ei paisu liian isoksi ja olettaen että ohjelmointivirheitä ei ole.
Kirjoita molempiin ruutuihin kielioppi. MathCheck vertaa, tuottavatko ne saman kielen. Tämä on laskennallisesti mahdoton tehtävä, joten MathCheck voi selvitä siitä vain osittain. MathCheck ei huomaa eroja, jotka ilmenevät vain pitkillä merkkijonoilla.
Monet muut ohjelmat piirtävät käyriä MathCheckia paremmin, mutta jos MathCheckin piirtämä kuva riittää, niin selviät vähemmällä ohjelmasta toiseen vaihtelemisella. Ylemmässä ruudussa olevista kuva-aluetta ohjaavista luvuista voi jättää osan tai kaikki pois, jolloin MathCheck valitsee niille arvot itse. Tietenkin voit myös muuttaa lukuja.
MathCheckissa on myös yhtälömoodi, joka sallii neliöt, korkeamman asteen polynomit, potenssit, trigonometriset funktiot ja logaritmit, mutta jolla on kaksi merkittävää ja yksi keskinkertainen haitta edellä mainittuun nähden: muuttujia voi olla vain yksi, opettajan on syötettävä juuret, ja palaute virheen vuoksi syntyneestä ylimääräisestä juuresta voi tulla opiskelijalle viiveellä. Siihen voi tutustua täällä. Haaveena on joskus tulevaisuudessa laajentaa edellä mainittua yhtälömoodia siten, että yhteen muuttujaan saa soveltaa logaritmeja yms., jolloin tämä moodi käy tarpeettomaksi.
MathCheckissa on myös modulaarisen aritmetiikan moodi, joka sallii täyden predikaattilogiikan päättelyn jäännösluokkarenkaassa modulo M, missä M on kokonaislukuvakio ja 2 ≤ M ≤ 25. Sille ei ole tässä omaa esittelyikkunaa, koska sille on ollut vaikea keksiä opetuskäytön kannalta järkeviä esimerkkejä.
MathCheckissa on monia komentoja, joilla opettaja voi vaatia, että vastaus on tiettyä muotoa (esimerkiksi tulojen summa), tarpeeksi yksinkertainen, ratkaistu tietyn muuttujan suhteen tai niin edelleen.