1. Ohjelmoinnin peruskäsitteet ja -elementit
|
|
- Juho Salonen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 1. Ohjelmoinnin peruskäsitteet ja -elementit 1. ohjelmoinnin periaatteet 2. ohjelmointikielet 3. algoritmien suunnittelu 1
2 1.1 Ohjelmoinnin periaatteet Vaatimukset Määrittely Suunnittelu Toteutus Integrointi Testaus Käyttöönotto ja ylläpito 2
3 Ohjelmointi sisältää laajasti ottaen seuraavat vaiheet esitutkimus (vaatimukset) o yleiset vaatimukset (asiakasvaatimukset) o mitä ohjelman tulee tehdä, ei miten ohjelma toteutetaan o onko ratkaisua olemassa o miksi ohjelma/ohjelmisto tulee tehdä o mitkä ovat asiakkaan todelliset tarpeet o mitä se saa maksaa o yksityiskohtaisten, ristiriidattomien ja täydellisten vaatimusten selvittäminen on usein vaikeaa 3
4 4 määrittely o analysoidaan asikasvaatimuksia ja johdetaan niistä ohjelmistovaatimukset (järjestelmävaatimukset, tekniset vaatimukset, ominaisuudet) o kuvataan ohjelmiston toiminnot toteutettavat ominaisuudet käyttöliittymä kommunikointi muiden järjestelmien kanssa o toteutukselle asetettavat ei -toiminnaliset vaatimukset ja rajoitukset suoritusteho vasteaika käytettävyys käytettävissä oleva muistitila toteutus tietyllä ohjelmointikielellä
5 suunnittelu o suunnitellaan määriteltyjen toimintojen toteutus (miten joku asia tehdään) o arkkitehtuurisuunnittelu -> moduulit o moduulisuunnittelu -> moduulien sisäinen rakenne tietorakenteet algoritmit kuvaamiseen voi käyttää ns. pseudokoodia, joka on normaalikielen ja jonkin ohjelmointikielen sekoitus toteutus o suunnitelmien kääntäminen käytettävälle ohjelmointikielelle o käsitetään usein tärkeimmäksi, vaikka sen tulisi olla vain suunnitelmien kaavamainen toteutus (luovuus kohdistuu analyysija suunnitelmavaiheisiin) o ohjelmakoodin kirjoittamisessa tulisi kiinnittää huomio tyyliin ja dokumentointiin 5
6 integrointi ja testaus o ohjelman testauksen tehtävänä on löytää virheitä, ei todistaa ohjelman virheettömyyttä o debuggaus, selvitetään ongelman syytä ja pyritään korjaamaan löytynyt virhe (tehtyjen korjausten vaikutukset on myös testattava) o myös vaatimukset ja suunnitelmat on testattava käyttöönotto ja ylläpito o asiakkaan ongelmien ratkominen o virheiden korjaaminen o ohjelman muuttaminen vaatimusten muuttuessa o uusien piirteiden lisääminen 6
7 Tämä ns. vesiputousmalli on erityistapaus yleisestä ongelmanratkaisumallista analysoi ratkaistava ongelma niin että ymmärrät sen kunnollisesti suunnittele ratkaisu toteuta ja testaa ratkaisua 7
8 Olennaiset asiat ovat tehtävän analyysi ja ohjelman suunnittelu, jotta ohjelmaa ei tarvitsisi muuttaa jälkeenpäin muutokset kalliita ja vaikeita suorittaa ohjelma voidaan suunnitella ja toteuttaa hyvin monella tavalla, ei ole yhtä ainoata oikeaa tapaa ratkaista tiettyä ongelmaa 8
9 Keskeistä kurssissa on ymmärtää ohjelmointi suunniteltuna ongelmanratkaisuna ohjelmaa ei voi kirjoittaa ennen kuin annettu tehtävä on ymmärretty ja siihen liittyvä ongelma ratkaistu algoritmin avulla algoritminen ongelmanratkaisu riippumaton toteutuskielestä; ratkaisun jälkeen ohjelma voidaan koodata periaatteessa millä tahansa ohjelmointikielellä ohjelman toteuttaminen systemaattisesti Käytännössä ohjelman kehitys ei voi edetä kirjaimellisesti edellä mainitun mallin (ns. vesiputousmalli) mukaisesti osa vaatimuksista saattaa selvitä vasta projektin aikana vaatimukset muuttuvat projektin aikana 9
10 Kurssilla tarvitaan perustiedot (alkeet) C-kielestä käytännön esimerkkien toteuttamiseksi vaarana liika kielikeskeisyys samat periaatteet ohjelmien kehittämiseksi pätevät myös muihin ohjelmointikieliin 10
11 Tietokone keskusmuisti Tulostuslaite Muistilaite Kommunikointilaite CPU Syöttölaite 11
12 Keskusmuisti OSOITE SISÄLTÖ merkki 'J' merkki 'a' merkki 'v' merkki 'a' numero 3 12
13 Ohjelmointikielet Konekieli eri valmistajien keskusyksiköillä (CPU) on kullakin oma konekieli esim voi tarkoittaa käskyä laske kaksi lukua yhteen konekielinen ohjelmointi on kuitenkin työlästä virhealtista ohjelman kirjoittaminen liian hidasta 13
14 Assembly-kieli kullakin prosessorilla oma assembly -kieli käytetään ns. muistikkaita (mnemonics) kuvaamaan eri käskyjä esim. ADD R1, R2 helpottaa ohjelmointia käännettävä konekieliseksi ennen suorittamista (assembler) assembler ADD R1, R
15 Korkean tason ohjelmointikielet Basic, Fortran, Cobol, Pascal, C, C++, Ada, Java kielet muistuttavat melkein jokapäiväistä englannin kieltä yksi käsky tekee useita pikku tehtäviä helppo käyttää siirrettävyys Esimerkiksi: pintaala = 5 * 5 * ; 15
16 Ohjelma on käännettävä konekieliseksi ennen kuin sitä voidaan suorittaa. Kääntäminen voidaan toteuttaa eri tavoin. kääntäjä (compiler) on ohjelma, joka saa syötteeksi lähdekoodin (source code)(ohjelmoijan kirjoittamaa koodia) ja tuottaa käännöksen tuloksena kohdekoodia (target code). kohdekoodi voi olla joko koneen keskusyksikön ymmärtämiä konekielisiä käskyjä tai esimerkiksi Java-kielen tapauksessa ns. tavukoodia (byte code). tavukoodia ei voi suoraan suorittaa missään prosessorissa. tarvitaan erillinen tulkkausohjelma, joka kääntää tavukoodin konekielelle ja lähettää käskyt prosessorin suoritettavaksi 16
17 Syntaksi ja semantiikka ohjelmointikielen syntaksi (kielioppi) määrittelee kuinka voidaan symboleja, varattuja sanoja ja tunnuksia yhdistelemällä muodostaa ohjelma, joka noudattaa kielen sääntöjä ohjelmointikielen semantiikka määrittää mitä ohjelma tekee syntaksiltaan oikea ohjelma ei tarkoita sitä, että ohjelma olisi myös semantiikaltaan oikea, vaan ohjelma voi olla täysin järjetön. Ohjelma tekee aina sitä mitä sen käsketään tehdä, mutta tämä ei välttämättä ole sama kuin mitä ohjelman halutaan tekevän. 17
18 Virheet ohjelmassa voi olla kolmenlaisia virheitä kääntäjä löytää syntaksivirheet, eli virheet, jotka ovat kielen sääntöjen vastaisia Jos ohjelmassa on syntaksivirheitä ei kääntäjä tuota suoritettavaa ohjelmaa virhetilanne voi ilmetä myös ohjelman suorituksen aikana o yleensä nollalla jakaminen keskeyttää ohjelman suorituksen ohjelma voi toimia, mutta tuottaa silti vääriä tuloksia; loogiset virheet 18
19 Lausekielet Lausekielen periaate: algoritmit + tietorakenteet = ohjelmat Algoritmi on yksiselitteinen ja äärellinen sarja toimintaohjeita tehtävän suorittamiseksi ohjelmointikielestä riippumaton toteutettavissa koneellisesti toimintaohje = lause = käsky Algoritmi määrittelee toiminnot, joiden kohteina ovat tiedot jotka esitetään tietorakenteissa -> tietojenkäsittely 19
20 Kun algoritmit ja tietorakenteet kirjoitetaan ohjelmointikielellä saadaan ohjelma 20
21 Toiminnot Yleisesti ottaen kieli tarjoaa perustoiminnot ja välineet monimutkaisempien toimintojen rakentamiseen perustoiminnot: sijoituslauseet aritmeettiset operaatiot loogiset operaatiot tekstin luku tulostaminen ohjausrakenteet monimutkaisempien toimintojen määrittämiseksi peräkkäisyys: lause1; lause2;... lausen; valinta (haarautuminen): if-then toisto: while, repeat, for 21
22 toiminnan abstrahointi moduulien avulla: kutsutaan funktioiksi, metodeiksi, riippuen käytettävästä ohjelmointikielestä 22
23 Askeleittain tarkentaminen Seuraavilla esimerkeillä pyritään antamaan intuitiivinen kuva algoritmista käyttäen pseudokieltä, joka on sekoitus ohjelmointikieltä ja luonnollista kieltä Algoritmien kehittäminen usein vaikeaa ja virhealtista: Esim. Lentoajan laskenta aikataulun perusteella 1. lue lähtöaika 2. lue saapumisaika 3. vähennä saapumisajasta lähtöaika 23
24 Yksinkertainen ongelma ja algoritmi, joka antaa yleensä oikean vastauksen. Silti syntyy ongelmia jos lähtö- ja saapumispaikat sijaitsevat eri aikavyöhykkeillä. Virheet usein vaikeita havaita; tarvitaan systemaattista lähestymistapaa algoritmien suunnitteluun Yleisesti käytetty lähestymistapa tarkentaa algoritmin askeleittain tarkentaminen (hajoita ja hallitse) stepwise refinement tai top-down design kokonaistoiminnot tarkennetaan toistuvasti osatoiminnoiksi Esimerkkinä kehitetään algoritmi, joka kertoo robotille, kuinka keitetään kuppi teetä (kerrotaan tietokoneelle, miten tehtävä suoritetaan) 24
25 Alustava versio: 1. keitä vesi 2. laita tee kuppiin 3. lisää vesi kuppiin Käskyjen tarkentaminen siten, että robotti pystyy ne tulkitsemaan. Tarkennetaan ensimmäinen komento keitä vesi 1.1 täytä pannu vedellä 1.2 laita levy päälle 1.3 laita pannu levylle 1.4 odota kunnes vesi kiehuu 1.5 ota pannu levyltä 1.7 laita levy pois päältä 25
26 Samoin tarkennetaan toinen komento laita tee kuppiin 2.1 ota teepaketti hyllystä 2.2 avaa teepaketti 2.3 ota teepussi 2.4 laita teepussi kuppiin 2.5 sulje teepaketti Alkuperäisen algoritmin kaksi ensimmäistä käskyä on tarkennettu ja saatiin kaksi alialgoritmia. Tarkoituksena on se, että robotti suorittaa käskyt peräkkäisessä järjestyksessä. 26
27 Voi olla, että algoritmia joudutaan vielä tarkentamaan. Esim. täytä pannu vedellä : aseta pannu hanan alle avaa hana odota kunnes pannu on täynnä sulje hana Kyseessä on kolmas tarkennusaskel Tarkennusta jatketaan, kunnes saavutetaan tarkkuuden tason jossa robotti voi suorittaa lauseet Tuloksena on hierarkkinen rakenne. Saadaan lopullinen algoritmi, joka voi näyttää vaikka tältä 27
28 /* Algoritmi teen keittämiseen */ /* Keitä vesi */ aseta pannu hanan alle avaa hana odota kunnes pannu on täynnä sulje hana 1.2 laita levy päälle 1.3 laita pannu levylle 1.4 odota kunnes vesi kiehuu 1.5 ota pannu levyltä 1.6 laita levy pois päältä 28
29 /* Laita tee kuppiin */ 2.1 ota teepaketti hyllystä 2.2 avaa teepaketti 2.3 ota teepussi 2.4 laita teepussi kuppiin 2.5 sulje teepaketti /* Lisää vesi kuppiin */ 3 lisää vesi kuppiin Rivit /* ja */ merkkien väleissä ovat ohjelman kommentteja jotka on tarkoitettu ohjeiksi ohjelman lukijalle, ei robotille 29
30 Algoritmin kuvaamiseen voidaan käyttää myös vuokaaviota: Keitä vesi laita tee kuppiin lisää vesi kuppiin 30
31 Vuokaavion osan sisällön voi edelleen kuvata tarkemmin (esim. täytä pannu vedellä: 31
32 laita levy päälle laita pannu levylle odota kunnes vesi kiehuu ota pannu levyltä laita levy pois päältä 32
33 Peräkkäisyys Edellä esitelty algoritmi on suoraviivainen peräkkäinen sarja lauseita (käskyjä) robotille ohjelman suorittamiseksi. lauseet suoritetaan peräkkäin, yksi kerrallaan jokainen lause suoritetaan täsmälleen yhden kerran suoritusjärjestys on sama kuin kirjoitusjärjestys viimeisen lauseen päättäminen lopettaa algoritmin 33
34 Peräkkäinen sarja lauseita on joustamaton rakenne mitä tapahtuu, jos teepaketti on tyhjä? ei vaihtoehtoja erilaisille tilanteille Peräkkäisyys on tärkeä ja olennainen rakenne, mutta liian yksinkertainen. 34
35 Valinta Algoritmiin tarvitaan lisää joustavuutta, joka saadaan valinnan avulla. Tyhjän teepaketin tapaus voidaan hoitaa valinnalla seuraavasti 2.1. ota teepaketti hyllystä JOS paketti on tyhjä NIIN ota uusi paketti kaapista 2.2 avaa teepaketti 2.3 ota teepussi 2.4 laita teepussi kuppiin 2.5 sulje teepaketti 35
36 Olennainen lisäys on lause kertoo uuden lauseen, joka valitaan kertoo ehdon, milloin tämä uusi lause valitaan 36
37 Yleinen muoto: if ehto then lause 1 else lause 2 Valintarakennetta voidaan käyttää sisäkkäin. Suunnitellaan askeleittain algoritmi, joka poimii kolmesta annetusta luvusta x, y, z suurimman. Karkea versio: if x > y then poimi x tai z else poimi y tai z 37
38 Tarkennus kohtaan poimi x tai z: if x > z then poimi x else poimi z 38
39 Saadaan lopullinen algoritmi: if x > y then if x > z then poimi x else poimi z else if y > z then poimi y else poimi z Olennaista algoritmin kirjoituksessa sisennys selvyyden vuoksi; käytetään helpottamaan lukijan työtä. 39
40 Toisto Tarkastellaan tietojen hakua. Oletetaan, että on annettu lista henkilötietoja, jossa jokainen listan alkio on nimi - osoite -pari. Tehtävänä on hakea annettua nimeä vastaava osoite. Eräs mahdollinen algoritmi voisi näyttää seuraavalta: tarkista listan ensimmäinen nimi if kyseessä on annettu nimi then lue vastaava osoite else tarkista listan seuraava nimi if kyseessä on annettu nimi then lue vastaava osoite else tarkista listan seuraava nimi if kyseessä on annettu nimi then lue vastaava osoite else tarkista listan seuraava nimi 40
41 Milloin haku päättyy? Ei ole tietoa kuinka monta kertaa valinta pitäisi kirjoittaa. Ratkaisuna toistorakenne: repeat - until Käyttämällä toistoa (iteraatio, silmukka) nimen haku voidaan kirjoittaa muotoon: tarkista listan ensimmäinen nimi repeat if kyseessä on annettu nimi then lue vastaava osoite else tarkista listan seuraava nimi until annettu nimi löytyi tai lista on lopussa 41
42 Toistorakenteen yleinen muoto on repeat runko-osa until ehto Runko-osa toistetaan niin kauan kun lopetusehto on epätosi. Esimerkiksi ehto: annettu nimi löytyi on epätosi JA lista on lopussa on epätosi. Eli niin kauan kun nimeä ei ole löytynyt ja lista ei ole lopussa voidaan etsintää jatkaa. 42
43 Äärelliseen rakenteeseen ennalta määräämätön lukumäärä lauseiden toistoja. ongelmaksi tulee toiston päättymisen takaaminen esim. jos unohdetaan ehto lista on lopussa Myös toistorakenteita mahdollisuus yhdistellä sisäkkäin. 43
44 Toistorakenne repeat - until ei sovellu kaikkiin toistoa vaativiin tehtäviin, koska toistoehto on rakenteen lopussa. Esimerkiksi: on annettu lista numeroita ja tehtävänä on hakea listasta suurin numero: aseta suurimmaksi listan ensimmäinen numero repeat tarkista listan seuraava numero N if N > suurin tähän saakka then aseta N suurimmaksi until lista on käyty läpi tulosta suurin numero 44
45 Virhe: mitä tapahtuu jos listassa on vain yksi alkio? rivit käydään läpi järjestyksessä toiston päättymisehto on rakenteen lopussa 45
46 Tarvitaan päättymisehto rakenteen alkuun Eräs ratkaisu on toistorakenne while - do aseta suurimmaksi listan ensimmäinen numero while lista ei ole lopussa do tarkista listan seuraava numero N if N > suurin tähän saakka then aseta N suurimmaksi tulosta suurin numero Nyt lopetusehto on toistorakenteen alussa. 46
47 Lisäksi yleisesti käytetty toiston variaatio: repeat - for jokaiselle alkiolle runko-osa Esimerkkinä algoritmi joka laskee N:n ensimmäisen kokonaisluvun kertoman (k! = k x (k - 1) x... x 1) lue N /* käyttäjä antaa numeron */ kertoma <- 1 repeat - for jokaiselle kokonaisluvulle 1:stä N:ään kertoma <- kertoma * kokonaisluku tulosta kertoma 47
48 Vielä yksinkertainen toiston muunnelma: repeat N kertaa runko-osa 48
49 Modulaarisuus Askeleittain tarkentamisessa algoritmi jaettiin pienempiin palasiin, joita tarkennettiin kunnes päästiin tasolle, jonka algoritmin suorittaja pystyy tulkitsemaan. Usein nämä palaset ovat suhteellisen riippumattomia toisistaan ja pääalgoritmista jolloin ei tarvitse kiinnittää huomiota siihen missä suuremmassa asiayhteydessä palasia käytetään -> modulaarisuus. 49
50 Esimerkkinä algoritmit, jotka kertovat piirturille kuinka piirretään neliöitä. Oletetaan, että piirturi pystyy tulkitsemaan seuraavat käskyt: eteen (x) /* siirry x senttimetriä eteen */ vasen (x) /* käänny x astetta vasempaan */ oikea (x) /* käänny x asetetta oikeaan */ laske /* laske kynä paperille */ nosta /* nosta kynä paperilta */ 50
51 Oletetaan, että piirturin tulee piirtää kaksi sisäkkäistä neliötä ao. kuvan mukaan. Lisäksi oletetaan, että piirturi on aluksi piirrettävien neliöiden keskipisteessä X, kynä ylhäällä ja osoittaa kuvan nuolen suuntaan. B A X 51
52 Yleisellä tasolla algoritmi voisi koostua neljästä peräkkäisestä lauseesta: siirry pisteeseen A piirrä neliö, jonka sivu on 10 cm siirry pisteeseen B piirrä neliö, jonka sivu on 20 cm Algoritmin toinen ja neljäs lause ovat itsenäisiä toimintoja; riippumattomia yleisen tason algoritmin muista lauseista -> voidaan suunnitella ja tarkentaa erikseen; moduuli. Moduulille on erilaisia nimityksiä eri ohjelmointikielissä; procedure, routine, subroutine, function, method. 52
53 Jotta moduuli olisi yleisesti hyödyllinen, sen tulisi pystyä piirtämään halutun kokoinen neliö ( nyt 10 ja 20 cm sivut) siirry pisteeseen A piirrä neliö (10) siirry pisteeseen B piirrä neliö (20) Nyt itse moduuli voidaan kirjoittaa seuraavaan muotoon käyttäen piirturin ymmärtämiä käskyjä: module piirrä neliö (koko) laske repeat 4 kertaa eteen (koko) vasen (90) nosta 53
54 Moduulin spesifikaatio kertoo mitä se tekee: Tämä moduuli piirtää neliön, jonka toisen sivun pituus on koko lähtien kynän nykyisestä paikasta. Neliö piirretään vastapäivään, ensimmäinen sivu piirturin nykyisen suunnan mukaan. Kynä palaa alkuperäiseen paikkaan ja alkuperäiseen suuntaan ylös nostettuna. Mouduulin yleinen muoto: module nimi ( muodolliset parametrit ) runko-osa 54
55 Muodollisia parametrejä käytetään moduulin rungossa suorittamaan suunniteltu tehtävä yleisessä muodossa; tässä koko kertoo piirrettävän neliön koon. Todelliset parametrit riippuvat tilanteesta ja ne määrätään pääalgoritmissa moduulin kutsussa; tässä moduulia kutsutaan kahdesti: piirrä_neliö (10) piirrä_neliö (20) Vertaa funktion käsitteeseen matematiikassa f (x) = 2x + 1 f (5) = 11 55
56 Liityntä moduulin ja sen kutsujan välillä eksplisiittisesti (näkyvästi) ilmaistu parametreillä (esim. koko) implisiittisesti sivuvaikutuksilla (kynä jää ylös) 56
57 Piirtotehtävä jaettiin kahteen algoritmiin: pääalgoritmi ja sen käyttämä moduuli (alialgoritmi). Lopulliseksi pääalgoritmiksi saadaan tarkennuksen jälkeen: vasen (45) eteen ( 50) vasen (135) piirrä_neliö (10) oikea (135) eteen ( 50) vasen (135) piirrä_neliö (20) 57
58 Tämä käyttää hyväkseen alialgoritmia: module piirrä_neliö (koko) laske repeat 4 kertaa eteen (koko) vasen (90) nosta Modulaarisuus on keskeinen asia ohjelmoinnissa ja ohjelmien suunnittelussa. sopii luonnollisesti yhteen askeleittain tarkentamisen kanssa moduulin ja sitä kutsuvan alialgoritmin suunnittelu voidaan tehdä erikseen helpottaen suunnitteluprosessia 58
59 jotta moduuli voidaan ottaa käyttöön, tarvitsee vain tietää mitä se tekee; ei miten se tehtävän suorittaa edesauttaa algoritmien ymmärtämistä edesauttaa uudelleenkäytettävyyttä; lisätään aliohjelmakirjastoon 59
60 Tietorakenteet Algoritmien käsittelemä tieto on tyypitettyä Perustietotyypit totuusarvot (tosi, epätosi) merkit ( A, k, 1, < ) kokonaisluvut (1, 24, -100, 99999, ) reaaliluvut (liukuluvut) (1.5, , 4.9E2, -0.32e32, ) 60
61 Rakenteisia tietotyyppejä: merkkijono ( kissa ) tietue: (<etunimi><sukunimi><htunn><verot>) tiedosto taulukko Lisäksi monimutkaisempia rakenteita: lista, pino, puut, verkot. 61
62 Algoritmien ohjausrakenteet ja algoritmien käsittelemä tieto (data) liittyvät kiinteästi toisiinsa. valitut ohjausrakenteet riippuvat usein siitä, miten käsiteltävän tiedon rakenne jäsennellään: rakenteinen tieto rakenteinen tieto heijastaa tietoelementtien keskinäisiä suhteita 62
63 Yleinen esimerkki; lista tai jono lista henkilö-osoite -pareja Suomen kielen sana; jono kirjaimia Suomen kielen lause; jono sanoja luku; jono numeroita puhelinluettelo Myöhemmin esitellään yksinkertaisten tietorakenteiden toteuttamista C- kielellä. 63
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ätiedotOhjelmoinnin 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ätiedotOhjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit
Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää
Lisätiedot4. 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ätiedot811120P 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ätiedotMuistutus 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ätiedotSisä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ätiedot4. 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ätiedot12. 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ätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen
LisätiedotOngelma(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ätiedotAlgoritmit. 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ätiedotITKP102 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ätiedotJohdanto kurssin sisältöön
Johdanto kurssin sisältöön Terminologiaa Algoritmi on jonkin tehtävän suorittamiseksi tarvittavien toimenpiteiden kuvaus Ongelman ratkaisu lasketaan suorittamalla algoritmin toimenpiteet Tietokone suorittaa
LisätiedotTietorakenteet 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ätiedot12. 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ätiedotAlgoritmit 1. Luento 1 Ti Timo Männikkö
Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017
LisätiedotTietorakenteet 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ätiedotJohdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet:
3. Pseudokoodi 3.1 Sisällys Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet: Valinta if- ja if-else-rakenteilla. Toisto while-, do-while- ja for-rakenteilla.
LisätiedotSisä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ätiedotTutoriaalilä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ätiedotIDL - 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ätiedotAlgoritmit 1. Luento 10 Ke Timo Männikkö
Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot
LisätiedotATK 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ätiedot11.4. Context-free kielet 1 / 17
11.4. Context-free kielet 1 / 17 Määritelmä Tyypin 2 kielioppi (lauseyhteysvapaa, context free): jos jokainenp :n sääntö on muotoa A w, missäa V \V T jaw V. Context-free kielet ja kieliopit ovat tärkeitä
LisätiedotOhjausrakenteet. Valinta:
Ohjausrakenteet Luento antaa yleiskuvan siitä kuinka ohjelmassa suorittaan vaihtoehtoisia tehtäviä valintarakenteiden avulla ja kuinka samanlaisia ohjelma-askeleita toistetaan toistorakenteiden avulla
Lisätiedot1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi
LisätiedotImperatiivisen 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ätiedotKoottu 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ätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin
LisätiedotOhjelmointitaito (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ätiedotAlkuarvot 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ätiedot11. 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ätiedotTAMPEREEN TEKNILLINEN YLIOPISTO
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 11.08.2010 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ
LisätiedotPalautetta viime luennosta
Palautetta viime luennosta Kuka saa ja kenen täytyy suorittaa 5op kokonaisuus? Sivuaineopiskelijat suorittavat jos heidän sivuainekokonaisuuteen on merkitty niin Kokonaisuuksia on useita eri tiedekunnittain,
LisätiedotOhjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA
Ohjelmointitekniikka lyhyesti Survival Kit. Vesiputousmalli ELINKAARIMALLEISTA. Ohjelmiston elinkaari Ohjelmiston elinkaarella (life cycle) tarkoitetaan aikaa, joka kuluu ohjelmiston kehittämisen aloittamisesta
LisätiedotPythonin 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ätiedotKaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan valitseminen päätöksellä ja toistaminen silmukalla.
2. Vuokaaviot 2.1 Sisällys Kaavioiden rakenne. Kaavioiden piirto symbolta yhdistelemällä. Kaavion osan valitseminen päätöksellä ja toistaminen silmukalla. Esimerkkejä: algoritmi oven avaamiseen vuokaaviona,
LisätiedotOhjelmoinnin 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ätiedotetunimi, sukunimi ja opiskelijanumero ja näillä
Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi
LisätiedotKOODAUSPLÄJÄYS. Ohjelmoinnin perusteet
KOODUSPLÄJÄYS Ohjelmoinnin perusteet Korttien merkinnät Korttien yläreunaan on merkitty, mitä taitoja ja ohjelmoinnissa käytettyjä rakenteita korteista oppii. Merkkien määrä ( 4) kuvaa kortin vaikeustasoa.
LisätiedotAlgoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö
Algoritmit 1 Luento 10 Ke 11.2.2015 Timo Männikkö Luento 10 Algoritminen ongelman ratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Väliinsijoituslajittelu Valintalajittelu
LisätiedotZeon 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ätiedotOhjelmoinnin 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ätiedotMäärittelydokumentti
Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta
LisätiedotAS-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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 25.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 1 / 41 Valintakäsky if Tähänastiset ohjelmat ovat toimineen aina samalla tavalla. Usein ohjelman pitäisi
LisätiedotEhto- 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ätiedotJohdatus ohjelmointiin
Johdatus ohjelmointiin Ohjelmistot tietokonejärjestelmissä Jaana Holvikivi Ohjelmistojen tehtävät Sovellusohjelmat tekstinkäsittely ja muut toimistosovellukset kirjanpito, tuotannonohjaus selaimet, mediaohjelmat
LisätiedotPython-ohjelmointi Harjoitus 5
Python-ohjelmointi Harjoitus 5 TAVOITTEET Kerrataan silmukkarakenteen käyttäminen. Kerrataan jos-ehtorakenteen käyttäminen. Opitaan if else- ja if elif else-ehtorakenteet. Matematiikan sisällöt Tehtävät
Lisätiedot14/20: Keittokirja I
Ohjelmointi 1 / syksy 2007 14/20: Keittokirja I Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/13 Tämän luennon
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 24.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 24.1.2011 1 / 36 Luentopalaute kännykällä alkaa tänään! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast
LisätiedotLuento 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ätiedotJava-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ätiedotOhjelmoinnin 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ätiedotTAMPEREEN TEKNILLINEN YLIOPISTO
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ
LisätiedotAlgoritmit 2. Luento 2 To Timo Männikkö
Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento
LisätiedotPeilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla
Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla ALKUHARJOITUS Kynän ja paperin avulla peilaaminen koordinaatistossa a) Peilaa pisteen (0,0) suhteen koordinaatistossa sijaitseva - neliö, jonka
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015
TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen
LisätiedotOngelma(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ätiedot13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
LisätiedotSisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4
Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.
LisätiedotJava-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ätiedotAlgoritmit 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ätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
Lisätiedot5/20: Algoritmirakenteita III
Ohjelmointi 1 / syksy 2007 5/20: Algoritmirakenteita III Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/17 Tämän
Lisätiedot8. Kieliopit ja kielet
8. Kieliopit ja kielet Suomen kielen sanoja voidaan yhdistellä monella eri tavalla. Kielioppi määrää sen, milloin sanojen yhdistely antaa oikein muodostetun lauseen. "Mies räpyttää siipiään" on kieliopillisesti
Lisätiedot811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto
811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien
LisätiedotOhjelmiston testaus ja laatu. Testausmenetelmiä
Ohjelmiston testaus ja laatu Testausmenetelmiä Testausmenetelmiä - 1 Testauksen menetelmien päälähestymistapoina ovat black-box testi testaaja ei voi tutkia lähdekoodia testaus perustuu sovellukselle suunnitteluvaiheessa
LisätiedotTIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. tammikuuta 2012 Sisällys Sisällys Äärellisiä automaatteja PUSH ON PUSH OFF Q T Q J C C H S C,Q C,Q 0 50s 1e
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
LisätiedotHarjoitustyön testaus. Juha Taina
Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida
LisätiedotJAVA-OHJELMOINNIN PERUSTEET. Sisältö 1. JAVA OHJELMOINTI... 2 2. LÄHTEITÄ... 19 3. HARJOITUKSET... 20 4. MUUTAMA MALLIRATKAISU...
1 JAVA-OHJELMOINNIN PERUSTEET Sisältö 1. JAVA OHJELMOINTI... 2 2. LÄHTEITÄ... 19 3. HARJOITUKSET... 20 4. MUUTAMA MALLIRATKAISU... 27 2 1. JAVA OHJELMOINTI Kurssin tavoite ensimmäinen ohjelmointikurssi
LisätiedotPython-ohjelmointi Harjoitus 2
Python-ohjelmointi Harjoitus 2 TAVOITTEET Kerrataan tulostuskomento ja lukumuotoisen muuttujan muuttaminen merkkijonoksi. Opitaan jakojäännös eli modulus, vertailuoperaattorit, ehtorakenne jos, input-komento
Lisätiedot815338A 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ätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.
LisätiedotOhjelmointi 1. Kumppanit
Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
LisätiedotOhjelmointitaito (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ätiedotTietueet. 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ätiedotTä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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 1.3.2010 1 / 36 Monikko Monikko (engl. tuple) muistuttaa listaa, mutta monikon sisältöä ei voi muuttaa sen jälkeen,
LisätiedotELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
LisätiedotPERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki
PERL TIE-20306 Principles of Programming Languages Ryhmä 4: Joonas Lång & Jasmin Laitamäki 1. Johdanto Perl on ohjelmointikielten perhe, johon kuuluu Perl 5 ja Perl 6. Kielet ovat kuitenkin erilliset ohjelmointikielet
LisätiedotTT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)
TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu
LisätiedotTIEP114 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ätiedotKerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma:
Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 2 1. Toteuta Pythonilla seuraava ohjelma: 2. Tulosta Pythonilla seuraavat luvut allekkain a. 0 10 (eli, näyttää tältä: 0 1 2 3 4 5 6 7 8 9 10 b. 0 100 c. 50 100 3.
Lisätiedottää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ätiedotAlgoritmit 2. Luento 8 To Timo Männikkö
Algoritmit 2 Luento 8 To 4.4.2019 Timo Männikkö Luento 8 Algoritmien analysointi Algoritmien suunnittelu Rekursio Osittaminen Rekursioyhtälöt Rekursioyhtälön ratkaiseminen Master-lause Algoritmit 2 Kevät
LisätiedotLyhyt kertaus osoittimista
, syksy 2007 Kertausta Luento 10 12.10.2007 Syksy 2007 1 Lyhyt kertaus osoittimista char *p; /* char, int, jne ilmoittavat, minkä tyyppisiä */ Keskusmuisti int *q; /* olioita sisältäviin muistilohkoihin
LisätiedotTietotekniikan valintakoe
Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan
LisätiedotTieto- ja tallennusrakenteet
Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)
LisätiedotTIEP114 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ätiedot1. Universaaleja laskennan malleja
1. Universaaleja laskennan malleja Laskenta datan käsittely annettuja sääntöjä täsmällisesti seuraamalla kahden kokonaisluvun kertolasku tietokoneella, tai kynällä ja paperilla: selvästi laskentaa entä
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen
LisätiedotKirjoita 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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen
LisätiedotTarkennamme 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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2009 1 / 33 Valintakäsky if syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >=
Lisätiedot