Arduinon ohjelmointi. Sami-Petteri Pukkila. 26. syyskuuta 2016
|
|
- Teija Uotila
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 Sami-Petteri Pukkila 26. syyskuuta 2016
2 Arduino-ohjelman rakenne int ledpin = 13; void setup () pinmode ( ledpin, OUTPUT ); void loop () digitalwrite ( ledpin, HIGH ); delay (1000) ; digitalwrite ( ledpin, LOW ); delay (1000) ; 2
3 Muuttujat int omenamaara tyyppi nimi = 5 arvo ; Tyyppi (kokonaisluku, kirjain,...) Jokainen muuttuja on jonkin tyyppinen. Vrt. esim Python missä muuttujalla on vain nimi ja arvo Arvo Mikäli muuttujalle ei luomishetkellä anneta arvoa, se voi olla mitä tahansa Muuttujan arvo ei siis oletuksena ole nolla! 3
4 Tärkeimmät muuttujatyypit Kokonaisluku (int, long) int muuttuja = -4; Liukuluku (float, double) float muuttuja = 4.0; Merkki (char) char muuttuja = a ; Vain ASCII-järjestelmän merkit Aakkoset ja numerot löytyvät, ääkköset eivät Totuusarvo (boolean) boolean muuttuja = true; Tosi (true) tai epätosi (false) 4
5 Muuttujatyypit Kieli on vahvasti tyypitetty Jokaisen muuttujan tyyppi on siis määritelty luomisvaiheessa Tyyppi määrää: Millaisia arvoja muuttuja voi sisältää Mitä muuttujalla voi tehdä Paljonko muuttuja vie tilaa ohjelman muistissa 5
6 Muuttujatyypit laskutoimituksissa Arduino ei automaattisesti muunna muuttujatyyppejä ihmisen mieleen sopiviksi. int kokonaisluku = 2; float muuttuja1 = 3/ kokonaisluku ; // 1 float muuttuja2 = 3.0/2.0; // 1. 5 float muuttuja3 = 3.0/( float ) kokonaisluku ; // 1. 5 (tyyppi)muuttuja-notaatio muuntaa muuttujan tyypin Muunnos isommasta tyypistä pienempään aiheuttaa ongelmia jos muunnettava arvo on liian iso. (long int) 6
7 Lukutyypit Laskutoimituksissa ja sijoituksissa voi merkitä lukuja eri lukujärjestelmissä 0123 (oktaali) 0b (binääri) 0xA3 (heksadesimaali) 3.4e3 ( ) Myös muuttujatyypin voi erikseen määrätä. Hyödyllistä esimerkiksi laskutoimituksissa. 7U (unsigned) 11L (long) 15UL (unsigned long) 12.3f (liukuluku) 7
8 Tärkeimpiä operaattoreita summa 1+2 = 3 erotus 1-2 = -1 tulo 1*2 = 2 osamäärä 1.0/2.0 = 0.5 jakojäännös 5%3 = 2 8
9 Muutama oikotie summa a += 2 a = a+2 erotus a -= 2 a = a-2 tulo a *= 2 a = a*2 osamäärä a /= 2.0 a = a/2 kasvata yhdellä a++ a = a+1 vähennä yhdellä a a = a-1 9
10 Under-/overflow Mikäli muuttujan arvo menee muuttujatyypin alueen yli, "pyörähtää muuttuja yli" byte c = 0; // c = 0 --c; // c = c = c + 1; // c = 0 10
11 Taulukot Hyvä väline esimerkiksi useamman ledin nastanumeroiden säilömiseen. int led_ pin [3] = 3, 5, 6; // l e d _ p i n [ 0 ] on n y t 3 // l e d _ p i n [ 1 ] v a s t a a v a s t i 5 Taulukon jäseniä kutsutaan alkioksi. Alkioon pääsee käsiksi syntaksilla nimi[alkio] Indeksointi alkaa nollasta led_ pin [1] = 2; // l e d _ p i n v a s t a a n y t määritelmää 3, 2, 6 11
12 Teksti C-kielessä ei ole erillistä muuttujatyyppiä tekstille, vain merkeille (char) Merkkijonot esitetään char-taulukkona char materiaali [] = " puu "; // materiaali-muuttuja vastaa nyt // määritelmää p, u, u, \0 Merkkijonon lopussa ns. nollatavu Työkalut pystyvät päättelemään mihin merkkijono loppuu. Kolmen merkin merkkijonon tallentamiseen tarvitaan siis neljä merkkiä! 12
13 Merkkijonojen käsittely Merkkijonojen käsittelyyn on C-kielessä olemassa apufunktioita. Esimerkkejä strcpy Kopioi osa merkkijonosta toiseen merkkijonoon strcat Yhdistä kaksi merkkijonoa toisiinsa strcmp Vertaile kahta merkkijonoa toisiinsa itoa ja atoi Muunna kokonaisluku merkkijonoksi tai toisin päin 13
14 Vaikeaa? Merkkijonojen käsittely C-kielen työkaluilla voi olla hieman haastavaa. Arduino sisältää String-nimisen olennon joka tekee tekstin käsittelystä hieman helpompaa. Merkkijonoja voi helposti yhdistää ja muokata. S t r i n g merkkijono = " e l a i m i a on " + S t r i n g ( 3 ) + " k p l " ; / / merkkijono on nyt muotoa " elaimia on 3 kpl " 14
15 String-objektin muuntaminen Jotkut funktiot palauttavat tai vaativat c-tyylisiä char-taulukoita. Muuntaminen onnistuu kuitenkin helposti. String nimi = " EsimErkki "; nimi. c_ str () // vastaa c-tyylistä char-taulukkoa. // Tätä pystyy vain lukemaan, // ei muokkaamaan. char merkkijono [] = " testausteksti "; String muunnettu = String ( merkkijono ); 15
16 Muuttujien näkyvyys int koira = 1; void setup () int kissa = koira + 2; // T o i m i i void loop () kissa = koira + 2; // Ei toimi, kissa näkyy // vain setup-funktiossa 16
17 Globaali vs lokaali muuttuja Globaali (esimerkissä koira) Voidaan käyttää kaikkialla ohjelmassa Hyviä kun samaa muuttujaa käytetään kaikkialla ohjelmassa. Esim. Arduinoon kytketyn ledin pinninumero Vältä mikäli mahdollista. Hankala tutkia mitkä kaikki ohjelman osat vaikuttavat muuttujaan. Lokaali (esimerkissä kissa) Voi käyttää vain niiden aaltosulkeiden välissä jossa määritetty Laitteen tarvitsee säilöä tieto ainoastaan pienessä osassa ohjelmaa tehokkaampaa Vaikeampi tehdä mokia 17
18 Funktiot paluutyyppi funktionimi(parametri) return paluuarvo ; Funktio ottaa sisäänsä parametreja, tekee niillä jotakin ja antaa jonkinlaisen paluuarvon. Paluutyyppi Muuttujan palauttaman arvon tyyppi. Funktionimi Pitää alkaa kirjaimella. Parametri Parametrit joita funktio ottaa vastaan. Voi olla useampia ja jokaisella pitää olla tyyppi. Pilkulla voi erottaa useampia parametreja. 18
19 Funktioesimerkki int laskeyhteen(int numero1, int numero2) return numero1 + numero2 ; int a = laskeyhteen (1, 2); // a:n arvo on nyt 3 19
20 Ehtolauseet if ( false ) // Mikäli ehto on true, hypätään koodissa tänne. // Näin ei kuitenkaan ole, eli täällä ei käydä. else // If-lauseen ehto oli epätosi. // Hypätään siis tänne, eli else-lohkoon. Else-lohkon voi myös jättää pois. Tällöin ei tehdä mitään jos lauseen ehto on epätosi. 20
21 Else if mutta entä jos? if (5 > 10) // Ei ole, eli tänne ei päädytä else if (6 > 10) // Ei ole sekään, eli tännekään ei päädytä else // Päädytään siis tänne 21
22 Mielekkäitä totuuksia Vertailu a == b a yhtä suuri kuin b a!= b a eri suuruinen kuin b a < b a pienempi kuin b a > b a suurempi kuin b a <= b a pienempi tai yhtäsuuri kuin b a >= b a suurempi tai yhtäsuuri kuin b Kaikki yllä olevat vertailut muuttuvat suorituksen jälkeen jompaan kumpaan kahdesta: true jos ehto täyttyy false jos ehto ei täyty 22
23 Boolen operaattorit a && b tosi jos a ja b ovat molemmat tosia (and) a b tosi jos jompikumpi, a tai b ovat tosia (or)!a tosi jos a on epätosi (not) Kaikki yllä olevat ehdot muuttuvat suorituksen jälkeen jompaan kumpaan kahdesta: true jos ehto täyttyy false jos ehto ei täyty 23
24 Boolen logiikka int a = 15; if ( (a > 10) && (a < 20) ) Serial. println ("a on 10: n ja 20: n valissa "); 24
25 Boolen logiikka if ( true && true ) Serial. println ("a on 10: n ja 20: n valissa "); 25
26 Boolen logiikka if ( true ) Serial. println ("a on 10: n ja 20: n valissa "); 26
27 Helpot asiat mokata! Varoitus! a=b ja a==b ovat eri asioita! a = b; sijoita b:n arvo a:han a == b; tarkista ovatko a ja b saman arvoiset C-tyylisiä merkkijonoja ei voi vertailla ==-operaattorilla. Arduinon String-olioita voi! 27
28 Silmukat, eli toistorakenteet Silmukoita käytetään kun samankaltaisia asioita pitää tehdä useita kertoja peräkkäin. Silmukoita käytetään kun samankaltaisia asioita pitää tehdä useita kertoja peräkkäin. Silmukoita käytetään kun samankaltaisia asioita pitää tehdä useita kertoja peräkkäin. 28
29 While ja for int i =0; while ( i <= 5) Serial. println (i); i ++; for ( int i =0; i <= 5; i ++) Serial. println (i);
30 For Käyttökohteita esimerkiksi taulukoiden läpikäynti. for (alkuarvo; ehto; askel) // Todo: mitä tähän voisi laittaa Alkuarvo (int i = 0;) Luodaan loopin sisällä käytettävä muuttuja ja annetaan sille alkuarvo. Ehto (i <= 5;) Ennen jokaista loopin suorituskertaa tarkistetaan että ehto toteutuu. Mikäli ei, koko looppi ohitetaan. Askel (i++) Jokaisen loopin suorituskerran viimeiseksi suoritetaan tämä käsky. Tässä tapauksessa kasvatetaan luotua i-muuttujaa yhdellä. 30
31 For esimerkki int ledpin [3] = 3, 5, 6; void setup () for ( int i =0; i <3; i ++) //i=0, 1, 2 pinmode ( ledpin [i], OUTPUT ); 31
32 While Hieman geneerisempi toistorakenne kuin for. while (ehto) // Todo: mitä tähän voisi laittaa Ehto (i <= 5) Ennen jokaista loopin suorituskertaa tarkistetaan että ehto toteutuu. Mikäli ei, koko looppi ohitetaan. Huom! Mikäli ehto toteutuu joka kerta, looppi ei lopu koskaan. 32
33 While esimerkki Odotetaan minuutti ja joka sekunti tulostetaan kauanko aikaa on vielä jäljellä. millis() kertoo montako millisekuntia sitten Arduino käynnistettiin. long nowplusminute = millis () ; while ( millis () < nowplusminute ) Serial. println ( nowplusminute - millis ()); delay (1000) ; 33
34 For vs while Oikeastaan for-silmukan voi ajatella "hienompana"versiona while-silmukasta alkuarvo on vain lause joka ajetaan ennen while-silmukkaan siirtymistä ehto on while-silmukan ehto askel on lause joka sijoitetaan viimeiseksi while-silmukan sisälle. 34
35 Break ja continue Silmukoiden kulkuun voidaan vaikuttaa kahdella komennolla: break Lopeta silmukan suoritus heti ja siirry siitä ulos continue Hyppää välittömästi takaisin silmukan alkuun. For-silmukassa suoritetaan lisäksi askel-vaihe. 35
36 Break ja continue -esimerkki int i =0; while ( true ) Serial. println (i); i ++; if (i < 3) continue ; break ;
37 Arduino 37
38 Arduino UNO:n pääpiirteet Flash-muistia 32 kilotavua, josta 0,5 KB varattu Arduinon bootloaderille Tähän tilaan ohjelman pitää siis mahtua 2 kilotavua SRAM-muistia Käyttömuisti. Esim muuttujat asuvat täällä Tieto häviää kun virrat katkeavat 1 kilotavu EEPROM-muistia Muisti joka ei häviä virtojen katketessa Esimerkiksi laitteen asetusten säilöminen Vrt. tietokoneen kovalevy 38
39 Arduino UNO vs teensy 2.0 Arduino UNO perustuu ATmega328P-piiriin Teensy ATmega32U4-piiriin. Piirissä on tuki USB:lle. Teensy voi esimerkiksi esittää USB-näppäimistöä Flash-muistia 32 kilotavua Teensyssä n. 32kB 2 kilotavua SRAM-muistia Teensyssä n. 2,5kB 1 kilotavu EEPROM-muistia Teensyssä 1kB Käytännössä eroja siis on, mutta kumpikin ovat "tyhmiä"mikrokontrolloreita 39
40 digitalwrite Asettaa pinnin arvon LOW tai HIGH. LOW, "pois päältä" HIGH, "päällä" Esimerkiksi ledin vilkutus void setup () pinmode (13, OUTPUT); void loop () digitalwrite (13, HIGH ); // LED päällä delay (1000) ; //Odota sekunti digitalwrite (13, LOW ); // LED pois päältä delay (1000) ; //Odota sekunti 40
41 digitalread Lukee pinnin tilan LOW, pinni kytketty maahan (GND) HIGH, pinni kytketty jännitteeseen. (3-5 volttia) void setup () pinmode (3, INPUT); void loop () int arvo = digitalread (3) ; 41
42 Ylös-/Alasvetovastukset Mikäli pinniä ei ole kytketty mihinkään, sanotaan että se kelluu digitalread palauttaa satunnaisesti HIGH tai LOW Ratkaisuna alasvetovastus Kytketään pinni vastuksella (n. 10KΩ) GND:hen Pinnin arvo on nyt LOW kunnes se kytketään myös +5V:iin Ylösvetovastus lähes sama asia: Kytketään pinni vastuksella (n. 10KΩ) +5V:iin Pinnin arvo on nyt HIGH kunnes se kytketään myös GND:iin 42
43 INPUT_PULLUP Arduinosta löytyy sisäänrakennettuna ylösvetovastus Aktivoidaan määrittämällä pinnin modeksi INPUT_PULLUP Yksinkertainen nappula voidaan nyt kytkeä suoraan GND:in ja halutun pinnin välille. Mitään ylimääräistä vastusta ei tarvita kytkennässä! void setup () pinmode (3, INPUT_PULLUP ); void loop () int nappula = digitalread (3) ; 43
44 analogread analogreadilla voidaan lukea pinnin jännite Onnistuu vain pinneistä jotka on nimetty A0, A1... Kyseisten pinnien takana on 10-bittinen analogidigitaalimuuntaja (AD) Arvo 0-5V väliltä saadaan lukuna väliltä (2,5V siis vastaisi lukua 512) Kyseisiä pinnejä voi käyttää myös digitaaliseen I/O:hon void setup () pinmode (A1, INPUT); void loop () int arvo = analogread ( A1); 44
45 analogwrite Arduinossa ei ole DA-muunninta analoginen ulostulo pitää tehdä "keinotekoisesti" PWM, eli Arduino kytkee pinniä nopeasti 0V ja 5V välillä. (kanttiaalto) "Teho"määräytyy kauanko pinniä pidetään HIGH- ja kauanko LOW-tilassa Esimerkiksi LEDien himmentämisessä ja normaalien moottorien tehon säädössä riittävä Vain tildellä ( ) merkittyjä pinnejä voi käyttää void setup () pinmode (3, OUTPUT ); void loop () // Ledi palaa "puolella teholla" analogwrite (3, 127) ; 45
46 Esimerkki: Monen ledin vilkutus Blinkkiesim.ino Ongelma: Halutaan saada useampi kuin yksi ledi vilkkumaan tietyllä taajuudella. Arduinon tutussa Blink-esimerkissä vilkutetaan yhtä lediä kytkemällä sitä päälle sekä pois, välissä odottaen sopiva aika. Odottelun aikana ei voida tehdä mitään muuta, eikä kahden ledin vilkuttaminen eri taajuuksilla ole tällä tavalla mielekästä. 46
47 Esimerkki: Monen ledin vilkutus Esimerkkiä varteen tarvitaan Arduino tai teensy jossa Pinniin 9 on kytketty etuvastuksen kanssa sarjaan ledi Pinniin 10 on kytketty etuvastuksen kanssa sarjaan ledi 47
48 Esimerkki: Monen ledin vilkutus BlinkLed led1 (10, 1000) ; BlinkLed led2 (9, 500) ; void setup () void loop () led1. update (); led2. update (); BlinkLed on luokka josta luodaan oliot led1 ja led2. led1 ja led2 sisältävät.update()-metodin jonka kutsuminen pitää huolen että ledi on oikeassa tilassa 48
49 Luokka ja olio? Luokka kuvaa miten asia toimii. Sillä on omia sisäisiä muuttujia. Sillä on omia funktioita jotka vaikuttavat sen muuttujiin. Esim. servo, näyttö, ihminen. Olio on luokan pohjalta luotu itsenäinen eliö. Esimerkissämme on siis kaksi BlinkLed-tyyppistä oliota. led1 on pinniin 10 kytketty ledi joka vilkkuu 1s sykleissä. led2 on pinniin 9 kytketty ledi joka vilkkuu 0,5s sykleissä. 49
50 Esimerkki: Monen ledin vilkutus class BlinkLed public : BlinkLed ( int pin, int blink_time ); void setdelay ( int blink_time ); void update (); private : int _pin ; //Pin johon led on kytketty bool _state ; //Onko ledi nyt päällä vai ei ; int _blink_time ; //Kauanko pidetään lediä päällä/pois long _last_cycle ; //Milloin viimeksi tehtiin ledille jotakin 50
51 Public- ja private-lohkot Public-lohkon alla olevat asiat näkyvät ulkomaailmaan. Tämän vuoksi esimerkin led1:n update()-funktiota voidaan kutsua ohjelman pääloopissa. Private-lohkon asioita voi käyttää luokan sisällä olevissa funktioissa, mutta niitä ei voi käyttää ulkopuolella. Esimerkiksi led1:n pinniä ei voi selvittää lukemalla muuttujaa led1._pin. Tapana on erottaa private muuttujat alaviivalla alkavalla nimellä, mutta tämä ei ole pakollista. 51
52 Esimerkki: Monen ledin vilkutus BlinkLed ( int pin, int blink_ time ) _pin = pin ; _ blink_ time = blink_ time ; _ state = LOW ; pinmode (_pin, OUTPUT ); _ last_ cycle = millis (); Ns. konstruktori. Suoritetaan silloin kun luodaan uusi olio. BlinkLed led1(10, 1000); käyttää tätä osaa luokasta. 52
53 Esimerkki: Monen ledin vilkutus void setdelay ( int blink_ time ) _ blink_ time = blink_ time ; Public-blokissa oleva funktio joka muokkaa private-muuttujaa. 53
54 Esimerkki: Monen ledin vilkutus void update () if ( millis () - _last_cycle >= _blink_time ) _state =! _state ; _ last_ cycle = millis (); digitalwrite (_pin, _state ); millis() aika Arduinon käynnistymisestä millisekunteina. Funktio tarvittaessa kääntää ledin päälle tai pois. Tämän jälkeen voidaan odottamisen sijaan tehdä jotakin muuta. 54
55 Ohjelma laitteelle 55
56 Esimerkki: Monen ledin vilkutus Jatketaan esimerkkiä hieman lisää. Uusi ongelma ledin vilkkumisnopeutta halutaan muuttaa lennosta. 56
57 Esimerkki: Monen ledin vilkutus void setup () Serial. begin (9600) ; void loop () led1. update (); led2. update (); update_ speeds (); setup-funktiossa alustetaan sarjaporttiyhteys. pääloopissa kutsutaan yhtä uutta funktiota. 57
58 Esimerkki: Monen ledin vilkutus void update_ speeds () if ( Serial. available ()) long new_ delay = Serial. parseint (); led2. setdelay ( new_delay ); Serial. println (" Set new delay for led2 : "+ String ( new_delay )); Nyt Arduinosta voi avata Serial monitorin ja lähettää Arduinolle halutun viiveen numerona. 58
59 Serial monitorin avaaminen Varmista että tools port on valittu oikein. 59
60 Serial monitor 60
61 Sarjaportti Arduino osaa USB:n kautta esittää sarjaporttia Helpoin tapa tietää mitä Arduinossa tapahtuu Kun ohjelma ei toimi kuten sen pitäisi, kannattaa sarjaporttiin tulostaa eri muuttujien arvoja ja tutkia niiden järkevyyttä Tekstin tulostaminen ennen ja jälkeen jonkin ohjelman osan auttaa selvittämään, jääkö ohjelma jumiin johonkin kohtaan. Huom! jos käytät sarjaporttia, pinnejä 0 ja 1 ei voi enää käyttää muuhun! 61
62 Enum enum OhjelmanTila kysyy_ nimea, sanoo_ moi ; OhjelmanTila tila = kysyy_ nimea ; void loop () String nimi ; if ( tila == kysyy_ nimea ) nimi = kysy_ nimi (); if ( tila == sanoo_ moi ) sano_moi ( nimi ); 62
63 Vinkit ohjelmointiin: Sisennys Sisennetty koodi on helppolukuista sillä lohkot erottuvat visuaalisesti toisistaan Koodia saa sisennettyä painamalla tab-nappulaa kursorin ollessa rivin alussa void loop () String nimi ; if ( tila == tila1 ) nimi = kysy_ nimi (); if ( tila == tila2 ) sano_moi ( nimi ); void loop () String nimi ; if ( tila == tila1 ) nimi = kysy_ nimi (); if ( tila == tila2 ) sano_moi ( nimi ); 63
64 Vinkit ohjelmointiin: Manuaalien lukeminen Arduinon sivuilla hyvät on ohjeet useimpien funktioiden käyttöön. Kannattaa aina lukea funktion manuaali kun käyttää sitä ensimmäistä kertaa. Tiettyjen kirjastojen käyttäminen saattaa asettaa rajoituksia esimerkiksi tiettyjen pinnien toimintaan. Myös komponenttien käyttöön löytyy hyviä ja huonoja ohjeita Googlella. 64
65 Vinkit ohjelmointiin: Google Lähes kaikki kääntäjän ilmoittamat virheet googlautuvat hyvin. Maailmassa on tehty paljon asioita jo ennestään: how to * with arduino/c Englannin kielellä parhaat hakutulokset Tällä pääsee yllättävän pitkälle kaikkeen ohjelmointiin liittyvässä! 65
66 Ohjelman debuggaus: kumiankka 66
67 Linkkejä Arduinon oppaat ja esimerkit Arduinon kielen referenssi Atmega328P-piirin datasheet. Kertoo kaiken mitä kyseinen piiri osaa, kannattaa lukea lähinnä mielenkiinnosta opus on todella pitkä. atmel bit-avr-microcontroller-atmega48a-48pa-88a datasheet_complete.pdf 67
Arduinon ohjelmointi. Sami-Petteri Pukkila. 6. helmikuuta 2017
Sami-Petteri Pukkila sami-petteri.pukkila@aalto.fi Mistä kaikki lähtee liikkeelle? Ennen kuin alat ohjelmoimaan, mieti mitä projektissa kannattaa tehdä. Jaa projekti pieniin osaprojekteihin ja kehitä näille
LisätiedotArduinon ohjelmointi. Sami-Petteri Pukkila. 1. helmikuuta 2016
Sami-Petteri Pukkila sami-petteri.pukkila@aalto.fi 1. helmikuuta 2016 Ohjelman rakenne # include / / Matemaattisia funktioita const i n t ledpin = 13; / / Merkkivalo i n t sensorpin = 4; / /
LisätiedotELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle
ELEC-A4010 Sähköpaja Arduinon ohjelmointi Jukka Helle Arduino UNO R3 6-20VDC 5VDC muunnin 16 MHz kideoskillaattori USB-sarjamuunnin (ATmega16U2) ATmega328 -mikro-ohjain 14 digitaalista I/O väylää 6 kpl
LisätiedotELEC-A4010 Sähköpaja Arduinon ohjelmointi. Peter Kronström
ELEC-A4010 Sähköpaja Arduinon ohjelmointi Peter Kronström Arduinon rakenne 5 voltin regulaattori 16 MHz kide USB-sarjamuunnin ATmega328 -mikrokontrolleri 20 I/O-pinniä, joista 14 digitaalista ja 6 analogista
LisätiedotOhjelmointiharjoituksia Arduino-ympäristössä
Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet
Lisätiedot1 Tarkistetaan että kaikki toimii
Harjoituksen lopputuloksena on laite joka morsettaa vilkuttamalla Arduinon sisäänrakennettua lediä. Haluttu morsesarja annetaan laitteeseen kytketyltä tietokoneelta. Harjoitusta varten tarvitaan pelkästään
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ätiedotArduino. Kimmo Silvonen (X)
Arduino Kimmo Silvonen (X) Arduino, toimiva oma versio (osat Pajalla) ATmega 328P IC DIL-kotelossa (DIP) päältä katsottuna, Arduinon pinnit +5 V TX RX DTR FT232 10k 22p 22p Reset 1 RX D0 TX D1 D2 PWM D3
LisätiedotTällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi.
Lämpötilahälytin Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi. Laite koostuu Arduinokortista ja koekytkentälevystä. Hälyttimen toiminnat ohjelmoidaan Arduinolle.
LisätiedotLUMA SUOMI -kehittämisohjelma LUMA FINLAND -utvecklingsprogram LUMA FINLAND development programme Ohjelmointia Arduinolla
Ohjelmointia Arduinolla Kyösti Blinnikka, Olarin koulu ja lukio LUMA-keskus Aalto Mikä on Arduino? Open Source Electronics Prototyping Platform Arduino on avoimeen laitteistoon ja ohjelmistoon perustuva
LisätiedotJava-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ätiedotSisä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////// VENETIETO.FI \\\\\\ //// Autopilotti 2014 \\\\ //-PID säätimellä. #include <EEPROM.h> #include <SoftwareSerial.h>
////// VENETIETO.FI \\\\\\ //// Autopilotti 2014 \\\\ //-PID säätimellä #include #include SoftwareSerial gps(0, 1); // RX, TX -pinnit const int buttonpinset = 2; // painonäppäimen
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ätiedotLiikennevalot. Arduino toimii laitteen aivoina. Arduinokortti on kuin pieni tietokone, johon voit ohjelmoida toimintoja.
Liikennevalot Laite koostuu Arduinokortista ja koekytkentälevystä. Liikennevalon toiminnat ohjelmoidaan Arduinolle. Ledit ja muut komponentit asetetaan koekytkentälevylle. Arduino toimii laitteen aivoina.
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ätiedotMetodit. 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ä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ä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ätiedotArduino. Kimmo Silvonen (X)
Arduino Kimmo Silvonen (X) Arduinon ohjelmointiympäristön installointi Teensyn (2.0) installointi Arduino IDE:n alle IDE = Integrated Development Environment Arduino UNO, ym.: https://www.arduino.cc/en/guide/windows
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ä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ätiedotPerusteet. 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ätiedotArduino. Kimmo Silvonen (X)
Arduino Kimmo Silvonen (X) Arduino, toimiva oma versio (osat Pajalla) ATmega 328P IC DIL-kotelossa (DIP) päältä katsottuna, Arduinon pinnit +5 V TX RX DTR FT232 10k 22p 22p Reset 1 RX D0 TX D1 D2 PWM D3
LisätiedotOhjelmassa 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ätiedotJava-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ätiedotMuuttujat ja kontrolli. Ville Sundberg
Muuttujat ja kontrolli Ville Sundberg 14.9.2007 Alkeistyyppi Alin abstraktiotaso josta tarvitsee välittää Yksittäinen, jakamaton tiedonjyvä Tavallaan kaikki alkeistyypit ovat lukuja arvojoukko vaihtelee
LisätiedotPerusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n
LisätiedotMetodien tekeminen Javalla
1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.
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ä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ä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ätiedotC-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ätiedotTAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:
KILPAILIJAN TEHTÄVÄT Kilpailijan nimi / Nro: Tehtävän laatinut: Hannu Laurikainen, Deltabit Oy Kilpailutehtävä Kilpailijalle annetaan tehtävässä tarvittavat ohjelmakoodit. Tämä ohjelma on tehty laitteen
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ä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ätiedotTarkempaa tietoa saat myös kurssin GitHub-alustalta. Sen wiki-osio on kattava ja yksityiskohtainen, kun tämä vihkonen taas on vain ensihätään.
Sisällys Johdanto... 3 Ohjeita materiaalin käyttöön... 3 Mikä on arduino?... 4 Arduino-alustan pinnijaottelu... 4 Koodin rakenne... 8 Pinnin määrittely... 9 Muuttujat... 10 Tyypillisimmät ohjelmointilauseet...
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ätiedotSisältö. 2. Taulukot. Yleistä. Yleistä
Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä
LisätiedotYleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.
2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä
LisätiedotSisältö. 22. Taulukot. Yleistä. Yleistä
Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä
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ätiedotListarakenne (ArrayList-luokka)
Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen
LisätiedotJava kahdessa tunnissa. Jyry Suvilehto
Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotITKP102 Ohjelmointi 1 (6 op), arvosteluraportti
ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 8. kesäkuuta 2018 Yleistä Tentti 1 meni pistekeskiarvon (11.2) perusteella välttävästi. Omasta tehtäväpaperista saa kopion
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ätiedot7. Näytölle tulostaminen 7.1
7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio
LisätiedotOhjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin
Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt
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ä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ätiedotOlion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();
Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio
LisätiedotInformaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006
TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa
LisätiedotJava-kielen perusteet
Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet
LisätiedotMuuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)
VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,
Lisätiedot11. Javan valintarakenteet 11.1
11. Javan valintarakenteet 11.1 Sisällys If- ja if--lauseet. Orpo. Valintaa toisin: switch-lause. 11.2 Valintarakenteet Valintarakenteilla ilmaistaan formaalisti, kuinka algoritmin suoritus voi haarautua
LisätiedotVertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004
Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;
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ätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
Lisätiedot7/20: Paketti kasassa ensimmäistä kertaa
Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007
Lisätiedot17. Javan omat luokat 17.1
17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)
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ätiedot2. 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ätiedot17. Javan omat luokat 17.1
17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotC++ rautaisannos. Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout:
C++ rautaisannos Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout: # include #include main ( ) main (
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ä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ä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ätiedotSisällys. 15. Lohkot. Lohkot. Lohkot
Sisällys 15. Lohkot Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.1 15.2 Lohkot Aaltosulkeet
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotSisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista
Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
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ätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
Lisätiedot11. Javan valintarakenteet 11.1
11. Javan valintarakenteet 11.1 Sisällys If- ja if-else-lauseet. Orpo else. Valintaa toisin: switch-lause. 11.2 If-lause Merkitään varatulla sanalla if. Kuvaa yksisuuntaisen päätöksen: rakenteen lauseet
LisätiedotMerkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:
Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin
Lisätiedot1. Omat operaatiot 1.1
1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
LisätiedotC++11 lambdat: [](){} Matti Rintala
C++11 lambdat: [](){} Matti Rintala bool(*)(int) Tarve Tarve välittää kirjastolle/funktiolle toiminnallisuutta Callback-funktiot Virhekäsittely Käyttöliittymät Geneeristen kirjastojen räätälöinti STL:n
LisätiedotVIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto
Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,
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ätiedotLohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3
15. Lohkot 15.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.2 Lohkot Aaltosulkeet
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
Lisätiedot20. Javan omat luokat 20.1
20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotSisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang
Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)
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ätiedotTä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ä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ä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ätiedotITKP102 Ohjelmointi 1 (6 op), arvosteluraportti
ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Yleistä Tentti 1 oli pistekeskiarvon (12.9) perusteella vaikeudeltaan tavallista vaikeampi. Omasta tehtäväpaperista
LisätiedotJavan perusteita. Janne Käki
Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).
LisätiedotList-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen
1 List-luokan soveltamista List-luokan metodeja Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan metodeja List-luokan
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ä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ätiedotJavan 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ätiedotOhjelmoinnin 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ätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
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ätiedotHarjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:
Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int
LisätiedotOhjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015
Ohjelmoinnin perusteet Pythonilla Teemu Sirkiä, 2015 Päivitetty 16.9.2015 Yleistä Materiaali sisältää lähinnä Aalto-yliopiston Ohjelmoinnin peruskurssi Y1:n harjoitustehtävissä tarvittavia keskeisiä asioita
LisätiedotSisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä
Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon
Lisätiedot