IT05 itsenäinen suoritus

Ohje

Palauta jokaisessa tehtävässä ohjelmakoodi. Jos palautukseen tarvitaan muuta, se on kerrottu tehtävänannossa.

Opintojaksolla on tarkoitus harjoitella ohjelmoinnin perusteita. Älä siis ulkoista pyydettyjen tehtävänantojen ratkaisemista valmiille kirjastoille, vaan laadi omaa koodia. Tulostamiseen ja parametrien lukemiseen käyttäjältä voit tietysti käyttää valmiita kirjastoja, esim. #include <iostream>.

T1. Tietotyyppejä

Esittele kolme kokonaislukumuuttujaa xyja z ja aseta niille alkuarvot 1, -2 ja 5 (x:lle arvo 1, y:lle -2 ja z:lle 5) . Esittele liukulukutyyppinen (desimaaliluku) muuttuja keskiarvo, johon pystyy tallentamaan mahdollisimman monta merkitsevää numeroa. Aseta muuttujan keskiarvo arvoksi muuttujien xy ja z Esittele boolean-tyyppinen muuttuja b ja aseta siihen arvo true, jos x>y ja arvo false muulloin.

T1

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T2. Loogisia lausekkeita

Kirjoita looginen lauseke seuraaviin tapauksiin (mitä tyyppejä lausekkeissa esiintyvät muuttujat voivat olla, mieti myös sulkujen tarpeellisuutta?):
    1. x on parillinen
    2. y on pienempi kuin nolla ja suurempi kuin -3
    3. z on suurempi kuin x mutta pienempi kuin y-1
    4. 0 < x < 2.05 tai 2.10 < y < 3.75
    5. b on tosi
    6. a on epätosi ja x>y
    7. x on negatiivinen ja y on positiivinen.

T2

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T3. Summia ja keskiarvoja

Kirjoita ohjelma, joka kysyy käyttäjältä kolme desimaalilukua ja laskee niiden tulon, summan ja keskiarvon sekä tulostaa nämä arvot. Tässä saa olettaa, että syöte on oikeata muotoa.

T3

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T4. While

Kirjoita while-lausetta käyttävä ohjelma, joka tulostaa kolmella jaollisia lukuja riveille pilkuilla erotettuina alkaen luvusta nolla. Lukujen välissä pitää olla pilkku ja välilyönti paitsi rivin viimeisen luvun jälkeen ei tule pilkkua ja viimeisen luvun jälkeen pitää olla piste. Yhdelle riville viimeistä lukuun ottamatta tulostetaan aina 5 lukua. Viimeisen luvun n arvo, joka on luvulla kolme jaollinen, luetaan käyttäjältä. Esimerkiksi jos n=30, niin ohjelma tulostaa:

0, 3, 6, 9, 12
15, 18, 21, 24, 27
30.

Ohjelmaa tulee testata. Palauta ratkaisuna myös kuvakaappaus ohjelman suorituksesta.

T4

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T5. Tulosterivejä

  1. Kirjoita funktio, joka tulostaa parametrina annettua merkkiä peräkkäin parametrina annetun määrän (lopuksi ei rivinvaihtoa). Funktiolla on siis kaksi parametria: toinen on tyyppiä int ja toinen tyyppiä char. 
  2. Kirjoita pääohjelma, joka tulostaa alla olevan mukaisen kuvion kutsumalla kohdan 1 funktiota.

    xxx…xxx (n kappaletta x:ää)

    xxx…xx (n-1 kappaletta x:ää)

    xx (2 x:ää)

    x (1 x)

    Tässä x voi olla mikä tahansa merkki (kuitenkin sama merkki yhdessä kuviossa) ja n <=20.

T5

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T6. Valitse pienin luku

Kirjoita funktio min2, joka palauttaa kahdesta parametrina annetusta desimaaliluvusta pienimmän (jos luvut ovat yhtä suuria, funktio palauttaa kyseisen luvun). Kirjoita tämän avulla funktio min3, joka palauttaa kolmen desimaaliluvun minimin. Kirjoita myös min4. Mukana tulee olla myös pääohjelma, jolla voidaan tutkia kaikkien funktioiden toimivuutta (luvut voi antaa vakioina).

Mitä jos tarvitset samat funktiot myös muille lukutyypeille (yhdessä funktiossa kuitenkin aina samaa tyyppiä)? Voiko nämä kaikki funktiot nimetä samalla tunnuksella esim. minimiOhje: ylikuormittaminen.

Palauta ohjelmakoodin lisäksi perusteltu vastaus kysymykseen.

T6

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T7. Toistorakenteiden vertailua

  1. Kirjoita ohjelma, joka tulostaa luvut 10-30 allekkain kahden välein (siis 10, 12,..., 30). Kirjoita ohjelman toistorakenne käyttämällä kolmea eri toistorakennetta: while, do...while, for. Kirjoita kustakin silmukasta oma funktionsa. Ohjelma tulostaa siis saman tulostuksen kolme kertaa.
  2. Kerro perusteltu näkemyksesi siitä, missä tilanteissa mikäkin toistorakenne on paras. Anna esimerkkejä.

Palauta kohdan 1 ohjelmakoodin lisäksi vastauksesi kohtaan 2.

T7

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T8. Sitkeä kyselijä

Kirjoita funktio, joka lukee näppäimistöltä kokonaisluvun, joka on vähintään n:n, mutta enintään m:n suuruinen. Lukua tulee lukea funktiossa niin kauan, kunnes käyttäjä antaa vaaditun suuruisen luvun. Ennen lukemista funktio tulostaa ruudulle ohjeen siitä, millaisen luvun se haluaa. Jos syötetty luku ei ole ko. väliltä, funktio huomauttaa tästä käyttäjälle. Rajaluvut n ja m annetaan funktiolle parametreina ja funktion tulee palauttaa luettu luku. Muista kirjoittaa funktiolle myös alkuehto. Kirjoita tätä funktiota käyttävä lause, joka lukee näppäimistöltä luvun väliltä 1...10 ja sijoittaa sen muuttujaan k.

Ohje: Funktiossa tulee siis olla toistorakenne, jossa luetaan luku aina uudestaan, kunnes käyttäjä antaa kelvollisen luvun. Voit olettaa tässä, että käyttäjä antaa aina kokonaisluvun, joten ohjelma ei kaadu virheelliseen syöttöön.

T8

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T9. Alkuluku?

  1. Kirjoita funktio, joka tutkii, onko luku alkuluku vai ei.
  2. Kirjoita ohjelma, joka tutkii toistuvasti, onko käyttä­jän antama luku alkuluku vai ei ja tulostaa vastauksen. Käytä ykköskohdassa laatimaasi funktiota. Tulostuksen jälkeen ohjelma kysyy haluatko jatkaa ja toimitaan sen mukaan.

T9

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T10. Taulukon suurin ja pienin arvo

  1. Kirjoita funktio, joka palauttaa parametrina annetun double-tyyppisiä alkioita sisältävän 1-ulotteisen taulukon alkioiden vaihteluvälin (suurimman ja pienimmän alkion erotuksen lukuna).
  2. Tee funktio, joka lukee käyttäjän syöttämiä lukuja ja sijoittaa ne taulukkoon. Taulukon koon voi kysyä käyttäjältä aluksi.
  3. Tee ykkös- ja kakkoskohtaa hyödyntäen pääohjelma, joka lukee käyttäjältä alkiot taulukkoon ja sen jälkeen ilmoittaa vaihteluvälin. Lisäksi ohjelmassa pitää olla funktio, joka järjestää taulukon alkiot suuruusjärjestykseen. Vaihteluvälin lisäksi ohjelman tulee tulostaa alkiot lajittelun jälkeen.

Palauta kuvakaappaus ohjelman ajosta.

T10

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T11. Taulukon kopiointi

Kirjoita funktio, joka palauttaa kopion parametrina annetusta int-taulukosta.

Ohje: Tässä luodaan uusi taulukko.

T11

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T12. Merkkien määrä

  1. Kirjoita funktio, joka palauttaa tiedon siitä kuinka monta kertaa parametrina annettu merkki (tyyppiä char) esiintyy parametrina annetussa merkkijonossa (tyyppiä String).
  2. Kirjoita pääohjelma, joka lukee käyttäjältä merkkijonon ja merkin ja sen jälkeen ykköskohdan funktiotasi käyttäen antaa tiedon siitä, montako kertaa merkki esiintyi merkkijonossa.

T12

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T13. Satunnaislukuja halutulta väliltä

  1. Kirjoita funktio, joka tulostaa n satunnaista kokonaislukua väliltä a…b, missä a<b ( a ja b mukaan lukien). Lukujen ei tarvitse olla erilaisia.
  2. Kirjoita myös pääohjelma, joka kysyy käyttäjältä parametrit a, b ja n ja tulostaa kokonaisluvut.
Ohje: Funktion parametreina ovat n, a ja b.

T13

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T14. Merkkien korvaaminen

Kirjoita ohjelma, jolla käyttäjä voi korvata tekstipätkästä tietyt merkit toisella merkillä. Ohjelmalle voi siis antaa tekstipätkän ja sitten kertoa, että esim. kaikki r-kirjaimet vaihdetaan t-kirjaimiksi ja kaikki *-merkit puolipisteiksi. Käyttäjä voi siis haluta korvata enemmän kuin yhdet merkit.

T14

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.

T15. Sanojen pituuksia

Kirjoita ohjelma, joka lukee käyttäjältä toistuvasti sanoja ja kun käyttäjä ei halua syöttää enempää sanoja, ohjelma tulostaa syötettyjen sanojen merkkimäärien keskiarvon sekä lyhimmän ja pisimmän sanan.

T15

  • Palauta kuva tai muu tiedosto
  • Palauta merkintä
  • Palauta linkki
  • Palauta äänitallenne

Sinulla ei ole tarvittavia oikeuksia lähettää mitään.