Ohjelmointi 1, syksy 2024, luento09

# L09

9. luento: ma 30.9.2024 klo 12:15-14:00: Aliohjelmien kutsuminen, String, StringBuilder

Muu sisältö: ehtolauseet, luokan käyttäminen sekä olioviitteet

Kertausta yms

Ti luento

  • Agora Beta!

HT-näytöt

Demot

  • aloita AJOISSA!
  • Demojen harjottelutehtävät ajatuksen kanssa!
  • mieti TARKKAAN ja TÄSMÄLLISESTI suomeksi mitä olet tekemässä. Mielellään kirjoita vaikka ylös, esim kommentteihin (kaksi //)
  • laita vastauksia TIMiin sitä mukaan kun niitä Riderissa teet
  • KÄY PÄÄTEOHJAUKSISSA (myös etä)! Erityisesti jokainen joka on nyt aloittanut la/su, pitäisi käydä pääteohjauksissa, jotta pääsee alkuun, silloin itsenäinen la/su jatkaminen on helpompaa
  • muista täydentää vastaukset 7p kun palautustilaisuus (tai jopa sen aikana) on pidetty.
# GLO_DemoN2

Open JS-frame

 

Open JS-frame

 

Kurssin esimerkkiohjelminen hakeminen

  • siirry hakemistoon johon haluat esimerkit

    git clone https://gitlab.jyu.fi/tie/ohj1/2024s/esimerkit.git .
  • seuraavan kerran jos olet muutellut niin

    git stash
  • sitten

    git pull -r

Testaaminen

Ongelmanratkaisu:

  • (puolita, tee paloissa)
  • mieti mitä pitäisi saada
  • laske/tee
  • tarkista
  • ota vastuu!

Esim: laske paljonko on 3*2.5

  • on se yli 3*2 = 6 ja pakko olla alle 3*3 = 9
  • lasketaan ja saadaan 7.5
  • on ajatellussa välissä => saattaa olla oikein

Funktiot ja järjestäminen

Kussakin maassa on kolmetoista korttia
Yhtä monta kuin on viikkoja neljännesvuodessa
Kuten huomaatte herra sotatuomari
Korttipakka on minulle
Raamattu, almanakka ja rukouskirja
Hyvät kuulijat tämä tarina

Järjestä kolme pahvilappua järjestykseen.

# pisin3

Tee funktio PisinJono, joka palauttaa mikä jono on pisin kolmesta.

 

# pisin3kuva

Piirrä perässä

 

ref a -> new *$1 Kissa
ref b -> new *$2 Kana
ref c -> new *$3 Krokotiili
ref voittaja -> $1
voittaja -> $3

Pong

Demojen palauttaminen suoraan Rideristä

  • korjaa tarvittaessa Demo4 T6 jos testit puuttuivat
    • kopioi vastauksesi, alusta, paste vastausta oikeisiin kohtiin, aja testit
  • Katso TIDEn ohjesivu
# aliapi

Aliohjelminen kutsuminen ja APIin lukeminen

Kysymyksiä:


# kutsuja

Kutsuja

public class Kutsuja
{
    public static void Main()
    {

    }
}

 

        // docs.microsoft.com/en-us/dotnet/api/system.console.writeline?view=netcore-3.1#System_Console_WriteLine_System_String_
        // Namespace:  System
        // Console.WriteLine Method (String)
        // public static void WriteLine(string value)

StringBuilder

# sb

StringBuilder

using System.Text;


public class AliohjelmienKutsuminen
{
    public static void Main()
    {
        StringBuilder sb = new StringBuilder("Krokotiili");

        // Muokkkaa tähän luentojen tahtiin

        System.Console.WriteLine(sb);
    }
}

 

# krokokuva2

Piirrä perässä

 

ref sb
new *$1 "Krokotiili"
sb -> $1
ref s -> new *$2 "Krokotiili"
val i = 5
$1 = "tiili"
$1 = "tiilitalo"
# krokokuva

 

Yhdistetyt ehdot

Yhdistettyjen ehtojen totuustaulu

p q p && q p || q p ^ q !p
0 0 0 0 0 1
0 1 0 1 1 1
1 0 0 1 1 0
1 1 1 1 0 0
C#-koodi Operaattori Toiminta
! looginen ei Tosi, jos lauseke epätosi.
&& looginen ehdollinen ja Tosi, jos molemmat lausekkeet tosia. Eroaa seuraavasta siinä, että jos lausekkeen totuusarvo on jo saatu selville, niin loppua ei enää tarkisteta. Toisin sanoen jos ensimmäinen lauseke oli jo epätosi, niin toista lauseketta ei enää suoriteta.
& looginen ja Tosi, jos molemmat lausekkeet tosia. Suorittaa aina molemmat ehdot (turhaan).
|| looginen ehdollinen tai Tosi, jos toinen lausekkeista on tosi. Vastaavasti jos lausekkeen arvo selviää jo aikaisemmin, niin loppua ei enää tarkisteta. Toisin sanoen, jos ensimmäinen lauseke saa arvon tosi, niin koko lauseke saa arvon tosi ja jälkimmäistä ei tarvitse enää tarkastaa.
| looginen tai Tosi, jos toinen lausekkeista on tosi. Suorittaa aina molemmat ehdot (turhaan).
^ eksklusiivinen tai (XOR) Tosi, jos toinen, mutta eivät molemmat, on tosi.

Mistä |-merkin saa näppikseltä?

26 Sep 17 (edited 26 Sep 17)

AltGr + <

26 Sep 17

Macilla alt + 7

27 Nov 17
# osuuko

Osuuko

using System;
/// @author  Vesa Lappalainen
/// @version 07.10.2012
/// <summary>
/// Tutkitaan ehtolauseita
/// </summary>
public class Ehtolauseita
{
    /// <summary>
    /// Ehtolauseiden kokoeilua
    /// </summary>
    public static void Main()
    {
        int a = 5;
        bool osuu = Osuuko(a, 2, 5);
        if (osuu) Console.WriteLine("Osuu välille");
    }
    /// <summary>
    /// Tutkitaan osuuko luku välille [a,b]
    /// </summary>
    /// <param name="luku">tutkittava luku</param>
    /// <param name="a">alkupiste</param>
    /// <param name="b">loppupiste</param>
    /// <returns>tosi jos luku kuuluu välille [a,b]</returns>
    /// <example>
    /// <pre name="test">
    ///    Osuuko(0,1,3) === false;
    ///    Osuuko(1,1,3) === true;
    ///    Osuuko(2,1,3) === true;
    ///    Osuuko(3,1,3) === true;
    ///    Osuuko(4,1,3) === false;
    ///    Osuuko(2,3,1) === false;
    /// </pre>
    /// </example>
    public static bool Osuuko(int luku, int a, int b)
    {
    }
}

 

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