-ohjelmointikurssi luentomoniste ja tehtävät

Koko: px
Aloita esitys sivulta:

Download "-ohjelmointikurssi 1998-1999. luentomoniste ja tehtävät"

Transkriptio

1 -ohjelmointikurssi luentomoniste ja tehtävät

2 Sisällysluettelo C++-KIELESTÄ...2 KONEKIELI JA LAUSEKIELI...3 C++-KIELEN OHJELMAN RAKENNE...4 TYYPIT JA MUUTTUJAT...6 OPERAATTOREISTA...8 TYYPPIMUUNNOKSET...11 FUNKTIOT...13 MUUTTUJIEN NÄKYVYYSALUEET...15 SYÖTTÖ...17 EHTOLAUSE IF...19 SWITCH-RAKENNE...24 SILMUKAT...25 TAULUKOT...27 MERKKIJONOT : CHAR-TAULUKKO...28 MERKKIJONOT : STRING...30 SUDENKUOPPIA C:SSÄ JA C++:SSA...32 ESIMERKKI KIRJASTOFUNKTIOIDEN KÄYTÖSTÄ...34 LIITE A: ASCII -TAULUKKO...35 LIITE B: TYYPPIEN TARKENNUKSET...36 LIITE C: VUOKAAVION SYMBOLIT...37 ERIKOISTEHTÄVIÄ...38 LÄHDELUETTELO

3 C++-kielestä Kehittänyt Bjarne Stroustrup Laajalti käytetty, eräänlainen teollisuusstandardi Lähes jokaiseen käyttöjärjestelmään saatavilla C++-kääntäjä C++ on tarpeeksi monipuolinen monimutkaistenkin rakenteiden toteuttamiseen C++ on kehitetty C-kielestä. Pieniä yksityiskohtia lukuun ottamatta C++ on C -ohjelmointikielen laajennus. Miksi C valittiin C++:n pohjaksi? Miljoonia rivejä ohjelmia ja kirjastofunktioita on tehty C:llä, joita voidaan käyttää C++:ssa, koska C++ on linkitettävästi yhteensopiva ja syntaktisesti samanlainen kuin C. On olemassa satoja tuhansia ohjelmoitsijoita jotka käyttävät C:tä, joiden tarvitsee oppia vain C++:n uudet piirteet. C++:aa ja C:tä tullaan käyttämään sekaisin samoissa systeemeissä vuosikausia, joten erojen täytyi olla joko erittäin suuria tai pieniä minimoidakseen virheet ja ohjelmistojen sekavuutta. C:n kirjastoja voidaan käyttää C++ -ohjelmassa, ja useimpia C- ohjelmointityökaluja voidaan käyttää myös C++ -ohjelmointiin. C++ on saanut vaikutteita myös mm. kielistä BCPL, Simula67, Algol68 ja Ada. Mikä C++ on? parempi C tukee datan kätkemistä tukee olio-ohjelmointia yms. 2

4 Konekieli ja lausekieli Konekieli muodostuu ykkösen ja nollien muodostamista käskyistä. Eri ohjelmointikielillä kirjoitetut ohjelmat joudutaan aina kääntämään konekieleksi, koska tietokone ei ymmärrä muita kieliä. Lähinnä konekieltä on symbolinen konekieli eli assembly, jossa jokaista käskyä vastaa lyhyt kirjainyhdistelmä ja muistiosoite. Assembly vaatii kuitenkin yksityiskohtaista tuntemusta tietokoneen sisäisestä rakenteesta ennen kuin sillä saa aikaan ohjelmia, ja on vaivalloinen ja virhealtis käyttää. Lausekieltä on helpompi käyttää, koska se muistuttaa enemmän luonnollista kieltä. Esimerkkinä näistä ovat C, C++, Java, Ada, Pascal ja BASIC. C++ on käännettävä ohjelmointikieli. Ero tulkattavan ja käännettävän ohjelmointikielen kohdalla on se, että käännettävä kieli käännetään ajettavaksi ohjelmaksi ennen ajoa, ja tulkattavaa kieltä käännellään sitä mukaa, kun ohjelman suoritus etenee. Eräs esimerkki tulkattavasta kielestä on BASIC. C++:lla ohjelman tekeminen tapahtuu suurin piirtein näin: Ohjelma kirjoitetaan eli koodataan, josta syntyy lähdekoodi (source) Lähdekoodi käännetään konekielelle Linkkeri yhdistää luodut tiedostot valmiiksi käännettyihin kirjastoihin ja muodostaa ajettavan ohjelman Ohjelma on valmis 3

5 C++-kielen ohjelman rakenne C++ -ohjelma koostuu funktioista ja muuttujista. Pääohjelma, eli mistä ohjelmaa aletaan ajamaan on funktio main. Esimerkki: #include <iostream.h> int main () { cout << Hello World << endl; Tämä ohjelma tulostaa ruudulle Hello World ja rivinvaihdon. ( endl tarkoittaa rivinvaihtoa ja vastaa C:n rivinvaihtomerkkiä \n. Muita erikoismerkkejä ovat mm. \t tabulaattori ja \b backspace ). Rivillä 1 #include liittää ohjelmaan mukaan kirjaston iostream.h, joka sisältää mm. funktion cout. (Kirjaston (library) ideana on laajentaa kieltä niin, että joukko pieniä ohjelmia tallennetaan funktioiksi kirjastoon, joka on sitten kenen tahansa käytettävissä.) Ruudulle tulostaminen tapahtuu cout:lla rivillä 3. Funktion main tulee palauttaa arvonaan jokin kokonaisluku, kuten rivillä 4:. Jokainen lause loppuu puolipilkkuun (;). Poikkeuksen muodostavat #:lla alkavat ns. esiprosessorin direktiivit, esim #include ja aaltosulut {. Funktioilla on esittelyosa ja määrittelyosa. Esittelyosassa määritellään funktion muuttujat ja määrittelyosa sisältää suoritettavat lauseet. Esittelyosan tulisi olla ennen määrittelyosaa. (C:ssa pakko). Funktioiden ja muuttujien niminä kannattaa käyttää tavallisia kirjaimia, mutta ei skandinaavisia merkkejä, välilyöntejä tai erikoismerkkejä. 4

6 Tehtäviä 1. Kirjoita ohjelma Hello World koneellesi ja aja se. 2. Muokkaa Hello World ohjelma niin, että se tulostaa nimesi. 3. Ota pois puolipilkku cout- lauseen lopusta, käännä ohjelma ja katso, mistä kääntäjä herjaa. 4. Muuta ohjelmaa niin, että World -merkkijono tulostuu omalle rivilleen ( vihje: endl ) 5. Muuta ohjelmaa niin, että tulostat Hello World kahdella eri cout -käskyllä. 6. Lisää ohjelmaan rivi, joka tulostaa merkkijonon toinen rivi. 7. Mitä virheitä seuraavassa koodinpätkässä on? Voit kokeilla myös kääntää ohjelmaa. #include <iostream.h> int main () { cout Introduction to C++ programming language << endl; return 5

7 Tyypit ja muuttujat C:ssä ja C++:ssa jokaisella muuttujalla tulee olla tyyppi. Perustyyppejä ovat seuraavat: int char float double kokonaisluku merkki desimaaliluku (liukuluku) tarkempi desimaaliluku kuin float Esim. int luku; char merkki; int a=1; a=1; // kokonaisluvun esittely // merkin esittely // luvun a alustus // sijoitus muuttujaan a Tyyppeihin voi myös lisätä tarkentimia (short, long, signed, unsigned, ks. liite B). Muuttujat täytyy esitellä ennen käyttöä ja ne voidaan alustaa esittelyn yhteydessä. Esimerkki ohjelmasta, jossa käsitellään muuttujaa. 1 #include <iostream.h> 2 int main () { 3 int a; // esittely 4 a = 1; // sijoitus 5 cout << a; // luvun tulostus 6 7 Ohjelmaan voidaan lisätä kommentteja koodin havainnollistamiseksi ja yleensäkin selittämään, mitä kukin osa tekee. Kommentti C++:ssa alkaa // -merkillä ja loppuu rivinvaihtoon. // tässä on kommentti Rivillä 3 esitellään kokonaislukumuuttuja a. Rivillä 4 sijoitetaan muuttujaan a luku 1 ja rivillä 5 tulostetaan a. Rivillä 5: cout huomaa automaattisesti minkä tyyppinen muuttuja on tulostettavana. cout:lla voi tulostaa myös useammat luvun, merkin tai merkkijonon samalla rivillä. Nämä erotetaan toisistaan << -merkinnällä. Merkkien (char) alustus tapahtuu samaan tapaan kuin lukujen. Huomaa :n käyttö sijoituksessa! Merkkijonoihin palataan taulukoiden yhteydessä. Esim. char kirjain = Q ; cout << kirjain; 6

8 Merkkejä voidaan vertailla samaan tapaan kuin lukuja. Vertailu tapahtuu ASCII-taulukon* merkkejä vastaavien lukujen avulla. Tätä voidaan käyttää hyväksi mm. aakkostamisessa. * ks. liite A Tehtäviä 1. Tee ohjelma, joka esittelee muuttujan (int) a, sijoittaa siihen luvun 3 ja tulostaa a:n arvon. 2. alustaa muuttujan a 3:lla, ja tulostaa a:n arvon tulostaa luvun esittelee muuttujan (char) c, sijoittaa siihen kirjaimen B ja tulostaa muuttujan c. 7

9 Operaattoreista Laskujärjestyksen nyrkkisääntönä voisi sanoa, että ensimmäisinä suoritetaan (evaluoidaan) sulkujen sisältö (), sitten laskutoimitukset *, /, %,... ja sitten laskutoimitukset +, -,... siten, että samanarvoiset lasketaan oikealta vasemmalle. Esim. lauseessa 1+2*3 lasketaan ensin 2*3, joka lisätään sitten lukuun 1, lopullinen tulos on siis 7, kun taas (1+2)*3 tuottaisi luvun 9. Taulukossa operaattorit ovat järjestyksessä (ensin käsitellään ylinnä olevat). Kaikkia taulukon operaattoreita ei ole vielä käsitelty, joten ei syytä paniikkiin. () [] sulkeet, taulukko! negaatio (NOT) * / % kertominen, jakolasku, jakojäännös + - summa, vähennys < <= > >= pienempi kuin, pienempi tai yhtäsuuri, suurempi kuin, suurempi tai yhtäsuuri ==!= yhtäsuuri, erisuuri && JA (AND) TAI (OR) = sijoitus Kryptisimmät operaattorit ovat jätetty pois lähinnä koska niillä saa aikaan täysin käsittämättömän näköistä koodia. Myös pointtereita ei käsitellä tässä. Mikäli olet epävarma laskujärjestyksestä, käytä sulkuja. Sulkuja voi käyttää myös selkeyttämään koodin rakennetta. Huom! = on sijoitus ja == on yhtäsuuruusvertailu! Tämä on yksi yleisimmistä sudenkuopista C:ssä ja C++:ssa, varsinkin if -ehtolauseissa. Myös & ja &&:n sekä ja :n kanssa on oltava tarkkana, koska & ja ovat bittikohtaisia operaatioita (jätetään väliin tässä). C:ssa totuusarvot määritetään siten, että 0 on epätosi ja kaikki muut arvot tosia. Kokonaisluvuilla (integer) jaettaessa tulos pyöristyy alaspäin. Esim. 8 / 3 = 2. 8

10 Esimerkki: #include<iostream> int main () { int a; // esittely int b; a = 2; // sijoitus b = 3; cout << (a + b * a) << endl; // lasku ja tulostus Muuttujiin voi sijoittaa myös toisia muuttujia. #include<iostream> int main () { int a = 2; // alustus int b = 3; int c = 0; c = a + b * a; cout << c << endl; Alustamattomista muuttujista saattaa olla yllättävääkin päänvaivaa laajemmissa ohjelmissa. Niiden arvo saattaa olla aivan mitä tahansa. (Kokeilepa jättää esim. edellisestä esimerkistä b:n alustus pois). Tämä johtuu siitä, että muuttujaa esitellessä vain varataan vapaasta muistista muuttujan tyypin mukainen tavumäärä. Muuttujaan sijoitettaessa varattu muistialue käytetään. 9

11 Tehtäviä: Muuttujat ja operaattorit 1. Tee ohjelma, joka tulostaa lukujen 2, 5 ja 7 summan esittelee muuttujat a, b ja c, sijoittaa niihin arvot 4, 10 ja 50, ja tulostaa muuttujien summan. 3. tulostaa π:n likiarvon (sopivalla tarkkuudella) alustaa muuttujan p π:n likiarvolla, ja tulostaa p:n 5. Mikä virheitä seuraavassa ohjelmassa on? #include<iostream>; int main () { char aakkonen = a ; cout Variable is now << aakkonen << endl 6. Tee ohjelma, joka tulostaa lukujen 5, 7 ja 9 keskiarvon lukujen 6, 7 ja 9 summan keskiarvon. Vihje 7. Voit jakaa desimaaliluvulla tai käyttää float -typpisiä muuttujia. 10

12 Tyyppimuunnokset Jotta erityyppisiä muuttujia voitaisiin käsitellä samassa lauseessa, täytyy ne muuttaa samantyyppisiksi. Kääntäjä tekee myös automaattisesti tyyppimuunnoksia (joista useimmista ei ohjelmoijan tarvi päätään vaivata, mutta joistain saattaa tulla yllättävääkin päänvaivaa). Ohjelmoijan tekemät muunnokset tehdään ns. cast -operaattorilla. Muuttuja esitellään eri tyyppisenä laittamalla muuttuja sulkeisiin tyypin jälkeen. Huom: tämä ei muuta itse muuttujan tyyppiä! Esim. int t = 42; cout << char (t); Tulostaa lukua 42 vastaavan ASCII -merkin *. Muuttuja t on edelleen tyyppiä int. Esimerkki, jossa desimaaliluku tulostetaan kokonaislukuna: float p = ; cout << int (p); Tulostaa ruudulle 3 (int). Muista, että kokonaisluvuksi muutettaessa desimaaliluku pyöristyy alaspäin. Esimerkki, joka tulostaa ruudulle kirjaimen Q : int n = 81; char m; m = char (n); cout << m; m on nyt lukua 81 vastaava merkki Q ja n edelleen kokonaisluku

13 Tehtäviä: Typpimuunnokset 1) Tee ohjelma, joka tulostaa lukua 65 vastaavan merkin ( int char ). 2)... lukua 35 vastaavan merkin. 3)... lukua 62 vastaavan merkin. 4)... merkkiä T vastaavan luvun ( char int ). 5)... merkkiä [ vastaavan luvun. 6)... vastaavan luvun. 7)... desimaaliluvun (float) 8.1 kokonaislukuna (int). 8)... desimaaliluvun 8.99 kokonaislukuna. Vihjeet luku ASCII 35 # 62 > 65 A 84 T 91 [ ( Liitteessä A on C++:lla tehty ASCII -kartta ). 12

14 Funktiot Ohjelman kasvaessa tulee vastaan tilanne, jossa esim. samaa operaatiota vaaditaan useammassa paikassa. Funktioita voidaan kutsua pääohjelmasta (main), ja niille voidaan välittää arvoja. Funktion yleinen muoto: paluutyyppi funktio ( argumentit ) {... Itse main -funktio on int -tyyppinen, joten se palauttaa jonkin lukuarvon. Funktion paluuarvo palautetaan komennolla return. main -funktion paluuarvo 0 tarkoittaa sitä, että ohjelman suoritus oli virheetön. void -tyyppinen funktio ei palauta mitään. Esimerkki, jossa pääohjelmasta kutsutaan funktiota tulosta: #include<iostream> void tulosta () { cout << Pikkarainen << endl; int main () { tulosta(); Esim. #include<iostream> int summa ( int a, int b ) { return (a + b); int main () { int luku; luku = summa ( 1, 2 ); cout << luku << endl; Huomattavaa on, että funktion summa muuttuvat a ja b näkyvät vain funktion sisällä, eivätkä esim. main -ohjelmaan. summa palauttaa arvon, joka tässä esimerkissä on 3. Palautettu arvo sitten sijoitetaan pääohjelmassa muuttujaan luku ja tulostetaan. 13

15 Funktiolle summa annettua kahta kokonaislukua kutsutaan argumenteiksi. Jos funktion nimi koostuu useammasta sanasta, voidaan funktion nimessä käyttää alaviivaa yhdistelemään sanoja, esim. tulosta_ruudulle. Tehtäviä: Funktiot 1. Tee ohjelma Hello World! siten, että tulostus tapahtuu funktiossa tulosta, jota kutsutaan pääohjelmasta. 2. Tee funktio, joka palauttaa kolmen int -muuttujan summan kahden int -muuttujan tulon. 4. sille annetun ASCII-merkkiä vastaavan luvun. 5. nollan, jos sille annettu argumentti on kolmella jaollinen. 14

16 Muuttujien näkyvyysalueet Muuttujan näkyvyysalue tarkoittaa sitä osaa koodia, jossa muuttujaa voidaan käyttää. Tavallisesti muuttujan ovat lokaalisia (paikallisia). Aaltosulkujen { erottamassa kokonaisuudessa eli lohkossa esitellään lokaalit muuttujat. Lohkossa esitelty muuttuja näkyy myös lohkon alilohkoihin. Muuttujat syntyvät, kun ne esitellään ja häviävät, kun mennään alueelle, jossa ne eivät enää ole voimassa. Globaali muuttuja näkyy kaikkialla koodissa. Globaaliksi muuttujan tekee se, että se on kirjoitettu jokaisen funktion ulkopuolelle. Koska tällaisen muuttujan arvoa voidaan käsitellä missä paikassa hyvänsä, virheiden löytäminen virhetilanteissa voi olla työlästä. Vältä globaaleja muuttujia. Esim. float f; void trunc ( float x ) { int b;... int main () { float e;... muuttuja näkyvyysalue f globaali x funktiossa void trunc () b lohkossa void trunc () e pääohjelmassa globaali f pääohjelma e trunc -funktio x b 15

17 Tehtäviä: Muuttujien näkyvyysalueet 1. Mitkä ovat muuttujien a, c ja d näkyvyysalueet? #include<iostream> int a; void lisaa ( int c ) { a = a + c; int main () { int d; a = 0; d = 1; lisaa (d); 16

18 Syöttö Käyttäjän syötetietoja voidaan lukea käskyllä cin. Ohjelman ajaminen pysähtyy cin:n ajaksi ja käyttäjä voi tällöin antaa jonkin luvun, merkin tai merkkijonon ja sitten painaa return -näppäintä. Syöte sijoittuu cin >>:n ohjaamaan muuttujaan. Merkkijonoa luettaessa cin lukee välilyöntiin tai rivinvaihtoon saakka. Esimerkki ohjelmanpätkästä, joka esittelee muuttujan a ja sijoittaa siihen käyttäjän antaman luvun. int a; cin >> a; Esimerkki: Ohjelma, joka lukee luvun a ja tulostaa sen. #include<iostream> int main () { int a; cout << Anna luku << endl; cin >> a; cout << Luku oli: << a << endl; Esimerkki: Ohjelma, joka kysyy pallon sädettä ja tulostaa sen tilavuuden #include<iostream> float pii = ; float vol (float r) { // funktio vol palauttaa floatin return (4.0/3.0*pii*r*r*r); int main () { float r; cout << Anna säde: ; cin >> r; cout << endl << Pallon tilavuus = << vol(r) << endl; 17

19 Tehtäviä: Syöttö 1. Tee ohjelma, joka kysyy käyttäjältä lukua ja tulostaa sen kahta lukua ja tulostaa niiden summan ympyrän sädettä ja tulostaa sen pinta-alan. ( π r 2 ) 4. Tee ohjelma, joka kysyy suorakulmaisen kolmion kahta kateettia ja tulostaa kolmion hypotenuusan. Neliöjuurifunktio sqrt löytyy kirjastosta math.h. 18

20 Ehtolause if If -lause on muotoa if ( ehto ) { toteutetaan jos ehto on tosi else { toteutetaan jos ehto on epätosi Else-osa ei ole pakollinen. Esimerkki ohjelmanpätkästä, joka tarkistaa onko a:n arvo 1. Kuvassa 1 on sama esitetty vuokaaviona. (Vuokaavion symbolit ovat liitteessä C). int a = 1; if ( a == 1 ) { cout << a oli 1 << endl; Kuva 1 19

21 Toinen esimerkki: int a = 1; if ( a == 1 ) { cout << a oli 1 << endl; else { cout << ei ollutkaan << endl; Esimerkki ohjelmasta, joka vertailee kahden muuttujan arvoja: #include<iostream> int main () { int a; int b; a = 3; b = a - 1; if ( a > b ) { cout << a on suurempi kuin b << endl; Miksi seuraavat ohjelmanpätkät toimivat eri tavalla? if ( a == 0 ) { cout << a oli nolla << endl; // oikein if ( a = 0 ) { cout << a oli nolla << endl; // väärin Ehto voi myös olla moniosainen, jolloin eri osat erotetaan toisistaan loogisilla operaattoreilla. && JA (AND) TAI (OR)! EI (NOT) 20

22 Esim. if ( a == 1 && b == 1 ) {... // jos a on 1 JA b on 1 if ( a == 1 b == 1 ) {... // jos a on 1 TAI b on 1 if ( a!= 1 ) {... // jos a ei ole 1 if ( a == 3 && b!= 4 c == 12 ) {... if ( d == N ) {... // jos merkki d on N if ( d == Q d == d == \n ) {... // jos d on Q, välilyönti tai rivinvaihto Myös else-osan jälkeen voi olla if -lause. if ( ehto ) { jos ehto oli tosi else if ( toinen ehto ) { ellei ollut, niin jos toinen ehto oli tosi else { muussa tapauksessa 21

23 Tehtäviä: Ehtolauseet 1. Miten seuraavat if -lauseet toimivat? Oletetaan, että a ja b ovat tyyppiä int ja c char. if ( a > 6 ) {... if ( a == 0 ) {... else {... if ( (-3 < a) && (a < 3) ) {... if ( a!= b ) {... if ( a > b ) {... if ( c == N c == R ) {... if ( c == v ) {... else if ( c == w ) {... else {... if ( c >= 0 && c <= 9 ) {... if (! (a == b) ) { 2. Miten muotoilisit seuraavat if -lauseiksi? Oletetaan, että a ja b ovat tyyppiä int. Muista = ja == :n ero ja että voit yhdistellä JA ja TAI -lauseita. a) a on nolla b) a on yhtäsuuri kuin 7 c) a on pienempi kuin 16 d) a on suurempi kuin 16 e) a on suurempi tai yhtäsuuri kuin 0 f) a on pienempi tai yhtäsuuri kuin 0 g) a ei ole nolla h) a ei ole negatiivinen i) b on pienempi kuin 10 j) a on b k) a ei ole b l) a on suurempi kuin b m) a on 1 tai 2 n) a on 1, 3 tai 5 o) a on -10, b tai 10 p) a on 0 tai suurempi kuin 127 q) 0 < a < b r) a on suurempi kuin 0 ja pienempi kuin b s) a on välillä t) a on välillä 0...b 3. Muuta seuraavat C++:n if-lauseiksi. Muuttuja c on tyyppiä char. 22

24 a) c on f b) c on q c) c on k tai p d) c on rivinvaihto ( \n ) e) c on tabulaattori ( \t ) f) c on (välilyönti, space) g) c on rivinvaihto tai tabulaattori h) c ei ole rivinvaihto i) c ei ole rivinvaihto eikä välilyönti ( ) j) c on ESC-näppäin ( ASCII merkki 27 ) k) c on numero ( ASCII -taulukon merkit 0 9 ) l) c on pieni kirjain ( ASCII -taulukon merkit a z ) m) c on iso kirjain ( ASCII -taulukon merkit A... Z ) n) c on pieni tai iso kirjain o) c ei ole numero p) c on alfanumeerinen merkki k) Vihje luentomonisteen tehtävässä. Toinen vihje: TAI-lauseilla tehty tarkistus saattaa olla työläs... p) Vihje: Alfanumeerisia merkkejä ovat numerot 0 9 sekä kirjaimet a z ja A...Z. Voit myös vilkaista kappaletta "Esimerkki kirjastofunktioiden käytöstä". Karkausvuosi Karkausvuodet ovat vuosilukuja, jotka ovat neljällä jaollisia. Erikoisasemassa ovat 100:lla jaolliset vuosiluvut, joista vain 400:lla jaollisiset ovat karkausvuosia. Jaollisuutta C++:ssa tarkastellaan jakojäännös-operaattorilla %. Jos jakojäännös on 0, luku on jaollinen jakajalla. Tee ohjelmanpätkä, joka kertoo, onko kokonaisluku (int) vuosi karkausvuosi. Esim. laskuoperaatio jakojäännös 8 % 1 = 0 8 % 2 = 0 8 % 3 = 2 8 % 4 = 0 8 % 5 = 3 8 % 6 = 2 8 % 7 = % 4 = % 4 = % 4 = 0 23

25 Switch-rakenne switch:n parametrinä olevaa muuttujaa (int) testataan, onko se jonkin case-sanan jälkeen tuleva vaihtoehto. Jos on, niin suoritetaan case-lohkon koodi. Sanalla break poistutaan switchrakenteesta. Mikäli se puuttuu, suoritus jatkuu seuraavaan case-lauseeseen. default-lohko (ei ole pakollinen) suoritetaan, jos mikään edellinen lohko ei täsmää. Esim. ( c on tyyppiä int ) switch ( c ) { case 1: cout << ykkönen << endl; break; case 2: cout << kakkonen << endl; break; default: cout << jokin muu << endl; Esim. ( c on tyyppiä char ) switch ( c ) { case + : a = a + 1; break; case - : a = a - 1; break; default: cout << # << endl; Tehtäviä: switch-rakenne 1. Tee ohjelma, joka kysyy käyttäjältä kokonaislukua väliltä 1-3 ja tulostaa luvun sanana. 2. Sama kuin 1, ja jonkin muun luvun kohdalla antaa virheilmoituksen. 3. Miten ensimmäisen esimerkin ohjelmanpätkä toimisi, jos case 1-lohkon break-komento puuttuu? 4. Tee ohjelma, jolla voi laskea yhteen-, vähennys-, kerto- tai jakolaskun (nelilaskin). Tarkista erikseen mahdollinen nollalla jakaminen. 24

26 Silmukat for -silmukka on muotoa: for ( alustus ; ehto ; askel ) { silmukan koodi Alustus tehdään vain silmukan alussa. Ehto ja askel toteutetaan joka kierroksella. Esim. ohjelmanpätkä, joka tulostaa luvut omille rivilleen. int a; for ( a = 1; a <= 10; a = a + 1 ) { cout << a << endl; Kuva 2 Esim. Sarjan summa saadaan laskettua seuraavasti: #include<iostream> int main () { int summa = 0; int k; for ( k = 1; k <= 10; k = k + 1 ) { summa = summa + k; cout << Summa oli << summa << endl; 25

27 while -silmukka on muotoa: while ( ehto ) { silmukka While-silmukkaa kierretään niin kauan, kuin ehto on tosi. Esimerkki ohjelmakoodista, joka tekee saman kuin edellinen for -silmukka. int a = 1; while ( a <= 10 ) { cout << a << endl; a = a + 1; do-rakenne eroaa while:sta siten, että silmukan koodi suoritetaan ehdosta riippumatta ainakin kerran. do { silmukka while ( ehto ); Silmukan toteutustapa valitaan käyttötarkoituksen mukaan. Silmukoissa on syytä olla tarkkana: on myös mahdollista tehdä silmukoita, jotka eivät lopu koskaan. Tehtäviä 1. Tee ohjelma, joka tulostaa for-silmukalla 10 rivillistä merkkijonoa **** tulostaa for -silmukalla luvut omille riveilleen luvut välilyönnillä erotettuna. 4. Tee tehtävien 1-3 silmukat while -tekniikalla parilliset luvut välillä (Huom: useampi tapa toteuttaa) lukusarjan 0, 3, 6, 9, Tee ohjelma, joka tulostaa aakkoset (a...z). Käytä tyyppimuunnosta. 8. Miten liitteen A ASCII -taulukko-ohjelma liittyy silmukoihin? Miten se toimii? Vihje: 8. ASCII -koodit ja 127 ovat merkkejä, jotka ohjelmassa ovat esitetty tulostettavassa muodossa. Control -näppäinyhdistelmiä merkitään ^-merkillä, esim control+a kirjoitetaan ^A. ASCII merkki 10 (^J) on newline, 13 (^M) vastaa returnia, ^H on backspace jne. 26

28 Taulukot Taulukko on tietorakenne, johon voidaan tallettaa useampia samantyyppisiä muuttujia. Taulukon muuttujia kutsutaan alkioiksi. Taulukon koko täytyy tietää jo käännösaikana. Käytännössä tämä tarkoittaa sitä, että taulukon koko pitää määritellä koodissa luvulla tai vakiolla. Esimerkki: luodaan taulukko taul, johon mahtuu 4 int -tyyppistä alkiota. int taul[4]; Taulukko voidaan myös alustaa luodessa, jolloin taulukon koko voidaan jättää kääntäjän huoleksi: int taul[] = { 1, 2, 3, 4 ; Esittelyn jälkeen taulukon arvoja voidaan käsitellä yksi kerrallaan. Taulukkoa käsitellään operaattorin [] avulla. Taulukon ensimmäisen alkio C:ssä ja C++:ssa nolla (0). taul[0] = 5; Ensimmäinen alkio on nyt 5. int a; a = taul[1]; a saa arvon 2. Tehtäviä 1) Tee ohjelma, joka luo int-tyyppisen taulukon table, jossa on 6 alkiota. a) Alusta table -taulukon luvuilla 1, 2, 3,... b) Sijoita table:n ensimmäiseen alkioon luku 99. (Ensimmäinen alkiohan oli paikassa [0]). c)... toiseen alkioon luku 10. d)... viimeiseen alkioon luku 1. ( Vihje: ei ole table[6]...) 2) Tee ohjelma, joka kysyy käyttäjältä kolmea lukua, ja sijoittaa ne taulukkoon. 3) Edellinen tehtävä for -silmukkaa käyttäen. 27

29 Merkkijonot : char-taulukko Char-taulukoilla toteutetut merkkijonot ovat taulukoita ( [] ), jotka loppuvat aina merkkiin \0 (NUL). Esimerkiksi merkkijono foobar on koneen muistissa muodossa: f o o b a r \0 Esimerkki: char array[] = foobar ; cout << array; Taulukon koko on kuitenkin tiedettävä jo käännösaikana. Tämä tarkoittaa sitä, että ohjelmoijan on pidettävä itse huolta siitä, että taulukon koko riittää joka käänteessä. Edellisessä esimerkissä taulukon koko jätettiin kääntäjän huoleksi. Taulukon koon ylitystä ei kääntäjä valvo mitenkään, vaan ohjelma sitten myöhemmin sekoilee tai/ja kaatuu. Taulukkoon saa myöhemmin sijoitettua merkkijonon strcpy:llä, joka löytyy kirjastosta string.h. Esim. char array[10]; strcpy ( array, foobar ); cout << array; Merkkijonoja vertaillaan strcmp -funktiolla (kirjastosta string.h). Jos strcmp palauttaa nollan, merkkijonot ovat samoja. Esim. char automobiili[] = Lada ; if ( strcmp(automobiili, Mosse ) == 0 ) {... Jos haluamme muuttaa merkkijonon ensimmäisen kirjaimen, se sijoitetaan merkkinä taulukon alkuun: array[0] = m ; m o o b a r \0 28

30 Käyttäjän syötteen voi lukea cin:llä. cin >> array; Tässä kohtaa voi mennä pieleen, miksi? Varsinkin strcat:a (string.h:sta) käytettäessä pitää varmistaa, että taulukossa todellakin on tilaa. strcat kopioi merkkijonon toisen merkkijonon perään. Esimerkki strcat:n käytöstä: char array[20]; strcpy ( array, "esim" ); strcat ( array, "erkki" ); Voit myös lukea merkkejä (välilyönti mukaan lukien) cin.getline:llä: char word[30]; cin.getline ( word, 30 ); // ei mene yli varatun tilan Tehtäviä: char-merkkijono 1. Tee ohjelma, joka alustaa char -taulukon merkkijonolla Wartburg ja tulostaa sen. 2. kysyy käyttäjän nimeä ja tulostaa sen. 3. kopioi merkkijonon 1500 merkkijonon Lada jälkeen ja tulostaa sen kysyy käyttäjältä tunnusta ja salasanaa ja tulostaa access granted, mikäli tunnus on jobe ja salasana mainframe. Muussa tapauksessa ohjelma tulostaa access denied. 29

31 Merkkijonot : string String-tyyppisen merkkijonon C++:ssa saat käyttöön seuraavasti: #include<string> String-merkkijono on C++:n yksi tapa toteuttaa merkkijono. Erona char-taulukkoon on, että string:iä käytetään hieman eri tavalla. Esim. #include<iostream> #include<string> int main () { string s = Hello, World! ; cout << s << endl; Stringejä voidaan liittää toisiinsa seuraavasti: string s1 = Hello, ; string s2 = World ; string s3 = s1 + + s2; Esimerkissä s3 alustetaan merkkijonoksi Hello, World. String-merkkijonojen vertailu tapahtuu == -operaattorilla: if ( s1 == s2 ) {... if ( s1 == Eastwood ) {... Käyttäjän syötteen lukeminen merkkijonoon tapahtuu cin:llä: string str; cin >> str; 30

32 Vielä yksi esimerkki: string str; cout << Please enter your name << endl; cin >> str; cout << Hello, << str <<! << endl; Tehtäviä: string 1) Tee ohjelma, joka sijoittaa string:iin s merkkijonon olio. 2)... liittää s:n perään merkkijonon -ohjelmointi ja tulostaa sen. 3) kysyy käyttäjän nimeä ja tulostaa sen. 4)... kysyy käyttäjältä tunnusta ja salasanaa ja tulostaa access granted, mikäli tunnus on jobe ja salasana mainframe. Muussa tapauksessa ohjelma tulostaa access denied. 31

33 Sudenkuoppia C:ssä ja C++:ssa Kokonaisluku int on kääntäjästä tai käyttöjärjestelmästä riippuen joko 16 tai 32-bittinen. (Näin ei ole esim. Javassa, jossa perustyypit ovat tarkemmin standardisoitu). 16:lla bitillä voidaan ilmaista lukua ja 32:lla bitillä lukua. Mikäli muuttuja ylittää lukualueen, kääntäjä ei ilmoita virhettä, vaan ohjelma antaa todennäköisesti virheellisiä tuloksia. Toisinaan etumerkillisyyskin voi tuottaa yllätyksiä; int onkin oletusarvoisesti tyyppiä signed (etumerkillinen), jolloin se on väliltä (16-bittisillä luvuilla). Esimerkkiohjelma lukualueen ylittämisestä: #include <iostream.h> int main () { signed short int a = ; cout << a << endl; a = a - 1; cout << a << endl; Indeksointi alkaa nollasta. Esimerkin ohjelma kääntyy ilman virheilmoituksia, mutta ajettaessa kirjoittaakin varatun muistin ulkopuolelle (mikä pidemmän päälle sekoittaa kaiken PC:ssä). Taulukon ensimmäinen alkio jää myös alustamatta, ja sen arvo saattaa olla mitä tahansa. #include <iostream.h> int main () { int array[3]; int a; for ( a = 1; a <= 3; a = a + 1 ) { array[a] = 0; == on vertailu ja = on sijoitus(operaattori). Esimerkin ohjelmanpätkä sijoittaa 1:n muuttujaan a, ja if-lause tulkitsee tämän olevan tosi. (C:ssa totuusarvot määritetään siten, että 0 on epätosi ja kaikki muut arvot tosia). if ( a = 1 ) { // tämä suoritetaan aina riippumatta a:sta Huom: char-tyyppisiä merkkijonoja ei voi suoraan verrata == -operaattorilla. 32

34 Näkyvyysalueiden kanssa on myös oltava tarkkana. C:n ja C++:n syntaksi sallii kirjoittaa mitä kryptisimmän näköisiä ohjelmia. Näitä ei ole tässä opetettu, koska lyhenteet voivat olla vaikealukuisia ja myös virhealttiita. Klassinen esimerkki on kaarisulkeiden jättäminen pois if -lauseessa. Esimerkiksi tämä toimii: if ( a == 1 ) cout << jep ;...mutta tämä suorittaa joka kerta sijoituksen a b: if ( a == 1 ) cout << jep ; a = b; 33

35 Esimerkki kirjastofunktioiden käytöstä Näillä ctype.h -kirjaston funktioilla näytetään tässä esimerkin avulla, miten pienissä ja yleisissä ongelmissa kannattaa käyttää kirjastoja. Näin vältytään myös matalan tason koodaukselta ja yleensäkin pyörän uudelleen keksimiseltä. Funktio Tarkistaa onko argumentti Selitys islower pieni kirjain Tests for lowercase character. isupper iso kirjain Tests for uppercase character. isalpha kirjain Classifies an alphabetical character. isdigit numero Tests for decimal-digit character. isalnum kirjain tai numero Tests for an alphanumeric character. iscntrl kontrollikoodi Tests for a control character. Esim. Tarkastellaan, onko merkki C kirjain: #include <iostream> #include <ctype.h> int main() { char c; c = 'C'; if ( isalpha(c) ) { cout << c << is alphabetical" << endl; else { cout << c << is not alphabetical" << endl; 34

36 Liite A: ASCII -taulukko 0 1 ^A 2 ^B 3 ^C 4 ^D 5 ^E 6 ^F 7 ^G 8 ^H 9 ^I 10 ^J 11 ^K 12 ^L 13 ^M 14 ^N 15 ^O 16 ^P 17 ^Q 18 ^R 19 ^S 20 ^T 21 ^U 22 ^V 23 ^W 24 ^X 25 ^Y 26 ^Z 27 ^[ 28 ^\ 29 ^] 30 ^^ 31 ^_ 32 ' ' 33! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * , / : 59 ; 60 < 61 = 62 > 63? 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 { ~ 127 DEL 1 #include <iostream.h> // ASCII table v0.2 2 int main () { // by EP int a = 0; 4 cout << endl; 5 for ( a = 0; a <= 127; a = a + 1 ) { 6 cout << int(a) << " "; 7 if ( a>=0 && a<=31 ) { 8 cout << "^" << char ( a+64 ) ; 9 10 else if ( a==32 ) { 11 cout << "\' \'"; else if ( a==127 ) { 14 cout << "DEL"; else { 17 cout << char (a); cout << "\t"; cout << endl;

37 Liite B: Tyyppien tarkennukset int char float double kokonaisluku merkki desimaaliluku (liukuluku) tarkempi desimaaliluku kuin float short long signed unsigned pienentää lukualuetta suurentaa lukualuetta etumerkilliset luvut ei-negatiiviset luvut Tarkennin short sopii ainoastaan tyyppiin int. char hyväksyy vain tarkentimet signed ja unsigned. Muita rajoituksia ei ole. Tarkentimia voi myös yhdistellä: unsigned long int suurluku; 36

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

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

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

Kääntäjän virheilmoituksia

Kääntäjän virheilmoituksia OHJ-1101 Ohjelmointi 1e 2008-09 1 Kääntäjän virheilmoituksia Kun progvh2 ohjelma käännetään antaa tutg++ seuraavat virheilmoitukset ja varoitukset: proffa> tutg++ progvh2.cc progvh2.cc:29:13: warning:

Lisätiedot

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

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

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

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

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

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

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

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

Ohjelmoinnin perusteet Y Python

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

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

Lisätiedot

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include 15: 16: int main() 17: {

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: { Osa I 2. oppitunti C++-ohjelman osat Ennen kuin menemme yksityiskohtaisemmin sisälle C++-luokkiin, -muuttujiin jne, katsokaamme ensin, millaisista osista C++-ohjelma koostuu. Tämän tunnin aikana opit seuraavat

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

Zeon PDF Driver Trial

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

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

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

Metropolia ammattikorkeakoulu 05.02.2015 TI00AA43-3004: Ohjelmointi Kotitehtävät 3

Metropolia ammattikorkeakoulu 05.02.2015 TI00AA43-3004: Ohjelmointi Kotitehtävät 3 : http://users.metropolia.fi/~pasitr/2014-2015/ti00aa43-3004/kt/03/ratkaisut/ Tehtävä 1. (1 piste) Tee ohjelma K03T01.cpp, jossa ohjelmalle syötetään kokonaisluku. Jos kokonaisluku on positiivinen, niin

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

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

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman

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

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

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

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

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

Muuttujien roolit Kiintoarvo cin >> r;

Muuttujien roolit Kiintoarvo cin >> r; Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,

Lisätiedot

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot. EVTEK Teknillinen ammattikorkeakoulu Ohjelmointi (C) T0004 Syksy 2003 Olli Hämäläinen kurssin sisältö ja tavoitteet työmuodot luennot 1-2/2003 laboratorioharjoitukset 1-2/2003 kotitehtävät, laboratoriokerrat

Lisätiedot

Plagioinnin tunnistaminen lähdekielisistä ohjelmista

Plagioinnin tunnistaminen lähdekielisistä ohjelmista Plagioinnin tunnistaminen lähdekielisistä ohjelmista Plagiointi- ja tutkimusetiikka seminaari 30.09.2003 Kirsti Ala-Mutka TTY/Ohjelmistotekniikka Sisältö Plagiointi ohjelmointikursseilla Tyypillisiä ulkoasumuutoksia

Lisätiedot

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

13 Operaattoreiden ylimäärittelyjä

13 Operaattoreiden ylimäärittelyjä 248 13 C++-kielessä voidaan operaattoreita ylimäärittää. Ylimääriteltävää operaattoria voidaan pitää ikäänkuin metodina, joka esitellään luokan esittelyssä ja määritellään luokan ulkopuolella kuten metoditkin.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

Osoittimet. Mikä on osoitin?

Osoittimet. Mikä on osoitin? Osoittimet 7 Osoittimet On aika siirtyä käsittelemään osoittimia, C++:lle elintärkeätä ominaisuutta. Osoittimet ovat tärkeitä, koska ne luovat perustan muistin dynaamiselle varaukselle ja käytölle. Ne

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

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

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

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

Kielioppia: toisin kuin Javassa

Kielioppia: toisin kuin Javassa Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien

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

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

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

12 Mallit (Templates)

12 Mallit (Templates) 12 Mallit (Templates) Malli on määrittely, jota käyttämällä voidaan luoda samankaltaisten aliohjelmien ja luokkien perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista

Lisätiedot

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle

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

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen

Lisätiedot

T211003 Sovellusohjelmat Matlab osa 4: Skriptit, funktiot ja kontrollirakenteet

T211003 Sovellusohjelmat Matlab osa 4: Skriptit, funktiot ja kontrollirakenteet Ohjelmointi Matlab-komentoja voidaan koota ns. M-tiedostoon. Nimi tulee tiedoston tarkentimesta.m. Matlabilla voidaan ohjelmoida kahdella eri tavalla: Skriptit eli komentojonot eli makrot Funktiot eli

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

Osa. Toimintojen toteuttaminen ohjelmissa vaatii usein haarautumisia ja silmukoita. Tässä luvussa tutustummekin seuraaviin asioihin:

Osa. Toimintojen toteuttaminen ohjelmissa vaatii usein haarautumisia ja silmukoita. Tässä luvussa tutustummekin seuraaviin asioihin: Osa II 8. oppitunti Kehittynyt ohjel- man kulku Toimintojen toteuttaminen ohjelmissa vaatii usein haarautumisia ja silmukoita. Tässä luvussa tutustummekin seuraaviin asioihin: Mitä silmukat ovat ja kuinka

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Java-kielen perusteet

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

12.10.2011. Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle

12.10.2011. Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle (Ei yhtään videota tällä kertaa.) X niin kuin Cross-Platform, Apache, MySql, PHP, Perl Kehitysympäristö EI tuotantokäyttöön Monet tärkeät tietoturva-asetukset ovat oletuksena pois päältä Erittäin nopea

Lisätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100 Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2011 1 / 37 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: KERTAUSTEHTÄVIÄ Tietue Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: struct henkilotiedot char nimi [20]; int ika; char puh [10]; ; Edellä esitetty kuvaus määrittelee

Lisätiedot

Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa

Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa ssa ohjelman käytössä suoritusaikana oleva muisti jakautuu neljään osaan: koodisegmentti datasegmentti pinosegmentti (stack) kasa (heap) ssa ohjelman koodisegmentti sisältää käännetyn ohjelmakoodin sisältö

Lisätiedot

Metodien tekeminen Javalla

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

Ohjelmoinnin perusteet Y Python

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

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto

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

5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma

5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma 5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma Every cloud has a silver line. - englantilainen sananlasku Tässä osiossa tärkeää: yksi- ja moniulotteinen taulukko Sisältö Yleistä Yksiulotteinen

Lisätiedot

MITÄ JAVASCRIPT ON?...3

MITÄ JAVASCRIPT ON?...3 JavaScript MITÄ JAVASCRIPT ON?...3 YLEISTÄ JAVASCRIPTIN SYNTAKSISTA...3 KÄSKYSANAT JA MUUT VARATUT SANAT...3 MUUTTUJIEN, FUNKTIOIDEN JA LUOKKIEN NIMISSÄ...3 HTML-TAGEIHIN VIITTAAVISSA METODINIMISSÄ...3

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

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

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

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

11. oppitunti III. Viittaukset. Osa. Mikä on viittaus?

11. oppitunti III. Viittaukset. Osa. Mikä on viittaus? Osa III 11. oppitunti Viittaukset Kahdessa viime luvussa opit käyttämään osoittimia kohteiden käsittelyyn vapaalla muistialueella sekä viittaamaan noihin kohteisiin epäsuorasti. Tässä luvussa käsiteltävät

Lisätiedot

Fortran 90/95. + sopii erityisesti numeriikkaan:

Fortran 90/95. + sopii erityisesti numeriikkaan: Fortran 90/95 + sopii erityisesti numeriikkaan: + optimoivat kääntäjät tehokas koodi + mukana valmiiksi paljon varusfunktioita + kompleksiluvut + taulukko-operaatiot + operaattorit laajennettavissa myös

Lisätiedot

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

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

4. oppitunti. Ilmaukset ja ohjelmalauseet. Osa

4. oppitunti. Ilmaukset ja ohjelmalauseet. Osa Osa I 4. oppitunti Ilmaukset ja ohjelmalauseet Ohjelma ei todellisuudessa ole mitään muuta kuin joukko komentoja, jotka suoritetaan peräkkäin. Monipuolisuutta ohjelmaan saadaan, kun ohjelmassa haaraudutaan

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2011 1 / 34 Luentopalaute kännykällä käynnissä! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

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

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

Lisätiedot

T Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

T Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010 11. Luokka Opetellaan seuraavaksi, miten omia luokkia kirjoitetaan. Aikaisemmin olikin jo esillä, että luokka on tietorakenne, joka sisältää sekä tiedot (attribuutit) että niitä käsittelevät aliohjelmat

Lisätiedot

Ohjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 27.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 27.1.2010 1 / 37 If-käsky toistokäskyn sisällä def main(): HELLERAJA = 25.0 print "Anna lampotiloja, lopeta -300:lla."

Lisätiedot

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4 Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.

Lisätiedot

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

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 6 Kerta 7. 1. Toteuta Pythonilla seuraava ohjelma: Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 6 Kerta 7 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

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

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

ASCII-taidetta. Intro: Python

ASCII-taidetta. Intro: Python Python 1 ASCII-taidetta All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do.

Lisätiedot

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot Tiedosto yhteenkuuluvien tietojen joukko, joka on tavallisesti talletettu pysyväismuistiin muodostuu tietueista, jotka voivat olla keskenään samanlaisia tai vaihdella tyypiltään tiedostot ovat joko tekstitiedostoja

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

Harjoitus 1 -- Ratkaisut

Harjoitus 1 -- Ratkaisut Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 14.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 14.2.2011 1 / 55 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Valinnat ja päätökset

Valinnat ja päätökset Valinnat ja päätökset 4 Valinnat ja päätökset Päätöksenteko on erittäin tärkeässä asemassa kaikissa ohjelmointikielissä. Jos ohjelman lauseiden suoritusjärjestystä ei voitaisi muuttaa tietojen vertailun

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

TIE 02100 Johdatus ohjelmointiin

TIE 02100 Johdatus ohjelmointiin TIE 02100 Johdatus ohjelmointiin syksy 2015 Kerttu Pollari-Malmi Copyright c Kerttu Pollari-Malmi Johdanto Tämä on opintojaksolla TIE 02100 Johdatus ohjelmointiin käytetty luentomoniste. Moniste on alunperin

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

C-kieli mahdollistaa hyvin tiiviin ja samalla sekavan tavan esittää asioita, kuitenkin hyvän ohjelman tulisi olla mahdollisimman helppolukuinen ja

C-kieli mahdollistaa hyvin tiiviin ja samalla sekavan tavan esittää asioita, kuitenkin hyvän ohjelman tulisi olla mahdollisimman helppolukuinen ja 1. C-kieli yleiskäyttöinen ohjelmointikieli, standardoitu 1990. siirrettävä laiteläheinen pieni ydin, monimutkaiset kokonaisuudet rakennetaan aliohjelmakirjastojen avulla. direktiivit ja esikääntäjien

Lisätiedot