Sinun UserID: 0

```

Palautus viimeistään: klo 11:00 ma 14.11.
Katso luennot-sivulta luennot 21 ja 22.

Ilmoittaudu missä ryhmässä (zoom) katsot demojen vastaukset (huom joka viikolla oma ilmoittautuminen)

  • Please to interact with this component.

    Ma 14-16
  • Please to interact with this component.

    Ma 16-18
  • Please to interact with this component.

    Ma 14-16 Zoomista
  • Please to interact with this component.

    Ma 16-18 Zoomista
  • Please to interact with this component.

    Katson demonpalautuksen videolta

Alla demotilanteesi.

  • Pisteet eivät päivity tähän automaattisesti, vaan aina pienellä viiveellä.
  • Värit: Punainen: Minimit ei täyty. Vihreä: vähintään 5p joista 2p tähtitehtävistä.
# aikajana
Tiedot päivittyvät tunnin välein. Viimeksi:

Please to interact with this component.

{}


Viikko 35
26.8.
36
2.9.
37
9.9.
38
16.9.
39
23.9.
40
30.9.
41
7.10.
42
14.10.
43
21.10.
44
28.10.
45
4.11.
46
11.11.
47
18.11.
48
25.11.
Luennot 1&2 3&4 5&6 7&8 9&10 11&12 13&14 15&16 17&18 19&20 21&22 23&24
Tärkeät ti: bonus
pe: HT1
Väli-
kysely
pe: Debug-
näyte

ti: bonus
pe: HT2
ti: bonus
pe: HT3
Tentti
pe: 2.12
dh 1 2 3 4 5 6 7 8 9 10 11 Summa %
Demot

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Korjattu

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Tunnit

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Ohjelmointi 1, s 2022 / Demo 11


Jos haluat harjoitella vastaavilla tehtävillä, joihin saat myös mallivastaukset, niin katso:

HUOM! Joka kerta on saatava vähintään 2p tähtitehtävistä! Alle 5p tehneillä on huono ennuste loppukurssissa.

Demot palautetaan viimeistään maanantaina klo 11:00 mennessä. Voit palauttaa osan tai kaikki tehtäväsi etukäteenkin ja täydentää vastauksia määräaikaan mennessä. Alla mainitut mallivastaukset näkyvät vasta kun demojen palautustilaisuudet on pidetty.

Oppimistavoitteet

Klikkaile ruksit niihin kohtiin jotka olet oppinut. Työkirja-sivulla näet yhteenvedon kaikista demoista.

# Oppimistavoitteet

Palautus

Demot palautetaan viimeistään maanantaina klo 11:00 mennessä. Voit palauttaa osan tai kaikki tehtäväsi etukäteenkin ja täydentää vastauksia määräaikaan mennessä.

Ajankäyttösi tällä viikolla (0.25p)

Demokerran päätteeksi kirjoita arvio tällä viikolla käyttämästäsi työmäärästä. Laske työmäärään mukaan kaikki tällä viikolla käyttämäsi aika: lähiopetukseen (=zoom) osallistuminen, oppimateriaalin lukeminen, demotehtävien tekeminen, luentovideon katsominen, demojen purkutilaisuuteen osallistuminen (maanantaina) ja niin edelleen. Voit päivittää lukua viikon edetessä, se voi helpottaa arvion tekemistä. Huom! Siis tähän ei laiteta kurssin alusta kaikkia tunteja yhteensä, vaan vain tämän viikon tunnit. Tästä annettava 0.25 näkyy Pisteet-sivun demokerran summassa. Kirjoita pelkkä luku esim tyyliin 13.5

Ajankäyttösi tällä viikolla: Plugin numericfield error: Task id refers to another document, but you do not have access to that document.

# vaikeaa

Edellisten demojen vastausten korjaaminen E1 (pakollinen)

# korjattu

Kun tehtävien vastaukset on julkistettu (esim demopalautuksissa), pitää jokaisen korjata omat vastauksensa niin, että ainakin Tauno ja perustehtävät 1-6 tuottavat vähintään 1p kukin. Eli demon palautuksen jälkeen pitää demosivun näyttää vähintään 7 p.

Siis esim. ennen demo 2 tehtävien aloittamista pitää demoista 1 tulla vähintään mainittu pistemäärä.

Itsearvio A1 (vapaaehtoinen)

Video 1

Voit saada demopisteitä indeksoimalla luento/demovideoita, ks: Videoiden hakemisto aihepiireittäin 22 Lisää em. videosivulle vähintään 3-linkkiä ja kirjoita alla olevaan laatikkoon, mitkä linkit lisäsit. Joka demokerralle voi merkitä aina vähintään 3:sta linkistä yhden demotehtävän.

# video1

TDD-pohja

Tässä voit testata ohjelmiasi jos ComTest ei toimi koneellasi

# ComTestPohjaCSx

Kyselyt

Alla kolme kyselyä. Kustakin saa + 1p demokertymään, mutta kunkin kerran ei-tenttiä vaihtoehdon 5p pitää kerätä tästä demosta niin, että siinä on ainakin 4p muuta kuin näitä kyselyjä. Kaikki kyselypisteet silti toki otetaan summaan huomioon.

# kyselyTIM

Kysely TIMin käytettävyydestä (1p)

Mikäli et vastannut vielä Demon 10:n yhteydessä alla olevaan vastaa nyt. Muista seurata onko edellisen kerran kysymykseesi/palautteesi vastattu.

HUOMAA LUKEA HUOLELLA MIHIN PALAUTE LAITETAAN!!!

Huomaa että kurssin asioihin, eli TIMiin kirjoitettuun sisältöön, liittyvät ehdotukset tulee laittaa joko kurssin keskusteluun tai palautteeseen. Esim: voisiko kaikki demot näkyä yhdellä sivulla - on kurssin kehitysehdotus, ei TIMin.

Kerro TIMin parannusehdotuksia. Ei ole pakko keksiä mitään uutta, voit olla samaa tai eri mieltä jonkin olemassa olevan kanssa. Eli mene sivulle TIMin parannusehdotuksia.

Sitten kun olet antanut palautteen, niin muista seurata miten siihen on vastattu! Palautteesta saa laittaa vain 0.5 p ja palautteen vastaukseen vastaamisesta toisen 0.5 p. Jos edellisdemossa on tuo jälkimmäinen 0.5 p jäänyt puuttumaan, voit hoitaa sen nyt.

Muista että et koskaan käytä palautteissa Miksi-sanaa. Mieti myös miten antamasi palaute on suhteessa muihin käyttämiisi järjestelmiin ja mikä on teknisesti kallista/haastavaa toteuttaa ja kuinka oleellinen on toivomuksesi suhteessa n. 1000 toivomuksen listaan :-) Eli "Olisi kivaa" - "Toimii väärin ja korjattava välittömästi" akselilla on iso jatkumo.

Kirjoita alle lyhyesti mistä kerroit ja erityisesti jos sinulla on konkreettisia parannusehdotuksia.

# kysely

Mitä ohjelmointi on - kysely (1p)

Vastaa kurssin jälkeisellä tiedolla kyselyyn: Mitä ohjelmointi on. Älä katso syksyn vastauksiasi ennen vastaamista, mutta vastaamisen jälkeen voit verrata syksyn vastauksiisi.

Linkin takana monet viittaukset kurssin syksyn 2021 kurssiin. Myös kyselyn lopussa oleva linkki palauttaa 2021 syksyn demoon.

VL: korjasikohan joku, koska mulla tuo menee 22 kyselyyn? Sen lopussa oli kyllä väärä linkki, sen korjasin.

09 Nov 22 (edited 09 Nov 22)
# kyselyOhj

Yliopiston virallinen kurssikysely (1p)

Tämän sähköposti ei ole vielä tullut, yritän pyytää digipalveluilta että se saataisiin liikkeelle viimeistään pe 11.11.2022 Onko linkki tullut?

Vastaa yliopiston teettämään viralliseen kurssikyselyyn (tästä olisi pitänyt tulla teille henkilökohtainen sähköposti 10.11.2022). Mikäli postia ei ole tullut, tutki vielä roskaposti ja mainokset (erityisesti hotmail-käyttäjät ja gmail-käyttäjät).

Hätävara: Jos roskistakaan ei löydy, voit vastata käyttäen julkista vastauslinkkiä.

Tähän vastaaminen on sikäli tärkeää, että meitä arvioidaan sekä opettajina että yksikköinä (vain?) näiden perusteella :-(

On tullut

13 Nov 22
# kyselyKurssi

Mallitentti

Tämä demo on pääasiassa mallitentti.

Tehtävien perässä olevat pisteet (6p jne.) tarkoittavat pisteitä "leikki"tentissä. Demopisteet lasketaan ja näytetään kuten ennenkin eli pääosin 1p/tehtävä.

Muista testit, kommentit ja hyvät ohjelmointikäytännöt myös niin "leikki"tentissä kuin oikeassakin.

Tehtävä 1-2*. Taulukot

Pääohjelma kutsuu aliohjelmaa (funktiota) EtsiToiseksiSuurin, joka etsii ja palauttaa parametrina viedyn kokonaislukutaulukon toiseksi suurimman alkion. Jos taulukossa ei ole riittävästi alkioita, palautetaan int.MinValue. Aliohjelma EI saa järjestää taulukkoa. Eikä käyttää muitakaan valmiita funktioita taulukon käsittelyyn.

Ennen aliohjelman kirjoittamista kirjoita EtsiToiseksiSuurin-funktiolle testit.

Mikä on toiseksi suurin? Mieti vaihtoehtoja ennen kuin avaat. Lue kuitenkin ennenkuin kirjoitat testit tai koodin!

Tämän jälkeen taulukko ja sen toiseksi suurin alkio tulostetaan. Taulukon tulostaminen hoidetaan omalla aliohjelmalla TulostaTaulukko. Tulostavia aliohjelmia ei tarvitse testata tällä kurssilla. (12 p)

Entä jos kuitenkin haluan testata tulostavan funktion?

Esimerkki:

  • taulukko: 3 1 -7 9 15 8

  • funktio EtsiToiseksiSuurin palauttaa arvon 9 (ei tulosta), jonka jälkeen aliohjelma TulostaTaulukko tulostaa täsmälleen seuraavasti:

    Taulukon 3 1 -7 9 15 8 toiseksi suurin alkio on 9

Tulostuksen pitää olla TÄSMÄLLEEN mallin kaltainen kustakin "testistä".

Vinkki 1

Vinkki 2

# taulukot

Mikä output?

VL: Se että ohjelman tuoste on se mitä pitää.

09 Nov 22 (edited 14 Nov 22)

Tämä ei anna käyttää StringBuilderia. Onko tarkoituksella? Herjaa: error CS0246: The type or namespace name 'StringBuilder' could not be found (are you missing a using directive or an assembly reference?)

VL: System.Test lisätty.

09 Nov 22 (edited 09 Nov 22)

En saa jostain syystä noita output pisteitä vaikka ohjelmani tulostaa tismalleen saman mitä pyydetään. Missä vika?

VL: laskeppa käsin tuosta sun tulosteesta mikä on kunkin taulukon 2. suurin luku.

näköjään se kynä ja paperia auttaa aina

13 Nov 22 (edited 13 Nov 22)

Testeistä tulee minulla compile erroria, mutta en millään huomaa missä vika. Mikä on pielessä testeissä?

VL: Et voi alustaa taulukkoa tuolla {...} -notaatiolla muuta kuin esittelyn yhteydessä. Mutta toimii

t = new int[]{...};
13 Nov 22 (edited 14 Nov 22)

Moi, mielestäni ohjelmani tulostaa oikeanlaisen lopputuloksen, mutta pisteet ovat toista mieltä. Osaatko auttaa löytämään ongelman?

VL: Sulla on välilyönti rivin alussa.

13 Nov 22 (edited 14 Nov 22)

Oljenkorsi 1:

Yleisiä virheitä

# testtest

Testien testaaminen 1 p

Seuraavissa testiajoissa oletetaan:

  • jos taulukossa kaksi suurinta (eli yhtäsuurta suurinta), niin toinen niistä on 2. suurin
  • jos ei riittävästi alkioita, palautetaan int.MinValue
# taunotests

Testi: "Ekaa ei huomioitu: pitäisi tulla Failed, tuli: Passed. Pisteitä: 0" - Missä menee vikaan? Haastava korjata, kun en näe, mihin ekaan tämä testin tarkistus viittaa. :)

VL: ekaan alkioon.

09 Nov 22 (edited 09 Nov 22)

Testien testaaminen sanoo "Oikea koodi: pitäisi tulla Passed, tuli: Failed. Pisteitä: -20" En ymmärrä mitä tällä tarkoitetaan. Tarkoittaako se, että ylemmän kohdan koodissa on jotakin vikaa? Ylempi tehtävä antaa kyllä oikeat vastaukset ja täydet pisteet tehtävästä.

VL: "Antaa oikeat vastaukset" perustuu sinin omiin testeihisi. Nyt kun tetsejä testaaan, niin täysin oikein toimivasta mallikoodista testisi väittävät että se ei toimi.

12 Nov 22 (edited 12 Nov 22)
# shell

Testien testaamiseksi paina yllä olevaa Tarkista testit-painiketta. Tässä testejäsi ajetaan joukkoa valmiiksi kirjoitettuja funktiota vastaan. Yksi funktiosta on täysin määritelmänmukaisesti toimiva ja siihen liittyvien testien pitäisi aina mennä läpi. Muut ovat erilaisia "viallisia" funtkioita joissa oleva vika pitäisi testeillä huomata, eli testien pitäisi paluttaa niistä Failure.

Ajon tuloksen tulee joukko rivejä tyyliin:

Vakiofunktio 4: pitäisi tulla Failure, tuli: Success. Pisteitä: 0

Tulkinta:

Vakiofunktio 4:          testiä on ajettu sellaista funktiota vastaan, joka
                         on aina return 4;   Yksikään testeistä ei huomaa 
                         että tällainen funktio ei ole oikein
pitäisi tulla  Failure:  eli testien ajamisen olisi pitänyt tuottaa
                         epäonnistuminen
tuli: Success            mutta testien ajaminen tuotti tuloksen että
                         testit menisivät läpi
Pisteitä: 0              onnistumisen määrä tällä testifunktiolla                         

Eli yksittäisen funktion testaaminen on onnistunut silloin, kun pitäisi tulla ja tuli jälkeiset tekstit ovat samat.

Tehtävä 3. Nimet

Pääohjelman taulukossa on nimiä muodossa

Ekaetunimi Tokaetunimi Kolmasetunimi Sukunimi

Sukunimi on aina mukana, etunimiä on vähintään yksi, enintään kolme. Tee aliohjelma TulostaNimet joka tulostaa nimet aakkosjärjestyksessä sukunimen mukaan (järjestämiseen saa käyttää C#:in valmiita työkaluja), muodossa

Sukunimi E.T.K.

Ohjelma siis tulostaa:

Taulukko sisältää nimet:

Kaarle Kustaa Korkki
Seppo Pentti Ville Kinnunen
Åke Aarnio
Ulla-Maija Wikholm-Seppänen

Nimet tulostettuna oikeassa muodossa ja aakkosjärjestyksessä:

Aarnio Å.
Kinnunen S.P.V.
Korkki K.K.
Wikholm-Seppänen U.

(6p)

# taulukot2

Miksi saan tästä 6p tehtävästä vain 0.4 pistettä vaikka kirjoittamani koodi tulostaa nimet tehtävänannon mukaisesti?

VL: oiskohan sulla yksi rivinvaihto liikaa?

Korjasin rivinvaihdon mutta edelleen 0.4 pistettä.

VL: sulla on ylimääräisiä välilyöntejä rivien lopuissa. Esim Notepad++:aan saa pluginin (ks menusta Plugins) Comapare. Tässä tapauksessa yhteen tabiin tuon mallin sisältö ja toiseen oman ohjelman tuloste ja sitten vertaamaan.

Totta joo. Korjasin tämän ja nyt pisteet on 1. Vielä puuttuu aika monta pistettä :/

VL: Siis demoissahan näistä ei tule kuin se piste/tehtävä. Tuo 6p on mitä vastaisi tentissä.

Ok, kiitos vinkistä!

11 Nov 22 (edited 11 Nov 22)

Tehtävä 4. Aliohjelmakutsu

Kerro omin sanoin ja esimerkein mitä tapahtuu aliohjelmakutsun yhteydessä. Käsittele funktiomaista aliohjelmaa, jossa on ainakin muutama parametri. Milloin mikäkin muuttuja syntyy ja milloin häviää. Mikä ero on aliohjelmakutsun kannalta perusmuuttujilla (bool, char, int, double) ja oliomuuttujilla. (6 p)

# Aliohjelmakutsu

Tehtävä 5. Poista

Kirjoita aliohjelma Poista(jono, kirjain), jolle seuraavat aliohjelman testitapaukset toimisivat. Tyypit joudut miettimään itse. Samoin miten <- käytännössä toteutetaan. Kirjoita aliohjelmalle testit ja pieni pääohjelma, jossa aliohjelman toimintaa testataan.(6 p.)

TYYPPI jono  <-  "kissa istuu puussa"; // alustetaan jono
Poista(jono, ' ') === 2; jono.ToString() === "kissaistuupuussa";
Poista(jono, 'u') === 4; jono.ToString() === "kissaistpssa";
Poista(jono, 'k') === 1; jono.ToString() === "issaistpssa";
Poista(jono, 'a') === 2; jono.ToString() === "issistpss";
Poista(jono, 's') === 5; jono.ToString() === "iitp";
Poista(jono, 'x') === 0; jono.ToString() === "iitp";
# v1
# poista

Tehtävä 6. Teoriakysymyksiä

Vastaa seuraaviin muutamien rivien selostuksella ja/tai esimerkillä (kerää max. 6p edestä osatehtäviä): (demossa kustakin saa 0.125 p, koska demoissa on tarkoitus tehdä ne kaikki).

# teoria1
# teoria2

Mitä teen väärin kun tämä tehtävä ei anna pisteitä?

VL: näköjään regexp ei tykkää alussa olevasta tyhjästä rivistä

12 Nov 22 (edited 12 Nov 22)
# teoria3

Hei! Nämä teoriakysymysdemot antavat 0.125 laittaa tähän sitten mitä tahansa bittejä. Onko mahdollista saada systeemi niin, että piste olisi merkki myös siitä, että demovastaus on oikein?

VL: ei jaksa kun jokainen kirjoittaa niin eri näköisen vastauksen että luotettavan tarkistimen tekeminen on tuskaa... Tai sitten pitäisi määritellä ihan tarkasti sen vastauksen muoto.

09 Nov 22 (edited 11 Nov 22)
# teoria4
# teoria5
# teoria6
# teoria7
# teoria8
# piirtaminen

Tehtävä 7*8: Piirtäminen

Seuraavassa on pala ohjelmasta, jossa on lista Object-tyyppisistä olioista. Object on tyyppi, joka voi olla mikä tahansa tietotyyppi C#:issa. Object listaan voidaan tallentaa niin merkkijonoja, StringBuildereitä kuin taulukoitakin. Ja paljon muutakin jos tarvitaan. Object-listan käsitte on sikäli hankalaa, että kun kohdalla oleva olio voi olla mitä tahansa, niin ei tiedetä miten sitä käsitellään. Siksi on valmiiksi tehty aliohjelma Tulosta, joka osaa tulostaa Object-listan. Eli tästä ongelmasta ei tarvitse välittää.

# piirtaminencs

Ohjelmassa on tulostettu lista kunkin operaation jälkeen. Tehtävänä on piirtää kuva jokaisesta kohdasta, jossa on kutsu Tulosta(). Kolme ensimmäistä vaihetta on piirretty sinulle valmiiksi omiin vastauslaatikoihinsa.
Voit niistä olevista kuvista kopioida asioita uusia vastauskuvia varten.

Pikkuinen 0 tai 1 alkukuvissa listan vasemmassa yläkulmassa kuvastaa listan alkioiden määrää (Count). Muista päivittää myös sitä.

Tehtävä on pitkä, mutta kopioimalla edellisen vaiheen ei seuraava vaihe tarvitse paljoa muutoksia.

Vinkki: Vaiheen 4 oliot[1] nuolen tulee osoittaa samaan paikkaan kuin luvut-viitemuuttuja (nuoli samaan paikkaan). Liian monella se nuoli osoittaa luvut-viitemuuttujaan, johon sen ei kuulu osoittaa.

Tässä tehtävässä ei ole tarkoitus tehdä "roskien keruuta" (Garpage Collection), eli nyt ei "uusiokäytetä" kekomuistiin (Heap) tulleita alueita.

Tämä harjoitustehtävä antaa vielä palautetta vääristä, mutta oikeassa tentissä alkupään vaiheet antavat palautetta, mutta palaute vähenee loppua kohti ja lopussa pitää itse tietää onko vastaus oikein vai ei. Välttämättä joka vaiheessa ei tentissä näytetä edes pisteitä ettei voi kokeilemalla saada oikeata vastausta.

# kettu

Ohjeita piirtämiseen:

  • Ref nimi = luo uuden viitemuuttujan kuvan

  • New $nro Sisältö = luo uuden kekomuistissa olevan olion kuvan, jolla on nimenä $nro ja sisältönä mainittu sisältö. Sisältö voi olla lainausmerkeissä tai ilman lainausmerkkejä.

  • nimi -> $nro = laitetaan viitemuuttujasta nimi viitenuoli kekoon luotuun olioon nimeltä $nro

  • new List $nro R4 = luo listan kuvan, jossa on viitteitä (Reference) 4 kpl.

  • $1.count = 2 = asettaa listan $1 lukumäärälaskurin arvoksi 2

  • new Array *$3 V3 2 3 4 = tekee taulukon jossa arvoja (Value) 3 kpl ja arvot perässä.

  • Ref oliot -> new List *$1 R4 = lyhenne lauseille:

    Ref oliot
    new List *$1 R4
    oliot -> $1

Lisää infoa piirtämisestä löytyy vars.js käyttöohjeesta.

# viitteet9-1a
# viitteet9-2a
# viitteet9-3a
# viitteet9-4
# viitteet9-5
# viitteet9-6
# viitteet9-7
# viitteet9-8

Lisätehtävät

Seuraavat lisätehtävät (Ville, B ja PP) eivät kuulu "tenttiin".

Ville

Tee Ville-tehtävät: 10.1, 10.2., 11.1-11.2, 11.3-11.4

Villen käyttöohjeet

Voit ottaa pohjaksi Visual Studioon tiedoston: Robots.cs ja kirjoittaa koodin siinä ja sitten kopioida sen Villeen. Samasta tiedostosta voit lukea myös robotin "käyttöohjeita".

Koodi voi olla esim:

rc.withdraw();
  for (int i=0; i<3; i++) rc.down();
  rc.grab(); 
# ville

B1-2. Salakirjoitus kuvaan

Tee ohjelma, joka kysyy käyttäjän nimen ja sitten ”salakirjoittaa” tämän valokuvaan niin, että jostakin kohti alkaen kuvaan sijoitetaan jotenkin RGB-arvojen tilalle nimestä tulevia ASCII-koodeja.

# v4
# salakirjoitus

PP

PP1

  1. Tee for-silmukka joka tulostaa seuraavaa:
0
3
6
9
12
15
# pp1for
  1. 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 9 on luku 19
# taulukointia
  1. Tee aliohjelma PalautaKirjain 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'
# paikka

PP2

  1. Täydennä aliohjelma LahinLuku niin, että sille kirjoitetut testit voidaan ajaa virheettä. Testausta.cs
# pp21
  1. Täydennä pääohjelma niin, että käytät apunasi kommenteissa mainittuja aliohjelmakutsuja. Tehtävässä ei tarvitse itse luoda yhtään aliohjelmaa. Aliohjelmia.cs
# pp22
  1. Tee aliohjelma joka vastaanottaa merkkijonon ja lisää siihen merkkijonon " on hauskaa". (Käytä StringBuilder-luokkaa)
# pp23
  1. Täydennä muuttujatyypit oikeiksi. Muuttujia.cs
# pp24

Omaa tuotantoa

Näihin tehtäviin voit palauttaa jonkin oman kurssin tämän hetken oppimistavoitteita vastaavia tehtäviä. Ei kuitenkaan enää jos vastaavat tehtävät on tehty edellä olevissa tehtävissä.

Nämä on tarkoitettu lähinnä niille, joilla ei ole mahdollisuutta tehdä varsinaisia tehtäviä ajallaan esimerkiksi kertausharjoitusten tai sairauden takia. Yleensä jos tulee ajoissa ennakoitavia esteitä, pitäisi perustehtäviä tehdä etukäteen.

Nämä arvostellaan manuaalisesti ja opiskelijan pitää ottaa yhteyttä kurssin opettajiin kun toivoo näitä arvosteltavan. Jos tehtävä on liian lähellä mallivastauksia, ei sitä arvostella tai voidaan pyytää muuttamaan vastaustaan erilaiseksi. Samoin jos tehtävä ei liity viikon oppimistavoitteisiin (vertaa esim tähtitehtävät). Luonnollisesti nuo kaksi ohjelmaa eivät saa olla samanlaisia. Laita ohjelman kommentteihin mitä perustehtäviä nämä korvaisivat ja mikä olisi oma peruste millekin pistemäärälle (se voi olla enemmänkin kuin 1p/tehtävä).

# oma1
# oma2
# tableForm_table

Please to interact with this component.

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