Harjoituksia


Tämä osio sisältää omaa kurssin harjoitustehtävät Harjoituksissa tulee soveltaa aiemmin materiaalissa opittuja taitoja. Harjoitustehtävät on luokiteltu tähtien avulla vaikeusasteittain. Riippuen suoritatko kurssia 1op vai 2op laajuisesti tulee sinun kerätä tarpeeksi tähtiä.

= Helppo
= Keskivaikea
= Vaikea
1op = (5)

2op = (10)

Tehtävä 1 - Etsi listan toiseksi suurin

Seuraava taulukko pitää sisällään 20 kokonaislukua ja liukulukua. Tehtävänäsi on kirjoittaa ohjelma, joka etsii ja palauttaa listan toiseksi suurimman alkion.

numerotaulukko = [2, 8, 1.3, 9.0, 10, 81, 0.5, -25, 63, 212, 4.3, 12, 21, 50, 61, 2.1, 82, -10, 0.78463, 109]

Tehtävä 2 - Etsi listan parilliset

Seuraava lista pitää sisällään 30 kokonaislukualkiota. Kirjoita ohjelma, joka etsii listan kaikki parilliset alkiot ja tulostaa niistä jokaisen omalle rivilleen.

          lista = [20, 35, 48, 89, 36, 38, 34, 63, 79, 82, 32, 12, 52, 72, 19, 37, 94, 39, 74, 33, 45, 85, 86, 59, 7, 61, 42, 93, 22, 23]

Tehtävä 3 - Keskiarvo ilman valmista funktiota

Seuraavassa listassa on Vili-Mirjamin 9.lk:n päättötodistuksen arvosanat. Kirjoita Python-ohjelma, joka laskee päättötodistuksen kaikkien arvosanojen keskiarvon ja tulostaa sen.

arvosanat = [7, 9, 10, 5, 6, 6, 8, 9, 10, 5, 7, 9, 7, 6, 7, 10, 8, 7]

Tehtävä 5 - Palindromi

Palindromilla tarkoitetaan sanaa, virkettä lukua tai mitä tahansa merkkijonoa, jonka merkkien järjestys on takaperin sama, kuin etuperin. Esimerkiksi: "saippuakauppias" tai "abba". Tehtävänäsi on kirjoittaa Python-ohjelma, joka ottaa syötteeksi merkkijonon ja tarkistaa onko kyseessä palindromi.


Tehtävä 6 - Sanalaskuri

Sanalaskuri kertoo nimensä mukaisesti, kuinka monta sanaa tekstistä löytyy. Tehtävänäsi on kirjoittaa Python-ohjelma joka laskee sille tuodusta merkkijonosta sanojen määrän ja tulostaa vastauksen.


Tehtävä 7 - PIN-koodi

Useimmat asiat, kuten puhelin, tietokone ja jopa rappukäytävät suojataan nelinumeroisilla PIN-koodeilla. PIN-koodia saa yrittää muutaman kerran, kunnes laite lukkiutuu. Tehtävänäsi on kirjoittaa Python-ohjelma, joka kyselee käyttäjältä nelinumeroista PIN-koodia.

  • JOS käyttäjän arvaus menee väärin, ohjelma ilmoittaa: "Väärin, kokeile uudestaan!"
  • JOS käyttäjän arvaus menee oikein, ohjelma ilmoittaa: "Tervetuloa!" JA kertoo käyttäjälle, montako yritystä sisäänpääsy vaati.
  • Oikea PIN-koodi on "1984"

Tehtävä 8 - FizzBuzz

FizzBuzz on oikean elämän työnhaussakin käytetty testikysymys, jolla kartoitetaan hakijan ohjelmoinnillista osaamista. Tarkoituksenasi on kirjoittaa ohjelma, joka tulostaa luvut välillä 1-100.

  • JOS luku on jaollinen kolmella (3) tulostetaan "Fizz"
  • JOS luku on jaollinen viidellä (5) tulostetaan "Buzz"
  • ja JOS luku on jaollinen sekä kolmella, että viidellä tulostetaan "FizzBuzz".

Tehtävä 9 - Collatzin konjektuuri

Collatzin konjektuuri on "helpoin" ratkaisematon pulma, vaikka kyseessä on verttain yksinkertainen väittämä, eivät edes huippumatemaatikot ole pystyneet sitä todistamaan. Algoritmi toimii niin, että:

  1. Valitaan mikä tahansa positiivinen kokonaisluku
  2. Jos luku on parillinen jaetaan se kahdella
  3. Jos luku on pariton, kerrotaan se kolmella ja lisätään yksi
  4. Jatketaan siihen asti, kunnes (lue: aina) lopputulokseksi saadaan numero 1

Tehtävänäsi on kirjoittaa ohjelma, joka kysyy käyttäjältä jonkin positiivisen kokonaisluvun ja näyttää askel kerrallaan, miten luku muuttuu algoritmin mukaan.


Tehtävä 10 - Anagrammi

Anagrammi tarkoittaa sitä, että merkkijono on uudelleen järjesteltävissä yhdeksi tai useammaksi erilaiseksi sanaksi. Esimerkiksi sanasta "Ivalo" voidaan muodostaa uudelleen järjestelemällä sana "Valio" tai "Olavi". Pidempienkin sanojen kanssa voidaan leikkiä: "Mauno Henrik Koivisto" -> "Arvoitus Koko Ihminen".

Tehtävänäsi on kirjoittaa Python-ohjelma, joka kysyy käyttäjältä kaksi sanaa ja tarkistaa ovatko nämä sanat anagrammeja keskenään.


Tehtävä 11 - Tunteja hengissä

Tehtävänäsi on kirjoittaa ohjelma, joka selvittää käyttäjän syntymäpäivän ja laskee vuorokauden tarkkuudella montako tuntia käyttäjä on ollut tähän asti hengissä.

Vinkki:
from datetime import date