Esimerkki: Kokonaisosa ja jakojäännös

Olkoon meillä murtoluku: [[$\dfrac{18}{7}$]]. Sekalukuna tämä olisi: [[$2\dfrac{4}{7}$]]. Kuinka ohjelmoinnissa murtoluku muutetaan sekaluvuksi? Se onnistuu seuraavilla komennoilla.

int(18/7)

Tulostuu: 2 eli kokonaisosa.

18%7

Tulostuu: 4 eli jakojäännös.


Yhteenvetona voidaan todeta, että int(murtoluku) komennolla saadaan selville kokonaisosa ja kirjoittamalla murtoluku muotoon a%b saadaan selville jakojäännös. % merkki tarkoittaa ohjelmoinnissa jakojäännöstä.

Kokonainen ohjelma, joka muuttaa minkä tahansa muroluvun sekaluvuksi on seuraavanlainen.

Sanallinen algoritmi
  1. Aseta ikkunan kooksi 300 px vaakaan ja 150 px pystyyn.
  2. Aseta ikkunan taustaväriksi valkoinen.
  3. Aseta tekstin väriksi musta.
  4. Aseta tekstin kooksi 32 px.
  5. Määrittele desmaalilukumuuttuja nimeltään: a, ja anna sille arvo: 18.0.
  6. Määrittele desimaalilukumuuttuja nimeltään: b, ja anna sille arvo: 7.0.
  7. Tulosta muuttujan a arvo eli osoittaja pyöristettynä kokonaisluvuksi paikkaan (10,50).
  8. Tulosta viiva muuttujan a alapuolelle eli pisteiden (10,60) ja (60,60) välille.
  9. Tulosta muuttujan b arvo eli nimittäjä pyöristettynä kokonaisluvuksi paikkaan (10,100).
  10. Tulosta yhtäsuruusmerkki paikkaan (80,70).
  11. Tulosta jakolaskun a:b kokonaisosa paikkaan (120,70).
  12. Tulosta jakolaskun a:b jakojäännös paikkaan (150,50).
  13. Tulosta viiva jakojäännöksen alapuolelle eli pisteiden (150,60) ja (190,60) välille.
  14. Tulosta muuttujan b arvo eli nimittäjä pyöristettynä kokonaislukuvuksi paikkaan (150,100).

// Ohjelman tehnyt: e-Oppi Oy
// 30.1.2017
void setup() { 
     size(300,150); // ikkunan koko
     background(255); // Taustaväri valkoinen
     fill(0); // Täyttöväri musta 
     textSize(32); // Tekstin koko 32
}
void draw() { float a = 18.0; // Jaettava floa b = 7.0; // Jakaja text(round(a),10,50); // Tulosteaan murtoluvun a/b osoittaja line(10,60,60,60); // Jakoviiva text(round(b),10,100); // Tulostetaan murtoluvun a/b nimittäjä text("=",80,70); // Tulostetaan yhtäsuuruusmerkki text(int(a/b),120,70); // Kokonaiset text(round(a%b),150,50); // Jakojäännös
line(150,60,190,60); // Jakoviiva text(round(b),150,100); // Jakaja }


Ohjelman esimerkkiajo näyttää tältä.


Koska jaettava ja jakaja on ohjelmassa muuttujina, niin voit helposti muuttaa minkä tahansa murtoluvun sekaluvuksi yksinkertaisesti muuttamalla muuttujien arvoa. Tässä ohjelmassa round(luku) komentoa on käytetty vain siksi, että luku tulostuu kokonaislukuna ilman desimaalipisteen jälkeisiä nollia.

Kokeile muuttaa muuttujien a ja b arvoja. Mitä huomaat?