Tehtävät : Ohjelmoinnin perusteet

Console-luokka

Demotehtävissä tarvitaan apuna Console-luokkaa, jolla voidaan kirjoittaa/lukea tekstiä konsolilta. Kirjoittamista varten löytyvät Write- ja WriteLine-metodit (WriteLine lisää tulostettavan merkkijonon perään rivinvaihdon). Konsolilta lukemista varten ovat käytettävissä Read-, ReadLine- ja ReadKey-metodit. Näistä Read lukee seuraavan saatavilla olevan merkin, ReadLine koko syötetyn merkkijonon (enter painettu) ja ReadKey painetun näppäimen.

Alla muutama esimerkki:


    int luku;
    Console.Write("Anna luku > ");
    luku = int.Parse(Console.ReadLine());
    Console.WriteLine("Annoit luvun " + luku);
    // voidaan kirjoittaa myös
    Console.WriteLine("Annoit luvun {0}", luku);
    
Tehtävä 1

Tee ohjelma, joka tulostaa käyttäjän antamaa lukua (1, 2 tai 3) vastaavan luvun sanana (yksi, kaksi tai kolme). Jos käyttäjä syöttää jonkin muun luvun, tulee näytölle tulostaa teksti: "joku muu luku".

Esimerkkitoiminta:


    Anna luku > 1 [Enter]
    Annoit luvun yksi
    

Tehtävä 2

Tee ohjelma, jossa annetaan oppilaalle koulunumero seuraavan taulukon mukaan (pistemäärä kysytään ja ohjelma tulostaa numeron):

pisteraja numero
0-1 0
2-3 1
4-5 2
6-7 3
8-9 4
10-12 5

Esimerkkitoiminta:


    Anna pistemäärä > 8 [Enter]
    Koulunumero on 4
    

Tehtävä 3

Tee ohjelma, joka kysyy käyttäjältä kolme lukua ja tulostaa niiden summan ja keskiarvon.

Tehtävä 4

Tee ohjelma, jossa kysytään käyttäjältä tämän ikä. Jos ikä on alle 18 vuotta, tulosta "alaikäinen", jos se on 18-65 vuotta, tulosta "aikuinen", muussa tapauksessa tulosta "seniori".

Tehtävä 5

Tee ohjelma, joka näyttää annetun sekuntimäärän tunteina, minuutteina ja sekunteina. Aikamääre sekuntteina kysytään käyttäjältä.

Esimerkkitoiminta:


    Anna sekunnit > 3661 [Enter]
    Antamasi sekunttiaika voidaan ilmaista muodossa: 1 tunti 1 minuutti 1 sekuntti
    

Tehtävä 6

Auton kulutus on 7.02 litraa 100 kilometrin matkalla ja bensan hinta on 1.595 Euroa. Tee ohjelma, joka tulostaa ajetulla matkalla (kysytään käyttäjältä) kuluvan bensan määrän sekä bensaan menevän rahan määrän.

Esimerkkitoiminta:


    Anna matka > 250 [Enter]
    Bensaa kuluu 17,55 litraa, kustannus 27,99 euroa
    

Tehtävä 7

Tee ohjelma, joka näyttää onko annettu vuosi karkausvuosi. Vuosiluku kysytään käyttäjältä.

Esimerkkitoiminta:


    Anna vuosi > 1992 [Enter]
    Vuosi on karkausvuosi.
    

Tehtävä 8

Tee ohjelma, joka kysyy käyttäjältä 3 kokonaislukua ja tulostaa niistä suurimman.

Esimerkkitoiminta:


    Anna Luku > 5 [Enter]
    Anna Luku > 15 [Enter]
    Anna Luku > 7 [Enter]
    Suurin luku on 15
    

Tehtävä 9

Tee ohjelma, joka kysyy käyttäjältä lukuja, kunnes hän syöttää luvun 0. Ohjelman tulee tulostaa syötettyjen lukujen summa.

Esimerkkitoiminta:


    Anna Luku > 10 [Enter]
    Anna Luku > 20 [Enter]
    Anna Luku > 30 [Enter]
    Anna Luku > 0 [Enter]
    Lukujen summa on 60
    

Tehtävä 10

Tee ohjelma, joka alustaa sovellukseen käyttöö seuraavan taulukon arvot = [1,2,33,44,55,68,77,96,100]. Käy sovelluksessa taulukko läpi ja tulosta ruutuun "HEP"-sana aina kun taulukossa oleva luku on parillinen.

Tehtävä 11

Tee kahden sisäkkäisen for-silmukan avulla ohjelma, joka tulostaa seuraavanlaisen kuvion:
*
**
***
****
*****

Käyttäjä antaa syötteenä tähtirivien lukumäärän. Yllä olevassa esimerkissä käyttäjä on syöttänyt luvun 5.

Esimerkkitoiminta:


    Anna Luku > 3 [Enter]
    *
    **
    ***
    

Tehtävä 12

Tee ohjelma, joka kysyy käyttäjältä 5 kokonaislukua. Luvut tulee sijoittaa taulukkoon. Ohjelman tulee tulostaa annetut luvut käänteisessä järjestyksessä.

Esimerkkitoiminta:


    Anna Luku > 1 [Enter]
    Anna Luku > 2 [Enter]
    Anna Luku > 3 [Enter]
    Anna Luku > 4 [Enter]
    Anna Luku > 5 [Enter]
    Luvut ovat 5,4,3,2,1
    

Tehtävä 13

Mäkihypyssä käytetään viittä arvostelutuomaria. Kirjoita ohjelma, joka kysyy arvostelupisteet yhdelle hypylle ja tulostaa tyylipisteiden summan siten, että summasta on vähennetty pois pienin ja suurin tyylipiste.

Esimerkkitoiminta:


    Anna pisteet > 18 [Enter]
    Anna pisteet > 15 [Enter]
    Anna pisteet > 20 [Enter]
    Anna pisteet > 19 [Enter]
    Anna pisteet > 17 [Enter]
    Kokonaispisteet ovat 54
    

Tehtävä 14

Kirjoita ohjelma, joka pyytää käyttäjältä opiskelijoiden arvosanat 0-5 ohjelmointi-opintojaksosta (voit itse päättää lopetusehdon). Tulosta arvosanajakauma käyttäen tähtimerkkejä seuraavasti:

Arvosanajakauma:
0:
1:****
2:**
3:******
4:*****
5:**

Esimerkkitoiminta:


    Anna arvosana > 5 [Enter]
    Anna arvosana > 5 [Enter]
    Anna arvosana > 4 [Enter]
    Anna arvosana > 3 [Enter]
    Anna arvosana > 2 [Enter]
    Anna arvosana > 1 [Enter]
    Anna arvosana > 0 [Enter]
    Anna arvosana > 0 [Enter]
    Arvosanat:
    0:**
    1:*
    2:*
    3:*
    4:*
    5:**
    

Tehtävä 15

Tee ohjelma, joka tulostaa seuraavanlaisen kuvion. Kysy käyttäjältä puunkorkeus käytä juurena kaksi korkeuden yksikkö.


    Anna Luku > 7 [Enter]    
        *
       ***
      *****
     *******
    *********
        *
        *
    
Tehtävä 16

Tee ohjelma, joka arpoo satunnaisluvun väliltä 0-100. Käytä C#:n Random -luokkaa. Tämän jälkeen ohjelman käyttäjää kehoitetaan arvaaman arvottu luku. Ohjelman tulee antaa vihje arvauksen jälkeen onko arvottu luku pienemäi vai suurempi. Tämän jälkeen vihjeitä toistetaan kunnes käyttäjä arvaa oikean luvun. Tulosta lopuksi arvausten määrä näytölle. PS Satunnaislukujen arpomisesta tietokoneella löytyy mielenkiintoista luettavaa esimerkiksi tästä artikkelista: Computers are lousy random number generators.

Esimerkkitoiminta:


    Arvaa luku > 50 [Enter]
    Luku on suurempi
    Arvaa luku > 75 [Enter]
    Luku on pienempi
    Arvaa luku > 66 [Enter]
    Hienoa, arvasit luvun 3 kerralla.
    

Tehtävä 17

Tee ohjelma, joka lajittelee kahdessa kokonaislukutaulukossa olevat alkiot suurusjärjestykseen kolmanteen kokonaislukutaulukkoon. Tulosta lopuksi lajitellun taulukon sisältö.

Esimerkkitoiminta:


    Luvut taulukossa 1 : 10,20,30,40,50
    Luvut taulukossa 2 : 5,15,25,35,45
    Luvut yhdistetyssä taulukossa : 5,10,15,20,25,30,35,40,45,50
    

Tehtävä 18

Tee ohjelma, joka kysyy käyttäjältä merkkijonon (lause). Sovelluksen tulee ilmoittaa käyttäjälle oliko annettu merkkijono palidromi.

Tehtävä 19

Tee tekstipohjainen Hirsipuu-peli. Voit kovakoodata arvattavan sanan ja toteuta looppi, jossa käyttäjältä kysytään seuraavaa kirjainta. Muista näyttää aina kirjaimen jälkeen oikein arvatut kirjaimet sanan oikealla kohdalla (käytä esim _-alaviivaa ei arvattujen kirjainten kohdalla). Voit näyttää myös jo arvatut ei käytetyt -kirjaimet. Päätä itse milloin pelaaja joutuu hirteen.

Tehtävä 20

Toteuta jokin oma villi-ideasi ja yllätä opettaja toteutuksellasi.