Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

3. Muuttujat ja operaatiot

Samankaltaiset esitykset


Esitys aiheesta: "3. Muuttujat ja operaatiot"— Esityksen transkriptio:

1 3. Muuttujat ja operaatiot

2 Sisällys Imperatiivinen laskenta. Muuttujat. Operaattorit. Operaatiot.
Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit. Arvojen vertailu. Operaatiot. Nimeäminen. Parametrit. Paluuarvo. Esimerkkejä: yksikkömuunnos, peli luvun arvaukseen ja keskiarvon laskeminen.

3 Muuttujat ja operaatiot
Tietokoneet tarvitsevat vapaamuotoista tekstiä paljon yksityiskohtaisempia ohjeita. Tietokone osaa laskea nopeasti, mutta arkijärkeä koneella ei 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

4 Muuttujat Muuttuja (variable) koostuu nimestä (tunnuksesta) ja nimeen liittyvästä arvosta. Muuttuja ei ole matematiikasta tuttu käsite, jolla symboloidaan usein 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

5 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 ei ole. Nimissä käytetään enimmäkseen kirjaimia. Kirjainten seurana voi olla numeroita. Ohjelmointikielissä kielioppi ja vakiintunut tyyli määrää nimen kirjoitusasun. 3.5

6 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ä ei määritellä vielä, jotta algoritmien kirjoittaminen olisi helpompaa. Muuttujan laatu päätellään toistaiseksi nimen tai arvon avulla. Muuttujien oletetaan olevan alkeistyyppisiä. Muuttujalle ei voi antaa mittayksikköä. Esimerkiksi henkilön pituus esitetään muuttujana ilman metrin tunnusta (m), vaikka pituussuureen yksiköksi on sovittu metri. 3.6

7 Operaattorit Operaattoreiksi (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. Useimmat operandit ovat kaksioperandisia. Sijoitusoperaattori (←) korvaa muuttujan nykyisen arvon uudella. Ensimmäinen (vasen) operandi on muuttujan nimi. Toinen (oikea) operandi on uusi arvo. Sijoitus on usein algoritmin yksittäinen vaihe. ikä ← 14 Luentomateriaalissa nimet on kursivoitu, jotta muuttujat olisi helpompi tunnistaa. 3.7

8 Operaattorit sukunimi ← "Snow" luokka ← 'F' ikäAlussa ← ikä ikä ← 15
Merkkijonoliteraalit suljetaan Javan tapaan lainausmerkkeihin. luokka ← 'F' Oletetaan, että hahmo-luokan arvot on päätetty esittää yksittäisin merkein. Merkkiliteraalit suljetaan yksinkertaisiin lainausmerkkeihin 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.8

9 Operaattorit Tutut aritmeettiset operaattorit (+ , - , ∙ , /) ovat käytettävissä. Laskujärjestys on koulusta tuttu ja sulkuja voidaan käyttää järjestyksen muuttamiseen. Sijoitusoperaattoria vahvempia: aritmeettisia lausekkeita lasketaan, kunnes saadaan yksittäinen arvo sijoitusta varten. tulosumma ← 1 ∙ ∙ 2 Ensin lasketaan tulot 1 ∙ 2 ja 2 ∙ 2, toiseksi summataan tulot ja lopuksi sijoitetaan summa (6) muuttujan arvoksi. Sijoitus muodostaa algoritmin vaiheen, vaikka ennen sijoittamista lasketaan aritmeettisilla operaattoreilla. 3.9

10 Operaattorit Muuttujan nykyistä arvoa täytyy toisinaan kasvattaa tai vähentää, jolloin saman muuttujan tunnus esiintyy molemmin puolin sijoitusoperaattoria. Erityisesti silmukoihin liittyvät kokonaisluku-arvoiset laskurit (counter) muuttuvat usein 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.

11 Operaattorit Vertailuoperaattorit (<, =, >, ≤, ≥, ≠) palauttavat “kyllä” (tosi) tai “ei” (epätosi) -arvon riippuen operandiensa arvoista. Käytetään erityisesti algoritmien päätöksissä. Aritmeettisia operaattoreita heikompia, sijoitusta vahvempia. onIkää ← age ≥ 18 Ensin haetaan iän nykyinen arvo (15 ≥ 18), jonka jälkeen lausekkeen arvoksi voidaan laskea “ei”. Tulos sijoitetaan lopuksi muuttujaan.

12 Operaatiot Operaattoreita moni-mutkaisemmat operaatiot ovat algoritmeja, joita kutsutaan (call) nimen avulla. Tunnuksen lopussa on aina kaarisulkeiden pari. Operaation tarvitsemat tiedot eli parametriarvot (parameter values) välitetään operaatiolle kirjoittamalla arvot kaarisulkeiden 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.

13 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 ei anneta arvoja. max ← annaSuurin(42, 13) Operaatio päättelee kumpi parametriarvoista on suurempi ja palauttaa suuremman arvon (42), joka sijoitetaan muuttujaan.

14 Operaatiot 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. Alku jaardit ← lue() tulosta(metrit) Loppu metrit ← 0,9144 ∙ jaardit 2 1,8288

15 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 vertailuoperaattoreiden avulla.

16 arvattava ← arvoLuku()
Peli luvun arvaukseen arvaus ≠ arvattava arvaus ← lue() tulosta("Meni ali.") Alku Loppu arvaus < arvattava kyllä ei tulosta("Oikein!") arvattava ← arvoLuku() tulosta("Meni yli.") arvaus > arvattava 3.16 16

17 Keskiarvon laskeminen
Päätellään tarvittavat muuttujat kaavasta luku on luettu luku (termi xi), i on laskuri, josta selviää monesko silmukan kierros on meneillään (termin indeksi), summa vastaa lukujen summaa (Σxi), lkm vastaa lukujen lukumäärää (indeksin yläraja n) ja ka on lukujen keskiarvo ( ). Silmukka voidaan toteuttaa usealla eri tavalla. Oletetaan nyt, että lukujen lukumäärä voidaan selvittää ennen silmukan aloitusta.

18 Keskiarvon laskeminen
i ≤ lkm luku ← lue() tulosta(″Ei lukuja!″) ka ← summa / lkm Alku Loppu lkm > 0 kyllä ei tulosta(ka) lkm ← lue() summa ← 0 summa ← summa + luku i ← i + 1 i ← 1


Lataa ppt "3. Muuttujat ja operaatiot"

Samankaltaiset esitykset


Iklan oleh Google