T-106.213 Ohjelmoinnin peruskurssi L1 / OLO

T-106.219 Informaatioverkostojen Studio 1

 

Virittävä tehtävä:

Alla on hyvin yksinkertainen Java-ohjelma, joka käsittelee yhtä sanaa MyExampleString.  Ohjelma tulostaa kuvaruudulle näkyviin tämän sanan sekä saman sanan käännettynä takaperin.  Jos laitamme tietokoneen suorittamaan ohjelman (alla komento java Example), kuvaruudulle tulostuu seuraavat tekstit:

>java Example
Tässä on sana: MyExampleString
Sama sana toisinpäin on gnirtSelpmaxEyM
 

Kirjoita korkeintaan sivun pituinen essee, jossa selostat oman käsityksesi siitä, mitä asioita tietokoneen sisällä tapahtuu, kun ohjelma suoritetaan. Tehtävää varten ei pidä opiskella ja selvittää mitään, koska tehtävän avulla haluamme selvittää, minkälaisia ennakkokäsityksiä opiskelijoilla asiasta on.  Siten ei pidä murehtia, jos oma käsitys asiasta on hämärä. puutteellinen tai virheellinen.  Tehtävää ei tässä suhteessa arvostella, eikä se vaikuta kurssin arvosanaan.

Pyri esseessäsi vastaamaan seuraaviin kysymyksiin.

1) Miten tietokone pystyy mielestäsi ymmärtämään, mitä mainittu Java-ohjelma tekee?

2) Selitä vaiheittain, mitä kaikkea mielestäsi tapahtuu, kun ohjelma käynnistetään ja sen suorituksen tuloksena ilmestyy näkyviin esimerkissä olevat tulostukset.

3) Voit mahdollisesti ymmärtää jotain alla olevasta Java-koodista.  Selitä siinä tapauksessa vaiheittain, miten ohjelman suoritus etenee ja mitä kussakin vaiheesa tapahtuu.
 

public class Word {

  public String contents;
  public int wordLength;

  Word(String aWord) {
    contents = aWord;
    wordLength = aWord.length();
  }

  public Word reverse(){

    char[ ] charTable = contents.toCharArray();
    char[ ] newCharTable = new char[wordLength];

    for (int i = 0; i < wordLength; i++)
        newCharTable[i] = charTable[wordLength-i-1];

    return new Word(new String(newCharTable));
  }

}

public class Test {

  public static void main(String args[ ]) {

    Word myWord = new Word("MyExampleString");
    System.out.println("Tässä on sana: " + myWord.contents);
    Word newWord = myWord.reverse();
    System.out.println("Sama sana toisinpäin on " + newWord.contents);
  }

}