Ohjelmointi 1, syksy 2022, luento 06
6. luento: ti 13.09.2022 klo 14:15-16:00: Aihe: aliohjelman paluuarvo, funktio ja parametrin välitys (luentokysymyksiä)
- Visual Studion käyttö jatkuu...
- M: 26.4 Negatiiviset binääriluvut
- M: 7. Muuttujat
- M: 28. Syntaksin kuvaaminen
- M: 9. Aliohjelman paluuarvo
- Keskiarvon laskeminen, funktioesimerkkejä
- Laskuja.cs - luennon esimerkki, jossa edellisen luennon paperitehtävän funktio toteutettu ja testattu.
- Funktioita.cs
- FunktioitaNC.cs - sama ilman kommentteja, jotta rakenne näkyy paremmin
- Esimerkki syntyneestä dokumentaatiosta, jossa ComTest-esimerkit mukana.
- Käyttäjän vuorovaikutus
- LumiukkoVoima.cs - lumiukko jossa käyttäjä voi vaikuttaa "peliin".
- Katso myös Voimia ja sitominen
- Harjoitustyön suunnitelma
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 6. luento videona: Osa 1 ja 2 MP4 alkuperäinen
- luentoseinä
Kysymyksiä
#
Kokemus
#
Kuinkatykalujenasennusononnistunut
#
Ymmrsitk
#
Miksana
#
MItseuraavaksi
#
Montako
1. Demot
- Demojen harjoittelu
- Pääteohjaus 3:een ilmoittautuminen
- Mac: asentakaa ComTest, ohje uudistettu (videot ei)
- hätätilassa voi käyttää demojen ComTest-laatikkoa
- Negatiiviset binääriluvut
2. 1-bit Wegematic 1000
3. Negatiiviset binääriluvut
#
muistiinpanoja
4. Syntaksista
4.1 Esimerkki syntaksista
#
shell
pastea seuraava kielioppi:
Lause ::= subjekti predikaatti (paikka)? "." subjekti ::= "kissa" | "koira" | "kana" predikaatti ::= "istuu" | "haukkuu" | "kotkottaa" | "nukkuu" paikka ::= "puussa" | "pihalla" | "kanalassa" | "orrella"
Seuraavissa kokeile kirjoittaa erilaisia lauseita. Mitkä ovat oikein syntaktisesti (kieliopiltaan)? Mitkä semanttisesti (merkitykseltään)?
#
Plugin1
#
cslause
4.2 Ohjelmointikielen syntaksi
#
junanradat
5. Aliohjelmat ja funktiot
- Ollaan aliohjelmina
- T1: 114
- T2: 110
- T3: 102
- resepti aliohjelmien kirjoittamiseen
oikeasti lappuihin olisi pitänyt kirjoittaa pelkkiä bittejä tyyliin:
0000 0100 0000 1010
ja aliohjelma olisi tiennyt miten nuo tulkitaan vain siksi että sille on kerrottu että mitä tyyppiä monesko parametri on.
- Jaa ongelma osiin.
- Mieti millaisella aliohjelmakutsulla pistät tietyn osaongelman ratkaisun käyntiin.
- Kirjoita aliohjelman kutsurivi ja mieti sen tarvitsemat parametrit.
- Kirjoita (aluksi manuaalisesti, myöhemmin generoi automaattisesti) aliohjelman esittelyrivi (otsikkorivi, eng. header).
- mieti tarve
public
,static
- sanoille - aliohjelman paluutyyppi
void
vai jotakin muuta? - aliohjelman nimi
- parametrin lukumäärä sama kuin kutsussa
- parametrien tyyppi sijoitusyhteensopivaksi kutsun kanssa.
- mieti tarve
- Tee aliohjelmasta syntaktisesti oikea tynkä joka kääntyy, esimerkiksi funktioaliohjelmassa pitää olla return-lause joka palauttaa lausekkeen (vaikka yksi luku) joka on samaa tyyppiä (tai muuntuu automaattisesti samaksi) kuin funktion tyyppi.
- Dokumentoi aliohjelma (nyt unohda mistä sitä kutsuttiin, sitä et enää saa ajatella).
- Kirjoita testit (TDD).
- Aja testit (pitää "feilata" = NÄE PUNAISTA).
- Muuta aliohjelma toimivaksi
- Aja testit (toista kohdat 8-10 kunnes toimii, = NÄE VIHREÄÄ)
- Siirry seuraavaan aliohjelmaan.
/// <summary>
///
/// </summary>
/// <param name="luku1"></param>
/// <param name="luku2"></param>
/// <returns></returns>
/// <example>
/// <pre name="test">
///
/// </pre>
/// </example>
/// <summary>
///
/// </summary>
/// <param name="k"></param>
/// <param name="maara"></param>
/// <param name="isona"></param>
/// <returns></returns>
/// <example>
/// <pre name="test">
///
/// </pre>
/// </example>
XXX YYY ZZZ Monista(???)
{
StringBuilder tulos = new StringBuilder("");
char kirjain = Char.ToLower(k);
if (isona) kirjain = Char.ToUpper(k);
for (int i = 0; i < maara; i++)
tulos.Append(kirjain);
return tulos.ToString();
}
#
helloeka
6. Voimia peliin
#
lumiukko1
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.