Principles of Programming Languages Introduction to Lua Ryhmä 10
|
|
- Mika Järvinen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Principles of Programming Languages Introduction to Lua Ryhmä 10
2 1 Johdanto Lua (lausutaan /ˈlu.a/ ja tarkoittaa kuuta Portugalin kielellä) on Brasiliassa vuonna 1993 kehitetty skriptikieli, joka erikoistuu sulautettavuuteen ja suorituskykyyn. Sen on suunnitellut ja toteuttanut Pontifical Catholic University of Rio de Janeiro, jossa sitä edelleen ylläpidetään. Tässä kirjoitelmassa käymme läpi Luan perusominaisuudet. Luvussa kaksi esitellään joitakin tunnettuja Luan käyttökohteita. Luku kolme puolestaan keskittyy kielen toteutukseen ja teknisiin ominaisuuksiin. Lopuksi luvussa neljä esitellään kielen syntaksia. 2 Käyttökohteet Lualla on useita käyttökohteita; aina pelien laajennoksista autoihin. Vaikka käyttökohteita on useita, on suurin paino peleissä sekä erinäisten ohjelmien liitännäisissä. Taulussa 2.1 on listattuna eri kategorioita, missä Luaa on käytetty. Taulukko 2.1 Luan käyttökohteita Kategoria Ohjelmat Autot Tietokannat/Tietokantojen hallinta Pelimoottorit Pelit Kuvien käsittely CMS Verkon diagnostiikka Serverit Missä Adobe Lightroom Mercedes-Benz käyttää Luaa useassa automallissa MySQL Proxy ja MySQL Workbench Aleph One, LÖVE, CryEngine Total War, World of Warcraft GIMP MediaWiki Wireshark Apache, nginx, lighttpd Erityisesti pelisovelluksissa Luan käyttöä perustellaan helpolla muokattavuudella ja prototypioinnilla. Se myös mahdollistaa käyttäjien itsensä tekemät muokkaukset pelien käyttöliittymiin (World of Warcraft) tai jopa uuden sisällön luomisen peliin (Garry s Mod). 3 Tekniset ominaisuudet Lua on skriptikieli, joka tukee useaa ohjelmointiparadigmaa kuten olio-ohjelmointi, funktionaalinen ohjelmointi ja proseduraalinen ohjelmointi. Lua-koodia kirjoitetaan dynaamisesti ja sitä ajetaan Javan tapaan kääntämällä kirjoitettua koodia tavukoodi käskyiksi, tai ns. toimintakoodiksi, jota prosessoidaan erillisessä virtuaalikoneessa. Toisin kuin Javassa, Luan virtuaalikone ei ole pino-pohjainen vaan rekisteripohjainen. Lua on toteutettu C-kirjastoksi ja täten se on helppo "sulauttaa" mukaan toiseen koodiin. Tämän ominaisuuden ansiosta Lua on määritelty laajennus kieleksi (extension language).
3 3.1 Tyypit ja ympäristöt Luan tyypit ovat dynaamisia. Tämä tarkoittaa, että itse muuttujilla ei ole tyyppiä mutta arvoilla on. Kaikki arvot ovat ns. First-Class arvoja eli kaikkia arvoja voidaan välittää parametrina, sijoittaa muuttujiin ja palauttaa paluuarvona. Kielessä on kahdeksan perustyyppiä: nil, boolean, number, string, function, userdata, thread ja table. Nil on Luassa sama kuin monessa muussa kielessä null eli sillä kuvataan arvon puuttumista. Nil tyyppi voi saada arvokseen ainoastaan yhden arvon: nil. Boolean kuvaa totuusarvoa ja voi saada arvot true ja false; nil ja false tekevät ehdosta epätoden, muut arvot toden. Number tyyppi voi saada arvokseen niin kokonaislukuja kuin liukulukuja. String tyyppi kuvastaa kahdeksen bittistä muuttumatonta merkkijonoa. Function tyyppi voi saada arvokseen joko Lualla kirjoitetun funktion tai C:llä kirjoitetun funktion. Userdata kuvaa raakaa muistilohkoa. Tämä voi olla joko oikea muistilohko tai C osoitin arvo. Thread nimensä mukaisesti kuvaa yksittäisiä säikeitä. Näiden avulla voidaan toteuttaa rinnakkaisuutta, josta lisää kappaleessa 3.5. Table tyyppi kuvaa tauluja, joita voi indeksoida millä tahansa arvolla paitsi nil. Luassa taulut ovat ainoa tietorakenne mekanismi. Taulujen avulla kuvataan kaikki tarvittava kuten esimerkiksi normaalit taulut, graafit, puut sekä sekvenssit. Luassa on käytössä ympäristöt. Jokainen muuttuja, joka määritellään, lisätään tauluun nimeltä _ENV. _ENV taulut ovat sen hetkisen näkyvyysalueen muuttujat. Koko ohjelman kattavat globaalit muuttujat lisätään _G tauluun. 3.2 Virheidenhallinta Virheidenkäsittely on Luassa toteutettu seuraavasti: isäntäohjelma kutsuu C-koodin avulla funktiota Lua kirjastosta ja mikäli virhe tapahtuu, kontrolli palautetaan isäntäohjelmalle, joka voi tehdä tarvittavat toimenpiteet saadulle virheelle. Luassa on erillinen error funktio, jota kutsumalla voidaan itse generoida virhe ja virhe teksti. Virheitä voi ottaa kiinni käyttämä funktioita pcall ja xpcall. Luan itsensä generoimat virheet ovat aina merkkijonoja, jotka sisältävät virheen syyn. 3.3 Metataulut Luassa jokaisella arvolla voi olla metataulu. Nämä taulut ovat normaaleja tauluja, joissa määritellään arvon käyttäytyminen halutuissa operaatiossa. Näitä metataulun operaatioita kutsutaan metametodeiksi. Metametodien aivan/indeksi taulussa on string tyyppinen kuvaus tapahtumasta, jonka alussa on kaksi alaviivaa; esim. yhteelasku operaatio add. Metataulujen muokattavat metametodit on esitetty taulussa 3.1.
4 Taulukko 3.1 Metataulun metametodit. Avain Operaatio sub Vähennys (-) operaatio mul Kerto (*) operaatio div Jako (/) operaatio mod Modulo (%) operaatio pow Eksponentti (^) operaatio unm Negaatio (unaari -) operaatio idiv Lattia jako (//) operaatio band Bitwise AND (&) operaatio bor Bitwise OR ( ) operaatio bxor Bitwise XOR (binääri ~) operaatio bnot Bitwise NOT (unaari ~) operaatio shl Bitwise left shift (<<) operaatio shr Bitwise right shift (>>) operaatio concat Ketjutus (..) operaatio len Pituus (#) operaatio eq Yhtäsuuruus (==) operaatio lt Pienempi kuin (<) operaatio le Pienempi tai yhtäsuuri kuin (<=) operaatio index Indeksointi määritys - taulu[avain] newindex Indeksointi sijoitus - taulu[avain] = arvo call Call-operaatio - func(args) Taulukon 3.1 operaatiot ovat perusoperaatioita ja koska metataulut ovat normaaleja tauluja, voi ne sisältää muutakin tietoa, esimerkiksi roskienkeruuseen liittyvää. Metatauluja ja metametodeja voidaan hyvin verrata C++:n operaattorien uudelleenmäärittelyyn (Operator overloading). Vaikka toteutus on huomattavasti erilainen, on ajatus sama: kustomoidaan operaattorin toimintaa määrittelemällä sen toteuttava toiminto itse. 3.4 Roskienkeruu Luassa on käytössä automaattinen muistin hallinta. Käyttäjän ei tarvitse huolehtia muistin varaamisesta ja ennen kaikkea muistin vapauttamisesta. Tämä on toteutettu siten, että Lua ajaa roskienkeruuta, joka kerää ja poistaa ns. kuolleet objektit. Käyttäjällä on mahdollisuus myös vaikuttaa roskienkeräykseen säätämällä arvoja garbage-collector pause ja garbage-collector step multiplier. Näiden arvojen avulla määrätään kauanko roskienkeruu odottaa ennen seuraavaa sykliä sekä keruun nopeutta. Kuten aikaisemmin on mainittu, roskienkeruuta koskevia metametodeja voidaan asettaa tauluihin. Tällöin tulee objektit merkitä viimestelyyn. Tämä toteutetaan laittamalla metatauluun indeksi gc. Indeksiä vastaavan metametodin tulee olla funktio tai muutoin Lua sivuuttaa ko. kentän.
5 Roskienkeruu ei huomio heikkoja viittauksia. Täten objekti, johon on vain heikkoja viittauksia, kerätään roskiin. 3.5 Rinnakkaisuus Rinnakkaisuus on tuettuna Luassa. Luassa on taulu coroutine, jonka avulla voidaan luoda uusia thread tyypin objekteja. Nämä vastaavat suoritussäiettä, jonka suoritus päättyy kahdella tavalla: joko suorittamalla komennot loppuun tai manuaalisesti kutsumalla yield funktiota. Luan rinnakkaisuutta voi kontrolloida myös C-rajapinnan kautta. Se sisältää funktiot lua_newthread, lua_resume ja lua_yield, joiden avulla voidaan suoraan ohjata yksittäisen säikeen toimintaa. Rajapinnan toiminnasta kerrotaan lisää seuravaassa luvussa. 3.6 C-rajapinta Lua on laajennos kieli (extension language). Jotta muut kielet ja ohjelmat voisivat käyttää Luaa, on sitä varten tehty C-rajapinta. C-rajapinta on oikeastaan vain joukko C funktioita isäntäohjelmalle. Näiden funktioiden avulla isäntäohjelma pystyy kutsumaan Luaa. Monen muun C kirjaston tavoin, Lua rajapinta ei tee tarkistuksia annetuille parametreille vaan tämä on kehittäjän omissa käsissä. Kaikki arvot C:stä ja C:hen menee virtuaalisen pinon kautta. Pinon jokainen elementti kuvastaa Luan arvoa (nil, string jne). Kun C funktiota kutsutaan, luodaan uusi pino, joka on aivan erillinen muista pinoista. Pino sisältää aluksi kaikki C funktiolle tarkoitetut parametrit ja lopuksi myös C funktion palauttaman arvon. Rajapintaa käytettäessä kehittäjän on huomioitava, että käytetty pino on eheä. Tällä tarkoitetaan sitä, että on kehittäjän vastuulla tarkastaa, että pinossa on tarpeeksi tilaa puskea uutta tietoa. Kutsuttaessa C funktiota Lua luo pinon, jossa on 20 ylimääräistä elementtiä. 4 Syntaksi Perussyntaksi on Luassa hyvin C:n tapainen. Käännettävää koodia kutsutaan nimellä chunk, joka koostuu listasta sekventiaalisesti suoritettavia käskyjä, josta käytetään nimitystä block. Nämä kaksi määritelmää on esitetty BNF-notaatioissa 4.1 ja 4.2. Notaatiossa 4.2 stat tarkoittaa käskyä ja {stat} käskyistä koostuvaa listaa. chunk ::= block (4.1) block ::= {stat} (4.2) exp ::= nil false true Numeral LiteralString (4.3)... functiondef prefixexp tableconstructor exp binop exp unop exp
6 Käskyt voivat koostua esimerkiksi muuttujien määrittelyistä, funktiokutsuista, erilaisista kontrollirakenteista tai sijoitusoperaatioista, ja ne erotetaan toisistaan rivinvaihdolla. Käskyt voivat sisältää erilaisia lausekkeita, jotka kuvaavat esimerkiksi totuusarvoa, kokonaislukua, tai merkkijonoa. Peruslausekkeet on määritelty Luan dokumentaatiossa notaatiolla 4.3. Erilaisten operaatiolausekkeiden määrittelyyn palataan luvussa Muuttujat Luan muuttujat jaetaan paikallisiin ja globaaleihin muuttujiin. Globaalit muuttujat eivät tarvitse erillistä määrittelyä, vaan niihin voidaan vapaasti viitata koodissa. Paikalliset muuttujat puolestaan tarvitsevat erillisen määrittelykäskyn. Kolmanneksi muuttujatyypiksi luetaan taulukoiden kentät, joita myös tavalliset muuttujat käytännössä ovat (luku 3.1). Muuttujan määrittely on ilmaistu notaatiossa 4.4, jossa Name on muuttujan tunniste, ja kaksi jälkimmäistä määrittelyä ilmaisevat kaksi vaihtoehtoista tapaa käsitellä taulukoiden kenttiä. var ::= Name prefixexp [ exp ] prefixexp. Name (4.4) stat ::= local Name [ = exp ] (4.5) Paikallinen muuttuja määritellään antamalla sen tunniste notaation 4.5 mukaisesti. Käskyn avainsanalla local muttuja sidotaan käskyn näkyvyysalueelle paikalliseksi muuttujaksi. Näkyvyysalueen ulkopuolelta tunnisteeseen Name tehdyt viittaukset osoittavat kyseisen tunnisteen globaaliin muuttujaan, kun taas näkyvyysalueen sisällä tehdyt viittaukset osoittavat määriteltyyn paikalliseen muuttujaan. Sama paikallinen muuttuja voidaan myös määritellä useaan kertaan sisäkkäisillä näkyvyysalueilla. Tässä tapauksessa muuttujaan tehdyt viittaukset osoittavat jokaisella näkyvyysalueella aina lähimpään ulompaan muuttujaan, eivätkä sisempien muuttujien arvot vaikuta ulompien muuttujien arvoon käskyjen suorituksen aikana. Muuttujien näkyvyysalueisiin voidaan myös vaikuttaa määrittelemällä erillinen näkyvyysalue notaation 4.6 mukaisesti. stat ::= do block end (4.6) Paikalliselle muuttujalle voidaan määrittelyn yhteydessä myös antaa alkuarvo notaation 4.5 hakasulkeissa olevalla sijoituslausekkeella. Jos muuttujaa ei alusteta, se saa oletuksena arvon nil, joka on myös globaalien muuttujien alkuarvo. Muuttujaan sijoitus tapahtuu vastaavasti notaatiolla 4.7 stat ::= var = exp (4.7) namelist ::= Name {, Name} (4.8) explist ::= exp {, exp} (4.9) stat ::= local namelist [ = explist] (4.10) stat ::= varlist = explist (4.11) Lua tukee myös useampien muuttujien käsittelyä yhdellä käskyllä. Näin notaatioit 4.5 ja 4.7 voidaan yleistää notaatioiksi 4.10 ja 4.11 käyttäen notaatioita 4.8 ja 4.9. Tätä ominaisuutta voi hyödyntää erityisesti vararg-parametrien yhteydessä, jotka esitellään tarkemmin luvussa 4.5.
7 4.2 Kontrollirakenteet Lua sisältää C-kielen kanssa hyvin samanlaisia kontrollirakenteita. While-silmukat ja if-lauseet toimivat C- kielen kanssa täysin vastaavasti, ja repeat-until-silmukka vastaa C-kielen do-while-silmukkaa. Myös silmukan keskeyttävä break-käsky toimii vastaavalla tavalla C-kielen kanssa. Näiden rakenteiden syntaksi on kuvattu notaatiolla stat ::= while exp do block end repeat block until exp (4.12) if exp then block {elseif exp then block} [else block] end break Ehtolauseissa arvot nil ja false tulkitaan totuusarvoksi false ja kaikki muut totuusarvoksi true. Repeatuntil-silmukan ehtolauseke voi lisäksi viitata silmukan sisällä määriteltyihin paikallisiin muuttujiin. Kielestä löytyvät myös goto ja label käskyt, joiden syntaksi on määritelty notaatioissa Goto-käsky hyppää siihen label-käskyyn, jossa on sama notaatiolla 4.13 ilmaistu tunniste. Hypyn kohteena oleva label-käsky on tyhjä käsky, joka ei suorita mitään operaatiota. Label-käskyllä määritellyt tunnisteet noudattavat samoja näkyvyysperiaatteita kuin paikalliset muuttujat luvussa 4.1. label ::= :: Name :: (4.13) stat ::= label goto Name (4.14) Lua tarjoaa kaksi eri vaihtoehtoa for-silmukalle. Näistä ensimmäinen on numeerinen for, joka on esitelty notaatiossa Se määrittelee silmukkamuuttujan, joka aloittaa sille määritellystä alkuarvosta ja jatkaa silmukan suorittamista, kunnes se läpäisee annetun ehtolausekkeen. Silmukalle voidaan antaa myös erillinen päivityslauseke, joka muuttaa silmukkamuuttujan arvoa jokaisen kierroksen päätteeksi. stat ::= for Name = exp, exp [, exp] do block end (4.15) stat ::= for namelist in explist do block end (4.16) Toinen vaihtoehto on geneerinen for, joka on määritelty notaatiossa 4.16 käyttäen luvun 4.1 notaatioita 4.8 ja 4.9. Tämä for-silmukka käyttää iteraattorifunktiota, joka tuottaa seuraavan arvon määritellyille silmukkamuuttujille jokaisen kierroksen jälkeen. Silmukka pysähtyy kun iteraattorifunktio tuottaa arvon nil. Geneerisen for silmukan yhteydessä käytetään yleensä Luan standardikirjastossa määriteltyjä apufunktioita (esimerkiksi pairs) helpottamaan silmukan käyttöä. 4.3 Lausekkeet Tässä luvussa käydään läpi lausekkeiden syntaksia ja eri operaatioihin liittyviä toiminnallisuuksia. Luan binääri- ja unaarioperaatiot on esitelty taulukossa 4.1 jaettuna bitti- ja vertailuoperaatioihin sekä loogisiin ja aritmeettisiin operaatioihin. Näiden lisäksi Lua sisältää ketjutusoperaation.. sekä pituusoperaation #. Operaatioiden suoritusjärjestus on kuvattu taulukossa 4.2. Ketjutus- ja eksponenttioperaatiot ovat oikealle assosiatiivisia, ja muut binäärioperaatiot ovat vasemmalle assosiatiivisia.
8 Taulukko 4.1 Binääri- ja unaarioperaatiot. Aritmeettiset operaatiot Bittioperaatiot Vertailuoperaatiot Loogiset operaatiot Summa + AND & Yhtäsuuruus == and Vähennys - OR Erisuuruus ~= or Kertominen * EXCLUSIVE OR ~ Pienempi < not Liukulukujako / RIGHT SHIFT >> Suurempi > Lattiajako // LEFT SHIFT << Pienempi tai <= Modulo % NOT (Unaari) ~ yhtäsuuri eksponentti ^ Suurempi tai >= Miinus (unaari) - yhtäsuuri Taulukko 4.2 Suoritusjärjestys Prioriteetti Operaatiot (Suurempi luku suoritetaan ensin) 1 or 2 and 3 < > <= >= ~= == 4 5 ~ 6 & 7 << >> * / // % 11 (unaarioperaatiot) not # - ~ 12 ^ Lua suorittaa operaatioiden vaatimat tyyppikäännökset automaattisesti suoritusaikana. Binäärioperaatoissa operandit muutetaan kokonaisluvuiksi ja liukulukujaossa sekä eksponenttioperaatioissa operandit muutetaan liukuluvuiksi. Muissa aritmeettisissa operaatioissa operandit muutetaan liukuluvuiksi, jos yksikin operandeista on liukuluku. Ketjutusoperaatio muuttaa aina operandit merkkijonoiksi ja palauttaa merkkijonon. 4.4 Taulukot Taulukot mahdollistavat monimutkaisempien tietorakenteiden luomisen. Taulukkoja voidaan tallentaa muuttujiin samalla tavalla kuin muitakin arvoja. Taulukon rakentajaa käytetään notaatioiden mukaisesti. tableconstructor ::= { [fieldlist] } (4.17) fieldlist ::= field {fieldsep field} [fieldsep] (4.18) field ::= [ exp ] = exp Name = exp exp (4.19) fieldsep ::=, ; (4.20)
9 Taulukkoa voidaan indeksoida luvun 4.1 notaatiossa 4.4 annetuilla vaihtoehdoilla. Ensimmäinen vaihtoehto on C-kielen tapaan hakasulkeilla. Toisena vaihtoehtona on olio-ohjelmoinnille tyypillinen pistenotaatio. 4.5 Funktiot Luan funktiomäärittely tapahtuu notaatioiden mukaisesti. Vaihtoehtona tarjotaan myös notaation 4.24 mukaiset määrittelykomennot. Funktiomäärittely on siis lauseke, jonka paluuarvo on tyyppiä function. stat ::= var = function funcbody (4.21) funcbody ::= ( [parlist] ) block end (4.22) parlist ::= namelist [,... ]... (4.23) stat ::= [local] function Name funcbody (4.24) Funktiokutsun yhteydessä annettujen parametrien lista sovitetaan automaattisesti funktiomäärittelyn parametrilistaan. Vararg-parametri (notaation ) mahdollistaa funktioille vaihtelevan määrän parametreja. functioncall ::= prefixexp args (4.25) args ::= ( [explist] ) tableconstructor LiteralString (4.26) Funktiota kutsutaan notaatioiden 4.25 ja 4.26 mukaisesti. Jos notaation prefixexp-lauseke viittaa funktioon, käynnistetään vastaava funktiokutsu. Muussa tapauksessa kutsutaan kyseisen arvon callmetametodia. Lua mahdollistaa myös häntärekursiivisen funktiokutsun, kun funktiokutsun yhteydessä käytetään return-avainsanaa (return functioncall).
Tie Principles of Programming Languages Seminar Essay. Lua. Group 23 Miikka Koskinen Joose Sainio
Lua Group 23 Miikka Koskinen Joose Sainio Johdanto Lua on kevyt skriptikieli, joka on pääasiallisesti suunniteltu muiden kielien tueksi laitteistoläheiseen ohjelmointiin. Luan kehittäminen aloitettiin
13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
Java-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
Ehto- 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
Koottu 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
LOAD 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).
Harjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
Ohjelmointikieli 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
Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen
Chapel TIE-20306 Ryhmä 91 Joonas Eloranta Lari Valtonen Johdanto Chapel on Amerikkalaisen Cray Inc. yrityksen kehittämä avoimen lähdekoodin ohjelmointikieli. Chapel on rinnakkainen ohjelmointikieli, joka
13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
Alkuarvot 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,
IDL - 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,
ATK 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,
TIE 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
Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tieto ja sen osoite (3) X DC LOAD, =X LOAD R2, X int x =; symbolin X arvo muuttujan X arvo
Tutoriaalilä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
Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin
Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt
7. Näytölle tulostaminen 7.1
7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio
Ohjelmoinnin 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
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 symbolit ovat yleensä
Java-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
Ohjelmointiharjoituksia 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
JAVA-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,
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 Tieto ja sen osoite
Sisä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ä
Ehto- 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
815338A 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
Yleistä. 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ä
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
ITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
Ohjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 5: Sijoituslause, SICP-oliot, tietorakenteen muuttaminen (mm. SICP 33.1.3, 3.33.3.2) Riku Saikkonen 6. 11. 2012 Sisältö 1 Muuttujan arvon muuttaminen:
Sisä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ä
Ohjelmassa 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
Ohjelmoinnin 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.
Muuttujatyypit 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,
811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen
1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi
11. Javan toistorakenteet 11.1
11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin
Luento 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
4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
Ohjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 2: SICP kohdat 22.2.3 Riku Saikkonen 2. 11. 2010 Sisältö 1 Linkitetyt listat 2 Listaoperaatioita 3 Listarakenteet 4 Gambit-C:n Scheme-debuggeri Linkitetyt
etunimi, sukunimi ja opiskelijanumero ja näillä
Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi
Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tällä luennolla Algebralliset tietotyypit Hahmonsovitus (pattern matching) Primitiivirekursio Esimerkkinä binäärinen hakupuu Muistattehan...
Sisä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.
Ohjelmoinnin 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
Olion 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
Ohjelmoinnin 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ä:
7/20: Paketti kasassa ensimmäistä kertaa
Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007
815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset
815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/
815338A 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,
Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista
Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
1. Omat operaatiot 1.1
1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
Vertailulauseet. 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;
Ruby. Tampere University of Technology Department of Pervasive Computing TIE Principles of Programming Languages
Tampere University of Technology Department of Pervasive Computing TIE-20306 Principles of Programming Languages Ruby Ryhmä 8 Juho Rintala Sami Paukku Sisällysluettelo 1 Johdanto... 3 2 Paradigma... 3
Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.
1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).
811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen
11. Javan valintarakenteet 11.1
11. Javan valintarakenteet 11.1 Sisällys If- ja if-else-lauseet. Orpo else. Valintaa toisin: switch-lause. 11.2 If-lause Merkitään varatulla sanalla if. Kuvaa yksisuuntaisen päätöksen: rakenteen lauseet
Ohjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Keskeneräinen luento 3: Listat (mm. SICP 22.2.3) Riku Saikkonen 31. 10. 2011 Sisältö 1 Linkitetyt listat 2 Linkitetyt listat (SICP 2.1.1, 2.2.1) funktionaalinen
Tieto- ja tallennusrakenteet
Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tieto ja sen osoite (3) X DC 12 LOAD R1, =X LOAD R2, X int x =12; symbolin X arvo muuttujan
Java-kielen perusteita
Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa
Taulukot. 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
Java kahdessa tunnissa. Jyry Suvilehto
Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,
ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti
ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 8. kesäkuuta 2018 Yleistä Tentti 1 meni pistekeskiarvon (11.2) perusteella välttävästi. Omasta tehtäväpaperista saa kopion
Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.
TIETOKONEOHJELMIEN RAKENNE Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. Teollisuusautomaation ohjelmiin on lainattu runsaasti perinteisen
7. Oliot ja viitteet 7.1
7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin
Ohjelmoinnin 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.
Ohjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 8: Pienen ohjelmointikielen tulkki (ohjelmoitava laskin) (mm. SICP 4-4.1.5 osin) Riku Saikkonen 15. 11. 2012 Sisältö 1 Nelilaskintulkki, globaalit muuttujat
Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen
Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus
Ohjelmoinnin 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
TIE Principles of Programming Languages CEYLON
TIE-20306 Principles of Programming Languages CEYLON SISÄLLYSLUETTELO 1. YLEISTIETOA KIELESTÄ JA SEN KEHITTÄMISESTÄ... 1 2. CEYLONIN OMINAISUUKSIA... 2 2.1 Modulaarisuus... 2 2.2 Tyypit... 2 2.3 Muita
Kielioppia: toisin kuin Javassa
Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien
Java-kielen perusteet
Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet
Listarakenne (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
Ohjelmointi 1 C#, kevät 2013, 2. tentti
ITKP102 Ohjelmointi 1 C# 15.5.2013 1 / 6 Ohjelmointi 1 C#, kevät 2013, 2. tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yhden arkin verran. Tentin valvojalla
ITKP102 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
Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014
Racket ohjelmointia osa 2 Tiina Partanen Lielahden koulu 2014 Sisältö 1) Funktiot ja muuttujat (kertaus) 2) Animaatiot & pelit (big-bang) 3) Vertailuoperaattorit sekä boolean arvot 4) Tietorakenteet (struct)
Ohjelmoinnin 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
Lyhyt kertaus osoittimista
, syksy 2007 Kertausta Luento 10 12.10.2007 Syksy 2007 1 Lyhyt kertaus osoittimista char *p; /* char, int, jne ilmoittavat, minkä tyyppisiä */ Keskusmuisti int *q; /* olioita sisältäviin muistilohkoihin
12. Javan toistorakenteet 12.1
12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu
Olio-ohjelmointi Syntaksikokoelma
C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja
TIEP114 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
Muuttujat ja kontrolli. Ville Sundberg
Muuttujat ja kontrolli Ville Sundberg 14.9.2007 Alkeistyyppi Alin abstraktiotaso josta tarvitsee välittää Yksittäinen, jakamaton tiedonjyvä Tavallaan kaikki alkeistyypit ovat lukuja arvojoukko vaihtelee
TIEP114 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
ITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.
Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Tyyppejä ja vähän muutakin TIEA341 Funktio ohjelmointi 1 Syksy 2005 Viime luennolla... Haskellin alkeita pääasiassa Hello World!... ja muita tutunoloisia ohjelmia Haskellilla Haskellin voima on kuitenkin
Ohjelmoinnin 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
15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
Ohjelmoinnin 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
PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki
PERL TIE-20306 Principles of Programming Languages Ryhmä 4: Joonas Lång & Jasmin Laitamäki 1. Johdanto Perl on ohjelmointikielten perhe, johon kuuluu Perl 5 ja Perl 6. Kielet ovat kuitenkin erilliset ohjelmointikielet
Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten
Sisällys 16. Ohjelmoinnin tekniikkaa Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. For-lause lyhemmin. If-else-lause vaihtoehtoisesti
12 Mallit (Templates)
12 Mallit (Templates) Malli on määrittely, jota käyttämällä voidaan luoda samankaltaisten aliohjelmien ja luokkien perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista
List-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
16. Ohjelmoinnin tekniikkaa 16.1
16. Ohjelmoinnin tekniikkaa 16.1 Sisällys Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. For-lause lyhemmin. If-else-lause vaihtoehtoisesti
Ohjelmoinnin 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
Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)
Tietorakenteet JAVA-OHJELMOINTI Osa 5: Tietorakenteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Olioita ja tietoja voidaan organisoida määrämuotoisiksi tietorakenteiksi Hyödyllisiä
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka
Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n
ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti
ITKP2 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 17. toukokuuta 219 Yleistä Tentti 1 oli pistekeskiarvon (14,6) perusteella hieman tavanomaista helpompi. Omasta tehtäväpaperista