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ä
T1
Sinulla ei ole tarvittavia oikeuksia lähettää mitään.
T2. Loogisia lausekkeita
-
- x on parillinen
- y on pienempi kuin nolla ja suurempi kuin -3
- z on suurempi kuin x mutta pienempi kuin y-1
- 0 < x < 2.05 tai 2.10 < y < 3.75
- b on tosi
- a on epätosi ja x>y
- x on negatiivinen ja y on positiivinen.
T2
Sinulla ei ole tarvittavia oikeuksia lähettää mitään.
T3. Summia ja keskiarvoja
T3
Sinulla ei ole tarvittavia oikeuksia lähettää mitään.
T4. While
0, 3, 6, 9, 12
15, 18, 21, 24, 27
30.
Ohjelmaa tulee testata. Palauta ratkaisuna myös kuvakaappaus ohjelman suorituksesta.
T4
Sinulla ei ole tarvittavia oikeuksia lähettää mitään.
T5. Tulosterivejä
- 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.
- 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
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. minimi? Ohje: ylikuormittaminen.
Palauta ohjelmakoodin lisäksi perusteltu vastaus kysymykseen.
T6
Sinulla ei ole tarvittavia oikeuksia lähettää mitään.
T7. Toistorakenteiden vertailua
- 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.
- Kerro perusteltu näkemyksesi siitä, missä tilanteissa mikäkin toistorakenne on paras. Anna esimerkkejä.
Palauta kohdan 1 ohjelmakoodin lisäksi vastauksesi kohtaan 2.
T7
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
Sinulla ei ole tarvittavia oikeuksia lähettää mitään.
T9. Alkuluku?
- Kirjoita funktio, joka tutkii, onko luku alkuluku vai ei.
- 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
Sinulla ei ole tarvittavia oikeuksia lähettää mitään.
T10. Taulukon suurin ja pienin arvo
- 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).
- 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.
- 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
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
Sinulla ei ole tarvittavia oikeuksia lähettää mitään.
T12. Merkkien määrä
- Kirjoita funktio, joka palauttaa tiedon siitä kuinka monta kertaa parametrina annettu merkki (tyyppiä char) esiintyy parametrina annetussa merkkijonossa (tyyppiä String).
- 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
Sinulla ei ole tarvittavia oikeuksia lähettää mitään.
T13. Satunnaislukuja halutulta väliltä
- Kirjoita funktio, joka tulostaa n satunnaista kokonaislukua väliltä a…b, missä a<b ( a ja b mukaan lukien). Lukujen ei tarvitse olla erilaisia.
- Kirjoita myös pääohjelma, joka kysyy käyttäjältä parametrit a, b ja n ja tulostaa kokonaisluvut.
T13
Sinulla ei ole tarvittavia oikeuksia lähettää mitään.
T14. Merkkien korvaaminen
T14
Sinulla ei ole tarvittavia oikeuksia lähettää mitään.
T15. Sanojen pituuksia
T15
Sinulla ei ole tarvittavia oikeuksia lähettää mitään.