Edellisessä ohjelmassa on se puute, että siinä voi vain tutkia kokonaislukuja. Entä jos koenumero on esimerkiksi 6½ eli käytämme desimaalilukuja (float). Tällöin saadaan aikaiseksi lukuvälejä ja on paljon järkevämpää käyttää JA-operaattoria. Tehdään ehdot seuraavista lukuväleistä.
- Jos numero on suurempi tai yhtä suuri kuin 4 JA numero on pienempi kuin 4½, silloin tulostetaan: "Hylätty".
- Jos numero on suurempi tai yhtä suuri kuin 4½ JA numero on pienempi kuin 6½, silloin tulostetaan: "Välttävä".
- Jos numero on suurempi tai yhtä suuri kuin 6½ JA numero on pienempi kuin 8½, silloin tulostetaan: "Hyvä".
- Jos numero on suurempi tai yhtä suuri kuin 8½ JA numero on pienempi tai yhtä suuri kuin 10, silloin tulostetaan: "Kiitettävä".
- Jos numero on suurempi kuin 10 TAI pienempi kuin 4, silloin tulostetaan: "Tämä ei ole koenumero".
Matemaattisia merkintöjä käyttäen lukuvälit olisivat seuraavat.
Lukuväli | Tulostus |
numero < 4 |
Ei ole koenumero |
4 ≤ numero < 4½ |
Hylätty |
4½ ≤ numero < 6½ |
Välttävä |
6½ ≤ numero < 8½ |
Hyvä |
8½ ≤ numero ≤ 10 |
Kiitettävä |
numero > 10 |
Ei ole koenumero |
Kun kyseessä on lukuväli, niin tällöin on ehdottomasti käytettävä JA-operaattoria. Paitsi viimeisessä ehdossa on pakko käyttää TAI-operaattoria, koska luku ei voi yhtä aikaa olla sekä suurempi kuin 10 ja pienempi kuin 4. Myöskään ehtojen ketjuttaminen ei ole tässä välttämätöntä. Ketjuttamisella ohjelma toisin saataisiin tehokkaammaksi. Kokonainen ohjelma on seuraavanlainen.
Sanallinen algoritmi
- Aseta ikkunan kooksi 350 px vaakaan ja 150 px pystyyn.
- Aseta ikkunan taustaväriksi valkoinen.
- Aseta tekstin väriksi musta.
- Aseta tekstin kooksi 20 px.
- Määrittele desimaalilukukumuuttuja nimeltään: numero ja anna sille arvo: 6.5.
- Tulosta numero-muuttujan arvo paikkaan (10,50).
- Jos ( numero-muuttuja on suurempi tai yhtä suuri kuin 4 )
JA ( numero-muuttuja on pienempi kuin 4.5) , niin
tulosta kommentti: "Se on hylätty" paikkaan (10,100).
- Jos ( numero-muuttuja on suurempi tai yhtä suuri kuin 4.5 )
JA ( numero-muuttuja on pienempi kuin 6.5) , niin
tulosta kommentti: "Se on välttävä" paikkaan (10,100).
- Jos ( numero-muuttuja on suurempi tai yhtä suuri kuin 6.5 )
JA ( numero-muuttuja on pienempi kuin 8.5) , niin
tulosta kommentti: "Se on hyvä" paikkaan (10,100).
- Jos ( numero-muuttuja on suurempi tai yhtä suuri kuin 8.5 )
JA ( numero-muuttuja on pienempi tai yhtäsuuri kuin 10) , niin
tulosta kommentti: "Se on kiitettävä" paikkaan (10,100).
- Jos ( numero-muuttuja on suurempi kuin 10 )
TAI ( numero-muuttuja on pienempi kuin 4) , niin
tulosta kommentti: "Tämä ei ole koenumero" paikkaan (10,100).
|
// Ohjelman tehnyt: e-Oppi Oy
// 30.1.2017
void setup() {
size(350,150); // Ikkunan koko
background(255); // Taustaväri valkoinen
fill(0); // Tekstinväri musta
textSize(20); // Tekstin koko
}
void draw() {
float numero = 6.5; // Vaihda tähän koenumero. Numero on nyt desimaaliluku.
text("Koenumerosi on: "+numero,10,50); // Tulosta koenumerosi
if ((numero >= 4) && (numero < 4.5)) {
// Jos numero on välillä 4 ≤ numero < 4,5
text("Se on hylätty",10,100); // niin tulosta hylätty
}
if ((numero >= 4.5) && (numero < 6.5)) {
// Jos numero on välillä 4,5 ≤ numero < 6,5
text("Se on välttävä",10,100); // niin tulosta välttävä
}
if ((numero >= 6.5) && (numero < 8.5)) {
// Jos numero on välillä 6,5 ≤ numero < 8,5
text("Se on hyvä",10,100); // niin tulosta hyvä
}
if ((numero >= 8.5) && (numero <= 10)) {
// Jos numero on välillä 8,5 ≤ numero ≤ 10
text("Se on kiitettävä",10,100); // niin tulosta kiitettävä
}
if ((numero > 10) || (numero < 4)) {
// Jos numero on suurempi kuin 10 TAI numero on pienempi kuin 4
text("Tämä ole koenumero",10,100); // niin tulosta ei ole koenumero
}
}
Tässä kaksi ohjelman ajoa eri numeron arvoilla. Puolikkaat nostetaan aina ylöspäin.
