wiki:s2011/demot/luonnokset
Last modified 6 years ago Last modified on 2011-11-15 08:02:36

PP demotehtävät (demo 11)

Tehtävä 1

  1. Tee for-silmukka joka tulostaa seuraavaa:
    0
    3
    6
    9
    12
    ...
    177
    
  2. Muistele viimekertaista PP-tehtävää jossa täydennettiin aliohjelma TaytaTaulukko. (PP-tehtävä 2A) Lataa itsellesi Taulukointia.cs ja liitä se projektiin. Täydennä aliohjelma TaytaTaulukko siten, että ohjelma tulostaa seuraavaa:
    Taulukon paikassa 0 on luku 1
    Taulukon paikassa 1 on luku 3
    Taulukon paikassa 2 on luku 5
    ...
    Taulukon paikassa 21 on luku 43
    
  3. Tee aliohjelma joka vastaanottaa kaksi parametria: merkkijonon ja kokonaisluvun. Aliohjelma palauttaa merkkijonosta merkin, jonka paikka merkkijonossa on annettu kokonaisluku. Aliohjelma kutsu voisi näyttää tältä:
    PalautaKirjain("kissa istuu puussa", 8); // Palauttaa 't'
    
  4. Palokkajärvellä asuu jälleen kaksi joutsenparia. Yhdelle parille syntyy vuodessa neljä poikasta. Kukin poikasista löytää itselleen seuraavana vuonna parin Palokkajärven joutsenista (tosin oikeasti eri järvellä kun samalle järvelle ei mahdu montaa paria) ja jokainen uusi pari (ja myös edelliset parit) saa seuraavana vuonna neljä poikasta. Tämä jatkuu jokaiselle sukupolvelle. Valitettavasti nämä joutsenet eivät viihdy Palokassa ja muuttavat viiden elinvuoden jälkeen talvella pois. Aluksi siis järvellä on neljä joutsenta. Syksyllä järvellä on 12 joutsenta. Seuraavana keväänä samat 12 ja syksyllä järvellä on 36 joutsenta. Tee ohjelma, joka tulostaa kuinka monta joutsenta on syksyllä kunakin vuonna 10 vuoden ajan. Mallitulostus:
     1. Keväänä 4 joutsenta
     1. syksynä 12 joutsenta
     2. syksynä 36 joutsenta
    ...
     5. syksynä 972 joutsenta
     6. Keväällä 968 joutsenta
     6. syksynä 2904 joutsenta
     7. keväällä 2892 joutsenta
    ...
    

Tehtävä 2

Tässä tehtävässä on useampi kohta, jossa täytyy ladata jokin tiedosto ja tehdä siihen muutoksia tai täydennyksiä. Jos haluat käyttää Visual Studiota tehtävän ratkaisemiseen, tee ensin uusi projekti (Console Application) ja lataa tehtävän tiedosto projektin hakemistoon. Tämän jälkeen voit lisätä tiedoston projektiisi klikkaamalla projektin nimeä Visual Studiossa hiiren oikealla näppäimellä, valitse Add->Existing Item.. ja valitse lataamasi tiedosto.

  1. Lataa itsellesi Testausta.cs ja täydennä aliohjelma LahinLuku niin, että sille kirjoitetut testit voidaan ajaa virheettä.
  2. Lataa itsellesi Aliohjelmia.cs ja täydennä pääohjelma niin, että käytät apunasi kommenteissa mainittuja aliohjelmakutsuja. Tehtävässä ei tarvitse itse luoda yhtään aliohjelmaa.
  3. Tee aliohjelma joka vastaanottaa merkkijonon ja lisää siihen merkkijonon " on hauskaa". (Käytä StringBuilder-luokkaa) Tee pääohjelmasta seuraavanlainen:
    public static void Main(string[] args)
    {
        StringBuilder muuttuvaJono = LisaaMerkkijonoon("Koodaus");
        Console.WriteLine(muuttuvaJono.ToString());
        Console.ReadKey();
    }
    
  4. Lataa itsellesi Muuttujia.cs ja täydennä pääohjelmaan muuttujatyypit oikeiksi.

PP demotehtävät (demo 10)

Tehtävä 1

A) Tee for-silmukka joka tulostaa seuraavaa:

0
2
4
6
...
98

B) Lataa itsellesi Laskuharjoituksia.cs tiedosto ja täydennä aliohjelmat siten, että pääohjelma tulostaa konsoliin annettujen lukujen tulojen summan 2 * 3 + 4 * 7.

C) Tee aliohjelma joka laskee tuotteen alennetun hinnan kun viedään parametrina alkuperäinen hinta ja alennusprosentti. Tee pääohjelma josta kutsut tekemääsi aliohjelmaa ja tulostat sen antaman arvon.

D) Jyväsjärvellä asuu kaksi joutsenparia. Yhdelle parille syntyy vuodessa neljä poikasta. Kukin poikasista löytää itselleen parin Jyväsjärven joutsenista ja pari saa seuraavana vuonna neljä poikasta. Tämä jatkuu jokaiselle sukupolvelle.

Aluksi siis järvellä on neljä joutsenta. Vuoden kuluttua järvellä on 12 joutsenta. Seuraavana vuonna järvellä on 36 joutsenta. Tee ohjelma, joka tulostaa kuinka monta joutsenta on kunakin vuonna. Esimerkiksi kolmen vuoden jälkeen

int joutsenia = 4;
...
Console.WriteLine(joutsenia)

tulostaisi 36.

Tehtävä 2

A) Muistele miten teit edellisessä tehtävässä for-silmukan joka tulosti parillisia kokonaislukuja. Lataa itsellesi Taulukointia.cs ja täydennä aliohjelma TaytaTaulukko siten, että pääohjelma tulostaa seuraavaa:

Taulukon paikassa 0 on luku 2
Taulukon paikassa 1 on luku 4
Taulukon paikassa 2 on luku 6
...
Taulukon paikassa 15 on luku 32

B) Tee for-silmukka joka tulostaa seuraavaa:

1
3
5
7
...
99

C) Tee aliohjelma LaskeMatkanKesto joka laskee kuinka kauan jokin matka kestää annetulla matkan pituudella ja keskinopeudella. Pääohjelma voisi näyttää tältä

public static void Main(string[] args)
{
    double matkanPituus_km = 124.5;
    double keskiNopeus = 120;

    double matkanKesto = LaskeMatkanKesto(matkanPituus_km, keskiNopeus);
    Console.WriteLine("Matka kestää " + matkanKesto + " tuntia");
    Console.ReadKey();
}