Helsingin yliopisto / Tietojenkäsittelytieteen laitos / 581325-0 Ohjelmoinnin perusteet
Copyright © 2008 Arto Wikla. Tämän oppimateriaalin käyttö on sallittu vain yksityishenkilöille opiskelutarkoituksissa. Materiaalin käyttö muihin tarkoituksiin, kuten kaupallisilla tai muilla kursseilla, on kielletty.

1. harjoitukset 2.-5.9.2008

Aiheita: algoritmi ja algoritmin tila, ensimmäisen Java-ohjelman kirjoitus, kääntäminen ja suorittaminen. (Tehtävien 1, 2 ja 3 algoritmit on itse asiassa kirjoitettu Scala-kielellä ja ne siis voi myös suorittaa tietokoneella! Kirjoita algoritmi tiedostoon - esim.ohjelma.scala ja komenna
> scala ohjelma.scala
)

Huom: Ensimmäisellä harjoituskerralla muodostetaan ensin opintopiirit. Nämä ensimmäiset harjoitukset tehdään poikkeuksellisesti vasta harjoitusryhmän kokoontuessa. Toki jo etukäteenkin saa miettiä ja ratkoa tehtäviä. Ensimmäisen harjoituskerran päätteeksi halukkaita opastetaan laitoksen Java-välineiden käyttössä. Ryhmän ohjaaja neuvoo paikan.

  1. Esitä seuraavan algoritmin tila jokaisen rivin jälkeen. Algoritmille annetaan syötteet 4, 5 ja 6.
       var a = 1; var b = 2; var c = 3;
       var d = readInt
       a = (b-d)*a
       b = a+(b+(c+(d+1)*c)*b)*a
       a = readInt; c = readInt
       println(a-c)
       c = c+c*c
       println(c)
    
    
  2. Mitä seuraava algoritmi tulostaa? Perustele.
       var e = 1; var s = 1;
       while (e < 25) {
         println(e);
         var a = s;
         s = e+s;
         e = a;
       }
    
  3. Minkä "reaalimaailman" ongelman seuraava algoritmi ratkaisee?
       var a = 0.0
       println("töttöröö")
       var b = readInt
       var c = b;
       while (c>0) {
         var d = readInt
         a = a + d;
         c = c - 1;
       }
       if (b==0)
         println("heissulivei")
       else
         println(a/b);
    
    
    Kirjoita algoritmi uudelleen siten, että muuttujilla on nimet, joiden avulla algoritmin tehtävän voi ymmärtää helpommin! Täydennä algoritmia myös tulostusoperaatioin, jotka kertovat, mistä on kysymys. Ketä ensimmäinen parannus palvelee? Entä toinen?

    1. Laadi algoritmi, joka lukee 10 lukua ja tulostaa niiden summan.
    2. Laadi algoritmi, joka lukee ensin luvun n, sitten lukee n kappaletta lukuja ja tulostaa niiden summan.



Takaisin harjoitussivulle.