Palautetta viime luennosta

Koko: px
Aloita esitys sivulta:

Download "Palautetta viime luennosta"

Transkriptio

1 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, mahdoton luetella kaikkia Kysy tarvittaessa omalta opoltasi TKT-opiskelijoiden täytyy suorittaa 5op Avoimen väylän opiskelijoiden täytyy suorittaa 5op Ketään ei voi kieltää suorittamasta 5op 3op osuudesta ja 2op osuudesta tulevat eri arvosanat 3op osuus täytyy olla suoritettuna ennen kuin 2op osuuden arvosanan saa Mikä tässä nyt oli oikeastaan tärkeää? Aloitusluennot yrittävät antaa vähän pohjatietoa monesta asiasta, suurpiirteinen tietämys riittänee 71

2 Palautetta viime luennosta Näytin opiskelijakorttiani lukijaan en saanut läsnäoloa? Opiskelijakortti pitää käydä rekisteröimässä erikseen ViLLEn, samoin kuin RFID-tagit tai muut, jos opiskelijakorttia haluaa käyttää kulunvalvontaan Kaikki kortit eivät käy, siksi tageja jaetaan RFID-tagin saa kysymällä luennoitsijalta tai menemällä Agoran 4krs. huoneeseen 451D Opiskelijakortin voi liittää samalla ViLLEen jos se onnistuu Läsnäoloa ei tullut? Aloitusluennolla läsnäoloja merkittiin niin myöhään, etteivät ne enää rekisteröityneet Unohdit näyttää ViLLEä! Niin unohdin. Deadlineihin on kuitenkin vielä niin paljon aikaa, että ensi viikon tutoriaaleissa kaikki selvinnee 72

3 Ohjelmointikielet ja peruskäsitteet

4 Sisältö Pythonin esittely Ohjelmointikielet ja peruskäsitteet Muuttujat Valinta

5 Pythonista Kurssilla käytetty ohjelmointikieli Tulkattava kieli Ohjelma muunnetaan suoritettavaan muotoon lause kerrallaan ohjelmaa suoritettaessa Tämä kurssi ei kuitenkaan ole Python-kurssi Vältetään Pythonille ominaisia piirteitä Kirjoitetaan yksinkertaista koodia

6 Pythonista Ladattavissa Ei kurssin kannalta välttämätöntä asentaa ollenkaan Jos asennat, asenna v2.7.x (älä uusinta 3.x versiota) ViLLE käyttää 2.7-versiota, ja näiden versioiden välillä on monia eroja Jos et käytä Windowsia, Python saattaa olla jo asennettuna Kokeile terminaalissa python komentoa Verkosta löytyy palveluita pythonin suorittamiseen, joka saattaa pieneen testailuun riittää Esim

7 Algoritmin ymmärtäminen Prosessorin tulee kyetä tulkitsemaan algoritmi Ymmärtää esitysmuoto Kyetä suorittamaan operaatiot Algoritmin esityksen ymmärtäminen jakautuu kahteen vaiheeseen: 1. Ymmärtää symbolit joilla algoritmi esitetään Käytetyn kielen aakkosto Käytetyn kielen kielioppi 2. Ymmärtää jokaisen askeleen merkitys

8 Kielen syntaksi miten ohjelma kuvataan? Kielen syntaksi: Määrittää kielen lauseiden muodon eli kielioppisäännöt Määrää miten kielen symboleja saa laillisesti käyttää Syntaksi siis määrää, millaisia ovat kielen oikein muodostetut lauseet. Syntaktisesti oikea ohjelma noudattaa kielen syntaksia Esimerkki: yhteenlaskukieli: <lhs> + <rhs> Oikeita kielen lauseita: a + b, Vääriä: + 2, b +, + + +

9 Kielen semantiikka mitä ohjelma tarkoittaa? Kielen semantiikka Oppi lauseiden merkityksestä eli tiettyjen ilmaisujen merkitys kielessä Semantiikka määrää, mitä kielen lauseet tarkoittavat. Semantiikka vastaa siis kysymykseen Mitä? Esimerkkejä: Hauki on kala. (syntaktisesti ja semanttisesti oikein) Delfiini on kala. (syntaktisesti oikein, semanttisesti väärin)

10 Ohjelmointikielten semantiikka Luonnollisiin kieliin verrattuna yksinkertaista Syntaksi ja semantiikka eroteltu ohjelmointikielissä Algoritmin askeleet voivat olla syntaktisesti oikein, mutta semanttisesti merkityksettömiä

11 Ohjelmointikielen kielioppi Ohjemointikielten syntaksi nykyään tarkasti määritelty 60-luvulta lähtien syntaksi määritelty käyttäen kielioppia Esim. Pascal-kielen kielioppi koostuu n. 150 kielioppisäännöstä Kielioppisäännöt määrittävät kielen syntaksin täsmällisesti Ohjelmointikielten semanttiikkaa ei (yleensä) kyetä määrittelemään täsmällisesti

12 Algoritmin suorittaminen Algoritmin suorittaakseen tulee 1. tuntea algoritmin kuvauksessa käytetyt symbolit 2. osata liittää kuhunkin askeleeseen sen merkitys 3. kyetä suorittamaan operaatiot Ohjelmointikielen kääntäjä suorittaa vaiheet 1 ja 2 Kääntäjä muuttaa ohjelman jokaisen askeleen sopiviksi operaatioiksi Prosessori suorittaa operaatiot (vaihe 3)

13 Syntaksivirheet Syntaksivirhe tarkoittaa kielen syntaksin rikkomista Virhe estää virheellisen lauseen suorittamisen Usein yksikin virhe estää koko ohjelman suorittamisen Pythonissa tämä pätee Esimerkkejä: syntaksivirhe Pythonissa, mutta ei C:ssä a++ kirjoitusvirhe varatussa sanassa funktion dosomething()

14 Virheiden havaitseminen Syntaksivirheet havaitaan vaiheessa 1 (kielen kuvauksen tunteminen) Jotkin semanttiset virheet vaiheessa 2 (askeleiden merkitys) Jotkin semanttiset virheet vaiheessa 3 (operaatioiden suoritus) Koska Python on tulkattava kieli, vaiheiden 2 ja 3 virheet havaitaan vasta ohjelman suorituksen aikana Vaiheen 1 virheet havaitaan suorituksen alussa (syntaksi tarkistetaan)

15 Virheiden havaitseminen - esimerkki Esimerkkilause: Kirjoita viikon n:nnen päivän nimi. Syntaktisesti oikein Semanttinen oikeellisuus voidaan tarkastaa vasta suoritettaessa Lause on semanttisesti oikein vain tietyille n:n arvoille n:n arvo tiedetään vasta silloin

16 Loogiset virheet Syntaktisesti oikea, virheellisen tuloksen antava ohjelma sisältää loogisen virheen Loogiset virheet voidaan havaita esim. vertaamalla algoritmin tuottamaa print oikeaksi tiedettyyn tulokseen Edellyttää oikein tuloksen tuntemista Esim. Lukujen summan laskevan algoritmin tulos tunnetaan Loogiset virheet vaikeampi havaita kuin syntaktiset ja semanttiset Voidaan välttää tuomalla algoritmin semantiikka selvästi esille Kuvaavien nimien käyttö Ohjelmakoodin sijoitetut kommentit

17 Algoritmin suoritusjärjestys - peräkkäisyys Algoritmin lauseet suoritetaan algoritmin määräämässä järjestyksessä Peräkkäisyys (sequential) on yksi algoritmien perusohjausrakenteista (flow of control) Peräkkäisessä ohjelmassa lauseet suoritetaan Yksi kerrallaan Täsmälleen kerran Siinä järjestyksessä kuin ne ovat algoritmissa Viimeisen lauseen suoritus päättää algoritmin suorituksen

18 Lause ja lauseke Algoritmin yksittäisiä käskyjä (tai komentoja) kutsutaan lauseiksi (statement) Lause on yksi suoritettava osa lausekielistä ohjelmaa, joka koostuu useista lauseista Lausekkeella (expression) tarkoitetaan Luku- tai muita arvoja (2, muumi, 523.3) Muuttujaviittauksia Erilaisia laskutoimituksia (+, -, *, /) tai Muita operaatioita sisältävää ilmausta Lausekkeella on sen osista määräytyvä yksikäsitteinen arvo

19 Lause ja lauseke Lauseen ja lausekkeen ero: lausekkeella on arvo, lauseella ei Lauseketta ei voi käyttää yksinään, sen on oltava lauseen osa Lausekkeiden asema tosin vaihtelee eri ohjelmointikielissä Lausekkeita: x + 7 * y Lauseita: a = b = 3 * a

20 Operaattorit Operaattori määrää mitä lasketaan Binääriset operaattorit Aritmeettiset operaattorit Plus, miinus, kerto, Asetusoperaattori (seuraavaksi) Vertailuoperaattorit <, >, =, Loogiset operaattorit (ja, tai,..) Unaariset operaattorit Negaatio (esim -5) Ja monia muita kielestä riippuen

21 Operandit Objekteja, joita operaattori käyttää arvon laskemiseen Esim: 4 + 2, operaattori on + ja operandeja ovat 4 ja , operaattori on ja operandi on 42.

22 Muuttujat

23 Muuttujat Muuttuja Algoritmin halutun tuloksen saavuttamiseen käytetään usein apuna muuttujia (variables) Muuttuja On nimi, johon on liitetty jokin arvo Arvo voi muuttua algoritmin suorituksen aikana Tarkoittaa usein tietokoneen muistipaikkaa Algoritmin käskyt muuttavat muistipaikkojen sisältöä (eli muuttujien arvoja)

24 Muuttujan alustus ja arvon asetus Asetuslause eli sijoituslause antaa muuttujalle arvon tai muuttaa sen arvoa esim muuttuja = lauseke x = Muuttuja on sen muuttujan nimi jonka arvo halutaan asettaa Lauseke on tälle muuttujalle sopivan arvon tuottava lauseke

25 Muuttujan alustus ja arvon asetus esim muuttuja = lauseke x = Asetuslauseen semantiikka: Lasketaan asetuslauseen oikean puolen saama arvo Asetetaan saatu arvo vasemman puolen muuttujan (uudeksi) arvoksi Jos muuttujalla oli ennestään arvo, se häviää Oikealla puolella olevan lausekkeen jokaisella muuttujalla oltava arvo

26 Asetuslause ja ohjelmointikielet Joissakin kielissä muuttujilla on jokin oletusarvo (esim. 0 lukuarvoille) int x Pythonissa esitellylle muuttujalle on asetettava arvo x = 0

27 Asetuslause esimerkkejä y = Muuttujan y arvo lauseen suorittamisen jälkeen?

28 Asetuslause esimerkkejä y = Muuttujan y arvo lauseen suorittamisen jälkeen? Vastaus: 7

29 Asetuslause esimerkkejä x = 5 y = x Muuttujan x arvo on ensimmäisen lauseen suorittamisen jälkeen 5. Muuttujan y arvo on toisen lauseen suorittamisen jälkeen sama kuin x:n arvo, eli 5.

30 Asetuslause esimerkkejä x = 8 y = x + 2 x = 4 Muuttujien x ja y arvot ohjelman suorittamisen jälkeen?

31 Asetuslause esimerkkejä x = 8 y = x + 2 x = 4 Muuttujien x ja y arvot ohjelman suorittamisen jälkeen? Muuttujan x arvo on ensimmäisen lauseen suorittamisen jälkeen 8. Muuttujan y arvo on 2. lauseen suorittamisen jälkeen x:n arvo plus 2, eli 10. Muuttujan x arvo on viimeisen lauseen suorittamisen jälkeen 4. Lause ei muuta y:n arvoa, eli y:n arvo on edelleen 10.

32 Tyypit Muuttujiin ja lausekkeisiin liittyy tyypin käsite Tyyppi kertoo, millainen arvo muistipaikkaan tallennetaan Tyyppi määrittää myös arvon tallennusmuodon tietokoneen muistiin

33 Sisäänrakennettuja tyyppejä Pythonissa Tyyppi Kokonaisluku Esimerkkejä arvoista Liukuluku Totuusarvo Merkkijono True False erkki merkkijono esimerkki

34 Muuttujan tyyppi Pythonissa Pythonissa muuttujalla ei ole tyyppiä, vaan arvolla, joka muuttujaan on tallennettu => Python on ns. dynaamisesti tyypitetty kieli Muuttujan arvon tyyppi voi muuttua suorituksen aikana Esim: x=2 x= hei maailma

35 Staattinen tyypitys Pythonin muuttujat ovat dynaamisesti tyypitettyjä Vastakohta tälle on staattinen tyypitys Tällöin muuttujan tyyppi määräytyy täysin kääntämisvaiheessa, eikä se voi muuttua ajon aikana Muun kuin oikeantyyppisen arvon tallentaminen muuttujaan ei ole sallittua Muuttujat alustetaan ilmaisemalla muuttujan tyyppi Esim. Javassa: int x = 3; Tai: int x; x =3

36 Staattinen tyypitys Pythonin muuttujat ovat dynaamisesti tyypitettyjä Vastakohta tälle on staattinen tyypitys Tällöin muuttujan tyyppi määräytyy täysin kääntämisvaiheessa, eikä se voi muuttua ajon aikana Muun kuin oikeantyyppisen arvon tallentaminen muuttujaan ei ole sallittua Muuttujat alustetaan ilmaisemalla muuttujan tyyppi Esim. Javassa: int x = 3; Tai: int x; x =3

37 Tulostaminen Pythonissa print-käskyllä voi tulostaa vakioita ja muuttujien arvoja Esim: print erkki merkkijono esimerkki Pilkulla voi erottaa eri vakioita tai muuttujia Tulostukseen pilkulla eroteltujen osien väliin lisätään välilyönti Esim: x=12 print x:n arvo on, x Tulostaa: x:n arvo on 12

38 Aritmeettinen lauseke

39 Aritmeettinen lauseke Aritmeettinen lauseke on lauseke, jonka arvo on luku esim. 3 * x + y (jos muuttujat x ja y ovat lukuarvoisia) Käytössä operaatiot: + - * (kertolasku) / (jakolasku) % (jakojäännös) ** (potenssi)

40 Aritmeettinen lauseke Lauseketta laskettaessa arvo lasketaan vasemmalta oikealle 1. Potenssi ** on vahvin (lasketaan ensin) 2. Aritmeettiset operaattorit *, / ja % lasketaan tämän jälkeen 3. Operaattorit + ja - ovat heikompia Ts. sama laskujärjestys kuin matematiikassa Voidaan käyttää sulkeita laskujärjestyksen osoittamiseksi Ei kannata olla liian nokkela, epäselviä lausekkeita on hyvä selventää sulkeilla Esim: y+x**3%2 voisi kirjoittaa: y + ((x**3) % 2)

41 Aritmeettinen lauseke - esimerkkejä 3 * x + 2 Lasketaan ensin 3*x, johon lisätään 2. Esim jos x:n arvo on 4, tulee lausekkeen arvoksi 14.

42 Aritmeettinen lauseke - esimerkkejä 3 * (x + 2) Lasketaan ensin x + 2, jonka tulos kerrotaan 3:lla. Esim jos x:n arvo on 4, tulee lausekkeen arvoksi 18.

43 Aritmeettinen lauseke - esimerkkejä z = 4 * (x + y - 1) Lasketaan ensin x + y, jonka tuloksesta vähennetään 1. Seuraavaksi kerrotaan tämä 4:llä. Lopuksi sijoitetaan saatu arvo muuttujaan z. Mikä tulee z:n arvoksi jos x:n arvo on 4 ja y:n -2?

44 Aritmeettinen lauseke - esimerkkejä z = 4 * (x + y - 1) Lasketaan ensin x + y, jonka tuloksesta vähennetään 1. Seuraavaksi kerrotaan tämä 4:llä. Lopuksi sijoitetaan saatu arvo muuttujaan z. Mikä tulee z:n arvoksi jos x:n arvo on 4 ja y:n -2? Vastaus: lausekkeen arvoksi tulee 4 eli 4 * (4 + (-2) - 1. Huom! Aritmeettinen lauseke on tässä sijoituslauseen oikea puoli

45 Aritmeettinen lauseke - esimerkkejä Jakojäännösoperaattori % laskee jakojäännöksen, kun vasen puoli jaetaan oikealla. Esim: jos z on 5, niin lausekkeen z % 3 arvo on 2 z = z % 2 Tässä z:n arvoksi asetetaan 0, jos z on jaollinen kahdella, ja 1 jos z ei ole jaollinen kahdella

46 Looginen lauseke

47 Looginen eli totuusarvoinen lauseke Looginen tai totuusarvoinen tai ehtolauseke on lauseke, jonka arvo on totuusarvo tosi (true) tai epätosi (false) esim. a < b + 1

48 Vertailuoperaattorit Lausekkeissa voidaan käyttää vertailuoperaattoreita Vertailuoperaattori Esimerkki Suurempi > a > 4 Pienempi < a < -2 Suurempi tai yhtäsuuri >= a >= b + 2 Pienempi tai yhtäsuuri <= b <= 0 Yhtäsuuret == Erisuuret!= a == b a!= c Huom! Kaksi yhtäsuuruusmerkkiä Huom! Esimerkkilauseiden arvot riippuvat muuttujien arvoista. Vertailuoperaattorit vaihtelevat ohjelmointikielissä.

49 Totuusarvoiset lausekkeet - esimerkkejä a < 4 Lausekkeen arvo on tosi, mikäli muuttujan a arvo on pienempi kuin 4. Muulloin lausekkeen arvo on epätosi.

50 Totuusarvoiset lausekkeet - esimerkkejä a >= b + 2 Lausekkeen arvo on tosi, mikäli muuttujan a arvo on suurempi tai yhtäsuuri kuin aritmeettisen lausekkeen b + 2. Muulloin lausekkeen arvo on epätosi.

51 Totuusarvoiset lausekkeet - esimerkkejä a 1 > b Kun a = 3 ja b = 2, mikä on lausekkeen arvo?

52 Totuusarvoiset lausekkeet - esimerkkejä a 1 > b Kun a = 3 ja b = 2, mikä on lausekkeen arvo? Vastaus: Vasen puoli: a 1 eli 3 1 = 2 Oikea puoli: b eli 2 Vertailu on siis 2 > 2, mikä ei pidä paikkaansa joten lausekkeen arvo Epätosi

53 Loogiset operaattorit Totuusarvoinen lauseke voikin sisältää loogisia operaattoreita vertailujen yhdistämiseen Pythonissa on käytössä mm. loogiset operaattorit and, or ja not

54 Loogiset operaattorit lauseke1 lauseke2 lauseke1 and lauseke2 lauseke1 or lauseke2 False False False False True False True False True True True False False True False True True True True False not lauseke1

55 Totuusarvoiset lausekkeet - esimerkkejä a < 0 and b < 0 Lausekkeen arvo on tosi, mikäli muuttujien a ja b arvo on pienempi kuin 0. Mikäli edes toisen arvo on nolla tai sitä suurempi, lausekkeen arvo on epätosi.

56 Totuusarvoiset lausekkeet - esimerkkejä a < 0 or b < 0 Milloin lausekkeen arvo on tosi?

57 Totuusarvoiset lausekkeet - esimerkkejä a < 0 or b < 0 Milloin lausekkeen arvo on tosi? Lausekkeen arvo on tosi, mikäli muuttujan a tai b arvo on pienempi kuin 0. Mikäli molempien arvo on nolla tai sitä suurempi, lausekkeen arvo on epätosi.

58 Totuusarvoiset lausekkeet - esimerkkejä (a < 0 and b > 0) or a < b Mikä on lausekkeen arvo, kun a = -1, b =0?

59 Totuusarvoiset lausekkeet - esimerkkejä (a < 0 and b > 0) or a < b Mikä on lausekkeen arvo, kun a = -1, b =0? Tosi, voidaan tarkistaa sieventämällä: (-1 < 0 and 0 > 0) or -1 < 0 (True and False) or True False or True True

60 Valinta- eli ehtolause

61 Ohjausrakenteet Peräkkäisyys on perusohjausrakenne Algoritmin on kuitenkin kyettävä toimimaan erilaisissa tilanteissa -> pelkkä peräkkäisyys ei riitä Tarvitaan siis ohjausrakenteita eli kontrollirakenteita: Valinta (branching) Toisto (repetition) Ohjausrakenteet kuvaavat järjestyksen, jossa algoritmin toimenpiteet suoritetaan Algoritmi koostetaan ohjausrakenteita yhdistelemällä Peräkkäisyys, valinta ja toisto riittävät minkä tahansa algoritmin esittämiseen

62 Valinta- eli ehtolause Saman ongelman ratkaisemiseksi eri tilanteissa algoritmin toimittava eri tavoin Algoritmin varauduttava vaihtoehtoisiin toimintoihin Algoritmin on siis tehtävä valinta eri toimintojen välillä Valinta ei saa olla satunnainen vaan sen tulee perustua yksiselitteiseen valintaehtoon

63 Valinta- eli ehtolause if on yksinkertaisin valinnan muoto jonkin toiminnon tekemiseen tai sen tekemättä jättämiseen. if ehto: toiminto

64 Valinta- eli ehtolause if ehto: toiminto ehto on totuusarvoinen lauseke (eli arvo on joko tosi tai epätosi) Ehto määrää tilanteen jossa toiminto suoritetaan Jos ehto on tosi, toiminto suoritetaan muuten ei

65 Valinta- eli ehtolause if ehto: toiminto toiminto voi olla yksittäinen lause tai joukko lauseita Se voi siis koostua useasta toiminnosta Voi siis sisältää asetuslauseita, valintalauseita, toistolauseita, jne.

66 Ehtolause - esimerkki if a < b + 2: a = b Mikäli a:n arvo on pienempi kuin b:n arvo + 2, suoritetaan toiminto. Tässä toiminto asettaa a:n arvoksi b:n arvon.

67 Sisennys Pythonissa sisennysten on oltava oikein! Sisennys määrittää mihin lohkoon lause kuuluu Saman lohkon lauseet sisennettävä samalle tasolle Esimerkki: vasemmanpuoleinen koodipätkä kasvattaa a:n arvoa aina, mutta oikeanpuolimmainen vain jos a < b if a < b: a = b a = a + 1 if a < b a = b a = a + 1

68 Sisennys Pythonissa Mieluiten joko välilyönneillä tai tabulaattoreilla sisennykset, ei näiden yhdistelmällä (Python 2:ssa yhdistely mahdollista, Python3:ssa kielletty) Vain kaksoispistettä seuraavan rivi saa ja täytyy olla sisennetty enemmän kuin edellinen rivi Virheellinen sisennys on syntaksivirhe: IndentationError Oikea sisennys a = 3 b = 4 c = a * 2 + b Virheellinen sisennys a = 3 b = 4 c = a*2 + b

69 if-else-lause if-else-lause on yleisempi valinta, jossa valitaan kahden vaihtoehtoisen toiminnon välillä: if ehto: else: toiminto1 toiminto2

70 if-else-lause if ehto: toiminto1 else: toiminto2 Mikäli ehto on tosi, suoritetaan toiminto1. Muussa tapauksessa suoritetaan toiminto2. Vain toinen toiminnoista suoritetaan

71 if-else-esimerkki if a > 0 and b > 0: print Molemmat nollaa suurempia else: print Molemmat ei nollaa suurempia

72 if-else esimerkki if x > y: max = x else: max = y Mikäli muuttujan x arvo on suurempi kuin muuttujan y, sijoitetaan muuttujaan max x:n arvo. Muussa tapauksessa (else-haarassa) sijoitetaan max:iin y:n arvo.

73 Sisäkkäiset ehtolauseet Monimutkaiset loogiset lausekkeet voivat tehdä ymmärtämisestä hankalaa Algoritmi voidaan kirjoittaa yksinkertaisimmilla loogisilla lausekkeilla käyttäen sisäkkäisiä ehtolauseita

74 Sisäkkäiset ehtolauseet - esimerkki if a > b and a > c: print "a on suurin Tämä voidaan kirjoittaa sisäkkäisiä ehtolauseita käyttäen: if a > b: if a > c: print "a on suurin" Huomaa lauseiden sisennys!

75 Kolme tai useampi vaihtoehtoa Useamman kuin kahden valinnan rakenne useissa kielissä ainakin kahdella tavalla Joko käyttämällä sisäkkäisiä if-lauseita (Tapa 1) Tai käyttämällä avainsanaa elif (Tapa 2) if ehto1: toiminto1 else: if ehto2: toiminto2 else: if ehto3: toiminto3 else: toiminto4 if ehto1: toiminto1 elif ehto2: toiminto2 elif ehto3: toiminto3 else: toiminto4

76 Valintalause ohjelmointikielissä Valintalause on käytettävissä kaikissa ohjelmointikielissä Syntaksi vaihtelee Monissa muissa kielissä sisennyksellä ei ole väliä, vaan lohko osoitetaan muilla tavoilla Sisennysten käyttö on kuitenkin useimmissä kielissä hyvän tavan mukaista Java Python LOLCODE if (ehto) { toiminto1; } else { toiminto2; } if ehto: toiminto1 else: toiminto2 ehto, O RLY? YA RLY toiminto1 NO WAI toiminto2 OIC

13. Loogiset operaatiot 13.1

13. 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ätiedot

Tietojenkäsittelyn perusteet I kurssijärjestelyt. 3op tai 5op

Tietojenkäsittelyn perusteet I kurssijärjestelyt. 3op tai 5op Tietojenkäsittelyn perusteet I kurssijärjestelyt 3op tai 5op 1 ViLLE-oppimisjärjestelmä ville.utu.fi Sähköinen oppimisjärjestelmä Käytetään kurssin kaikissa osasuorituksissa Jokaisella RFID-tägi, jolla

Lisätiedot

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

Alkuarvot 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ätiedot

Ehto- ja toistolauseet

Ehto- 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ätiedot

13. Loogiset operaatiot 13.1

13. 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ätiedot

Python-ohjelmointi Harjoitus 2

Python-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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

Tutoriaaliläsnäoloista

Tutoriaalilä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ätiedot

Java-kielen perusteita

Java-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ätiedot

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

Koottu 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ätiedot

Muistutus aikatauluista

Muistutus 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 9.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Java-kielen perusteet

Java-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ätiedot

Java-kielen perusteet

Java-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ätiedot

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

Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten Sisällys 16. Ohjelmoinnin tekniikkaa Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. For-lause lyhemmin. If-else-lause vaihtoehtoisesti

Lisätiedot

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

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin Sisällys 17. Ohjelmoinnin tekniikkaa for-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. if-else-lause vaihtoehtoisesti

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

Lisätiedot

16. Ohjelmoinnin tekniikkaa 16.1

16. Ohjelmoinnin tekniikkaa 16.1 16. Ohjelmoinnin tekniikkaa 16.1 Sisällys Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. For-lause lyhemmin. If-else-lause vaihtoehtoisesti

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2016 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 1 / 22 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 14.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2015 1 / 17 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

16. Ohjelmoinnin tekniikkaa 16.1

16. Ohjelmoinnin tekniikkaa 16.1 16. Ohjelmoinnin tekniikkaa 16.1 Sisällys For-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. If-else-lause vaihtoehtoisesti

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 19.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 19.9.2018 1 / 18 Oppimistavoitteet: tämän luennon jälkeen Osaat kirjoittaa Python-ohjelman, joka suorittaa eri kerroilla

Lisätiedot

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

Ohjelmointitaito (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ätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

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

Sisä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ätiedot

Python-ohjelmointi Harjoitus 5

Python-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ätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Algoritmit. 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ätiedot

12. Javan toistorakenteet 12.1

12. 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ätiedot

811120P Diskreetit rakenteet

811120P 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ätiedot

13. Hyvä ohjelmointitapa (osa 1) 13.1

13. Hyvä ohjelmointitapa (osa 1) 13.1 13. Hyvä ohjelmointitapa (osa 1) 13.1 Yleistä Ohjelman elinkaari ei tyypillisesti pääty sen toteuttamiseen tarvitaan ylläpitoa. Jotta koodin muuttaminen on mahdollista, on sen oltava myös muidenkin kuin

Lisätiedot

Ehto- ja toistolauseet

Ehto- 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ätiedot

811120P Diskreetit rakenteet

811120P 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ätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin 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ätiedot

11. Javan toistorakenteet 11.1

11. 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ätiedot

12. Javan toistorakenteet 12.1

12. 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ätiedot

8. Kieliopit ja kielet

8. 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ätiedot

3. Muuttujat ja operaatiot 3.1

3. Muuttujat ja operaatiot 3.1 3. Muuttujat ja operaatiot 3.1 Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit.

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus FORMAALI SYSTEEMI (in Nutshell): Formaali kieli: aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus esim. SSM:n tai EBNF:n avulla Semantiikka:

Lisätiedot

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

Perusteet. 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ätiedot

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

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit. 3. Muuttujat ja operaatiot Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi.. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit. Arvojen

Lisätiedot

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

Kerta 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ätiedot

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

Perusteet. 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ätiedot

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen Chapel TIE-20306 Ryhmä 91 Joonas Eloranta Lari Valtonen Johdanto Chapel on Amerikkalaisen Cray Inc. yrityksen kehittämä avoimen lähdekoodin ohjelmointikieli. Chapel on rinnakkainen ohjelmointikieli, joka

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 12.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 12.9.2018 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

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

Johdanto 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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

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

Sisä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ätiedot

11. Javan valintarakenteet 11.1

11. 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ätiedot

11.4. Context-free kielet 1 / 17

11.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ätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 11.9.2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Tä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 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ätiedot

Ohjausrakenteet. Valinta:

Ohjausrakenteet. Valinta: Ohjausrakenteet Luento antaa yleiskuvan siitä kuinka ohjelmassa suorittaan vaihtoehtoisia tehtäviä valintarakenteiden avulla ja kuinka samanlaisia ohjelma-askeleita toistetaan toistorakenteiden avulla

Lisätiedot

AS-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 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ätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä

Lisätiedot

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3 16. Lohkot 16.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 16.2 Lohkot Kaarisulut

Lisätiedot

Sisällys. 16. Lohkot. Lohkot. Lohkot

Sisällys. 16. Lohkot. Lohkot. Lohkot Sisällys 16. ohkot Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 16.1 16.2 ohkot aarisulut

Lisätiedot

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

Sisä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

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A 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ätiedot

14. Hyvä ohjelmointitapa 14.1

14. Hyvä ohjelmointitapa 14.1 14. Hyvä ohjelmointitapa 14.1 Yleistä Ohjelman elinkaari ei tyypillisesti pääty sen toteuttamiseen; ohjelmaa voidaan käyttää ja ylläpitää jopa vuosikymmeniä. Jotta koodin muuttaminen on mahdollista, sen

Lisätiedot

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

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5 Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät tekniset ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida

Lisätiedot

1. 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ätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

Luento 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ätiedot

815338A Ohjelmointikielten periaatteet 2014-2015

815338A Ohjelmointikielten periaatteet 2014-2015 815338A Ohjelmointikielten periaatteet 2014-2015 IV.2 Imperatiivinen ohjelmointi lauseet ja lausekkeet Sisältö 1. Yleistä lausekkeista 2. Presedenssi- ja assosiaatiosäännöt 3. Tyyppimuunnokset 4. Vertailulausekkeet

Lisätiedot

Harjoitus 5 (viikko 41)

Harjoitus 5 (viikko 41) Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä, käytä

Lisätiedot

5/20: Algoritmirakenteita III

5/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ätiedot

11. Javan valintarakenteet 11.1

11. 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ätiedot

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

Lohkot. 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ätiedot

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

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat ja operaatiot 3. Muuttujat ja operaatiot Sisällys Muuttujat. Nimi ja arvo. Algoritmin tila. Muuttujan nimeäminen. Muuttujan tyyppi. Muuttuja ja tietokone. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeetiikka.

Lisätiedot

etunimi, sukunimi ja opiskelijanumero ja näillä

etunimi, 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ätiedot

Sisällys. 15. Lohkot. Lohkot. Lohkot

Sisä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ätiedot

Palvelinpuolen ohjelmointi

Palvelinpuolen ohjelmointi Palvelinpuolen ohjelmointi Staattiset ja dynaamiset web-sivut Staattiset web-sivut ovat valmiissa muodossaan palvelimella (tai paikallisesti omalla koneella). Javascript mahdollistaa paikalliset dynaamiset

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin 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ätiedot

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

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä /+^2 Kirjoita muuten sama, mutta ota välilyönti :n jälkeen / +^2 Kopioi molemmat matematiikka-alueet ja liiku alueen sisällä

Lisätiedot

8. Kieliopit ja kielet 1 / 22

8. Kieliopit ja kielet 1 / 22 8. Kieliopit ja kielet 1 / 22 Luonnollinen kieli Suomen kielen sanoja voidaan yhdistellä monella eri tavalla. Kielioppi määrää sen, milloin sanojen yhdistely antaa oikein muodostetun lauseen. "Mies räpyttää

Lisätiedot

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

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja

Lisätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. 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ätiedot

Tä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 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ätiedot

7. Näytölle tulostaminen 7.1

7. 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ätiedot

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki

PERL. 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ätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 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ätiedot

Harjoitus 3 -- Ratkaisut

Harjoitus 3 -- Ratkaisut Harjoitus 3 -- Ratkaisut 1 ' '-merkki kirjoitetaan =, ' '-merkki!=, ' '-merkki ==. Yhtälöiden ratkaisusta puhutaan lisää myöhemmin. a f x, y : If ehtolauseke x y, y tämä palautetaan, jos

Lisätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

T106.1208 Ohjelmoinnin perusteet Y (Python) Opetusmoniste kevät 2010

T106.1208 Ohjelmoinnin perusteet Y (Python) Opetusmoniste kevät 2010 T106.1208 Ohjelmoinnin perusteet Y (Python) Opetusmoniste kevät 2010 Kerttu Pollari-Malmi c Kerttu Pollari-Malmi Sisältö 1 Tietokoneista ja ohjelmista 1 1.1 Lyhyesti tietokoneen rakenteesta....................

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2015 1 / 25 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

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

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. TIETOKONEOHJELMIEN RAKENNE Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. Teollisuusautomaation ohjelmiin on lainattu runsaasti perinteisen

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM 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ätiedot

Javan perusteita. Janne Käki

Javan 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ätiedot

Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi

Imperatiivisen 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ätiedot

Yhtälönratkaisu oppilaan materiaali

Yhtälönratkaisu oppilaan materiaali Yhtälönratkaisu oppilaan materiaali Nimi: Luokka: 1 1. Tosia ja epätosia väitteitä Alkupalat Kirjoita taulukkoon T, jos väite on tosi ja E, jos väite on epätosi. Väite 5 > 3 16 < 8 19 = 26 9 < 28 64 =

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. 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ätiedot