Harjoitustyö: virtuaalikone
|
|
- Albert Lehtinen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman kokoamisessa hyvää ohjelmointityyliä. Älä käytä rakenteita, joiden toimintaa ei ole määritetty. Käytä olio-orientoitunutta ohjelmointitapaa. Jaa ohjelma loogisesti lähdekoodi- ja otsikkotiedostoihin luennoilla opetetulla tavalla. Varsinaista roskienkeruuta ei tarvitse toteuttaa, mutta virtuaalikoneesi tulee olla ohjelman suorituksen aikana suljettavissa niin, että kaikki sen varaamat resurssit tulevat vapautetuiksi. Virtuaalikoneesi tulee olla kapseloitu siten, että niitä voi olla käynnissä useampi rinnakkain. Älä siis käytä globaaleja muuttujia muille kuin vakioille. Käytä esikäsittelijää vain debuggaukseen ja koostevahtien tekemiseen. Palauttaminen Kun olet valmis, pakkaa työsi lähdekoodi (joko.zip tai.tar.gz), ja lähetä se luennoitsijalle sähköpostilla. Paketin nimessä tulee lukea kaikkien tekijöiden nimet. Erillistä dokumentaatiota ei tarvita. Virtuaalikoneen kuvaus Virtuaalikone lukee skriptitiedoston ja aloittaa suorituksen kutsumalla metodia main. Tämän jälkeen suoritetaan skriptitiedostosta luettuja käskyjä, kunnes tulee virhe tai pääohjelmasta palataan. Seuraavaksi kuvataan skriptitiedoston rakenne ja Skriptitiedoston rakenne Skriptitiedostossa on kaksi osaa. Ensimmäinen osa sisältää skriptitiedoston käyttämien metodien määritykset, ja toinen osa sisältää skriptissä käytetyt merkkijonoliteraalit. Näiden osien välissä on neljä kertaa tavu 255 (0xFF). Kaikki skriptitiedostoissa käytettävät 8-bittistä suuremmat luvut ovat big endian-formaatissa, eli merkittävin tavu edellä. Metodit Jokaisen metodin alussa on 32-bittinen etumerkitön kokonaisluku, joka on metodin nimen indeksi merkkijonotaulukossa. Jos indeksi on 0xFFFFFFFF, tiedetään, että tämän jälkeen tulee merkkijonotaulukko. Nimen jälkeen seuraa kaksi etumerkitöntä 8-bittistä kokonaislukua, joista ensimmäinen on metodin paikallismuuttujien lukumäärä ja jälkimmäinen on metodin parametrien lukumäärä. Metodia kutsuttaessa luodaan muuttujapino (joka alustetaan tyhjäksi) sekä paikallismuuttujataulukko, jonka alkuun sijoitetaan metodin parametrit. Parametrien lukumäärän jälkeen seuraa 32-bittinen etumerkitön kokonaisluku, joka kertoo metodin koon. Tätä seuraa näin monta tavua käskydataa. Jokainen metodi palauttaa muuttujan.
2 Merkkijonot Merkkijonot tallennetaan 0-alkuiseen taulukkoon. Merkkijonojen järjestys skriptitiedostossa on tärkeä, koska niiden indeksejä käytetään sekä metodin nimien määritykseen että myöhemmin käskyjen parametreina. Jokainen merkkijono alkaa 32-bittisellä etumerkittömällä kokonaisluvulla, joka kertoo merkkijonon koon. Tätä seuraa näin monta tavua, jotka ovat merkkijonon sisältö. Merkkijono saa sisältää mitä tahansa merkkejä Muuttujat Virtuaalikone käsittelee kolmen tyyppistä muuttujaa. Nämä tyypit ovat luku, metodi ja olio. Kieli on dynaamisesti tyypitetty, eli muuttujan tyyppi määritetään silloin, kun muuttuja luodaan. Jokaisen muuttujan tyyppi on säilytettävä virtuaalikoneessa kunnes muuttuja poistuu käytöstä. Luku on 32- bittinen liukuluku. Metodi on osoitin metodiin, jota voidaan kutsua. Olio on osoitin NEW-käskyllä luotuun olioon tai NULL-arvoon. Oliot virtuaalikoneessa ovat assosiatiivisia taulukkoja (esim. std::map), joissa sekä avain- että datatyyppinä on muuttujatyyppi. Huomaa, että oliot itse assosioidaan vain osoitteen, ei sisällön, perusteella. Myös edellä mainitut merkkijonot ovat olioita. Merkkijonon merkit sijaitsevat oliossa indekseillä 0, 1, 2,... n, missä n on olion koko (eli avaindata-parien määrä). Merkkijonoja ei lopeteta nollaan. Merkkijonon tulostamiseksi täytyy näin ollen tehdä funktio, joka muuntaa olion C++-tyyppiseksi merkkijonoksi. Käskykanta Seuraavassa on virtuaalikoneen käskykanta. Käskyn perässä on sen numero. Huomaa, että nämä vakiot löytyvät tiedostostacommands.h. Aritmeettiset käskyt ADD (0): nosta kaksi lukua pinosta, lisää ne ja talleta tulos pinoon SUB (2): nosta kaksi lukua pinosta, vähennä ensin nostettu jälkimmäisestä ja talleta tulos pinoon MUL (1): nosta kaksi lukua pinosta, kerro ne ja talleta tulos pinoon DIV (3): nosta kaksi lukua pinosta, jaa toiseksi nostettu ensin nostetulla ja talleta tulos pinoon Hyppykäskyt Kaikkia hyppykäskyjä seuraa 32-bittinen etumerkillinen kokonaisluku, joka lisätään tavukoodiosoittimeen, jos hypyn ehto on voimassa. Lisäys lasketaan hyppykäskyä (johon sisältyy lisäys) seuraavaan käskyyn. CMPLT (4): hyppää, jos toiseksi nostettu luku on pienempi kuin ensin nostettu CMPLE (5): hyppää, jos toiseksi nostettu luku on pienempi tai yhtäsuuri kuin ensin nostettu CMPNE (6): hyppää, jos toiseksi nostettu luku on erisuuri kuin ensin nostettu CMPEQ (7): hyppää, jos toiseksi nostettu luku on yhtäsuuri kuin ensin nostettu CMPGE (8): hyppää, jos toiseksi nostettu luku on suurempi tai yhtäsuuri kuin ensin nostettu CMPGT (9): hyppää, jos toiseksi nostettu luku on suurempi kuin ensin nostettu
3 CMPNULL (10): hyppää, jos nostettu muuttuja on tyypiltään osoitin ja arvoltaan null CMPNONNULL (11): hyppää, jos nostettu muuttuja ei ole tyypiltään osoitin tai on erisuuri kuin null CMPPEQ (12): hyppää, jos nostetut kaksi muuttujaa ovat samat olio-osoittimet CMPPNE (13): hyppää, jos nostetut kaksi muuttujaa ovat eri olio-osoittimet GOTO (14): hyppää aina Pino- ja paikallismuuttujakäskyt POP (20): poista pinosta yksi muuttuja (mikä tahansa tyyppi) PUTLOCAL (18): Lue käskyjonosta yksi tavu. Tämä on paikallismuuttujan indeksi. Nosta pinosta muuttuja (mikä tahansa tyyppi), ja aseta se kyseisen paikallismuuttujan arvoksi. GETLOCAL (19): Lue käskyjonosta yksi tavu. Tämä on paikallismuuttujan indeksi. Lue kyseinen paikallismuuttuja (mikä tahansa tyyppi), ja talleta se pinoon. Oliokäskyt PUT (21): nosta pinosta tässä järjestyksessä kaksi muuttujaa (mitkä tahansa tyypit) ja osoitin. Aseta osoittimeen ensin nostettu muuttuja käyttäen toista muuttujaa avaimena. Jos ensin nostettu muuttuja on osoitin null, poista avain. GET (22): nosta pinosta tässä järjestyksessä muuttuja (minkä tahansa tyyppinen) ja olio. Hae osoittimesta käyttäen ensin nostettua muuttujaa avaimena, ja talleta se pinoon. Jos muuttujaa vastaavaa dataa ei löydy oliosta, talleta NULL. NEW (16): allokoi uusi olio ja talleta se pinoon. MAKENULL (23): Talleta NULL-osoitin pinoon. Metodikäskyt INVOKE (26): nosta pinosta metodi ja kutsu sitä. Metodin argumentit ovat kutsuttaessa pinossa siten, että pinon päällimmäinen muuttuja on metodin viimeinen argumentti. RETURN (17): nosta päällimmäinen muuttuja (mikä tahansa tyyppi) pinosta, palaa edelliseen funktioon ja työnnä muuttuja sen pinoon (huom. pino ei ole välttämättä tyhjä palattaessa) GETFUN (15): Lue merkkijono kuten CONSTSTR-käskyssä. Hae tätä merkkijonoa vastaava metodi, ja talleta se pinoon. Muut käskyt CONSTSTR (24): Lue 32-bittinen etumerkitön kokonaisluku pinosta. Tämä on indeksi merkkijonotaulukkoon. Hae tätä indeksiä vastaava merkkijono, ja talleta se pinoon. Jos merkkijonotaulukossa ei ole näin monta merkkijonoa, talleta osoitin NULL. CONST (25): Lue 32-bittinen liukuluku käskyjonosta ja talleta se pinoon. Näiden käskyjen lisäksi tarvitaan kolme erityismetodia: print, readline ja size. Print ottaa yhden parametrina yhden merkkijono-olion, joka tulostetaan std::cout-oliota käyttäen ruudulle. Print palauttaa NULL. Readline lukee std::cin-oliosta rivin tekstiä, luo siitä merkkijono-olion ja palauttaa sen. Size ottaa yhden olioparametrin ja palauttaa sen koon. Virhetilanteet Kaikkia virhetilanteita ei tarvitse tunnistaa. Esim. lähdekoodi voidaan olettaa sikäli oikein muodostetuksi, että siinä ei ole virheellisiä käskyjä, virheellisiä hyppyosoittimia tai muita
4 rakenteellisia virheitä. Myös merkkijonoliteraalien muokkaamista ei tarvitse huomioida. Seuraavat virheet pitää kuitenkin tunnistaa: NULL-osoittimeen tallettaminen tai siitä hakeminen Väärän tyypin nostaminen tai asettaminen pinosta. Jos esim. käskyn kuvauksessa on mainittu nosta osoitin", ja pinon päällimmäisenä on luku, tämä tuottaa virheen. Puuttuva metodi GETFUN-käskyssä (eli annettua merkkijonoa ei vastaa mikään ladattu metodi) Näissä tapauksissa tulee poistua siististi poikkeusta käyttäen ilman resurssivuotoja paikkaan, josta virtuaalikonetta on kutsuttu. Poikkeuksen tulee sisältää sen metodin nimi, jossa virhe tapahtui. Virtuaalikoneen testaaminen Voit testata ohjelmaa skriptitiedostoillahello.scr jadraw.scr.hello.scr yksinkertaisesti tulostaa tekstin "hello, world". draw.scr on yksinkertainen "piirto-ohjelma" (kirjoita "help"). Huomaa, että testien ajaminen ei automaattisesti takaa, että virtuaalikone toimii määrityksen mukaisesti. Ohjelmien mukana tulee lähdekoodit ja käskylistaukset. Näiden ohjelmien lisäksi voit imuroida yksinkertaisen (bisonilla ja flexillä luodun) kääntäjän, jolla voit kokeilla ohjelmiesi toimintaa. Tämän kääntäjän lähdekoodista ei kannata ottaa mallia. Kääntäjä on käännettävissä g++:lla tiedostoista comp.cpp, comp.tab.c ja lex.yy.c. Oheismateriaalina löytyy lisäksi ohjelma nimeltä reader, joka lukee skriptitiedoston läpi ja kirjoittaa sen sisällön (metodit, niiden sisältämät käskyt ja merkkijonot) tekstinä standardiulostuloon. Tähän kannattaa tutustua jos skriptitiedoston lukemisessa on ongelmia. Esimerkkejä Tiedoston hello.scr sisältö: Osoite Sisältö Selitys E F A FF FF FF FF E C 6C 6F 0A D E Metodin nimen indeksi merkkijonotaulukossa on 2 Ei paikallismuuttujia Ei parametreja Metodi on 14 tavun kokoinen Käsky 24 (STR), parametri 1 Käsky 15 (GETFUN), parametri 0 Käsky 26 (INVOKE) Käsky 20 (POP) Käsky 23 (NULL) Käsky 17 (RETURN) Tästä alkaa merkkijonotaulukko Merkkijonon 0 koko on 5 Merkkijono print Merkkijonon 1 koko on 6 Merkkijono hello (viimeisenä rivinvaihto) Merkkijonon 2 koko on 4 Merkkijono main 55 End of file Ei enää merkkijonoja
5 Skriptin hello kuvaus: Funktiot Name 2 -- Tämän funktion nimi on toinen merkkijono -- taulukossa Locals 0, params 0 -- Funktiolla ei ole paikallismuuttujia -- eikä parametreja Size Funktion koko on 14 tavua 0: STR 1 -- Lataa merkkijonotaulukosta merkkijono 1 -- (hello) pinon päälle 5: GETFUN 0 -- Lataa funktio, jonka nimi on merkkijono 0 -- (print) edellisen päälle 10: INVOKE -- Kutsu päällimmäisenä pinossa olevaa funktiota. -- Print-funktiolla on yksi parametri, joksi -- sijoitetaan pinossa alempana oleva arvo. 11: POP -- Hylkää print-funktion palautusarvo. Pino on -- tämän jälkeen tyhjä. 12: NULL -- Lataa null-osoitin pinon päälle. 13: RETURN -- Palauta pinossa päällimmäisenä oleva null. Merkkijonot 0: print 1: hello 2: main Kuvaus skriptindraw pätkästä (kommenteissa punaisella alkuperäinen koodi) -- circle_draw( circle, canvas ) -- { -- local x, y, xc, yc, x1, x2, y2, c, p, rs; Name Nimi circle_draw Locals 12, params paikallismuuttujaa, joista 2 parametreja Size rs = circle[ "r" ]; 0: GETLOCAL 0 -- Hae paikallismuuttuja 0 (circle) pinon päälle 2: STR 7 -- Hae merkkijono 7 ("r") pinon päälle 7: GET -- Hae paikallismuuttujasta 0 alkio "r" -- (pino on tämän jälkeen yhden kokoinen) 8: PUTLOCAL Sijoita paikallismuuttujaan 11, eli rs -- (pino on tämän jälkeen tyhjä) -- xc = circle[ "x" ]; 10: GETLOCAL 0 -- circle 12: STR 8 -- "x" 17: GET -- Pino: circle[ "x" ] 18: PUTLOCAL 4 -- xc -- x1 = xc - rs; 20: GETLOCAL 4 -- xc 22: GETLOCAL rs 24: SUB -- Vähennä paikallismuuttujasta neljä -- paikallismuuttuja 11 (pino on tämän jälkeen -- yhden kokoinen) 25: PUTLOCAL 6 -- x1 -- x2 = xc + rs;
6 27: GETLOCAL 4 -- xc 29: GETLOCAL rs 31: ADD -- Lisää paikallismuuttujaan neljä -- paikallismuuttuja 11 32: PUTLOCAL 7 -- x2 -- yc = circle[ "y" ]; 34: GETLOCAL 0 -- circle 36: STR 9 -- "y" 41: GET 42: PUTLOCAL 5 -- x2 -- y = yc - rs; 44: GETLOCAL 5 -- yc 46: GETLOCAL rs 48: SUB 49: PUTLOCAL 3 -- y -- y2 = yc + rs; 51: GETLOCAL 5 -- yc 53: GETLOCAL rs 55: ADD 56: PUTLOCAL 8 -- y2 -- c = circle[ "c" ]; 58: GETLOCAL 0 -- circle 60: STR 4 -- "c" 65: GET 66: PUTLOCAL 9 -- c -- rs = rs * rs; 68: GETLOCAL rs 70: GETLOCAL 11 72: MUL 73: PUTLOCAL p = canvas[ "put" ]; 75: GETLOCAL 1 -- canvas 77: STR 5 -- "put" 82: GET 83: PUTLOCAL p -- while ( y <= y2 ) -- { 85: GETLOCAL 3 -- y 87: GETLOCAL 8 -- y2 89: CMPGT Jos paikallismuuttuja 3 (y) on suurempi tai -- yhtä suuri kuin paikallismuuttuja 8 (y2), -- hyppää osoitteeseen 179 (eli silmukan loppuun) -- x = x1; 94: GETLOCAL 6 -- x 96: PUTLOCAL 2 -- x1 -- while ( x <= x2 ) -- { 98: GETLOCAL 2 -- x 100: GETLOCAL 7 -- x2 102: CMPGT if ( ( ( x - xc ) * ( x - xc ) + ( y - yc ) * ( y - yc ) ) <= rs ) { 107: GETLOCAL 2 -- x 109: GETLOCAL 4 -- xc 111: SUB 112: GETLOCAL 2 -- x 114: GETLOCAL 4 -- xc 116: SUB 117: MUL 118: GETLOCAL 3 -- y 120: GETLOCAL 5 -- yc 122: SUB
7 123: GETLOCAL 3 -- y 125: GETLOCAL 5 -- yc 127: SUB 128: MUL 129: ADD -- pinossa on nyt vain ( x - xc ) * ( x - xc ) + ( y - yc ) * ( y - yc ) 130: GETLOCAL rs 132: CMPGT Jos ensimmäinen suurempi kuin toinen, -- hyppää osoitteeseen p( canvas, x, y, c ); 137: GETLOCAL 1 -- canvas 139: GETLOCAL 2 -- x 141: GETLOCAL 3 -- y 143: GETLOCAL 9 -- c 145: GETLOCAL p 147: INVOKE -- Kutsu funktiota p parametreilla canvas, x, y, c 148: POP -- Hylkää palautusarvo -- } -- x = x + 1; 149: GETLOCAL 2 -- x 151: CONST 1 -- Sijoita lukuvakio 1 pinoon 156: ADD 157: PUTLOCAL 2 159: GOTO } //while ( x <= x2 ) -- y = y + 1; 164: GETLOCAL 3 -- y 166: CONST 1 171: ADD 172: PUTLOCAL 3 174: GOTO } //while ( y <= y2 ) 179: NULL 180: RETURN -- Palauta null
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
LisätiedotLOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100
Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
LisätiedotIDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit
IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
LisätiedotATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014
18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
LisätiedotOhjelmointiharjoituksia Arduino-ympäristössä
Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet
LisätiedotPythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b
Pythonin Kertaus Cse-a1130 Tietotekniikka Sovelluksissa Versio 0.01b Listat 1/2 esimerkkejä listan peruskäytöstä. > lista=['kala','kukko','kissa','koira'] ['kala','kukko','kissa','koira'] >lista.append('kana')
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotOlion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();
Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotOhjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotList-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen
1 List-luokan soveltamista List-luokan metodeja Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan metodeja List-luokan
LisätiedotAliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
LisätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 1.3.2010 1 / 36 Monikko Monikko (engl. tuple) muistuttaa listaa, mutta monikon sisältöä ei voi muuttaa sen jälkeen,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman
LisätiedotTutoriaaliläsnäoloista
Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus
LisätiedotMuuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)
VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava
LisätiedotOhjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.
Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat
LisätiedotSisältö. 22. Taulukot. Yleistä. Yleistä
Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotOhjelmoinnin jatkokurssi, kurssikoe 28.4.2014
Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.
LisätiedotJakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla
LisätiedotJakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotAlkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)
Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
LisätiedotMuuttujien roolit Kiintoarvo cin >> r;
Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,
LisätiedotSisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4
Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.
Lisätiedot1 Tehtävän kuvaus ja analysointi
Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.
LisätiedotTietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla
Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään
LisätiedotTaulukoiden käsittely Javalla
1 Taulukoiden käsittely Javalla Mikä taulukko on? Taulukon syntaksi Merkkijonotaulukko Lukutaulukko Taulukon kopiointi 1 Mikä taulukko on? Taulukko on rakenne, minne saadaan talteen usea saman tyyppinen
LisätiedotLuento 4 Aliohjelmien toteutus
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotListarakenne (ArrayList-luokka)
Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen
LisätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero
LisätiedotOperaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta
C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus
LisätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja
LisätiedotHarjoitus 3 (viikko 39)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien
LisätiedotTIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli
TIE-20306 PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli Seminaariesitelmä ryhmä 24 Markku Ahokas Jani Kuitti i SISÄLLYSLUETTELO 1. YLEISTÄ EIFFELISTÄ... 1 1.1 Historia ja tausta... 1 1.2
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
Lisätiedot5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma
5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma Every cloud has a silver line. - englantilainen sananlasku Tässä osiossa tärkeää: yksi- ja moniulotteinen taulukko Sisältö Yleistä Yksiulotteinen
LisätiedotTähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely
LisätiedotHarjoitus 2 (viikko 45)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista lisätä static-määre operaatioidesi otsikoihin, jotta ohjelmasi kääntyvät. Muista noudattaa hyvän
LisätiedotHarjoitus 4 (viikko 47)
Kaikki tämän harjoituksen tehtävät liittyvät joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Saa hyvän alun harjoitustyön tekoon, kun ratkaiset mahdollisimman monta tehtävää. Mikäli tehtävissä
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.3.2010 1 / 44 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotSisältö. 2. Taulukot. Yleistä. Yleistä
Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä
LisätiedotJavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia)
JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) Esim 5.1 laskujärjestys operaattorit var tulos = 5 + 4 * 12 / 4; document.write("5 + 4 * 12 / 4 laskutoimituksen tulos
LisätiedotLuento 5. Timo Savola. 28. huhtikuuta 2006
UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke
LisätiedotRakenteiset tietotyypit Moniulotteiset taulukot
C! Rakenteiset tietotyypit Moniulotteiset taulukot 22.2.2018 Agenda Rakenteiset tietotyypit Vilkaisu 6. kierroksen tehtäviin Moniulotteiset taulukot Esimerkki Seuraava luento to 8.3. Ilmoittautuminen ohjelmointikokeeseen
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
LisätiedotYleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.
2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä
LisätiedotInformaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006
TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotEsimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit
Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.
LisätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan
LisätiedotTässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).
Tehtävä 1: Metodit, listat, alkuluvut (4p) Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Alkuluvut ovat lukuja, jotka ovat suurempia kuin yksi ja jotka ovat jaollisia
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 12. huhtikuuta 2019 Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä. Yksi A4-kokoinen lunttilappu
LisätiedotEhto- ja toistolauseet
Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden
Lisätiedot13 Operaattoreiden ylimäärittelyjä
248 13 C++-kielessä voidaan operaattoreita ylimäärittää. Ylimääriteltävää operaattoria voidaan pitää ikäänkuin metodina, joka esitellään luokan esittelyssä ja määritellään luokan ulkopuolella kuten metoditkin.
LisätiedotPythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python
Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat
Lisätiedot1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )
Tehtävä do while + Viikko 1 Tehtävä 27. Salasana (MOOC) Viikko 1 Tehtävä 28. Lämpötilat (MOOC) Tehdään ohjelma, joka kysyy käyttäjältä lukua. Luku kerrotaan aina seuraavalla käyttäjän antamalla luvulla
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 28.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 28.9.2015 1 / 16 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotLuento 4 (verkkoluento 4) Aliohjelmien toteutus
Luento 4 (verkkoluento 4) Aliohjelmien toteutus Tyypit, Parametrit Aktivointitietue (AT) AT-pino, rekursio 1 Aliohjelmatyypit Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri Parametrit
LisätiedotLoppukurssin järjestelyt
C! Loppukurssin järjestelyt 29.3.2018 Ohjelmassa Yhteenvetoa palautteesta Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Kysyttävää / kerrattavaa 10-kierroksen asioista? Aikatauluista 10. kierroksen
LisätiedotC-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.
Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen
LisätiedotLuento 4 (verkkoluento 4) Aliohjelmien toteutus
Luento 4 (verkkoluento 4) Aliohjelmien toteutus Tyypit, Parametrit Aktivaatiotietue (AT) AT-pino, rekursio 1 Aliohjelmatyypit Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri Parametrit
LisätiedotTaulukot. Jukka Harju, Jukka Juslin 2006 1
Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotVertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004
Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;
LisätiedotHarjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)
Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla
LisätiedotSisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä
Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.
LisätiedotHarjoitus 1 -- Ratkaisut
Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast
LisätiedotMerkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:
Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotSisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä
Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 4: Symbolit, derivojaesimerkki, kierroksen 1 ratkaisut (mm. SICP 2.32.3.2) Riku Saikkonen 1. 11. 2011 Sisältö 1 Symbolit ja sulkulausekkeet 2 Lisää Schemestä:
Lisätiedot815338A Ohjelmointikielten periaatteet 2014-2015
815338A Ohjelmointikielten periaatteet 2014-2015 X Skriptiohjelmointi Sisältö 1. Johdanto 2. Skriptikielten yleispiirteitä 3. Python 815338A Ohjelmointikielten periaatteet, Skriptiohjelmointi 2 X.1 Johdanto
Lisätiedot12. Näppäimistöltä lukeminen 12.1
12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.
LisätiedotOlio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
LisätiedotKoottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.
2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet
LisätiedotC-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys
Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,
LisätiedotMonipuolinen esimerkki
Monipuolinen esimerkki Lopuksi monipuolinen esimerkki, jossa ohjelmisto koostuu pääohjelmasta ja kahdesta aliohjelmasta, joista toinen on proseduuri ja toinen funktio. Funktio Sqrt(int n): int Sqrt(int
LisätiedotOhjelmointikieli TIE Principles of Programming Languages Syksy 2017 Ryhmä 19
Ohjelmointikieli TIE-20306 Principles of Programming Languages Syksy 2017 Ryhmä 19 Juho Kärnä Ville Mäntysaari 1. Johdanto D on yleiskäyttöinen, strukturoitu, staattisesti tyypitetty, käännettävä ohjelmointikieli
LisätiedotLoppukurssin järjestelyt C:n edistyneet piirteet
C! Loppukurssin järjestelyt C:n edistyneet piirteet 30.3.2017 Ohjelmassa Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Esikääntäjä Parametrilistat Funktio-osoittimet Kunniamainintoja Kuura
Lisätiedot