1. Esitä seuraavan algoritmin tila jokaisen rivin jälkeen. Algoritmille annetaan syötteet 4, 5 ja 6.
a b c d var a = 1; var b = 2; var c = 3; 1 2 3 - var d = readInt 1 2 3 4 a = (b-d)*a -2 2 3 4 b = a+(b+(c+(d+1)*c)*b)*a -2 -78 3 4 a = readInt; c = readInt 5 -78 6 4 println(a-c) 5 -78 6 4 c = c+c*c 5 -78 42 4 println(c) 5 -78 42 4
2. Mitä seuraava algoritmi tulostaa? Perustele.
1. kierros 2. kierros 3. kierros 4. kierros 5. kierros 6. kierros 7. kierros 8. kierros 9. kierros
e s a pr e s a pr e s a pr e s a pr e s a pr e s a pr e s a pr e s a pr e s a pr
var e = 1; var s = 1; 1 1 -
while (e < 25) { 1 1 - 1 2 - 2 3 - 3 5 - 5 8 - 8 13 - 13 21 - 21 34 - 34 55 -
println(e); 1 1 - 1 1 2 - 1 2 3 - 2 3 5 - 3 5 8 - 5 8 13 - 8 13 21 - 13 21 34 - 21
var a = s; 1 1 1 1 2 2 2 3 3 3 5 5 5 8 8 8 13 13 13 21 21 21 34 34
s = e+s; 1 2 1 1 3 2 2 5 3 3 8 5 5 13 8 8 21 13 13 34 21 21 55 34
e = a; 1 2 1 2 3 2 3 5 3 5 8 5 8 13 8 13 21 13 21 34 21 34 55 34
}
Algoritmi tulostaa Fibonaccin lukujonoon kuuluvat kahdeksan ensimmäistä lukua: 1, 1, 2, 3, 5, 8, 13, 21.
Algoritmista voi myös tehdä helpommin luettavan muuttamalla muuttujan e nimeksi edellinen, sekä muuttujan s nimeksi seuraava. Muuttujan a nimi voisi olla vaikkapa apu.
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);
Ohjelmalla voi laskea kokonaislukujen keskiarvon!
Ohjelmoijan elämä helpottuu, jos muuttujille annetaan kuvaavat nimet...
Järkevät tulosteet puolestaan parantavat käytettävyyttä, eli palvelevat ohjelman käyttäjää!
var summa = 0.0
println("Tervetuloa laskemaan keskiarvoja!")
println("Kuinka monen luvun keskiarvon tahdot laskea?")
var lukumaara = readInt
var laskuri = lukumaara;
while (laskuri > 0) {
print("Annappa luku:")
var luku = readInt
summa = summa + luku;
laskuri = laskuri - 1;
}
if (lukumaara==0)
println("Haloo! Et voi laskea 0:n luvun keskiarvoa!")
else {
print("Antamiesi lukujen keskiarvo on: ")
println(summa/lukumaara);
}
4. Algoritmit
a) Laadi algoritmi, joka lukee 10 lukua ja tulostaa niiden summan.
var laskuri = 0
var summa = 0
while (laskuri < 10) {
print("Anna luku:")
var luku = readInt
summa = summa + luku
laskuri = laskuri + 1
}
print("Lukujen summa:")
println(summa)
b) Laadi algoritmi, joka lukee ensin luvun n, sitten lukee n kappaletta lukuja ja tulostaa niiden summan.
var laskuri = 0
print("Anna summattavien lukujen määrä:")
var lukumaara = readInt
var summa = 0
while (laskuri < lukumaara) {
print("Anna luku:")
var luku = readInt
summa = summa + luku
laskuri = laskuri + 1
}
print("Lukujen summa:")
println(summa)