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

Demo 11

Huom deadline vasta tiistaina 3.4. klo 11:59.

Demotilaisuus pidetään keskiviikkona. Paikka saattaa vielä muuttua---seuraa Korppia.

PP7, Perjantai 24.3.

PP-tehtävät (näistä saa pisteitä vain käymällä perjantain PP-ryhmässä. Tulevan perjantain PP-tehtävät jaetaan perjantaina.) Mitä ovat PP-tehtävät?

Harjoitustentti

Tehtävien perässä olevat pisteet (6 p. jne.) tarkoittavat pisteitä "harjoitustentissä". Tätä demokertaa silmällä pitäen laskentatapa kuten ennenkin, eli 1 pistettä / tehtävä (tai 2 pistettä tehtävässä 1-2).

Kurssilla opitut dokumentointi- ja ohjelmointikäytänteet koskevat tätä harjoitustenttiä kuin myös oikeatakin tenttiä. Dokumentaation puuttumisesta tai ohjelmointikäytänteiden noudattamatta jättämisestä sakotetaan.

Tämän harjoitustentin tarkoitus on simuloida tenttitilannetta, joten aluksi on hyödyllistä kirjoittaa vastaukset kynällä ja paperilla. Tallenna sitten paperille kirjoitettu vastaus TIMiin juuri niin kuin sen paperille kirjoitit. Tämän jälkeen voit sitten tehdä tehtävän loppuun Visual Studiossa korjata mahdolliset virheet, ja palauttaa korjatun vastauksen TIMiin.

Oikeassa tentissä ei ole Ville-, PP- tai Gurutehtäviä.

Ajankäyttösi tällä viikolla

Tunnit resetoitu 12.3. klo 14. Laitathan tuntisi uudestaan.

Työtuntien kirjaamisesta saa 0.5 demopistettä. Aseta pisteesi Set Custom Points -toiminnolla.

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 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.

# d11tunnit

Tehtävä 1-2*

Aseta pisteesi Set Custom Points -toiminnolla väliltä 0 -- 2.

Tee funktio ToiseksiSuurin, joka ottaa parametrina kokonaislukutaulukon. Funktio etsii ja palauttaa tuon taulukon toiseksi suurimman alkion. Funktio EI saa järjestää taulukkoa. Mitä huomionarvoisia erikoistapauksia
voi olla? Määrittele miten ne käsitellään.

Luokka ja pääohjelma on kirjoitettu valmiiksi, mutta ne ovat piilossa.

Esimerkki:

  • Parametrina taulukko: 3, 1, -7, 9, 15, 8
  • Funktio palauttaa arvon 9

Jos haluat kirjoittaa Comtest-testejä, niin huomaa että luokan nimi on D11_T1. Alla esimerkki / muistutus Comtest-testien syntaksista.

/// <example>
/// <pre name="test">
/// D11_T1.ToiseksiSuurin(new int[] {}) === 0;
/// </pre>
/// </example>
# taulukot

Onkohan tuossa testauksessa virhe, jos suurimpia lukuja on kaksi yhtä suurta, antaa ilmoituksen: ---- Taulukko: 14, 10, 11, -1, 14, -4, 8 Toiseksi suurin piti olla 14 Sinun ratkaisusi antaa 11 ************* Kuitenkin muilla luvuilla antaa oikein: ---- Taulukko: 12, 0, 12, 3, 9, -3, 13 Toiseksi suurin piti olla 12 Sinun ratkaisusi antaa 12

19 Mar 18 (edited 19 Mar 18)

Huomasin saman: Taulukko: 11, 2, 3, 1, 12, 12, -4 Toiseksi suurin piti olla 12 Sinun ratkaisusi antaa 11

21 Mar 18

Miksiköhän ComTest ei toimi tyhjällä taulukolla? Ei toimi vaikka kopioisi tuon malli ComTestin ohjelmaan

26 Mar 18

Ei saa käyttää mitään apuja taulokon käsittelyssä näköjään. Ei edes luvut. luvut.Max ja luvut.ElementAt-käskyjä. Noista ainakin valittaa.

27 Mar 18

Ihan selvästi aja-kohdan comtestit rikki. Omat testit menee hyvin läpi ja jos on 2 samaa lukua jotka täyttää toiseksi suurimman ehdon niistä palauttaa ensimmäisen. Vaikka sitä ei tässä määritelty pitääkö eka osuma palauttaa.

28 Mar 18

"Toiseksi suurin piti olla 4 Sinun ratkaisusi antaa 4" Asia selvä...

29 Mar 18

Hi, can't understand what is wrong in my solution, returns in any cases the same as required

01 Apr 18

Kokoajan tulee Compile error viestejä.Mistä johtuu??

03 Apr 18

Tehtävä 3

Tee myös using-lauseet, luokka ja pääohjelma omatoimisesti tähän tehtävään. Pääohjelman voit jättää tyhjäksi tai sitten laittaa sinne yhden ao. funktion kutsun.

Bussi liikkuu kaupungissa ja pysäkin kohdalla ottaa kyytiin ja pudottaa matkustajia pois.

Tee funktio Matkustajia, jolla on parametrit

int matkustajiaAluksi, joka kertoo kuinka monta matkustajaa bussissa on ennen kuin yhdelläkään pysäkillä on käyty,

List<int[]> pysakit, joka on lista bussipysäkeistä. Kukin pysäkki on kokonaislukutaulukko (int[]), jonka ensimmäinen alkio kertoo kuinka monta matkustajaa tulee kyytiin, ja toinen alkio kertoo kuinka monta matkustajaa poistuu bussista.

Funktio palauttaa kuinka monta matkustajaa bussissa on, kun kaikki pysäkit on käyty läpi. Huomaa, että bussissa olevien matkustajien määrä ei saa missään vaiheessa mennä alle nollan. Myöskään paluuarvo ei saa olla nollaa pienempi.

Laita pisteesi Set Custom points -toiminnolla.

# bussipysakit

Tehtävä 4

Kerro omin sanoin ja esimerkein mitä tapahtuu funktiokutsun yhteydessä. Käsittele funktiota jossa on kaksi parametria. Milloin mikäkin muuttuja syntyy ja milloin häviää. Mikä ero on funktiokutsun kannalta perusmuuttujilla (bool, char, int, double) ja oliomuuttujilla. (6 p)

# Aliohjelmakutsu

Tehtävä 5

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

Tähän pitää siis palauttaa koko ohjelma. Pelkkä pääohjelma ja aliohjelma ei riitä.

22 Mar 18
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";
# poista

Tehtävä 6

Vastaa seuraaviin muutamien rivien selostuksella ja/tai esimerkillä (kerää enintään 6 pisteen edestä osatehtäviä):

a) Miten C#-ohjelma käännetään ja ajetaan komentoriviltä? Entä jos ohjelma tarvitsee jonkin kirjaston avukseen? (2 p.)

# teoria1

b) Laske (laskutoimitukset mukaan) seuraavien binäärilukujen arvo 10-järjestelmän lukuna. Mitä oletuksia teit? (2 p.)

0100 0101      0011 1111     1000 0001
# teoria2

c) Oletetaan 8-bittisille negatiivisille kokonaisluvuille 2-komplementtiesitys. Mikä olisi luvun miinus viisi (-5) bittiesitys tällaisessa järjestelmässä. (1 p.)

# teoria3

d) Binäärinen desimaaliluku 1001.1110 10-järjestelmän lukuna. (1 p.)

# teoria4

e) Pohdi missä mielessä List on parempi kuin tavallinen taulukko. Missä mielessä huonompi? (2 p.)

# teoria5

f) Mikä ero on String ja StringBuilder -luokilla? (1 p.)

# teoria6

g) Paljonko on lauseke 34/7 C#:ssa?
Paljonko on 34%7 C#:ssa. (1 p.)

# teoria7

h) Mitä tarkoittaa että olio "muuttuu roskaksi"? (1 p.)

# teoria8

V1

Tee Ville-tehtävät: 10.1, 10.2. (Ville-tehtäviä ei oteta lukuun tenttipisteissä, ne ovat vain tässä lisäharjoituksen vuoksi.)

Muista: Villen käyttöohje

# villev1

B1-3

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. Vinkki: Jypelin metodit Image.GetDataUInt(), Image.SetData() ja Color.PackRGB() ovat avuksi.

# salakirjoitus

G1-2

Euler problem 206. Laskun pitää mennä alle minuuttiin. Yksi lisäpiste jos lasku menee "erittäin nopeasti" (luokkaa millisekunteja.) En takaa että saan itse menemään tuota super-nopeasti :-).

# euler206

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