The referenced paragraph does not exist.

Demo 11

Huomaa, että viikko 12 (21.3. - 28.3.) on JY:ssa opetuksen pääsiäistauko, joten mitään demo- tai pääteohjausryhmiä ei järjestetä kyseisen ajanjakson aikana. Demo 11:n pääteohjaukset järjestetään normaalisti viikolla 13, torstaina 31.3. - perjantaina 1.4.

PP7, Perjantai 1.4.

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

Tehtävä 1-2

Tee ohjelma: Pääohjelma kutsuu funktiota, 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.

  • Esimerkiksi taulukko: 3, 1, -7, 9, 15, 8
  • Funktio palauttaa arvon 9 (ei tulosta)
  • ja tulostaa:
Taulukon 3 1 -7 9 15 8 toiseksi suurin alkio on 9

Taulukon tulostaminen hoidetaan omalla aliohjelmalla joka pitää myös tehdä (laita nimeksi vaikka TulostaTaulukko, silloin aliohjelma saa tulostaa). Ohjelmassa saa käyttää vain pääohjelman paikallisia muuttujia, aliohjelman parametrimuuttujia ja aliohjelmien paikallisia muuttujia. (12 p)

# taulukot

Tarkoitetaanko tässä sitä että tuo EtsiToiseksiSuurin-funktio tulostaa myös tuon pätkän? Vai että se tehdään erillisellä aliohjelmalla? Hieman epäselvä ohjeistus

02 Apr 16

TulostaTaulukko tulostaa taulukon alkiot (ei muuta), ja ToiseksiSuurin palauttaa luvun (ei tulosta mitään). Kaikki muu tulostaminen tapahtuu Main-pääohjelmassa.

02 Apr 16

Tämä vielä hieman epäselvä. Käsittääkseni Main-pääohjelma ei tulosta mitään? Mistä tuo "Taulukon ........ toiseksi suurin alkio on ...." teksti pitäisi tulostaa?

03 Apr 16

Tarkoitin että Console.WriteLine-lauseita saa olla vain Mainissa, ja sitten TulostaTaulukko-aliohjelmassa.

03 Apr 16

Tehtävä 3

Ohjelma lukee riveittäin käyttäjän antamaa nimitietoa muodossa

Ekaetunimi Tokaetunimi Kolmasetunimi Sukunimi

Sukunimi on aina mukana, etunimiä annetaan vähintään yksi, enintään kolme. Syöttö lopetetaan antamalla pelkkä Enter, jolloin ohjelma tulostaa nimet aakkostettuna muodossa

Sukunimi E.T.K.

Esimerkki:

Anna nimiä muodossa Etunimet Sukunimi, 
yksi nimi rivilleen, pelkkä Enter lopettaa. 

> Kaarle Kustaa Korkki
> Seppo Pentti Ville Kinnunen
> Åke Aarnio
> Ulla-Maija Wikholm-Seppänen
> [Enter]
 
Annoit nimet:
Aarnio Å.
Kinnunen S.P.V.
Korkki K.K.
Wikholm-Seppänen U.

Käyttäjältä voit lukea merkkijonon

 string jono;
 jono = Console.ReadLine();

(6 p)

# taulukot2

TODO: Main ei vastaa tehtävää. /AJL

04 Apr 16

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

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

Eikö kahden koepisteen tehtävistä pitäisi tulla 1.0/3 ja yhden pisteen 1.0/6 pistettä, jos koepisteitä saa kerätä korkeintaan 6.

23 Mar 16 (edited 23 Mar 16)

Kyllä. Kiitos huomiosta. Nyt korjattu. /AJL

29 Mar 16
# teoria2

Kahden pisteen tehtävät ok, mutta yhden pisteen tehtävistä saa edelleen 0.125 eikä 0.1667

30 Mar 16

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

Onko tehtävästä saatavissa 0-2 vai 0-3 pistettä? Aikaa tehtävän laskemiseen läppärillä menee ~ 240 ms.

24 Mar 16 (edited 24 Mar 16)

Kolme enintään. Nyt korjattu. /AJL

29 Mar 16

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