JAVA-OHJELMOINNIN PERUSTEET. Sisältö 1. JAVA OHJELMOINTI LÄHTEITÄ HARJOITUKSET MUUTAMA MALLIRATKAISU...

Koko: px
Aloita esitys sivulta:

Download "JAVA-OHJELMOINNIN PERUSTEET. Sisältö 1. JAVA OHJELMOINTI... 2 2. LÄHTEITÄ... 19 3. HARJOITUKSET... 20 4. MUUTAMA MALLIRATKAISU..."

Transkriptio

1 1 JAVA-OHJELMOINNIN PERUSTEET Sisältö 1. JAVA OHJELMOINTI LÄHTEITÄ HARJOITUKSET MUUTAMA MALLIRATKAISU... 27

2 2 1. JAVA OHJELMOINTI Kurssin tavoite ensimmäinen ohjelmointikurssi Javalla ( 32h ) ohjelmien suunnittelun alkeet Java-kielisen ohjelmoinnin periaatteet Verkosta löytyy tietoa runsaasti ja myös paljon esimerkkejä. Javan omilta sivuilta löytyy erittäin runsaasti asiaan liittyvää dokumenttia, ohjelmia, päivityksiä jne. JAVA YLEISTÄ Helppo käyttää Standardointi: siirrettävyys Ohjelma on käännettävä konekieliseksi ennen kuin sitä voidaan suorittaa. Kääntäminen voidaan toteuttaa eri tavoin. Kääntäjä (compiler) ohjelma, joka saa syötteeksi lähdekoodin (ohjelmoijan kirjoittamaa koodia) ja tuottaa käännöksen tuloksena kohdekoodia, jota jokin cpu-ymmärtää- Kohdekoodi voi olla joko koneen cpu:n ymmärtämää koodia tai esimerkiksi Java-kielen tapauksessa ns. tavukoodia. Tavukoodia ei voi suoraan suorittaa missään prosessorissa vaan tarvitaan erillinen tulkkausohjelma, joka kääntää tavukoodin konekielelle ja suorittaa sen. Ohjelma tekee aina

3 3 sitä mitä sen käsketään tehdä, mutta tämä ei välttämättä ole sama kuin mitä ohjelman halutaan tekevän. Virheet Ohjelmassa voi olla kolmenlaisia virheitä kääntäjä löytää syntaksivirheet, eli virheet, jotka ovat kielen sääntöjen vastaisia jos ohjelmassa on syntaksivirheitä eli kääntäjä tuota suoritettavaa ohjelmaa Virhetilanne voi ilmetä myös ohjelman suorituksenaikana esimerkiksi nollalla jakaminen keskeyttää ohjelman suorituksen ohjelma voi toimia, mutta tuottaa silti vääriä tuloksia; loogiset virheet Lausekielet Lausekielen periaate: algoritmit + tietorakenteet = ohjelmat Algoritmi on yksiselitteinen ja äärellinen sarja toimintaohjeita tehtävän suorittamiseksi,ohjelmointikielestä riippumaton, mekaaninen, toteutettavissa koneellisesti. toimintaohje = lause = käsky

4 4 Algoritmi määrittelee toiminnot, joiden kohteina ovat tiedot esitettynä tietorakenteissa; tietojenkäsittely,kun algoritmit ja tietorakenteet kirjoitetaan ohjelmointikielellä saadaan ohjelma. Toiminnot Yleisesti ottaen kieli tarjoaa perustoiminnot ja välineet monimutkaisempien toimintojen rakentamiseen. Perustoiminnot: sijoituslauseet, aritmeettiset operaatiot, loogiset operaatiot, tekstin luku ja tulostaminen jne. Ohjausrakenteet monimutkaisempien toimintojen määrittämiseksi - peräkkäisyys: lause1; lause2;... lausen; - valinta (haarautuminen): if-then - toisto: while, repeat, for - toiminnan abstrahointi moduulien avulla: kutsutaan funktioiksi, metodeiksi, riippuen käytettävästä ohjelmointikielestä Lauseet suoritetaan peräkkäin yksi kerrallaan, jokainen lause suoritetaan täsmälleen yhden kerran. Suoritusjärjestys on sama kuin kirjoitusjärjestys, viimeisen lauseen päättäminen lopettaa algoritmin Milloin haku päättyy? Ei ole tietoa kuinka monta kertaavalinta pitäisi kirjoittaa. Ratkaisuna toisto-rakenne: esimerkiksi if kyseessä on annettu nimi

5 5 then lue vastaava osoite else tarkista listan seuraava Runko-osa toistetaan kunnes päättymisehto toteutuu. Ongelmaksi tulee toiston päättymisen takaaminen esim. jos unohdetaan ehto listan lopusta Eräs ratkaisu on myös toistorakenne while do esim.aseta suurimmaksi listan ensimmäinen numero while lista ei ole lopussa do tarkista listan seuraava numero N if N > suurin tähän saakka then aseta N suurimmaksi tulosta suurin numero Nyt lopetusehto on toistorakenteen alussa. Taustaa Sun Microsystems tutkimusprojekti 1991 koodinimeltään Green. Kieli kehitetty C/C++ -kielistä James Goslingin johdolla. Alunperin nimi oli Oak, mutta tämän niminen ohjelmointikieli oli jo olemassa -> uudeksi nimeksi Java Kieli julkaistiin virallisesti Toukokuussa 1995 Java on ns. olio-ohjelmointikieli. Java on tulkattava kieli Java-kielelle on asetettu seuraavat tavoitteet: 1. kielen pitäisi olla tutunnäköinen 2. kielen pitäisi olla oliopohjainen

6 6 3. kielen tulisi olla tehokas 4. kieli on siirrettävä 5. kieli on mahdollisimman yksinkertainen Esimerkki ohjelman kehityksestä Ohjelma kirjoitetaan tiedostoon tekstieditorilla. Tuloksena saadaan tekstitiedosto, joka sisältää ohjelman lähdekoodin. ohjelma.java Lähdekoodi Tekstitiedosto muutetaan tietokoneen ymmärtämään muotoon java-kääntäjällä (käytetään eclipse). code) Esimerkkejä verkosta vaikkapa hakusanalla: JAVA ohjelmoinnin perusteet. Ohjelma sisältää Informaatiota käsitteleviä tietoelementtejä; mitä nimiä käytämme muistipaikoista ja minkä tyyppistä tietoa niihin talletetaan; muuttujien määrittely Java-kielen lauseita, jotka vastaavat algoritmin käskyjä tai toimintaohjeita

7 7 Java-ohjelma koostuu yhdestä tai useammasta luokasta. Java-ohjelman alussa kerrotaan importlauseella mitä valmiita Javan luokkakirjastoja ohjelma käyttää (Java API kirjasto). Javan API luokat on eroteltu pakkauksiksi, joihin kuuluvat luokat liittyvät toisiinsa jollakin tavalla. Esim: import java.io.*; /* javan I/O */ import java.awt. Esimerkiksi println ja print metodit ( java.io pakkauksessa) ja ovat osa Java APIa, ne eivät ole Javakielen osia. Molemmat metodit tulostavat informaatiota näytölle, println tulostaa rivivaihdon mutta print ei. java.lang pakkaus otetaan automaattisesti mukaan jokaiseen Javaohjelmaan Näkymättömät välimerkit Välilyönnit, tyhjät rivit ja tabulaattoreita käytetään erottamaan ohjelman sanoja ja symboleja, näitä tulisi käyttää parantamaan ohjelman luettavuutta. Ylimääräisillä välilyönneillä ei ole merkitystä Kommentit Kommentteja käytetään ohjelman tarkoituksen selittämiseen ja ohjelma eri toimintojen kuvaamiseen Javan kommentteja on kahdenlaisia: // tämä kommentti on voimassa vain tämän rivin loppuun /* tämä kommentti on voimassa kunnesvastaan tulee kommentin loppumerkki (voi siis jatkua usealle riville ) */ (kommentin sisällä ei saa olla toista kommenttia) Tietotyypit

8 8 tietotyyppi on joukko arvoja ja operaatiot ko. arvoille, kullakin koneen muistiin talletetulla arvolla on jokin tyyppi Kokonaisluvut konaisluvuille on kahdeksan erilaista muotoa tarvittava muistin määrä erottaa eri kokonaislukutyypit toisistaan Tyyppi Muistitila Min arvo Max arvo Byte 8 bit short 16 bit int 32 bit long 64 bit < -9 x 1018 > 9 x normaalit aritmeettiset operaatiot; +, -, *, / -aritmeettiset operaatiot antavat kokonaislukutuloksen, lisäksi käytössä jakojäännös- operaattori % 3 / 15 = 0, 15 / 3 = 5, 18 / 3 = 5, 4 / 0 tulosta ei ole määritelty Reaaliluvut - normaalit aritmeettiset operaatiot; +, -, *, / 2.718f tai 2.718F -> vakio tyyppiä float 2.718d tai 2.718D -> vakio tyyppiä double Tyyppi Muistitila Min arvo n. Max arvo n. float 32 bit x x 1038 double 64 bit x x Muuttujien määrittely

9 9 Muuttuja on muistielementti, joka tallettaa ohjelman käsittelemää syöttö- ja tulostustietoa sekä välituloksia. Muuttujamäärittely kertoo talletettavan tiedon tyypin ja talletukseen käytettävän muistielementin nimen int vuosi; /* esimerkiksi kuluva vuosi */ char kirjain_1, kirjain_2, kirjain_3; /* kolme kirjainta */ Muuttujien (ja metodien) niminä käytetään tunnuksia, jotka ohjelmoija määrittelee muuttujan nimi voi koostua kirjaimista, numeroista, alaviivoista ja dollarimerkistä ($) -muuttuja nimi ei voi alkaa numerolla - varattua sanaa ei saa käyttää tunnuksena -Isot ja pienet kirjaimet eivät tarkoita samaa; Total ja total ovat kaksi eri tunnusta -tunnusten nimien tulee olla kuvaavia Javan varatut sanat abstaract default goto* operator* synchoronized boolean do if outer* this break double implements package throw byte else import private throws byvalue* extends inner* protected transient case false instanceof public true cast* final int rest* try catch finally interface return var*char float long short void class for native static volatile const* future* new super while continue generic* null switch Suoritettavat lauseet Ohjelman suoritettavat operaatiot (esim. aritmeettiset) 1. käännetään tavukoodiksi 2. ladataan tulkkiohjelmaan 3. tulkkausohjelmaa kääntää tavukoodin konekieliseksi ja suorittaa ohjelman

10 10 Sijoituslause tallettaa muuttujaan laskennan tuloksen (muuttujan entinen sisältö tuhoutuu) km = KM_MAILI * mailit; Yleinen muoto: tulos = lauseke; vasemmalla oleva muuttuja ottaa vastaan lausekkeen tuloksen lauseke Ohjelmoinnissa on mahdollista myös summa = summa + 1; Syöttö- ja tulostusoperaatiot Java I/O perustuu input ja output virtoihin (streams) Kolme valmiiksi määriteltyä standardivirtaa virta käyttötarkoitus oletuslaite System.in lukee syöttövirrasta näppäimistö System.out tulostaa tulostusvirtaan näyttö System.err virheilmoitukset näyttö print ja println tulostavat standarditulostusvirtaan Java API antaa mahdollisuuden luoda monenlaisia streameja erilaisia I/O tapahtumia varten, kun halutaan lukea merkkijonoja muutetaan System.in toisenlaiseksi syöttövirraksi BufferedReader stdin = new BufferdReader (new InputStreamReader (System.in)); luodaan uusi virta nimeltä stdin, josta voidaan lukea merkkijonoja Puskurit - kaikki näppäimistöltä syötetyt merkit talletetaan lukupuskuriin - enterin painallus käynnistää syötetyn datanprosessoinnin - kaikki tulostettava tieto talletetaan väliaikaisesti tulostuspuskuriin

11 11 Esimerkki: ohjelma kyselee lukuja ja kirjoitusta ja tulostaa tiedon // käyttäjä antaa vastauksen kysymyksen perään samalle riville import java.util.scanner; // Viisas ohjelma, AW-2005 public class Viisas { private static Scanner lukija = new Scanner(System.in); public static void main(string[] args) { String syottörivi; int kokonaisluku; double desimaaliluku; System.out.println("Mikä on nimesi?"); syottörivi = lukija.nextline(); System.out.println("Mitä kokonaislukua ajattelet?"); kokonaisluku = lukija.nextint(); System.out.println("Mitä desimaalilukua ajattelet?"); desimaaliluku = lukija.nextdouble(); System.out.print ("Tiedän, että nimesi on "+syottörivi); System.out.println(" ja että ajattelit lukuja "+ kokonaisluku+" ja "+ desimaaliluku+"."); System.out.println("Enkö olekin viisas!"); Ohjelman suoritus voi näyttää vaikkapa seuraavalta: Mikä on nimesi? Arto Mitä kokonaislukua ajattelet? 49 Mitä desimaalilukua ajattelet? 3,14 Tiedän, että nimesi on Arto ja että ajattelit lukuja 49 ja Enkö olekin viisas! Ohjausmerkit Javan tulostuksen ohjausmerkit \t tabulaattori \n rivinsiirto \ lainausmerkit

12 12 \ heittomerkki \\ takakenoviiva takakenoviiva ( \ ) ilmoittaa, että seuraava merkki tulkitaan tulostuksessa eri tavalla kuin normaalisti Peräkkäisyys Java-kielessä. valmiiden Java-luokkien esittely class uudenluokannimi { luokan muuttujien määrittelyt main-metodin aloitus { muuttujien määrittelyt lause 1; lause 2;... lause N; // main-metodin loppu // uudenluokanloppu Peräkkäisyys saavutetaan lohkorakenteella: { lause1;... lausen; Metodit Metodi ryhmittää ohjelmalauseet yhdeksi ohjelmayksiköksi. Metodit aktivoidaan suorittamalla metodin kutsu, joka on tavallinen Java-kielen suoritettava lause metodinnimi ( );

13 13 Kutsutaan samoin kuin esim. println- tai read- metodeja - metodin metodinnimi kutsu aloittaa metodin metodinnimi ohjelmalauseiden suorituksen, kun metodin sisältämät lauseet on suoritettu,palataan takaisin ylemmälle tasolle ja suoritetaanmetodin kutsua seuraava lause lause1; lause2; metodinnimi ( ); mlause1; mlause2; Etuja koodia ei tarvitse toistaa; virheet ja ohjelman koko uudelleen käytettävyys. Metodit välittävät tietoa aliohjelman ja pääohjelman välillä parametrien avulla (argumentti) Java-kielen metodeja voidaan käyttää myös matemaattisten funktioiden tapaan palauttamaan tulos. - toimivat kuten aritmeettiset operaattorit - metodin kutsu voidaan sijoittaa siihen, missä tulos tarvitaan (vrt. kutsu suoritettavana lauseena ) Esimerkiksi metodi sqrt ( java.lang.math -pakkauksessa ), joka laskee neliöjuuren y = sqrt ( x ); jos x on 16.0, niin sqrt ( 16.0) on 4.0 metodin arvo 4.0 sijoitetaan muuttujan y arvoksi Käytettävät valmiit metodit on kuvattu Java-kielen käsikirjoissa. Ohjausrakenteet

14 14 Ohjelmassa voidaan suorittaa vaihtoehtoisia tehtäviä valintarakenteiden avulla. 1. Valinta 2. Toisto if-rakenne sisäkkäiset if-rakenteet switch-rakenne useille vaihtoehdoille while-toistorakenne for-toistorakenne Javan vertailuoperaattorit: = = yhtä kuin! = erisuuri kuin < pienempi kuin <= pienempi tai yhtäsuuri > suurempi kuin >= suurempi tai yhtäsuuri Esimerkiksi: Operaattori Ehto Tulkinta Arvo <= x <= 5 x pien. tai yhtäs. kuin 5 true >= x >= z x suur. tai yhtäs. kuin z false > alkio > MIN alkio suurempi kuin MIN true = = kirjain = = P kirjain yhtäkuin P true! = num! = NUM num erisuuri kuin NUM false if-rakenteen perusmuoto Java-kielessä if ( ika > 19 )

15 15 System.out.println ( Tervetuloa! ); else System.out.println ( Liian nuori!!! ); if -rakenne ja peräkkäisyys Yleinen muoto: if ( ehto ) lause1; else lause2; Sisäkkäisyyttä käyttämällä, edellä olevat lauseet voidaan korvata muilla rakenteilla; esimerkiksi peräkkäisyys (lohko). Esimerkiksi kahden muuttujan x ja y arvon vaihto siten että pienempi arvo talletetaan muuttujaan x if ( x > y ) { temp = x; x = y; y = temp; Peräkkäisyys if-rakenteen sisällä saavutetaan kirjoittamalla suoritettavat lauseet aaltosulkeiden sisään ( tyyli on vapaa, mutta sisennys parantaa ohjelman luettavuutta ). Sisäkkäiset if-rakenteet

16 16 Esimerkiksi Oletetaan kolme kokonaislukumuuttujaa nimeltään Pos, Neg, Nolla, joiden arvoa kasvatetaan yhdellä riippumatta siitä onko muuttujan x arvo suurempi, pienempi tai vastaavasti yhtäsuuri kuin nolla. if ( x > 0 ) Pos = Pos + 1; else if ( x < 0 ) Neg = Neg + 1; else Nolla = Nolla + 1; Sama tehtävä voidaan vaihtoehtoisesti suorittaa peräkkäisellä if-rakenteilla seuraavasti if ( x > 0 ) Pos = Pos + 1; if ( x < 0 ) Neg = Neg + 1; if ( x == 0 ) Nolla = Nolla + 1; Switch - rakenne useille vaihtoehdoille Valintarakenne, jonka avulla ehtolausekkeen arvon perusteella voidaan valita yksi useammasta vaihtoehtoisesta toiminnasta. Yleinen muoto: switch ( ehtolauseke ) { case tunnus1: lauseet1; break; case tunnus2: lauseet2; break;

17 17... case tunnusn; lauseetn; break; default: lauseetd; Ehtolausekkeen arvoa ( joko tyyppiä char tai int ) verrataan ylhäältä lähtien case-rivien tunnuksiin(vakioita!!!) kunnes arvot täsmäävät. Seuraavaksi täsmäävän vaihtoehdon (case) jälkeiset lauseet suoritetaan järjestyksessä ensimmäiseen break-riviinsaakka, jonka kohdalla poistutaan rakenteesta. Jos täsmäävää vaihtoehtoa ei löydy, suoritetaan default vaihtoehdon lauseet (mikäli sellainen on) ja poistutaan rakenteesta. Esimerkki: switch-valintarakenne, joka tulostaa muuttujan vari arvoa vastaavan värin ( P =punainen, S= sininen ja K = keltainen) switch ( vari ) { case P : System.out.println ( Punainen \n ); break; case S : System.out.println ( Sininen \n ); break; cases K : System.out.println ( Keltainen \n ); break; // switch Muista tunnus voi olla vain tyyppiä char tai int, ei reaaliluku eikä merkkijono While-toistorakenne

18 18 Toiston käytön algoritmissa määrää tehtävän luonne, ratkaise tehtävä jossakin erityistapauksessa ja selvitä oliko ongelmanratkaisussa askeleita, joita toistettiin tiedettiinkö etukäteen, kuinka monta kertaa askel suoritettiin mistä tiedettiin, kuinka monta kertaa askel toistettiin Yleinen muoto while ( toistoehto ) lause; Toiminta: Toistoehto testataan ja jos se on tosi, niin runko-osan lause suoritetaan. Runko-osan lause suoritetaan uudelleen niin kauan kuin (while) toistoehto on tosi, kun toistoehto on epätosi, poistutaan silmukasta ja ohjelman suoritus jatkuu while-rakennetta seuraavasta lauseesta. while-rakenteen muunnos do - while do lause; while ( toistoehto ); Runko-osan lause suoritetaan ainakin yhden kerran. Testataan toistoehto ja jos se on tosi, niin runko-osan lause toistetaan. Runko-osan lauseen suoritusta jatketaan, kunnes toistoehto on epätosi. Kun toistoehto on epätosi, poistutaan silmukasta ja ohjelman suoritus jatkuu while- rakennetta seuraavasta lauseesta While ja do-while rakenteet ovat sopivia tilanteisiin kun ei etukäteen tiedetä kuinka monta kertaa toistettava lause suoritetaan.

19 19 For- toistorakenne Silmukan toiminnassa olennaista ohjausmuuttujan rooli ( esimerkeissä ohjausmuuttujia laskuri ja tulo). 1. silmukan ohjausmuuttujan alustus 2. toistoehto 3. ohjausmuuttujan päivitys for-rakenne sisältää ennaltamääritellyt paikat näille komponenteille. Yleinen muoto: for ( alustus; toistoehto; päivitys ) lause; 2. LÄHTEITÄ

20 20 3. HARJOITUKSET Harjoitus 1 Koodin kääntäminen, ohjelman suoritus, tekstin tulostus. /* Kirjoita eclipcellä koodi käännä ja totea toiminta lisää kommentointi, tutki mitä koodi tekee ohjelmassa Lisää ohjelmaan 5 erilaista uutta tekstiriviä ennen "Tassapa..." kommentoi ne ja käytä erilaisia rivinsiirtokomentoja */ import java.io.*; class Hello { public static void main(string[] args){ System.out.println ("\n\n\n\n"); System.out.println (" Tassapa rivi tekstia \n\n "); System.out.println (" hello wolrd \n\n ");

21 21 HARJOITUS 2 Muuttujat, laskut, syöttötiedot Tutki alla olevaa koodi, mieti mitä koodista puuttuu!! Muuta koodi toimivaksi. Kommentoi koodi. Muuta koodia siten, että se laskee double-tyyppisten (desimaali) lukujen summan ja jakolaskun. Luvut voi tietenkin syöttää käyttäjä (X + Y ) / Z. Alkuperäinen toimiva ohjelma talletetaan nimellä Summa ja uusi nimellä Summa2. import java.io.*; class Summa { public static void main (String args [ ]) { int luku1, luku2, summa; / System.out.println (" Anna kokonaisluku: "); luku1 = Integer.parseInt ( stdin.readline( ) ); System.out.println (" Anna toinen kokonaisluku: "); luku2 = Integer.parseInt ( stdin.readline( ) ); summa = luku1 + luku2; / System.out.println (" Lukujen summa on: " ); ;

22 22 Harjoitus 2.1 Laskuja,syöttötietojen antaminen, muuttujat Ohjelma pyyttää käyttäjältä lämpötilan fahrenheit-asteissa ja tulostaa vastaavan celsius-astelukeman. Täydennä koodi toimivaksi, kommentoi, käännä, testaa jne.??????????? class Lampotila {??????????????; //muuttujat tietojen tallettamiseen // pyydetään käyttäjältä lämpötila ja talletetaan lukema // reaalilukumuodossa???????????????????????? celsius = 5.0/9.0 * (fahrenheit ); System.out.println("\n\nReturn lopettaa ohjelman suorituksen"); // //

23 23 Harjoitus 3 If-rakenne ja erillinen metodi Ohjelma pyytää käyttäjältä kaksi reaalilukua ja kertoo kumpi syötetyitä luvuista on suurempi lukujen vertailu tehdään suurempiluvuista-metodilla. Täydennä koodista puuttuvat muuttujat + muu tarvittava. class Suurempi { public static void main ( String [] argv ) {????????????????? // pyydetään käyttäjältä kaksi reaalilukua ja talletetaan ne // muuttujiin lukuyksi ja lukukaksi System.out.println("Anna toinen luku >");???????????????????? System.out.println("Ohjelman suoritus päättyy tähän"); // // metodi tutkii kumpi parametrina saamistaan reaaliluvuista on // suurempi ja palauttaa suuremman luvun arvon reaalilukuna // metodin kutsujalle, joka tässä tapauksessa on main-metodi public static double suurempiluvuista( double l1, double l2) {???????????????????? // tutkitaan kumpi luvista l1, l2 on suurempi if( l1 > l2 ) { lopputulos = l1;

24 24 else { lopputulos = l2; // palautetaan lopputuloksen sisältö kutsujalle ( = main ) return?????????? // // Harjoitus 3.1 Case-rakenne, if-rakenne Rakenna ohjelma, joka kysyy oppilaan saaman tenttituloksen. Pistemäärä annetaan ja sen jälkeen ohjelma antaa oppilaan kokeesta saaman arvosanan (1 5). Täydennä alla olevaa ohjelmaa, siten että se toteuttaa yllä olevat tehtävät. Kommentoi jne.! Testaa..! Tee valmiiksi...!!! import java.io.*; class TentinTulos { public static void main (String args []) { xxxxxxxxxx System.out.print (" Anna kokeen pistemäärä >"); // onko koepisteet oikealla välillä (0-24)? if ((koepisteet >=0 ) &&...??????? )) {

25 25 switch ( koepisteet ) { case 11: case 12: System.out.println (" 1 "); break; xxxxxxxxx default:?????? break; // // else { // annetaan virheilmoitus koska..?????? System.out.println (" Pisteiden tulee olla välillä 0 ja 24!!!"); // // // Harjoitus 4 WHILE-silmukka Suunnittele ja toteuta ohjelma, jolla lasketaan käyttäjän antamien positiivisten kokonaislukujen summaa. Ohjelma laskee summaa, kunnes käyttäjä antaa tietyn luvun lopet-taakseen ohjelman. Lopetuskomennon muoto; final static int LOPETUS = -99;

26 26 Harjoitus 5 Taulukot (syöttö ja tulostus), for-silmukka Tutki allaolevaa koodia, lisää puuttuva koodi. Muuta taulukko lopuksi siten, tulostaa luvut 100 Ja 200väliltä. Kommentoi koodi. int[] luku = new int[101]; // luetaan 100 lukua: for (int i=1; i<=100; ++i) { System.out.println("Anna luku "+i); luku[i] = lukija.nextint(); // tulostetaan luvut käänteisessä järjestyksessä: System.out.println("Luvut lopusta alkuun:"); for (int i=100; i>=1; --i) System.out.println(luku[i]) Harjoitustyö Laskuja,syöttötietojen antaminen, muuttujat ja tulostus Suunnittele ja toteuta ohjelma, joka laskee neljän käyttäjältä pyydetyn desimaaliluvun keskiarvon, summan tai kertoo luvut. Itse laskeminen toteutetaan erillisellä metodilla. Aluksi ohjelma kertoo mitä käyttäjän on tehtävä (käyttöliittymä, josta valitaan haluttu toiminto). Lopputuloksena näytetään käyttäjälle hänen syöttämät luvut ja niiden antama tulos.

27 27 4. MUUTAMA MALLIRATKAISU public class HelloWorld { public static void main( String [] args ){ System.out.println ("\n\n\n\n");// neljä tyhjää riviä System.out.println (" Tassapa rivi tekstia \n\n "); System.out.println (" Tassapa rivi tekstia \n\n "); System.out.println (" Paina ENTER, niin paaset takaisin." ); System.out.println(" Ohjelman suoritus loppuu..."); System.out.println("Hello world!"); import java.util.scanner; public class Summa { private static Scanner lukija = new Scanner(System.in); public static void main(string[] args) { int luku1,luku2,summa; // double desimaaliluku; System.out.println("Anna ensimmäinen kokonaisluku; "); luku1 = lukija.nextint(); System.out.println("Anna toimem kokonaisluku;"); luku2 = lukija.nextint(); summa=luku1+luku2; System.out.println("lukujen summa on " +summa);

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

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

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

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

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

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

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

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

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

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

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Toistorakenne (while, do-while, for) 1 While- lause while-lauseen rakenne on seuraava: while (ehtolauseke) lause Kun ehtolausekkeen arvo on totta, lause suoritetaan. Lause suoritetaan

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

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

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

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

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

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

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

12. Näppäimistöltä lukeminen 12.1

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

Lisätiedot

Ohjelmoinnin perusteet, syksy 2006

Ohjelmoinnin perusteet, syksy 2006 Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen

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

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

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

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

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

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

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

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if 3 Lauseet Lue kirjasta s. 54-84 Tämän osan sisältö Ehdollinen lause if Looginen lauseke vertailut AND-operaattori &&, & OR-operaattori, NOT-operaattori! Valintalause switch Toistolauseet while for do while

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

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

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

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

812341A Olio-ohjelmointi, 2016. Olio-ohjelmoinnin peruskäsitteet ja Java-kieli

812341A Olio-ohjelmointi, 2016. Olio-ohjelmoinnin peruskäsitteet ja Java-kieli 812341A Olio-ohjelmointi, 2016 Olio-ohjelmoinnin peruskäsitteet ja Java-kieli Sisältö 1. Java-kieli 2. Luokka 3. Luokkakaaviot 4. Lisää Javaa Javalla 2 Java-kieli n Sun Microsystems tutkimusprojekti 1991

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

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään

Lisätiedot

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai ) Tehtävä do while + Viikko 1 Tehtävä 27. Salasana (MOOC) Viikko 1 Tehtävä 28. Lämpötilat (MOOC) Tehdään ohjelma, joka kysyy käyttäjältä lukua. Luku kerrotaan aina seuraavalla käyttäjän antamalla luvulla

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

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

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

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

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

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. 1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).

Lisätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 1 / 2009 syksy Tentti / 18.12 Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN

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

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi

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

Ohjelmoinnin perusteet, kurssikoe

Ohjelmoinnin perusteet, kurssikoe Ohjelmoinnin perusteet, kurssikoe 18.6.2014 Kirjoita jokaiseen konseptiin kurssin nimi, kokeen päivämäärä, nimi, TMC-tunnus ja opiskelijanumero tai henkilötunnus. Vastaukset palautetaan tehtäväkohtaisiin

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointiharjoituksia Arduino-ympäristössä Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet

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

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

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

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

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

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

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

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

// Tulostetaan double-tyyppiseen muuttujaan hinta tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf(%.1f euros. Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään

Lisätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (ArrayList-luokka) Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen

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

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

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ältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 8. kesäkuuta 2018 Yleistä Tentti 1 meni pistekeskiarvon (11.2) perusteella välttävästi. Omasta tehtäväpaperista saa kopion

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

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

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

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

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

Harjoitus 5 (viikko 48)

Harjoitus 5 (viikko 48) Moni tämän harjoituksen tehtävistä liittyy joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Harjoitustyö edistyy sitä paremmin, mitä enemmän tehtäviä ratkaiset. Mikäli tehtävissä on jotain

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

Taulukoiden käsittely Javalla

Taulukoiden käsittely Javalla 1 Taulukoiden käsittely Javalla Mikä taulukko on? Taulukon syntaksi Merkkijonotaulukko Lukutaulukko Taulukon kopiointi 1 Mikä taulukko on? Taulukko on rakenne, minne saadaan talteen usea saman tyyppinen

Lisätiedot

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

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

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

17. Javan omat luokat 17.1

17. Javan omat luokat 17.1 17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)

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

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 26. Tiedostot 26.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja

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

Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä.

Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä. Tehtävä 1. Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä. #include /* mm. I/O-funktiot */ #include /* mm. EXIT_SUCCESS */ /*main-funktio,

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

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

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

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

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

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. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

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

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöteja tulostusvirtojen avulla. Tiedostoja voidaan

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

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

20. Javan omat luokat 20.1

20. Javan omat luokat 20.1 20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)

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