The referenced paragraph does not exist.
The referenced paragraph does not exist.

PP2

Mitä ovat PP-tehtävät?

PP-tehtävät on tarkoitettu niille, joilla edellisten demojen tekeminen on tuottanut hankaluuksia, tai muusta syystä demot ovat jääneet tekemättä. Nämä ovat siis kertaavia tehtäviä, joiden avulla palautetaan mieliin aikaisempia demoja uudesta näkökulmasta. PP-tehtävät eivät ole tarkoitettu niille, jotka ovat tehneet säännöllisesti 4 tai enemmän tehtäviä/kerta. PP-tehtävillä voi myös (tilapäisesti, ei jatkuvasti) hyvittää sen tilanteen että aikaisemmalla demokerralla ei ole täyttänyt "kahden demon minimisääntöä". Edelleen, PP-tehtävät lasketaan mukaan 40%:n sääntöön (siis sääntö joka sanoo että vähintään 27 pisteen edestä pitää olla tehty tehtäviä koko kurssilla).

PP-tehtäviä voivat palauttaa vain ne, ketkä osallistuvat erillisiin PP-ohjaustuokioihin. Ilmoittaudu niihin Korpissa. Jos et ole PP-tuokioihin osallistunut, niin et voi saada PP-tehtävistä myöskään pisteitä.

Tehtävän tehtyäsi liitä (Visual Studiossa / Xamarinissa) kirjoittamasi koodi TIM:iin ja paina Aja/Tallenna.

Kun olet tehnyt kaikki tehtävät pyydä ohjaaja tarkastamaan tekemäsi tehtävät. Näissä tehtävissä ei ole automaattista pistelaskua. Tehtävien tarkistuksen jälkeen voit laittaa oikean määrän pisteitä Set custom points-toimintoa käyttämällä.

Tee PP-tehtävät aina Visual Studiossa / Xamarinissa.

Tehtävät 1-4 ovat samat kuin PP1-kerralla. Jos teit ne jo viime PP-ryhmässä, siirry tehtäviin 5-6.

  • Tehtävistä 1-5 saa 1-5 pistettä demokertaan 5.
  • Tehtävästä 6 saa 1-3.5p demokerralle 4 tai 5

Tehtävä 1 (1 p.)

Tässä tehtävässä tehdään ohjelma, joka laskee matkustusaikojen kestoja.

Tee funktio MatkanKestoTunteina, joka laskee, kuinka kauan jokin matka kestää annetulla matkan pituudella ja keskinopeudella, ja palauttaa tuon tiedon. Pääohjelma voisi näyttää tältä (voit copy-pastettaa tämän omaan ohjelmaasi Visual Studioon).

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

    double matkanKestoTunteina = MatkanKestoTunteina(matkanPituusKm , keskinopeusKmH);
    Console.WriteLine("Matka kestää " + matkanKestoTunteina + " tuntia");
    Console.ReadKey();
}

Sinun pitää tehdä siis funktio MatkanKestoTunteina, sekä sille dokumentaatio. Aloita tekemällä funktion esittelyrivi (se missä on public static jne.).

# matkanKestoTunteinaPP1T1

Tehtävä 2 (1 p.)

Tässä tehtävässä tehdään ohjelma, kysyy lukua ja ilmoittaa kuuluuko luku välille [-5, 5].

Luo uusi projekti samaan solutioniin edellisen tehtävän kanssa. Luo projekti käyttäen ConsoleMain pohjaa. Jos et osaa lisätä uutta projektia solutioniin, kysy ohjaajalta apua.

Ota tästä itsellesi pääohjelma:

    public static void Main(string[] args)
    {
        Console.Write("Anna luku > ");
        int luku = int.Parse(Console.ReadLine());

        bool sisapuolella = OnkoValilla(luku);

        if (sisapuolella)
        {
            Console.WriteLine("Luku " + luku + " on välin sisäpuolella.");
        }
        else
        {
            Console.WriteLine("Luku " + luku + " on välin ulkopuolella.");
        }
        Console.ReadKey();
    }

Aloita lisäämällä ohjelmaan funktio nimeltään OnkoValilla, joka ottaa parametrina yhden kokonaisluvun ja palauttaa tiedon siitä, onko annettu luku välillä [-5, 5].

Aja ohjelma ja testaa sen toimintaa eri luvuilla.

Kirjoita luomallesi funktiolle dokumentaatio.

# onkoValillaPP1T2

Tehtävä 3 (1 p.)

Tämä tehtävä on jatkoa edelliseen tehtävään, uutta projektia ei tarvitse luoda.

Tässä tehtävässä on tarkoitus tehdä funktiosta OnkoValilla kuormitettu versio, jolle voi luvun lisäksi itse antaa parametrina ala- ja ylärajan.

Jätä olemassa oleva OnkoValilla koodiisi ja tee sen lisäksi uusi OnkoValilla funktio, joka ottaakin kolme parametria. Tee tästä uudesta OnkoValilla funktiosta sellainen, että annetut parametrit toimivat ylä- ja alarajana -5:n ja 5:n sijaan.

Lisää pääohjelmassa olevaan funktiokutsuun kaksi parametria lisää, esimerkiksi näin:

bool sisapuolella = OnkoValilla(luku, 0, 50);

Testaa jälleen ohjelman toimintaa ja varmista, että ohjelma toimii oikein.

Funktiota voi nyt käyttää siten, että sille annetaan vain luku, jolloin rajojen oletetaan olevan -5 ja 5, tai sitä voi käyttää siten, että sille annetaan itse halutut rajat.

# kuormitettuPP1T3

Tehtävä 4 (1 p.)

Tee ohjelma, missä kysytään kolme sanaa käyttäjältä, ja tulostetaan pisin sana. Tee tämä projekti samaan solutioniin edellisen tehtävän kanssa.

Ota tästä valmiiksi tehty pääohjelma (tätä EI tarvitse muuttaa).

public static void Main(string[] args)
{
  Console.Write("Anna 1. sana > ");
  String sana1 = Console.ReadLine();
  Console.Write("Anna 2. sana > ");
  String sana2 = Console.ReadLine();
  Console.Write("Anna 3. sana > ");
  String sana3 = Console.ReadLine();
  String pisin = Pisin(sana1, sana2, sana3);
  Console.WriteLine("Kiitos vastauksistasi! Pisin sana on \"" + pisin + "\".");
  Console.ReadKey();
}

Sinun pitää tehdä funktio Pisin, sekä sille dokumentaatio. Aloita tekemällä funktion esittelyrivi (se missä on public static jne.).

Valmis ohjelma tulostaa konsoliin esimerkiksi tällaista. ([ret] tarkoittaa Enter-näppäimen painallusta, eikä se kuulu varsinaiseen merkkijonoon.)

Anna 1. sana > Koira[ret]
Anna 2. sana > Pekka[ret]
Anna 3. sana > Kalle-Petteri[ret]
Kiitos vastauksistasi! Pisin sana on "Kalle-Petteri".

Kannattaa myös kokeilla, että ohjelma toimii, vaikka pisin sana ei olisikaan juuri kolmantena syötetty.

Kopioi vastauksesi Visual Studiosta alla olevaan koodilaatikkoon ja paina Aja, jotta vastauksesi tallentuu TIMiin.

Huom! Painaessasi Aja painiketta TIM antaa virheen, koska se ei osaa kysyä käyttäjältä kolmea merkkijonoa. Tästä virheestä ei tarvitse välittää.

# pisinSanaPP1T4

PP Tehtävä 5

Tällä tehtävällä saat 1 pisteen Demo 5:een.

Voit tehdä kohdat a ja b samaan kooditiedostoon.

# PP2T1A
# PP1T1B

Esimerkki tehtävän 5 b tulostuksesta

61
62
63
64 Jaollinen neljällä!
65
66
67
68 Jaollinen neljällä!
69
70

PP Tehtävä 6

Tästä tehtävästä saat 1 - 3.5 pistettä.

Kirjoita alla olevaan laatikkoon numero 4 tai 5, riippuen siitä kummalle demokerralle haluat pisteet ja paina Tallenna-painiketta:

# teht2demokerta
# PP2T2A
# PP2T2B
# PP2T2C
# PP2T2D

ComTest tehtävään 6 d

/// int[] luvut = TaytaFibonacci(5);
/// String.Join(" ", luvut) === "1 1 2 3 5";

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.