OHJELMOINTIA 1. JOHDANTO 2. OHJELMAN PERUSELEMENTIT 3. VUOROVAIKUTTEINEN OHJELMA

Koko: px
Aloita esitys sivulta:

Download "OHJELMOINTIA 1. JOHDANTO 2. OHJELMAN PERUSELEMENTIT 3. VUOROVAIKUTTEINEN OHJELMA"

Transkriptio

1 OHJELMOINTIA 1. JOHDANTO 1.1Taustaa ja ohjelmoinnin käsitemaailma 1.2 Erilaiset ohjelmointikielet ja paradigmat 1.3 Algoritmit ja tietorakenteet 1.4 Ohjelman perusrakenteet 2. OHJELMAN PERUSELEMENTIT 2.1 Tunnukset 2.2 Muuttujat 2.3 Tyypit 2.4 Muuttujan määrittely 2.5 Vakiot 2.6 Lauseet 2.7 Kommentit 3. VUOROVAIKUTTEINEN OHJELMA 3.1 Vuorovaikutteisuus 3.2 Sijoituslauseet 3.3 Syöttö ja tulostus funktiot 3.4 Rakenteinen ohjelmointi 1

2 4. VISUAL BASIC 4.1 Ohjelmointiympäristö Johdanto Lomakkeen käsittely OLIO ohjelmoinnin aakkosia 4.2 Ohjelman luominen Johdanto Koodin kirjoittaminen Ohjelmoijan apuvälineet 4.3 Ohjelman käyttöliittymä Lomakkeet ja niiden käsittely Lomakkeen objektit Valikot Työkalurivin luominen Tiedon välittäminen 4.4 Ohjelman kirjoittaminen Proseduurit ja koodin kirjoittaminen Muuttujat Ohjausrakenteet Ohjelman testaus ja virheenkäsittely 4.5 Oliot ja olioluokat Lomakeoliot ja objektitaulukot Tiedostonhallinta Omat olioluokat ja niiden käsittely 4.6 Tietokannat Yleistä tietokantojen käsittelystä Tietokantojen käyttö SQL -kyselykieli 2

3 1. JOHDANTO 1.1 Taustaa ja ohjelmoinnin käsitemaailma Käsitteen ohjelmointikieli määritteleminen on vaikeaa. Voidaan ajatella, että ohjelmointikieli on väline tai käyttöliittymä, jolla ihminen pystyy kertomaan tietokoneelle, mitä sen pitäisi tehdä. Ohjelmoinnin käsitemaailma Tietojenkäsittelyn osapuolia ovat yleisimmin ihminen ja tietokone. Koska tietokone on käytännöllisesti katsoen pelkkää elektroniikkaa, ihmisen ja tietokoneen välinen kommunikointi tulee toteuttaa koneen ehdoilla. Kun tietokone on toiminnassa, sen prosessori suorittaa käytännössä aina jotain ihmisen laatimaa ohjelmaa. Tietokoneohjelma (program) on yleisesti määriteltynä jonkin tietojenkäsittelytehtävän esitys sarjana sellaisia toimenpideohjeita, jotka on mahdollista suorittaa tietokoneella joko suoraan tai tiettyjen muunnosten jälkeen. Tietokoneen alkeistoiminnot perustuvat sen ymmärtämään kieleen eli konekieleen (machine language). Konekielisissä ohjelmissa on kahdenlaisia osia: operaatioita eli käskyjä ja operandeja, jotka ovat yleensä muistipaikkoja. Operaatioiden avulla ohjelmissa käsitellään muistipaikkojen sisältöjä. Ohjelmat ovatkin pohjimmiltaan tietokoneen muistissa olevan tiedon eli datan manipulointikäskysarjoja. Tietokoneen osaamat toimenpiteet eli operaatiot ovat hyvin yksinkertaisia ja niitä on vain rajallinen määrä. Tietokone osaa esimerkiksi laskea yhteen kaksi lukua ja tarkistaa, onko tulos nolla. Koska tietokoneessa kaikki asiat esitetään bittien avulla, konekieliset ohjelmat ovat käytännössä peräkkäistä ykkösiä ja nollia. Ihmisen kannalta konekieli on hyvin hankala tiedon ja toimenpiteiden esittämisen väline. Tämän vuoksi ihminen käyttää tietokoneelle ohjeita laatiessaan konekieltä korkeammalla tasolla olevia ohjelmoinnin välineitä. Ihminen kirjoittaa ohjelman ohjelmointikielellä (programming language), minkä jälkeen ohjelma käännetään (compile) tietokoneen avulla konekielelle, jotta kone voisi sen suorittaa (execute). Käännöksen suorittaa erityinen ohjelma, kääntäjä (compiler), joka käy ohjelman läpi rivi riviltä ja tuottaa tuloksena suorituskelpoisen (executable) ohjelman eli ns. exe-koodin. Erotukseksi suorituskelpoisesta ohjelmasta ohjelmointikielellä kirjoitettua ohjelmaa kutsutaan lähdekieliseksi ohjelmaksi tai koodiksi (source program, source code). Jotta ohjelma voitaisiin suorittaa eli ajaa (run), käännöksen tulee onnistua virheettömänä eli ohjelman tulee "mennä käännöksestä läpi". Ohjelmassa ei ole tällöin ohjelmointikielen sääntöjen vastaisia piirteitä. Vaikka ohjelma menisikin käännöksestä läpi, siinä voi olla loogisia virheitä, joiden vuoksi ohjelma ei toimi tarkoitetulla tavalla. Kääntäjä antaa kahdentyyppisiä virheilmoituksia: varoituksia (warnings) ja virheilmoituksia (errors). Varoitukset eivät välttämättä estä suorituskelpoisen ohjelman tuottamista. Niiden avulla ilmoitetaan, että ohjelmassa on oudolta vaikuttavia piirteitä. Mikäli kääntäjä ilmoittaa aidoista virheistä, tämä tarkoittaa, että ohjelma ei ole kirjoitussääntöjen mukainen eikä suorituskelpoista ohjelmaa voida tuottaa. 3

4 Kommunikointihierarkia 1.2 Erilaiset ohjelmointikielet ja paradigmat Ohjelmointikieliä on erilaisia. Ne voidaan jakaa karkeasti kahteen luokkaan: -symboliset konekielet -lausekielet eli korkean tason kielet Symboliset konekielet Symbolisissa konekielissä (assembly language) bitteinä esitettävät käskyt korvataan kirjainlyhenteillä eli käskyille annetaan symboliset vastineet. Esimerkiksi yhteen laskukäskyn tunnisteena on ADD, vähennyslaskun SUB ja kertolaskun MUL. Muistipaikoille annetaan symbolisilla konekielillä kirjoitetuissa ohjelmissa niin ikään symboliset nimet, esimerkiksi PALKKA, VERO. Symbolisella konekielellä kirjoitettu käsky voisi olla esimerkiksi: SUB PALKKA, VERO (mikä tarkoittaa sitä, että palkasta vähennetään vero, jolloin PALKKA pienenee.) Symbolisella kielellä kirjoitetun ohjelman konekielelle kääntävää ohjelmaa kutsutaan assember -kääntäjäksi (assembler). Symboliset konekielet ovat tietokonekohtaisia ja niitä käytetään, kun ohjelmoidaan tietokoneen laitteistoon läheisesti liittyviä asioita, kuten käyttöjärjestelmiä tai laiteajureita (ns. laiteläheinen ohjelmointi). Lausekielet Lausekielet eli korkean tason kielet (high level language) muistuttavat puhuttua kieltä. Niissä on hyvin suppea "sanavarasto" ja tarkat kielioppisäännöt eli syntaksi (syntax). Kielioppisäännöt ilmaisevat ohjelmien sallitun muodon. Ne ovat samankaltaisia kuin esim. suomen kielen kielioppisäännöt välimerkkisääntöineen. Kaikilla asioilla on lisäksi hyvin tarkat merkitykset eli semantiikka (semantics). Tämä on välttämätöntä, jotta ihminen ja kone voisivat ymmärtää ohjelman samalla tavalla. Lausekielet eivät ole suunniteltuja millekään laitteistolle erityisesti vaan ne ovat laiteriippumattomia. 4

5 Kääntäjä tai tulkki Jotta lausekielellä kirjoitettu ohjelma voitaisiin ajaa jossain tietyssä laitteistossa, ohjelma on käännettävä laitteistoa varten suunnitellulla kääntäjällä konekielelle. Joskus kääntäjä korvataan tulkilla (interpreter). Tällöin on kysymys siitä, että lähdekielisestä ohjelmasta konekielelle muunnetut käskyt suoritetaan välittömästi tulkkauksen jälkeen. Käytännössä tämä tapahtuu rivi riviltä. Kääntävissä järjestelmissä sen sijaan koko ohjelma käännetään ennen ajoa. Lausekielen, symbolisen konekielen ja konekielen välinen suhde Ihmisen puhekielen, korkean tason lausekielen, joka on jo ohjelmointikieli, symbolisen konekielen ja konekielen hierarkkinen järjestys suhteessa ihmisen ja koneen käsite-maailmaan voidaan esittää seuraavasti: Sanalla paradigma on useita merkityksiä. Ohjelmointikielten yhteydessä sillä tarkoitetaan kokonaisuutta, joka muodostuu seuraavista kolmesta osasta: laskennallisesta mallista, käsitteistöstä ja välineistöstä. Perinteisessä imperatiivisessa paradigmassa laskennallinen malli perustuu RAM-koneeseen (random access machine). Jos halutaan toteuttaa esimerkiksi lajitteluohjelma, käsitteistöön kuuluvat kielen rakenteet kuten tietueet, osoittimet, toistorakenteet ja tiedostot. Välineistö taas tarkoittaa sitä, miten ohjelmoija kielen käsitteitä käyttää. Lajitteluohjelman tapauksessa välineistöä voivat olla linkitetty lista sekä syöttö- ja tulostustoiminnot. Yleisesti ottaen paradigma antaa mahdollisuudet tai puitteet eri asioiden toteuttamiseen. Eri paradigmoissa on erilaiset mahdollisuudet eri asioiden toteuttamiseen. Jotkin tehtävät onnistuvat helpommin jossakin ohjelmointiparadigmassa, jotkin toiset asiat taas jossakin toisessa paradigmassa. 5 Imperatiivinen paradigma (käskykielet) -lohkorakenteinen (proseduraalinen) -oliokeskeinen -hajautettu (rinnakkainen) Deklaratiivinen paradigma (esittelykielet) -funktionaalinen -looginen -tietokantakielet

6 Ohjelmointikielten jaotteluita on muitakin, järjestelmäohjelmointikielet, joita ovat esimerkiksi Pascal, C, C++ ja Java, ja toiseen ryhmään skriptikielet, kuten Perl, Python ja JavaScript. Järjestelmäohjelmointikielet on tarkoitettu komponenttien toteuttamiseen symbolisia konekieliä korkeammalla tasolla, kun taas skriptikielillä voidaan yhdistellä olemassa olevia komponentteja toisiinsa. 1.3 Algoritmit ja tietorakenteet Algoritmit Ohjelmat käsittelevät aina käytännössä tietorakenteita. Niitä menettelytapojen ja sääntöjen kokoelmia, joiden avulla rakenteita käsitellään, kutsutaan algoritmeiksi (algorithm). Algoritmit käsittelevät aina jotain tietoa (syötteitä, lähtötietoja) siten, että syntyy uutta tietoa (tulosteita, tulostietoja). Algoritmeille on tyypillistä, että ne eivät ole mistään esitystavasta tai kielestä riippuvaisia. Ne ovat täysin yleisiä ja niitä voi esittää millä välineillä tahansa, esimerkiksi puhekielellä, graafisesta tai ohjelmointikielellä. On myös huomattava, että algoritmi ei ole yksinomaan ohjelmointiin liittyvä käsite. Esimerkiksi tavallista keittokirjaa voidaan pitää algoritmikokelmana. Reseptit voidaan tällöin nähdä algoritmeina ja raaka-aineet tietorakenteina. Tietorakenteet Kaikki ohjelmat käsittelevät aina jotain tietoa. Tieto tulee esittää ohjelmissa ohjelmointikielen sisältämien mekanismien avulla. Korkeantason ohjelmointikielet tarjoavat välineitä, joilla on suorat vastineet reaalimaailman rakenteisiin. Ohjelmointikielet tarjoavat välineitä yksittäisten tietojen esittämistä varten, esimerkiksi ihmisen nimeä, kokeen arvosanaa tai päivämäärää varten. Myös monimutkaisempia rakenteita varten on olemassa esitystapoja. Esimerkiksi puhelinluettelon yhtä riviä varten on rakenne, joka mahdollistaa usean tiedon (tässä tapauksessa nimen, osoitteen ja puhelinnumeron) samanaikaisen käsittelyn. On olemassa myös rakenteita, jotka mahdollistavat suurten tietomäärien käsittelyn. Esimerkiksi yhden vuoden jokaisen päivän sademäärät voidaan koota yhteen tietorakenteeseen. Tietorakenne (data structure) on edellä esitettyjen esimerkkien valossa informaatioyksikkö, joka voi sisältää yhden yksittäisen tiedon tai tietojoukon. Taulukko Taulukko on hyvin yksinkertainen lineaarinen rakenne. Perusrakenne on valmiina useimmissa korkean tason ohjelmointikielissä helppo ohjelmoida, alkiot indeksoidaan ensimmäisestä viimeiseen, mihin tahansa alkioon voidaan heti viitata. Taulukon alkioiden väliin ei voi lisätä uutta alkiota eikä sieltä voi poistaa alkiot Rakenne on erittäin jäykkä, jos tällaisia toimintoja (päivityksiä) tarvitaan. (Esimerkki) Linkitetty lista (linked list) Se on taulukkoa paljon joustavampi rakenne monessa tilanteessa. Lista koostuu yksittäisistä alkioista, joihin kuhunkin on talletettu dataa ja osoitin (referenssi) seuraavaan alkioon. Listan kokoa ei ole ennalta rajoitettu, vaan listaan voidaan lisätä ja siitä voidaan poistaa alkioita ajonaikaisesti listan kokoa rajoittaa 6

7 vain käytettävissä oleva muisti, alkioita voi lisätä minne tahansa, alkioita voi poistaa mistä tahansa, alkioiden järjestystä voi vaihtaa, listan alkiot voivat olla samaa tyyppiä. Linkitetyn listan tärkein rajoitus on, että sen alkioita voidaan käydä läpi vain yksitellen eli sen alkioihin ei voi viitata suoraan (vrt. taulukko) Pino (stack) Pino on abstrakti tietotyyppi, jolle on määritelty seuraavat operaatiot: Push(x) - lisää pinon päälle alkion x Pop() - palauttaa ja poistaa pinon päällimmäisen alkion Top() - palauttaa pinon päällimmäisen alkion (poistamatta sitä) IsEmptyo - palauttaa tiedon siit ä, onko pino tyhjä Toimii siis samaan tapaan kuin pöydällä oleva korttipakka. Pino voidaan toteuttaa taulukon avulla tai linkitettynä listana. Jono (queue) Jono on abstrakti tietotyyppi, jolle on määritelty seuraavat operaatiot: Put(x) tai Enqueue(x) - lisää jonon loppuun alkion x Get() tai Dequeue() palauttaa (ja poistaa) jonon ensimmäisen alkion First() - palauttaa jonon ensimmäisen alkion IsEmpty()- kertoo, onko jono tyhjä Jonokuri FIFO (First In First Out) Jono voidaan toteuttaa eri tavoin (taulukon avulla tai linkitettynä listana). Puurakenteet 7

8 Käsitteitä ja ominaisuuksia: Solmu (vertex) on puuhun kuuluva alkio, johon voidaan tallettaa dataa Väli, särmä, kaari (edge) on suorayhteys kahden solmun välillä Juuri (root) on puun ylin solmu Solmun lähin edeltäjä on sen isä (father, dad, parent). Kauemmista edeltäjistä käytetään nimeä isoisä, esi-isä tai edeltäjä (grandfather, ancestor) Solmun lähinnä alemmat seuraajat ovat sen lapsia (children). Näiden lapset vastaavasti lapsenlapsia (grandchildren) Kullakin solmulla on vain yksi isä, juurella ei ole isää Solmulla voi olla o-n kpl lapsia. Yleisessä puussa lasten määrää ei ole rajoitettu Saman isän lapset ovat toistensa sisaruksia (sibling) Lehti (leaf, external node) on solmu, jolla ei ole lapsia Muut solmut ovat puun sisäsolmuja (internal node) Lehdet ovat joskus rakenteeltaan erilaisia kuin sisäsolmut Polku (path) on yhteys kahden solmun välillä Juuresta mihin tahansa solmuun on vain yksi polku. Vastaavasti jokaisesta solmusta on vain yksi polku mihin tahansa toiseen solmuun Jokainen solmu on oman alipuunsa (subtree) juuri puiden joukkoon metsä (forest) Binääripuu (binary tree) on järjestetty puu, jossa jokaisella solmulla on täsmälleen kaksi lasta: vasen ja oikea (voivat olla tyhjiä) Binääripuu on tiivis (full), jos kaikki puussa olevat tasot ovat täynnä mahdollisesti alinta lukuun ottamatta 8

9 1.4 Ohjelman perusrakenteet TOP-DOWN- ja BOTTOM-UP-menetelmät johtavat käytännössä modulaariseen (modular) ohjelmointiin, jolla tarkoitetaan sitä, että ohjelma koostuu osaohjelmista eli aliohjelmista (sub program). Modulaarisuus on yksi hyvälle ohjelmalla asetettu vaatimus. Toinen vaatimus on strukturaalisuus, mikä edellyttää sitä, että käytettävä ohjelmointikieli tukee rakenteellista eli strukturaalista ohjelmointia (structured programming). Rakenteellinen ohjelmointi käyttää hyväksi kolmea ohjelmoinnin perusrakennetta, jotka kaikki ovat välttämättömiä ja yhdessä riittäviä hyvän ohjelman tekemiseksi. Nämä kolme perusrakennetta ovat 1. Peräkkäisrakenne 2. Valintarakenne 3. Toistorakenne Rakenteita kutsutaan usein ohjausrakenteiksi tai kontrollirakenteiksi (control structure), koska niiden avulla ohjataan ohjelman kulkua. Peräkkäisrakenne Peräkkäisrakenne on yksinkertaisin ohjelmassa käytettävistä rakenteista. Siinä toteutetaan sarja toimenpiteitä peräkkäin. Valintarakenne Valintarakennetta käytetään silloin, kun ohjelmassa halutaan suorittaa jotain vain silloin, kun jokin ehto on voimassa. Valintatilanteesta on esimerkkinä seuraava virke: Jos sinulla on rahaa, käy elokuvissa. Tällainen rakenne voidaan liittää peräkkäisrakenteen sisälle, esimerkiksi päivittäisrutiinien joukkoon, kuten herää syö aamiainen mene kouluun opiskele palaa koulusta tee läksyt JOS (sinulla on rahaa) käy elokuvissa käy iltapesulla mene nukkumaan JOS-rakenne voi sisältää vaihtoehtoisen MUUTEN-haarana: JOS (sinulla on rahaa) käy elokuvissa käy nakkikioskilla MUUTEN katso tv:tä 9

10 Tässä MUUTEN -haara suoritetaan tilanteessa, jossa rahaa ei ole, toisin sanoen kahdesta vaihtoehtoisesta toiminta-mallista valitaan toinen ja vain toinen. JOS-MUUTEN-rakenteen sisässä voi olla toinen JOS -rakenne: JOS (sinulla on rahaa) käy elokuvissa käy nakkikioskilla } MUUTEN { JOS (tv:stä tulee jotain katsomisen arvoista) { katso tv:tä } MUUTEN { käy lenkillä } Edellisen rakenteen perusteella lenkille päästään, jos lompakko on tyhjä eikä televisiosta tule mitään mielenkiintoista. Toistorakenne Jos tehtäväkokonaisuuden suorittaminen edellyttää samanlaisina toistuvien yksittäistapahtumien toistamista, voidaan käyttää toistorakennetta. Esimerkiksi kuoppaa kaivettaessa toistuu lapiointi. Kuoppaa pitää kaivaa niin kauan, että se on tarpeeksi syvä. Luonnollisella kielellä vaatimus ja toimintaohje voitaisiin esittää seuraavasti: Kaiva kuoppaa, kunnes se on tarpeeksi syvä. Sama asia voidaan esittää muodollisemmin seuraavasti: TEE SEURAAVAA kaiva lapiollinen NIIN KAUAN KUIN (kuoppa on liian pieni) Sama voitaisiin esittää myös seuraavasti: NIlN KAUAN KUIN (kuoppa on liian pieni) kaiva lapiollinen Toistossa on periaatteena, että jokaisen toistokerran jälkeen (tai ennen sitä) tutkitaan jatkoehto uudelleen ts. "pyöritään silmukassa", kunnes voidaan lopettaa. Rakenteiden edut Rakenteiden etu on siinä, että niitä voidaan yhdistää: rakenteita voidaan kirjoittaa peräkkäin ja kunkin 10

11 rakenteen sisässä voi olla mikä tahansa rakenne. Rakenteita voidaan kirjoittaa myös useita sisäkkäin. Peräkkäisyyttä ja sisäkkäisyyttä yhdistelemällä syntyy rakenteinen (tai lohkorakenteinen) ohjelma. 2. OHJELMAN PERUSELEMENTIT 2.1 Tunnukset Tunnukset (identifier) ovat nimiä erilaisille asioille, jollaisia ohjelmointikielissä ovat mm. muuttujat, vakiot ja tyypit. Tunnus alkaa aina kirjaimella. Ensimmäistä kirjainta voi seurata kirjaimia ja numeroita mielivaltaisessa järjestyksessä. Myös alaviivaa ("_") voi käyttää tunnuksissa (jopa ensimmäisenä merkkinä). Tunnuksissa isot ja pienet kirjaimet ovat usein eriarvoisia. Näin tunnukset C kieli ja c kieli viittaavat eri asiaan. On huomattava, että tunnuksissa ei voi käyttää useinkaan skandinaavisia kirjaimia å, ä, ö, Å, Ä ja Ö. Periaatteessa tunnukset voivat olla miten pitkiä tahansa. ANSI -standardi määrittelee, että tunnukset erotetaan toisistaan 31 ensimmäisen merkin osalta, joten pidempiä nimiä ei välttämättä ole järkevää käyttää. 2.2 Muuttujat Muuttujia (variable) käytetään ohjelmissa tietovarastoina erilaisille asioille. Ohjelma voisi kysyä jokaiselta käyttäjältään esimerkiksi tämän nimeä ja tallettaa jokaisen nimen vuorollaan muuttujaan kayttajan_nimi (huomaa, että ä-kirjaimen asemesta on käytetty a-kirjainta). Täten kayttajan_nimi vaihtelee käyttäjän mukaan eli muuttuja saa erilaisia arvoja. Muuttujalle onkin tyypillistä, että sen arvo muuttuu ohjelman suorituksen aikana useaan kertaan (tästä nimitys muuttuja). Käytännössä muuttuja viittaa alueeseen tietokoneen muistissa. Muuttujan arvoksi kutsutaan sitä, mikä on muistialueen sisältönä. Voisi ajatella, että muistiin viitataan numeerisen osoitteen avulla, mutta on helpompaa antaa muuttujille omat nimet ja viitata muistiin näiden nimien avulla. Muuttujat nimetäänkin tunnusten avulla. Jokaisella muuttujalla on näin ollen kirjaimelta alkava nimi. Tietokoneen muistia voidaan ajatella lokerikkona, jonka lokeroissa muuttujia säilytetään; kun tiedetään lokeron nimi, voidaan käsitellä siellä olevaa muuttujaa. 2.3 Tyypit Oletetaan, että käytössä on muuttuja, jonka nimi on i. Kun ohjelma viittaa muuttujaan i, sen täytyy tietää, minkälaiseen olioon se viittaa. Ohjelman kannalta on oleellista tietää, onko i-nimisessä muistipaikassa jokin luku, kirjain, teksti (merkkijono) vai jotain muuta, jotta ohjelmassa osataan tehdä muuttujalle oikeita operaatioita. Jos esimerkiksi muuttujan arvo halutaan tulostaa, on tärkeää 11

12 tietää, onko tulostettavan muuttujan sisältämässä muistipaikassa luku vai kirjain. Käytännössä muistipaikassa on vain pelkkiä peräkkäisiä bittejä, jotka eivät ilman tulkintaa sisällä mitään informaatiota. Jotta ohjelma osaa käsitellä muistissa olevaa tietoa oikein, sen tulee tietää, kuinka bittejä tulkitaan. Ohjelmointiterminologiaa käyttäen sanotaan, että ohjelman pitää tietää muuttujan tyyppi (type). Esimerkiksi C-kielessä ennalta määriteltyjä yksinkertaisia tyyppejä ovat mm. seuraavat: int kokonaisluku (16 bittiä) long kokonaisluku (32 bittiä) float liukuluku double kaksoistarkkuuden liukuluku char merkki tai 8 bittinen kokonaisluku Todettakoon, että yhden ja saman muistipaikan sisältöä voidaan tulkita useammalla tavalla. Tulkinta on tavallaan suodatin, jonka läpi tietoa tarkastellaan. Jos 8-bittinen tieto halutaan nähdä merkkinä, käytetään "merkkisuodatinta". Jos se halutaan nähdä kokonaislukuna, käytetään "kokonaislukusuodatinta". 2.4 Muuttujan määrittely Muuttujan määrittely (variable declaration) tarkoittaa muuttujan nimen ja muuttujan tyypin liittämistä toisiinsa. Muuttujien määrittelyt sijoitetaan ohjelmalohkon alkuun. Ohjelmassa tulee ilmoittaa jokaisesta muuttujasta sen tyyppi seuraavasti: int indeksi; char merkki; Muuttujien määrittelyt sijoitetaan siis ohjelmassa ohjelmalohkon alkuun. Samaa tyyppiä olevat muuttujat voi koota listaksi, jossa jäsenet erotetaan toisistaan pilkuilla seuraavaan tapaan: int luku1, luku2, lukua; Ohjelmista tulee yleensä kuitenkin selkeämpiä, mikäli kaikki muuttujien määrittelyt kirjoitetaan omille riveilleen. Muuttujat tulee aina nimetä niiden käyttöä kuvaavalla tavalla, esimerkiksi sademaara, pisteet, palkka,... eikä arvoituksellisilla koodilyhenteillä kuten s, pi, pa. Muuttujan määrittely saa aikaan sen, että tietokoneen muistista varataan tilaa muuttujaa varten. Eri tyypit tarvitsevat erilaisen määrän tilaa: merkille riittää aina yksi tavu, kokonaisluku (int) vie kaksi tavua, pitkä kokonaisluku (long) ja liukuluku (float) vievät 4 tavua. Määrittelyn yhteydessä muuttujalle voidaan antaa alkuarvo seuraavalla tavalla: int summa = 0, Jos muuttujaa ei määritellä mutta sitä yritetään käyttää ohjelmassa, kääntäjä huomaa virheen ohjelman käännös-vaiheessa ja antaa tällöin yleensä virheilmoituksen "Undefined symbol..." eli määrittelemätön symboli. 12

13 2.5 Vakiot Kaikissa ohjelmissa käytetään yleensä joitain kiinteitä lukuarvoja laskutoimituksissa. Toisaalta ohjelmien tulosteissa käytetään samanlaisina toistuvia tekstejä. Näissä tilanteissa tarvitaan vakioita (constant). Vakiot jaetaan kahteen ryhmään: - paljaat vakiot eli literaalivakiot - nimetyt vakiot. Paljaat vakiot Paljaat vakiot voidaan ryhmitellä seuraavasti: - numeeriset vakiot, joita ovat esim. 5, 5.0, -5, merkkivakiot, joita ovat esim. 5, A, a - merkkijonovakiot, jollainen on esim. "Visual Basic" Nimetyt vakiot Paljaalla vakiolle voidaan antaa nimi, jota voidaan käyttää ohjelmassa kuten paljasta vakiota. Tällöin on määritelty nimetty vakio. Nimetty vakio määritellään C-kielen ohjelmassa esimerkiksi seuraavasti: # define PII Lauseet Ohjelman varsinainen toiminta tapahtuu lauseissa (statement). Lauseessa tehdään jokin toimenpide, esimerkiksi kahden luvun kertolasku, merkkijonon tulostaminen tai merkin lukeminen. ympyran_ala = Pll * ympyransade * ympyransade; jossa muuttujan ympyran_ala arvoksi sijoitetaan "='- merkin oikealla puolella olevan laskutoimituksen tulos. Tämä on esimerkki lausetyypistä, jota ohjelmissa tarvitaan usein. Lauseella on C- kielessä ominaista, että se päättyy aina puolipisteeseen. 2.7 Kommentit Ohjelmiin voi ja niihin kannattaa liittää ohjelman toimintaa selittäviä tekstejä eli kommentteja (comment). Tällaiset selitystekstit sijoitetaan C-kielessä merkintöjen /* ja */ väliin esimerkiksi seuraavasti. 13

14 / * Tämä on kommentti */ TÄMÄ ON KOMMENTTI Visual Basicissa Muuttujien merkitykset kannattaa kommentoida muuttujien määrittelyjen yhteydessä, elleivät muuttujien nimet ole täysin tarkoitustaan kuvaavia. Kommentit voidaan kirjoittaa seuraavaan tapaan: int Ikm; / * ohi ajaneiden autojen Ikm */ int k nopeus; / * autojen mitattu keskinopeus */ 3. VUOROVAIKUTTEINEN OHJELMA 3.1 Vuorovaikutteisuus Ohjelmat keskustelevat käyttäjien kanssa eli esittävät käyttäjille kysymyksiä, vastauksia, kehotuksia jne. Käyttäjät puolestaan vastaavat ohjelmien esittämiin kysymyksiin, toimivat ohjelmien kehotuksien mukaan jne. Tällaisia ohjelmia kutsutaan vuorovaikutteisiksi tai interaktiivisiksi (interactive). Vuorovaikutus sisältää tiedon lähettämisen ja vastaanottamisen. Ohjelmoija tarkastelee vuorovaikutussuhdetta aina ohjelman kannalta. Kun ohjelmassa ilmoitetaan käyttäjälle jotain, kyseessä on tiedon lähettäminen eli tulostustoiminto (kirjoittaminen). Kun taas ohjelma ottaa vastaan käyttäjän antamia syötteitä, kyseessä on ohjelman kannalta lukeminen. Tätä vuorovaikutussuhdetta, jota ohjelmissa tarkastellaan aina ohjelman kannalta, havainnollistetaan alla olevassa kuvassa. 3.2 Sijoituslauseet Ohjelman varsinainen toiminta toteutetaan käytännössä erilaisissa lauseissa, joista keskeisin on sijoituslause (assignment statement). Siinä asetetaan tai vaihdetaan muuttujan arvo. 14

15 Sijoituslauseessa on esimerkiksi C-kielessä neljä osaa: muuttujan nimi sijoitusoperaattori lauseke ; Sijoituslauseen yleinen muoto on seuraava: muuttujan_nimi = lauseke; Lauseke (expression) voi olla vakioarvo, yksittäinen muuttuja, funktion kutsu tai laskutoimitus, joka sisältää muuttujia, vakioita, funktion kutsuja ja operaattoreita. Yksinkertaisia sijoituslauseita, joissa lausekkeen muodostavat yksittäiset vakiot tai muuttujat, ovat esim. seuraavat: x = 1; lkm = 0; Z = Y; Sijoituslause, jonka oikealla puolella on funktion kutsu, näyttää seuraavalta: x = pow (y, 2); Tässä pow0 on matemaattinen funktio, joka korottaa y:n arvon toiseen potenssiin. Tulos sijoitetaan = arvoksi. Esimerkki laskutoimituksesta on PII * sade * sade missä PII on vakio, sade muuttujan nimi ja * kertolaskuoperaattori. Tämä lauseke voidaan sijoittaa sijoituslauseessa "="-merkin oikealle puolelle, jolloin saadaan sijoituslause ala = PII * sade * sade; 3.3 Syöttö ja tulostus funktiot Ohjelmien kirjoittaminen ei ole sattumanvaraista esimerkiksi C-kielisten lauseiden peräkkäin kirjoittamista mielivaltaisessa järjestyksessä vaan systemaattista toimintaa, joka vaatii ajattelua. Jotta ohjelma voisi toimia käytännössä, sen logiikan tulee toimia myös paperilla. Jos ohjelmaa ei pystytä suunnittelemaan kynän ja paperin avulla, sen kirjoittaminen ohjelmointikielellä on mahdotonta. Ohjelmien suunnitteluun on olemassa erilaisia formaaleja (so. muodollisia, tarkkojen sääntöjen mukaisia) välineitä: lohkokaavioita, vuokaavioita ja pseudokoodeja. 15

16 Ohjelman yleinen rakenne Jokaiseen ohjelmaan kuuluu yleensä kolme vaihetta: 1. tietojen syöttö (käyttäjä syöttää, ohjelma ottaa vastaan) 2. laskenta 3. tietojen tulostus C-kielen yleisimmin käytetty tulostuslause (output statement) alkaa sanalla printf. Tämä on funktio, joka tulostaa kuva-ruudulle haluttua tietoa. Esimerkiksi lause printf (Hiiohoi"); tulostaa kuvaruudulle tekstin Hiiohoi. Tulostuslauseessa tulostetaan tekstiä lainausmerkkien sisässä. Tekstin lisäksi tulostuslauseessa halutaan usein tulostaa myös lukuja. 3.4 Rakenteinen ohjelmointi Rakenteinen ohjelmointi (structured programming) on systemaattinen tapa tuottaa ohjelmia, joita on helppo ymmärtää, helppo muuttaa ja helppo testata. Rakenteinen ohjelmointi edellyttää selkeiden ohjelmarakenteiden käyttöä. Rakenteisuuden tulee ilmetä myös ohjelman kirjoitusasusta. Tämän vuoksi ohjelmissa käytetään tekstin sisennyksiä. Vaikka sisennyksillä ei ole kääntäjän kannalta merkitystä, niillä on suuri merkitys ohjelman lukijalle. If -lauseen yksinkertaisin muoto on sellainen, missä lauseet joko suoritetaan tai jätetään suorittamatta. Ohjelmarakenteita voidaan kuvata vuokaavioiden (flow chart) avulla. Kaavioissa käytetään sovittuja graafisia symboleja. Esimerkiksi yksittäisen vaihtoehdon if -rakenne voidaan esittää seuraavanlaisena vuokaaviona: Kokonaisia ohjelmia voidaan suunnitella kirjoittamalla vuokaaviota peräkkäin. Pseudokoodin käyttö on yleensä kuitenkin kätevämpää. Käyttäjän kannalta olisi mukavaa, jos ohjelmassa tehtäisiin jotain myös siinä tapauksessa, että ehto ei ole tosi. Tällaista tilannetta varten valintalause voikin sisältää vaihtoehto-osan, joka suoritetaan, ellei if -ehto ole voimassa. Vaihtoehto-osa alkaa avainsanalla else. 16

17 Vuokaavioesitys if -else -rakenteelle: Valinta useasta vaihtoehdosta Y-rakennetta voidaan käyttää monivalintatilanteissa, joissa pitää valita yksi useasta mahdollisesta vaihtoehdosta. Esimerkki tällaisesta tapauksesta voisi olla kolmen vaihtoehdon valintatilanne, jossa pitää tutkia, onko luku nolla, negatiivinen vai positiivinen. Rakenne, jota voidaan käyttää, on seuraava: if (ehto) lauseet else if lauseet else lauseet While -toistorakenne Toistorakenteen avulla voidaan suorittaa samoja lauseita toistuvasti peräkkäin. Toistojen määrä on joko etukäteen määrätty tai se riippuu ohjelmassa esitetyistä ehdoista. Tarkastellaan aluksi jo tuttua if -rakennetta: 17 if (rahaa > 100) { ostalevyke(); }

18 Tässä ohjelmanosassa suoritetaan lause (oikeastaan aliohjelman kutsu) ostalevyke(), mikäli muuttujalla rahaa on suurempi arvo kuin 100. Ohjelmaan tehdään seuraava muutos: if - sana korvataan sanalla while. Tällöin saadaan ohjelmanosa: while (rahaa > 100) { ostalevyke(); } Kun ohjelmassa tullaan peräkkäisrakenteen ohjaamana while -lauseeseen, se toimii ensin kuten iflause: aaltosulkeiden välissä olevat lauseet suoritetaan, mikäli ehto on tosi. Kun on päästy while -lohkon loppuun, palataan while -rakenteen ehto-osaan tutkimaan ehtoa uudelleen. Mikäli ehto on edelleen tosi, suoritetaan lauseet uudelleen. Näin jatketaan, kunnes ehto muuttuu epätodeksi. Edellä olevassa esimerkissä on selvästi vikaa, koska siinä ehto (rahaa > 100) näyttää pysyvän jatkuvasti totena. Asian todellinen laita riippuu tietysti ostalevyke() -toimenpiteen toteutuksesta: jos siinä pienennetään muuttujan rahaa arvoa, asia on kunnossa. Seuraavassa while -silmukassa muuttujan rahaa arvoa pienennetään jokaisella kierroksella, joten ohjelma toimii varmemmin: while (rahaa > 100) { osta levyke(); rahaa = rahaa - levykkeen hinta; } While -rakenteelle voidaan esittää seuraavanlainen vuokaavioesitys: While -lausetta käytettäessä on pidettävä mielessä se seikka, jonka unohtaminen johtaa tyypilliseen ohjelma-virheeseen: on muistettava vaikuttaa ehtolausekkeen arvoon lauselohkon sisällä siten, että se muuttuu joskus epätodeksi (muuten jäädään "ikuiseen silmukkaan"). 18

19 For -toistorakenne For -rakennetta kannattaa käyttää, jos toistojen määrä tiedetään ohjelmassa ennen kuin toistot aloitetaan. Jos esimerkiksi halutaan sademäärätiedot viikon jokaiselle päivälle, tiedetään, että sademääriä on seitsemän kappaletta, ja näin ollen sademäärää pyydetään vuorovaikutteisessa ohjelmassa seitsemän kertaa. For -lauseessa toistojen lukumäärää hallitaan ohjelmassa olevan toistolaskurin avulla. Laskurin arvo asetetaan toistojen alussa ykköseksi ja sitä kasvatetaan jokaisella toisto-kerralla yhdellä. Toistot päätetään, kun laskuri on ylittänyt sovitun loppuarvon. Laskuriin kohdistuu näin ollen kolme oleellista operaatiota. Nämä ovat 1. laskurin alkuarvon asettaminen 2. laskurin arvon vertaaminen loppuarvoon 3. laskurin arvon kasvattaminen yhdellä. For-lauseen vuokaavioesitys. 1 = toistolaskurin alkuarvon asettaminen; 2 = toistoehdon tutkiminen (laskurin arvon vertaaminen loppuarvoon); 3=laskurin arvon kasvattaminen. Numeroimattomassa laatikossa suoritetaan toistettavat lauseet. Do... while toistorakenne Jo käsitellyt toistolauseet while ja for ovat molemmat ns. alkuehtoisia toistolauseita. Lauseessa olevan ehdon arvo tutkitaan, ennen kuin siirrytään toistettavaan lauseosaan. Seuraavaksi käsiteltävä toistolause on loppuehtoinen do... while -toistorakenne. Siinä suoritetaan ensin yksi toistokerta ja sen jälkeen tutkitaan pitääkö toistaa uudestaan. Lauseen vuokaavioesitys on seuraava: Do...while -lauseen vuokaavioesitys. Toistettaviksi tarkoitetut lauseet suoritetaan ensin yhden kerran ja sen jälkeen tutkitaan, pitääkö ne suorittaa uudestaan. 19

20 4. VISUAL BASIC Ohjelmointiympäristö Johdanto Mikä on Visual Basic? Kun Microsoft julkaisi vuonna 1991 Visual Basicin ensimmäisen version, se oli merkittävä helpotus vaikeana pidettyyn Windows-ohjelmointiin: aloittelijakin pystyi sen avulla luomaan toimivia ja tyylikkäitä ohjelmia. Uusien versioiden mukana Visual Basiciin on tullut monia parannuksia, ja se soveltuu laajojenkin ohjelmien tekemiseen. Enää Basic ei ole pelkästään aloittelijoille tarkoitettu harjoitteluohjelmointikieli, josta täytyy siirtyä pois taitojen kehittyessä. Visual Basicin käynnistäminen Napsauta Start -painiketta (Käynnistä) hiirellä ja siirrä hiiren osoitin kohtaan Programs (Ohjelmat). Napsauta Programs -valikosta Microsoft Visual Basic 6.0 -ohjelmakansiota. Käynnistettyäsi ohjelman näytölle avautuu Visual Basicin ohjelmointiympäristö ja New Projectvalintaikkuna. New Project -ikkunan eri välilehtien avulla valitaan, millaista projektia halutaan käsitellä. New -välilehden avulla voidaan luoda uusi projekti. Existing -välilehden kautta voidaan avata jokin aikaisemmin tehty projekti. Recent -välilehdellä ovat viimeksi avatut projektit. Oletusasetusten mukaan Visual Basic lataa ohjelmointiympäristöön joukon ikkunoita. Tärkein näistä ikkunoista on näytön oikeassa laidassa oleva Project Explorer -ikkuna, jolla voit käsitellä ohjelmointiprojektia ja kaikkia siihen kuuluvia tiedostoja. Standard EXE -projektissa on oletuksena yksi tyhjä lomake, joka avautuu näytölle valmiiksi, kun uusi ohjelmointiprojekti luodaan. 20

JOHDATUS OHJELMOINTIIN

JOHDATUS OHJELMOINTIIN JOHDATUS OHJELMOINTIIN 1. JOHDANTO 1.1Taustaa ja ohjelmoinnin käsitemaailma 1.2 Erilaiset ohjelmointikielet ja paradigmat 1.3 Algoritmit ja tietorakenteet 1.4 Ohjelman perusrakenteet 2. OHJELMAN PERUSELEMENTIT

Lisätiedot

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

Lisätiedot

Java-kielen perusteet

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

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

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

Lisätiedot

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

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,

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Ehto- ja toistolauseet

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

Lisätiedot

Java-kielen perusteet

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

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Hyvä ohjelmointitapa. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen

Lisätiedot

12. Javan toistorakenteet 12.1

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

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

Lisätiedot

11. Javan toistorakenteet 11.1

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

Lisätiedot

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

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.

Lisätiedot

Sähköposti ja uutisryhmät 4.5.2005

Sähköposti ja uutisryhmät 4.5.2005 Outlook Express Käyttöliittymä Outlook Express on windows käyttöön tarkoitettu sähköpostin ja uutisryhmien luku- ja kirjoitussovellus. Se käynnistyy joko omasta kuvakkeestaan työpöydältä tai Internet Explorer

Lisätiedot

Tekstinkäsittelyn jatko KSAO Liiketalous 1

Tekstinkäsittelyn jatko KSAO Liiketalous 1 KSAO Liiketalous 1 Makrojen perusteita Toistuvia tehtäviä ja tehtäväsarjoja voidaan automatisoidan makrojen avulla. Makrot ovat sarja nauhoitettuja käskyjä, jotka määräävät mitä toimintoja makro toteuttaa.

Lisätiedot

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat Sisällys 12. Javan toistorakenteet Ylstä toistorakentsta. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirhtä. Silmukan rajat asetettu kierroksen

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

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,

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

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,

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

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

Lisätiedot

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 7. Quick Start - opas Condes 7. olfellows www.olfellows.net 1.

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 7. Quick Start - opas Condes 7. olfellows www.olfellows.net 1. Condes Suunnistuksen ratamestariohjelmisto Versio 7 Quick Start opas Yhteystiedot: olfellows Jouni Laaksonen Poijukuja 4 21120 RAISIO jouni.laaksonen@olfellows.net www.olfellows.net olfellows www.olfellows.net

Lisätiedot

811120P Diskreetit rakenteet

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

Lisätiedot

Ohjausrakenteet. Valinta:

Ohjausrakenteet. Valinta: Ohjausrakenteet Luento antaa yleiskuvan siitä kuinka ohjelmassa suorittaan vaihtoehtoisia tehtäviä valintarakenteiden avulla ja kuinka samanlaisia ohjelma-askeleita toistetaan toistorakenteiden avulla

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

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

Lisätiedot

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla 2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella

Lisätiedot

Java-kielen perusteita

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

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

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

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

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

Lisätiedot

Zeon PDF Driver Trial

Zeon PDF Driver Trial Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin

Lisätiedot

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013

Lisätiedot

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla ohjelmoida useita komponenteiltaan ja rakenteeltaan

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Kukin alkio (viite) talletettuna solmuun (node) vastaa paikan käsitettä

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PUURAKENTEET, BINÄÄRIPUU, TASAPAINOTETUT PUUT MIKÄ ON PUUTIETORAKENNE? Esim. Viereinen kuva esittää erästä puuta. Tietojenkäsittelytieteessä puut kasvavat alaspäin.

Lisätiedot

Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi

Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi Imperatiivisen ohjelmoinnin peruskäsitteet muuttuja muuttujissa oleva data voi olla yksinkertaista eli primitiivistä (esim. luvut ja merkit) tai rakenteista jolloin puhutaan tietorakenteista. puhuttaessa

Lisätiedot

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi 1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla

Lisätiedot

18. Abstraktit tietotyypit 18.1

18. Abstraktit tietotyypit 18.1 18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python 7. helmikuuta 2009 Ohjelmoinnista Ohjelman peruselementtejä Koodin kommentointi Lohkorakenne Ohjausrakenteet If For While Try Funktiot Käyttö

Lisätiedot

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen 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ätiedot

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Sisällys 3. Pseudokoodi Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet: Valinta if- ja if--rakenteilla. oisto while-, do-while- ja for-rakenteilla. 3.1 3.2 Johdanto

Lisätiedot

Muistutus aikatauluista

Muistutus aikatauluista Muistutus aikatauluista (Nämä eivät välttämättä koske avoimen yo:n opiskelijoita Erkki Kailan rinnakkaisella kurssilla) Luento 1: kotitehtävät sulkeutuvat 20.9 12:00, ennen tutoriaalia Tutoriaali 1 sulkeutuu

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Toistorakenne (while, do-while, for) 1 While- lause while-lauseen rakenne on seuraava: while (ehtolauseke) lause Kun ehtolausekkeen arvo on totta, lause suoritetaan. Lause suoritetaan

Lisätiedot

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

Lisätiedot

Tutoriaaliläsnäoloista

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

Lisätiedot

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -

Lisätiedot

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen.

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

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

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

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

Lisätiedot

Muuttujien määrittely

Muuttujien määrittely Tarja Heikkilä Muuttujien määrittely Määrittele muuttujat SPSS-ohjelmaan lomakkeen kysymyksistä. Harjoitusta varten lomakkeeseen on muokattu kysymyksiä kahdesta opiskelijoiden tekemästä Joupiskan rinneravintolaa

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A 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ätiedot

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26

Lisätiedot

Algoritmit 1. Luento 4 Ke Timo Männikkö

Algoritmit 1. Luento 4 Ke Timo Männikkö Algoritmit 1 Luento 4 Ke 18.1.2017 Timo Männikkö Luento 4 Tietorakenteet Pino Pinon toteutus Jono Jonon toteutus Lista Listaoperaatiot Algoritmit 1 Kevät 2017 Luento 4 Ke 18.1.2017 2/29 Pino Pino, stack,

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

Tekstinkäsittelyn jatko Error! Use the Home tab to apply Otsikko 1 to the text that you want to appear here. KSAO Liiketalous 1

Tekstinkäsittelyn jatko Error! Use the Home tab to apply Otsikko 1 to the text that you want to appear here. KSAO Liiketalous 1 KSAO Liiketalous 1 Lomakkeet Lomake on asiakirja, joka sisältää täyttämistä ohjaavia tietoja tai merkintöjä. Wordin lomakekenttä-toiminnolla luodaan näytöllä täytettäviä lomakkeita tai tulostettavia lomakepohjia.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmassa 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ätiedot

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ...

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ... 1. Tietorakenteet Tietorakenteet organisoivat samankaltaisten olioiden muodostaman tietojoukon. Tämä järjestys voidaan saada aikaan monin tavoin, esim. Keräämällä oliot taulukkoon. Liittämällä olioihin

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

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

Lisätiedot

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, että se pystyy suorittamaan kaikki mahdolliset algoritmit?

Lisätiedot

Siirtyminen Outlook 2010 -versioon

Siirtyminen Outlook 2010 -versioon Tämän oppaan sisältö Microsoft Microsoft Outlook 2010 näyttää hyvin erilaiselta kuin Outlook 2003. Tämän oppaan tarkoituksena on helpottaa uuden ohjelman opiskelua. Seuraavassa on tietoja uuden käyttöliittymän

Lisätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin 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ätiedot

TIETOKONEEN ASETUKSILLA PARANNAT KÄYTETTÄVYYTTÄ

TIETOKONEEN ASETUKSILLA PARANNAT KÄYTETTÄVYYTTÄ TIETOKONEEN ASETUKSILLA PARANNAT KÄYTETTÄVYYTTÄ Windows XP-käyttöjärjestelmän asetuksilla sekä Word-asetuksilla voit vaikuttaa tietokoneen näytön ulkoasuun, selkeyteen ja helppokäyttöisyyteen.. 1) ASETUKSET

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

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,

Lisätiedot

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta. Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita

Lisätiedot

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Pythonin 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ätiedot

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.

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

Lisätiedot

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö Algoritmit 2 Luento 2 Ke 15.3.2017 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2017 Luento

Lisätiedot

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A. Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta

Lisätiedot

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto Condess ratamestariohjelman käyttö Aloitus ja alkumäärittelyt Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto Kun kysytään kilpailun nimeä, syötä kuvaava nimi. Samaa nimeä käytetään oletuksena

Lisätiedot

Ksenos Prime Käyttäjän opas

Ksenos Prime Käyttäjän opas Ksenos Prime Käyttäjän opas Versio 11.301 Turun Turvatekniikka Oy 2011 Selaa tallenteita. Tallenteiden selaaminen tapahtuu samassa tilassa kuin livekuvan katselu. Voit raahata hiirellä aikajanaa tai käyttää

Lisätiedot

Tä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 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ätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-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ätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,

Lisätiedot

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

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

Tieto- ja tallennusrakenteet

Tieto- ja tallennusrakenteet Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)

Lisätiedot

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

C-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ätiedot

Tarkennamme geneeristä painamiskorotusalgoritmia

Tarkennamme geneeristä painamiskorotusalgoritmia Korotus-eteen-algoritmi (relabel-to-front) Tarkennamme geneeristä painamiskorotusalgoritmia kiinnittämällä tarkasti, missä järjestyksessä Push- ja Raise-operaatioita suoritetaan. Algoritmin peruskomponentiksi

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

Lisätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä olevilla komponenteilla? Voisiko jollakin ohjelmointikielellä

Lisätiedot

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:

Lisätiedot

Tekstinkäsittely 1. Peruskäyttö. Tietotekniikan perusteet Metropolia Ammattikorkeakoulu Vesa Ollikainen

Tekstinkäsittely 1. Peruskäyttö. Tietotekniikan perusteet Metropolia Ammattikorkeakoulu Vesa Ollikainen Tekstinkäsittely 1 Peruskäyttö Tavoitteet ja sisältö Tavoite Lyhyen asiakirjan kirjoitustaito Word-tekstinkäsittelyohjelmalla Sisältö Tekstinkäsittelyohjelman esittely Tekstinkäsittelyprosessi Tekstin

Lisätiedot

Ohjelmoinnin perusteet, syksy 2006

Ohjelmoinnin perusteet, syksy 2006 Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen

Lisätiedot

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 8. Quick Start - opas Condes 8. olfellows www.olfellows.fi 1.

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 8. Quick Start - opas Condes 8. olfellows www.olfellows.fi 1. Condes Suunnistuksen ratamestariohjelmisto Versio 8 Quick Start opas Yhteystiedot: olfellows Jouni Laaksonen Poijukuja 4 21120 RAISIO Sähköposti: jouni.laaksonen@olfellows.fi www.olfellows.fi olfellows

Lisätiedot

ASCII-taidetta. Intro: Python

ASCII-taidetta. Intro: Python Python 1 ASCII-taidetta All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do.

Lisätiedot

Autentikoivan lähtevän postin palvelimen asetukset

Autentikoivan lähtevän postin palvelimen asetukset Autentikoivan lähtevän postin palvelimen asetukset - Avaa Työkalut valikko ja valitse Tilien asetukset - Valitse vasemman reunan lokerosta Lähtevän postin palvelin (SM - Valitse listasta palvelin, jonka

Lisätiedot

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

Lisätiedot

Ajokorttimoduuli Moduuli 2. - Laitteenkäyttö ja tiedonhallinta. Harjoitus 1

Ajokorttimoduuli Moduuli 2. - Laitteenkäyttö ja tiedonhallinta. Harjoitus 1 Ajokorttimoduuli Moduuli 2 - Laitteenkäyttö ja tiedonhallinta Harjoitus 1 Tämän harjoituksen avulla opit alustamaan levykkeesi (voit käyttää levykkeen sijasta myös USBmuistitikkua). Harjoitus tehdään Resurssienhallinnassa.

Lisätiedot

C# Windows ohjelmointi perusopas

C# Windows ohjelmointi perusopas Paavo Räisänen C# Windows ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot