Ohjelmoinnin perusteet

Samankaltaiset tiedostot
Ohjelmointi 1. Kumppanit

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

KOODAUSPLÄJÄYS. Ohjelmoinnin perusteet

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

811120P Diskreetit rakenteet

Arkipäivän automaatiota ja robotiikkaa

811120P Diskreetit rakenteet

KTKO104 Tieto- ja viestintätekniikka. 2. Luento - Opetussuunnitelma ja TVT Tiistai

ITKP102 Ohjelmointi 1 (6 op)

LUENTO 7 TAULUKKOLASKENTA I

KTKO104 Tieto- ja viestintätekniikka. 2. Luento - Opetussuunnitelma 2014 Tiistai

Scratch ohjeita. Perusteet

LEGO EV3 Datalogging mittauksia

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

Python-ohjelmointi Harjoitus 2

Ryhmäharjoitus III: Mitä on koodaaminen? A. TIEY4 Tietotekniikkataidot, kevät 2017 Tehdään ryhmäharjoitustunnilla 20.3.

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

Tietotekniikan valintakoe

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

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

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

Automaatit. Muodolliset kielet

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

Koodaamme uutta todellisuutta FM Maarit Savolainen

Ehto- ja toistolauseet

Aurinkopaneelin lataussäädin 12/24V 30A. Käyttöohje

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

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

Oppitunti 1 Mitä ohjelmointi tarkoittaa?

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

Zeon PDF Driver Trial

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

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

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

Ohjelmointia & monilukutaitoa

Scratch - ohjelmoinnin alkeet

Algoritmit 1. Luento 1 Ti Timo Männikkö

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

Harjoitus 3 (viikko 39)

Ohjelmointi 1 C#, kevät 2013, 2. tentti

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

1. Mitä tehdään ensiksi?

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

Python-ohjelmointi Harjoitus 5

Ohjelmoinnin perusteet Y Python

TAMPEREEN TEKNILLINEN YLIOPISTO

10. Kerto- ja jakolaskuja

Tutoriaaliläsnäoloista

Harjoitus 1 -- Ratkaisut

Ohjelmoinnin perusteet Y Python

11/20: Konepelti auki


FUNKTION KUVAAJAN PIIRTÄMINEN

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

iloq P10S.10/20 -ohjelmointilaite Käyttöohje

OHJELMOINTIA MONIPUOLISESTI MATEMATIIKAN OPETUKSESSA LUMA-PÄIVÄT, TAMPERE

Ohjelmoinnin perusteet Y Python

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen

JavaScript alkeet Esimerkkikoodeja moniste 2

Harjoitustyön testaus. Juha Taina

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

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

Java-kielen perusteet

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

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

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

Algoritmit 1. Luento 3 Ti Timo Männikkö

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Harjoitus 3 -- Ratkaisut

12. Javan toistorakenteet 12.1

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Ohjelmoinnin perusteet Y Python

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

Eye Pal Solo. Käyttöohje

Pong-peli, vaihe Rajojen tarkistus Yläreunan tarkistus. Muilla kielillä: English Suomi

etunimi, sukunimi ja opiskelijanumero ja näillä

Mikä neljästä numeroidusta kuviosta jatkaa alkuperäistä kuviosarjaa? Perustele lyhyesti

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta.

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

LAUSESANAT KONJUNKTIOT

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

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

MATEMATIIKAN DIGITAALISEN KOKEEN MÄÄRÄYKSET

16. Ohjelmoinnin tekniikkaa 16.1

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

ITKP102 Ohjelmointi 1 (6 op)

Negatiiviset luvut ja laskutoimitukset

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Ohjelmoinnin perusteet Y Python

Taulukkolaskennan perusteet Taulukkolaskentaohjelmat

MARJAISIA RESEPTEJÄ AMMATTILAISILLE

EI MIKÄÄN NÄISTÄ. KUVITETTU MINI-MENTAL STATE EXAMINATION Ohjeet viimeisellä sivulla. 1. Mikä vuosi nyt on? 2. Mikä vuodenaika nyt on?

Tarvikkeet: A5-kokoisia papereita, valmiiksi piirrettyjä yksinkertaisia kuvioita, kyniä

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

5.3 Ensimmäisen asteen polynomifunktio

Transkriptio:

LibreOffice Calc 1 Taulukkolaskenta Ohjelmoinnin perusteet Otavan Opiston julkaisusarja Jari Sarja 2015 Creative Commons Nimeä 4.0 Kansainvälinen (CC BY 4.0)

Ohjelmointi 2 Sisällysluettelo Yleistä...2 Tehtävä 1...3 Tehtävä 2...3 Historia...3 Tehtävä 3...4 Tehtävä 4...5 Vuokaavio...5 Kuinka vuokaavio piirretään?...6 Tehtävä 5...7 Tehtävä 6...7 Algoritmi...8 Tehtävä 7...9 Ohjelmointikielen osia...9 Lähteet...12

Ohjelmointi 3 Yleistä Kun haluamme koneen tekevän jotain meidän puolesta, on käytettävä apuna ohjelmointia. Kone ei ymmärrä tavallista puhuttua kieltä vaan sille on annettava ohjeet koodattuina. Siksi joissakin yhteyksissä puhutaan koodauksesta. Myös ohjelmoijista käytettään toisinaan nimitystä koodari, jolla viitataan heidän tekemään koodaustyöhön (kirjoittavat koodia, joista muodostuu ohjelma). Ohjelmointi on yksinkertaisimmillaan toimintaohjeiden antamista ennalta määrätyn toimenpiteen suorittamista varten. Ohjelmointia esiintyy meidän jokaisen arkielämässä lähes päivittäin. Ohjelmoinniksi voidaan laskea esim. se, että annamme jollekulle puhelimessa ajo-ohjeet. Myös mikroaaltouunin käyttö on ohjelmointia, koska annamme uunille ohjeet siitä, kuinka kauan ja kuinka suurella teholla sen tulee toimia. Lopputulos on kiinni siitä kuika olet onnistunut ohjelmoimaan. Mikroaaltouuni toteuttaa ohjelmointisi prikulleen, jäinen pulla ja räjähtynyt tomaatti ovat huonon ohjelmoinnin seurauksia. Kuva 1, Flickr: Sharp Carousel Microwave by Chris Kelly (CC BY 2.0) Tehtävä 1 Kuinka ohjelmoisit mikroaaltouunin (teho ja ika) siten, että pakastettu pizzapala olisi sopivan lämpöinen syöntiä varten. Tehtävä 2 Kuinka ohjelmoisit pesukoneen pesemään villapaitasi?

Ohjelmointi 4 Historia Ohjelmointi on liittynyt läheisesti siihen, että on ollut jokin iso ratkaisematon ongelma. Tässä alla on kuvaus yhdestä sellaisesta ongelmasta. Vuonna 1880 Amerikassa oli 50 miljoonaa asukasta ja tietojen kokoaminen ja analysointi kesti kaikkiaan seitsemän vuotta. Koska väestön määrän arvioitiin nousevan 60 miljoonaan, pelättiin virastossa, että vuoden 1890 väestölaskenta kestäisi yli kymmenen vuotta eikä siis valmistuisi edes seuraavan väestönlaskennan alkuun mennessä. (Lindström 2002, 3) Kun vuoden 1890 väestönlaskennan aika lähestyi, Väestönlaskentavirasto järjesti kilpailun löytääkseen uuden nopean menetelmän väestönlaskennan suorittamiseksi. Kilpailun voitti Herman Hollertin keksintö, joka perustui reikäkortteihin. Henkilön tiedot syötettiin reikäkortteihin, joissa oli kenttiä. Jokaisessa positiossa oli kaksi vaihtoehtoa eli siinä oli joko reikä tai ei. Esim. sukupuoli voitiin merkata siten, että reikä tietyssä positiossa kuvasi henkilön olevan nainen ja viereisessä positiossa hänen olevan mies. (Lindström 2002, 4) Hollerithin menetelmää käyttäen Väestönlaskentavirasto säästi henkilötyön vähenemisellä 5 miljoonaa dollaria, joka oli 10 kertaa enemmän kuin oli arvioitu (Lindström 2002, 4) Kuva 2. Flickr: My first punched card by Marcin Wichary (CC BY 2.0) Reikäkortti perustuu binäärilukujärjestelmään, jossa on käytössä vain kaksi lukua eli 0 ja 1. Nykyään ohjelmointi on aiempaa helpompaa, koska on olemassa useita apuvälineitä. Lisäksi ohjelmointikielet ovat kehittyneet inhimillisempään suuntaan, ne ovat siis helpommin tulkittavissa kuin ennen.

Ohjelmointi 5 Tosin siellä ihan ytimessä tietokoneet ovat edelleenkin ykkösiä ja nollia. Prosessoreissa ja muissa digitaalipiireissä nolla ja yksi esitetään usein kahtena eri jännitetasona. Tehtävä 3 Mitä alla olevassa kyltissä lukee suomeksi? Kuva 3. Flickr: Binary by Xerones (CC BY-NC 2.0) Tehtävä 4 Pinääripentti väittää, että 1+1 on 10. Hän on oikeassa, miten se on mahdollista?

Ohjelmointi 6 Vuokaavio Vuokaaviota on käytetty pitkään. Jopa niin pitkään, ettei ketään ole nimitetty vuokaavion isäksi tai keksijäksi. Yleensä vuokaaviolla kuvataan prosesseja. Vuokaavio tarjoaa yhteisen symbolisen kielen mille tahansa ilmiölle, joka sisältää prosesseja. Vuokaavioita käytetäänkin kuvaamaan mitä erilaisemmissa yhteyksissä. Helpoiten vuokaavion voi piirtää lyijykynällä. Tyylikkäämmän kaavion saa aikaiseksi käyttämällä apuna valmista sabluunaa. Alla oleva vuokaavio kuvaa kuinka syntyy päätös jäädä kotiin tai lähteä rannalle. Kumpi valinnoista toteutuu riippuu siitä sataako ulkona vai ei. Kuinka vuokaavio piirretään? Ohjelmointia käsittelevissä vuokaavioissa ei tarvitse opetella kuin kuusi erilaista symbolia. Suorakaiteen muotoinen symboli (process) kuvaa tietokoneen prosessointia. Tietokoneen suorittama tehtävä kuvataan kirjoittamalla suorakaiteen sisään suoritettava tehtävä. Suorakaide (input/output) kuvaa sitä, että tietokoneelle syötetään tietoa tai että tietokone

Ohjelmointi 7 tuottaa tietoa. Salmiakkikuvion tehtävä on kuvata päätöksentekoa, joka perustuu ennalta määriteltyihin valintoihin. Suorakaide, jonka alareuna on aaltomainen, kuvaa tiedon varastointia esim. tulostamista kuvataan tällä symbolilla (papeille tallentuu tulos). Pieni ympyrä kuvaa yhdistämistä. Tätä tarvitaan kun esim. A4:n loppuu kesken ja on jatkettava seuraavalle sivulle. Silloin ympyrän sisään kirjoitetaan kirjan (esim. A) ja nuoli viiva alaspäin, ja jatkettavalle sivulle myös A-kirjain ja viiva ylöspäin. Nuolet kuvaavat prosessin suuntia eli mikä seuraa mitäkin vaihetta. Seuraavaksi esittelen vuokaavion, jonka pitää suoritaa yhteenlaksutehtävä. Ohjelma koostuu seuraavsiat vaiheista: 1) lue luvut 2) laske luvut yhteen 3) kirjoita tulos 4) loppu Ohjelmaksi muutettuna yllä olevasta vuokaviosta voisi saada aikaiseksi vaikka tällaisen lyhyen JavaScriptillä kirjoitetun ohjelman.

Ohjelmointi 8 <script language="javascript"> var a=333 var b=644 var c=a+b document.write(c) </script> Tehtävä 5 Piirrä vuokaavio onkimisesta. Tehtävä 6 Piirrä vuokaavio lottorivin kirjoittamisesta. Vinkki. Hyvä ohjelma vuokaavioiden piirtämiseen on Dia Portable. Ohjelman voi asentaa esim. muistitikulle eli sitä ei varsinaisesti asenneta. Riittää, kun ohjelman lataa ja purkaa.

Ohjelmointi 9 Algoritmi Kirjoitettaessa koneelle kelpaavia ohjeita, joudutaan suoritettavana oleva toimenpide pilkkomaan osiin yksinkertaisiksi toimenpiteiksi. Toimenpidesarjan tulee olla yksikäsitteinen eikä siinä saa esiintyä ristiriitaisuuksia tai rinnakkaisuuksia. Tällaista yksikäsitteistä kuvausta tehtävän ratkaisuun tarvittavista toimenpiteistä kutsutaan algoritmiksi. Algoritmi on siis joukko ohjeita, jotka ohjaavat tehtävän suorittamista. Alla on kuvattuna esimerkki algoritmista, jonka aiheena on kahvinkeitto. (Männistö 2001.) Kahvinkeitto: 1. Täytä pannu vedellä. 2. Keitä vesi. 3. Lisää kahvijauhot. 4. Anna tasaantua. 5. Tarjoile kahvi. (Männistö 2001.) Kahvinkeittoa kuvaava algoritmi voidaan vielä purkaa vaihe vaiheelta pienmpiin osiin.

Ohjelmointi 10 Kahvinkeitto: 1. Täytä pannu vedellä: 1.1. Pistä pannu hanan alle. 1.2. Avaa hana. 1.3. Anna veden valua, kunnes vettä on riittävästi. 2. Keitä vesi: 2.1. Aseta pannu hellalle. 2.2. Kytke virta keittolevyyn. 2.3. Anna lämmetä, kunnes vesi kiehuu. 3. Lisää kahvijauhot: 3.1. Mittaa kahvijauhot. 3.2. Sekoita kahvijauhot kiehuvaan veteen. 4. Anna tasaantua: 4.1. Odota, kunnes suurin osa kahvijauhoista on vajonnut pannun pohjalle. 5. Tarjoile kahvi: 5.1. laita pöytään kupit, lusikat ja lautaset 5.2. kaada kahvi kahvikuppiin. (Ks Männistö 2001.) Tehtävä 7 Kirjoita algoritmi, joka opastaa henkilön postilta koulusi pihaan. Ohjelmointikielen osia On olemassa monia eri ohjelmointikieliä, mutta ne koostuvat yleensä samanlaista tai samantyyppistä osista. Tässä keskitytään muutamiin perusosiin, jotka löytyvät lähes poikkeuksetta mistä tahansa ohjelmointikielestä. Muuttujat: Muuttujiin ohjelma tallentaa tietoa ohjelman suorittamisen ajaksi. Niistä voi myös hakea tietoa ohjelman suorittamisen aikana. Muuttujalla on jokin nimi ja arvo.

Ohjelmointi 11 Esim. muuttuja pisteet JavaScript -kielessä <script language="javascript"> var pisteet = 0; </script> Sama Scratchillä. Operaattorit Operaattoreita tarvitaan erilaisten laskutoimituksien ja vertailujen suorittamiseen. Esim. yhteenlasku JavaScriptillä. <script language="javascript"> var luku1 = 149; var luku2 = 150; var luku3 = luku1+luku2; document.write(luku3); </script> Sama Scratchillä ja lopputulos. Ehtolauseet Ehtolauseiden avulla suoritetaan valintoja. Ehto määrittää mikä valinta suoritettaan. <script language="javascript"> if(9<10) { document.write("9 on vähemmän kuin 10") } </script>

Ohjelmointi 12 Sama Scratchillä ja lopputulos, kun ohjelma on suoritettu. Toistolauseet Toistorakenteet ovat silmukoita, joiden avulla voidaan suorittaa jokin asia useamman kerran peräkkäin. <script language="javascript"> for (i = 0; i <= 10; i++) { document.write("9 on vähemmän kuin 10 <br>"); } </script> Sama Scratchillä ja liike mukana. Ilman liikettä kirjoittaisi päälle, jolloin näyttää kirjoittavan vain kerran. Funktiot Funktio on aliohjelma, joka palauttaa tuloksen. Tässä alla olevassa esimerkissä laskuri laskee pinta-alan. <script language="javascript"> function pintaala(luku1, luku2) { return luku1 * luku2; }

Ohjelmointi 13 var ala = pintaala(3.25, 5.5); document.write(ala); </script> Scratch -ohjelmalla ei ole varsinaisia aliohjelmia, mutta siellä voidaan pilkkoa asioita. Alla on esimerkki pyörivästä kissasta. Lähteet Hyvönen, M. Lappalainen, V. Ja Lakanen A-J. (2013). Ohjelmointi 1 C#. (3. korjattu painos). [Online http://kurssit.it.jyu.fi/itkp102/monistecs/html/moniste.html]. Luettu 26.3.2015. Lindström, M. (2002). Reikäkortin historia. Seminaarityö Helsingin yliopisto. Tietojenkäsittelytieteen laitos. Männistö, T. (2001). Johdatusta ohjelmointiin. [Online: http://appro.mit.jyu.fi/2001/syksy/johdatusohjelmointiin/moniste/ciao_t.htm ]. Luettu 5.12.2004.