Ohjelmointi 1, syksy 2022, luento 09
9. luento: ma 26.9.2022 klo 12:15-14:00: Aliohjelmien kutsuminen, String, StringBuilder
Muu sisältö: ehtolauseet, luokan käyttäminen sekä olioviitteet
- Pong-muutokset kurssia varten
- TIM-sivu aliohjelmien kutsumisesta
- AliohjelmienKutsuminen.cs - esimerkkejä aliohjelmien kutsuista
- M: 12.3 Muokattavat merkkijonot: StringBuilder
- StringVsStringBuilder.cs - String vs. StringBuilder nopeus
- IntVsDouble.cs - int vs. double nopeus
- M: 13. Ehtolauseet
- M: 13.6.1 Operaattoreiden totuustaulut
- HUOM! Vertailuoperaattorit == ja != toimivat myös
String
-merkkijonojen ''sisällön'' vertailussa, toisin kuin esimerkiksi Javassa. Mutta eivät toimiStringBuilder
-jonoille! - Totuustaulut
- HUOM! Vertailuoperaattorit == ja != toimivat myös
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 9. luento videona: Osa 1 ja2 MP4 alkuperäinen
- luentoseinä
Kertausta yms
HT-näytöt
- varaa aika, bonus yms ajat ratkaiseet gitlabin päiväys
- HaeTuulet versiohistoria
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ä Visual Studiossa 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.
Kurssin esimerkkiohjelminen hakeminen
siirry hakemistoon johon haluat esimerkit
git clone https://gitlab.jyu.fi/tie/ohj1/2022s/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.
- n:\kurssit\winohj\vclclx\delphi\korttipe\jarjesta.exe. (Linux ja Mac : wine jarjesta.exe)
#
pisin3
#
pisin3kuva
ref a -> new *$1 Kissa
ref b -> new *$2 Kana
ref c -> new *$3 Krokotiili
ref voittaja -> $1
voittaja -> $3
Pong
- Pong
- ÄLÄ INNOSTU ATTRIBUUTEISTA!
- Pong-muutokset kurssia varten - private
- Pong-muutokset kurssia varten - attribuuttien poistoa
- Pong-muutokset kurssia varten - pong poistetaan loputkin attribuutit
- Pong-muutokset kurssia varten - käsitellään varoitukset
- Kommentit puuttuu (eli ei saisi HT merkintää tuolla :-)
Aliohjelminen kutsuminen ja APIin lukeminen
Kysymyksiä:
Open plugin
Open plugin
#
Kunaliohjelmaakirjoitetaan
#
Miksana
Open plugin
#
Miknimi
#
MiksanaSystem
- AliohjelmienKutsuminen.cs - esimerkkejä aliohjelmien kutsuista
#
kutsuja
// 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
- StringVsStringBuilder.cs -
String
vs.StringBuilder
nopeus - IntVsDouble.cs -
int
vs.double
nopeus - AliohjelmienKutsuminen.cs - esimerkkejä StringBuilderin käytöstä
#
sb
#
krokokuva2
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ä?
—AltGr + <
—Macilla alt + 7
—
#
osuuko
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.