Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.

Samankaltaiset tiedostot
3. Muuttujat ja operaatiot 3.1

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat ja operaatiot


etunimi, sukunimi ja opiskelijanumero ja näillä

Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan valitseminen päätöksellä ja toistaminen silmukalla.

3. Muuttujat ja operaatiot 3.1

Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä:

Sisällys. Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä. 2.2

Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten

16. Ohjelmoinnin tekniikkaa 16.1

16. Ohjelmoinnin tekniikkaa 16.1

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin

Ehto- ja toistolauseet

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Sisältö. 2. Taulukot. Yleistä. Yleistä

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

Sisältö. 22. Taulukot. Yleistä. Yleistä

Ohjelmoinnin perusteet Y Python

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

PERUSLASKUJA. Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +5^2

Harjoitus 2 (viikko 45)

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

Ohjelmoinnin perusteet Y Python

Johdatus Ohjelmointiin

Tietotyypit ja operaattorit

Javan perusteita. Janne Käki

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

Harjoitus 3 (viikko 39)

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

7. Näytölle tulostaminen 7.1

Algoritmit 1. Demot Timo Männikkö

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

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

12. Javan toistorakenteet 12.1

13. Loogiset operaatiot 13.1

ITKP102 Ohjelmointi 1 (6 op)

Java-kielen perusteet

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

1. Omat operaatiot 1.1

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

(c) Kuinka suuri suhteellinen virhe painehäviön laskennassa tehdään, jos virtaus oletetaan laminaariksi?

Ohjelmoinnin perusteet Y Python

13. Loogiset operaatiot 13.1

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

12. Javan toistorakenteet 12.1

811120P Diskreetit rakenteet

Ohjelmoinnin perusteet Y Python

Algoritmit 1. Demot Timo Männikkö

Ohjelmoinnin peruskurssi Y1

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

11. Javan valintarakenteet 11.1

Ohjelmoinnin perusteet Y Python

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Ohjelmoinnin peruskurssi Y1

Harjoitustyö: virtuaalikone

1 Aritmeettiset ja geometriset jonot

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmoinnin perusteet Y Python

7. Oliot ja viitteet 7.1

Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet:

Kirjoita ohjelma jossa luetaan kokonaislukuja taulukkoon (saat itse päättää taulun koon, kunhan koko on vähintään 10)

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

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

SELECT-lauseen perusmuoto

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

ITKP102 Ohjelmointi 1 (6 op)

Java-kielen perusteet

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

= 3 = 1. Induktioaskel. Induktio-oletus: Tehtävän summakaava pätee jollakin luonnollisella luvulla n 1. Induktioväite: n+1

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Ohjelmoinnin perusteet Y Python

811120P Diskreetit rakenteet

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 3

11. Javan toistorakenteet 11.1

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä

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

12. Näppäimistöltä lukeminen 12.1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

17. Javan omat luokat 17.1

Matematiikan tukikurssi

Ohjelmoinnin perusteet Y Python

Taulukot. Jukka Harju, Jukka Juslin

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

Ohjeita. Datan lukeminen

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Transkriptio:

3. Muuttujat ja operaatiot Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi.. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit. Arvojen vertailu. Operaatiot. Nimeäminen. Parametrit. Paluuarvo. Esimerkkejä: yksikkömuunnos, peli luvun arvaukseen ja keskiarvon laskeminen. 3.1 3.2 Muuttujat ja operaatiot Tietokoneet tarvitsevat vapaamuotoista tekstiä paljon yksityiskohtaisempia ohjta. Tietokone osaa laskea nopeasti, mutta arkijärkeä koneella ole. Eräs tapa tarkentaa algoritmeja on esitellä äärellinen joukko muuttujia ja käyttää operaatioita muuttujien arvojen lukemiseen ja muuttamiseen. Muuttujien arvot algoritmin tietyssä vaiheessa määrittävät algoritmin tilan (state). Algoritmi siirtyy tilasta toiseen suorituksensa aikana. Tällainen laskenta on luonteeltaan imperatiivista. 3.3 Muuttujat Muuttuja (variable) koostuu nimestä (tunnuksesta) ja nimeen liittyvästä arvosta. Muuttuja ole matematiikasta tuttu käsite, jolla symboloidaan usn tuntematonta arvoa. Esimerkiksi yhtälössä x + 1 = 0 tuntematon arvo on x. Algoritmissa muuttujan arvo on yleensä tunnettu ja erityisesti erona on se, että arvo voi muuttua algoritmin edetessä vaiheesta toiseen. Muuttuja muistuttaa hieman suuretta eli mitattavaa ominaisuutta. Esimerkiksi lämpötila (T) on suure, jolla mitataan aineen lämpöenergian määrää. 3.4

Muuttujat Muuttuja nimetään sen tarkoitusta kuvaavasti. Algoritmien ymmärrettävyyden kannalta on tärkeää, että nimistä nähdään minkä tiedon säilyttämiseen muuttujia käytetään. Yleensä hyvä nimi on riittävän pitkä nimi. Esimerkiksi syntymäpäivän sisältävälle muuttujalle on parempi antaa nimeksi vaikkapa syntpvm kuin p. Nimeä lyhyesti vain, jos erehtymisen vaaraa ole. Nimissä käytetään enimmäkseen kirjaimia. Kirjainten seurana voi olla numeroita. Ohjelmointikielissä kielioppi ja vakiintunut tyyli määrää nimen kirjoitusasun. 3.5 Muuttujat Ohjelmointikielissä muuttujille annetaan yleensä tyypit ohjelmoijan toimesta. Esimerkiksi henkilön paino ja pituus on järkevää määritellä jollakin numeerisella tyypillä, kun taas etu- ja sukunimi ovat luontevasti merkkijonoja. Tyyppejä määritellä vielä, jotta algoritmien kirjoittaminen olisi helpompaa. Muuttujan laatu päätellään toistaiseksi nimen tai arvon avulla. Muuttujien oletetaan olevan alkstyyppisiä. Muuttujalle voi antaa mittayksikköä. Esimerkiksi henkilön pituus esitetään muuttujana ilman metrin tunnusta (m), vaikka pituussuureen yksiköksi on sovittu metri. 3.6 Operaattorksi (operator) kutsutuille operaatioille on annettu omat symbolit. Operaattorin käsittelemät arvot ovat operandeja. Operandit voivat olla arvoja sellaisenaan (literaaleja), muuttujien arvoja tai muiden operaatioiden palauttamia arvoja. Usmmat operandit ovat kaksioperandisia. Sijoitusoperaattori ( ) korvaa muuttujan nykyisen arvon uudella. Ensimmäinen (vasen) operandi on muuttujan nimi. Toinen (oikea) operandi on uusi arvo. Sijoitus on usn algoritmin yksittäinen vaihe. ikä 14 Luentomateriaalissa nimet on kursivoitu, jotta muuttujat olisi helpompi tunnistaa. sukunimi "Snow" Merkkijonoliteraalit suljetaan Javan tapaan lainausmerkkhin. luokka 'F' Oletetaan, että hahmoluokan arvot on päätetty esittää yksittäisin merkn. Merkkiliteraalit suljetaan yksinkertaisiin lainausmerkkhin eli niin sanottuihin hipsuihin. ikäalussa ikä Muuttujan ikä arvo (14) asetetaan muuttujan ikäalussa arvoksi. Sijoituksen jälkeen molemmilla muuttujilla on arvo 14, mutta arvot ovat erilliset, koska sijoituksen yhteydessä iän arvosta tehdään kopio. ikä 15 Muuttujan ikäalussa arvo on edelleen 14. 3.7 3.8

Tutut aritmeettiset operaattorit (+, -,, /) ovat käytettävissä. Laskujärjestys on koulusta tuttu ja sulkuja voidaan käyttää järjestyksen muuttamiseen. Sijoitusoperaattoria vahvempia: aritmeettisia lausekkta lasketaan, kunnes saadaan yksittäinen arvo sijoitusta varten. tulosumma 1 2 + 2 2 Ensin lasketaan tulot 1 2 ja 2 2, toiseksi summataan tulot 2 + 4 ja lopuksi sijoitetaan summa (6) muuttujan arvoksi. Sijoitus muodostaa algoritmin vaiheen, vaikka ennen sijoittamista lasketaan aritmeettisilla operaattorlla. Muuttujan nykyistä arvoa täytyy toisinaan kasvattaa tai vähentää, jolloin saman muuttujan tunnus esiintyy molemmin puolin sijoitusoperaattoria. Erityisesti silmukoihin liittyvät kokonaislukuarvoiset laskurit (counter) muuttuvat usn yhden arvon verran. Tällaisissa tapauksissa muuttujan nykyistä arvoa käytetään vasemmalla puolella ja muuttuja saa uuden arvon vasta, kun oikea puoli on laskettu. ikä ikä + 1 Ensin haetaan iän vanha arvo (14 + 1) ja sitten lasketaan summa (15) ja lopuksi sijoitetaan summa muuttujan uudeksi arvoksi. 3.9 3.10 Operaatiot Vertailuoperaattorit (<, =, >,,, ) palauttavat (tosi) tai (epätosi) -arvon riippuen operandiensa arvoista. Käytetään erityisesti algoritmien päätöksissä. Aritmeettisia operaattorta hkompia, sijoitusta vahvempia. onikää age 18 Ensin haetaan iän nykyinen arvo (15 18), jonka jälkeen lausekkeen arvoksi voidaan laskea. Tulos sijoitetaan lopuksi muuttujaan. Operaattorta monimutkaisemmat operaatiot ovat algoritmeja, joita kutsutaan (call) nimen avulla. Tunnuksen lopussa on aina kaarisulkden pari. Operaation tarvitsemat tiedot eli parametriarvot (parameter values) välitetään operaatiolle kirjoittamalla arvot kaarisulkden sisään. Arvot erotetaan pilkuilla. Parametriarvo on operandin tapaan literaali, muuttujan arvo jne. Operaation parametrien lukumäärä, laatu ja järjestys selviää operaation dokumentaatiosta. kopioi ("a.txt", "b.txt") Operaatio kopioi tiedoston a.txt sisällön tiedostoon b.txt. Kutsussa on tärkeää huomioida arvojen järjestys. 3.11 3.12

Operaatiot Operaatiot Operaatiolla voi olla paluuarvo (return value). Huomaa, että operaattori palauttaa aina arvon, mutta operaatio voi palauttaa arvon tai jättää sen palauttamatta. arvattava arvoluku() Operaation satunnaisesti valitsema luku sijoitetaan muuttujaan. Operaatiolle anneta arvoja. max annasuurin(42, 13) Operaatio päättelee kumpi parametriarvoista on suurempi ja palauttaa suuremman arvon (42), joka sijoitetaan muuttujaan. Operaatioiden avulla voidaan kommunikoida käyttäjän kanssa. Oletetaan käytettävissä olevan operaatiot: lue: Palauttaa arvon, jonka käyttäjä antaa näppäimistöltä. tulosta: Tulostaa parametriarvonsa näytölle. jaardit lue() metrit 0,9144 jaardit tulosta(metrit) 3.13 3.14 Peli luvun arvaukseen Peli luvun arvaukseen Pelin vapaamuotoinen versio voidaan muuttaa melko suoraviivaisesti tarkemmalle tasolle. Otetaan käyttöön muuttujat arvattavalle ja arvatulle luvulle. Arvattava luku alustetaan satunnaisluvun tuottavalla operaatiolla arvoluku. Arvaus luetaan käyttäjältä lue-operaatiolla. Vinkit ja onnittelut viestitään tulosta-operaatiolla. Päätökset ilmaistaan vertailuoperaattorden avulla. arvattava arvoluku() arvaus lue() arvaus < arvattava arvaus > arvattava tulosta("oikn!") tulosta("meni ali.") tulosta("meni yli.") arvaus arvattava 3.15 3.16

Keskiarvon laskeminen Päätellään tarvittavat muuttujat kaavasta x n = luku on luettu luku (termi x i ), i on laskuri, josta selviää monesko silmukan kierros on menllään (termin indeksi), summa vastaa lukujen summaa (Σx i ), lkm vastaa lukujen lukumäärää (indeksin yläraja n) ja ka on lukujen keskiarvo ( x). Silmukka voidaan toteuttaa usealla eri tavalla. Oletetaan nyt, että lukujen lukumäärä voidaan selvittää ennen silmukan aloitusta. i = 1 x /n ( n > 0). i Keskiarvon laskeminen summa 0 lkm lue() i 1 i lkm luku lue() summa summa + luku i i + 1 lkm > 0 ka summa / lkm tulosta(ka) tulosta( Ei lukuja! ) 3.17 3.18