Kielioppia: toisin kuin Javassa



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

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

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

Java-kielen perusteet

Ohjelmointiharjoituksia Arduino-ympäristössä

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

17. Javan omat luokat 17.1

Ohjelmoinnin perusteet Y Python

Ehto- ja toistolauseet

tietueet eri tyyppisiä tietoja saman muuttujan arvoiksi

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

17. Javan omat luokat 17.1

Java-kielen perusteita

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

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Java-kielen perusteet

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Ohjelmoinnin perusteet Y Python

7. Näytölle tulostaminen 7.1

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

ITKP102 Ohjelmointi 1 (6 op)

15. Ohjelmoinnin tekniikkaa 15.1

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

12 Mallit (Templates)

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit:

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005

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

abba 1. Perusrakenteita

Tietueet. Tietueiden määrittely

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

6. Muuttujat ja Java 6.1

15. Ohjelmoinnin tekniikkaa 15.1

11. Javan valintarakenteet 11.1

13. Loogiset operaatiot 13.1

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

6. Muuttujat ja Java 6.1

Ohjelmoinnin perusteet Y Python

Osoitin ja viittaus C++:ssa

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

TAMPEREEN TEKNILLINEN YLIOPISTO

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

Java-kielen perusteet

Muuttujat ja kontrolli. Ville Sundberg

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

Java kahdessa tunnissa. Jyry Suvilehto

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

1. Omat operaatiot 1.1

Tutoriaaliläsnäoloista

Fortran 90/95. + sopii erityisesti numeriikkaan:

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Tietotyypit ja operaattorit

Ohjelmoinnin perusteet Y Python

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

end; end else begin if aani=true then begin sound(247); delay(100); sound(220); delay(200); nosound; end; end;

2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma muuttaa parametrejaan tai globaaleja muuttujia, tulostaa jotakin jne.

Harjoitus 5 (viikko 48)

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

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

Ohjelmoinnin perusteet Y Python

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

Ehto- ja toistolauseet

Geneeriset luokat. C++ - perusteet Java-osaajille luento 6/7: Template, tyyppi-informaatio, nimiavaruudet. Geneerisen luokan käyttö.

Ohjelmoinnin perusteet Y Python

05/04/2004. Digitaalisen median tekniikat, k2004 HY/TKTL, javascript_1. Harri Laine 1. JavaScript

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

Digitaalisen median tekniikat JavaScript

Digitaalisen median tekniikat JavaScript Harri Laine 1

Ohjelmoinnin peruskurssien laaja oppimäärä

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)

T Sovellusohjelmat Matlab osa 4: Skriptit, funktiot ja kontrollirakenteet

Johdatus f90/95 ohjelmointiin. H, R & R luvut 1-3

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

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

5/20: Algoritmirakenteita III

Ohjelmoinnin perusteet Y Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python

Luennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö ja tulostu

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

TAMPEREEN TEKNILLINEN YLIOPISTO

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

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

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

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

Harjoitustyö: virtuaalikone

Olio-ohjelmointi Syntaksikokoelma

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

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

Ohjelmoinnin perusteet Y Python

13. Loogiset operaatiot 13.1

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

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

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

ITKP102 Ohjelmointi 1 (6 op)

16. Ohjelmoinnin tekniikkaa 16.1

Transkriptio:

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 kirjainten välillä ISO on sama kuin iso tai iso Merkkijonovakiot määritellään yksinkertaisten lainausmerkkien sisällä esim. vakio Merkkivakio on yhden merkin mittainen merkkijono esim. 'a' Sijoitusoperaattori := Yhtäsuuruus = Erisuuruus <> Ei-operaattori not Begin-end korvaa {} Kommentointi { }, // tai (* *) 1 2 3 Delphi ohjelmien rakenteesta Ohjelma koostuu lähdekoodia sisältävistä käännösyksiköistä (units), jotka ovat kukin omassa tiedostossaan Käännösyksiköt mahdollistavat suurien ohjelmien jakamisen pienempiin moduuleihin, joita voidaan editoida yksitellen 4 Jokainen ohjelma koostuu yhdestä pääohjelmasta, joka sisältyy projektitiedostoon (.dpr) yhdestä tai useammasta käännösyksiköstä (*.pas) Jokaista lomaketta (form) kohti on olemassa yksi käännösyksikkö Ohjelmaansa voi lisätä käännösyksiköitä, jotka eivät liity mihinkään lomakkeeseen ohjelmalogiikka tulisi sijoittaa tällaisiin yksiköihin 5 Pääohjelman rakenne program Nimi; //ohjelman nimi //mahdollinen uses-lohko, muuttujien esittelyt //sekä mahdolliset parametrit kääntäjälle //pääohjelma alkaa //ohjelmakoodi end. //pääohjelma loppuu (huomaa piste) 6

Pääohjelma esim. (konsoli) Pääohjelman esim. (GUI) Käännösyksikön rakenne program Nimi; //ohjelman nimi program Salakirjoitus; //ohjelman nimi unit Nimi; //yksikön nimi {$APPTYPE CONSOLE} //parametri kääntäjälle uses SysUtils; //tarvittaviin yksiköihin viittaukset var MJono: String; //muuttujien esittely //pääohjelma alkaa MJono := 'Hello world!'; WriteLn(Mjono); end. //pääohjelma loppuu 7 uses //tarvittaviin yksiköihin viittaukset Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.RES} //parametri kääntäjälle //pääohjelma alkaa Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. //pääohjelma loppuu 8 interface //esittelyosa //Muiden yksiköiden käyttöön tarjottavien //vakioiden, muuttujien, tyyppien, proseduurien ja //funktioiden esittelyt. Myös uses-lohko. 9 implementation //toteutusosa //Interface-lohkossa esiteltyjen proseduurien ja //funktioiden toteutukset eli ohjelmakoodi. //Lisäksi tässä osassa voi olla yksikön omaan //käyttöön tarkoitettujen vakioiden, tyyppien, //muuttujien, proseduurien ja funktioiden //esittelyt. end. //yksikkö loppuu Muuttujat Perustietotyypit Integer: kokonaislukutyyppi 32-bit longint ( 2147483648.. 2147483647) Char: merkkityyppi, voi sisältää yhden merkin Boolean: totuusarvo, true tai false Real: reaalilukutyyppi eri versioita String: merkkijonotyyppi eri versioita Muuttujien esittely var-lohkossa Var-lohko voi esiintyä yksikkötasolla (esim. interface-osassa) paikallisella tasolla proseduurin tai funktion var-lohkossa 10 11 12

Tyypit Uudet tyypit määritellään type-lohkossa Delphin valmiit tyyppinimet alkavat T-kirjaimella, samaa tapaa voi käyttää omassa nimeämisessäkin type TMyString = String; var S: TMyString; S := 'Halloota mualima!' Lueteltu tyyppi (enumerated type) Esim. lueteltu tyyppi TKorttiMaa, jonka mahdollisia arvoja ovat hertta, ruutu, risti ja pata type TKorttiMaa = (hertta, ruutu, risti, pata); var maa: TKorttiMaa; maa := ruutu; maa := succ(maa); //seuraava listan mukainen arvo if (maa = risti) then Tietueet Kokoelma toisiinsa liittyviä tietoja, jotka on varastoitu yhteen tietorakenteeseen Esitellään record-avainsanan kanssa typelohkossa type Tietuetyypinnimi = record kenttä1: tietotyyppi; kenttä2: tietotyyppi; kenttän: tietotyyppi; 13 14 15 program tietueohj; type Henkilotiedot = record Nimi : String; Osoite : String; Ika : Integer; var Tietue : Henkilotiedot; Tietue.Nimi := 'Matti'; Tietue.Ika := 55; end. 16 Tyyppikonversiot IntToStr: kokonaisluku merkkijono StrToInt: merkkijono kokonaisluku CurrToStr: valuutta merkkijono StrToCurr: merkkijono valuutta TimeToStr: DateTime merkkijono StrToDate: merkkijono DateTime FloatToStr: liukuluku merkkijono StrToFloat: merkkijono liukuluku Int: liukuluku kokonaisluku Round: liukuluku kokonaisluku (pyöristys) Chr: kokonaisluku (ASCII-koodi) Char 17 Ord: alkio järjestysnro Ord('A') -> 65 Chr(65) -> 'A' Ord(risti) -> 3 Esimerkki tyyppikonversiosta: //Merkkijonon muunnos kokonaisluvuksi //laskutoimitusta varten luku := StrToInt(Edit1.text); luku := luku + 5; Label1.caption := IntToStr(luku); 18

Vakiot Arvo määrätään kerran ja sitä ei sen jälkeen muuteta Määrittely tapahtuu const-lohkossa const OletusIka = 20; Vakion esittelyssä käytetään yhtäsuuruusmerkkiä if-lause Valintalauseet if ehtolause then lause else lause; if (luku < 4 and luku > 2) then Edit1.text := 'Luku on kolme'; luku := 0; end //Huom! Ei puolipistettä, jos else-lause else //ei pakollinen osa Edit1.text := 'Luku on jotain muuta'; case-lause case lauseke of arvovaihtoehto1: lause; arvovaihtoehto2: lause;.. arvovaihtoehton: lause; else lause; case Kluku1 of //lausekkeen oltava ordinaali 0: Edit1.text := 'Nolla'; 1,2: Edit1.text := 'Yksi tai kaksi'; 3..6: Edit1.text := 'Kolmesta kuuteen'; else Edit1.text := 'Jokin muu'; //ei pakollinen 19 20 21 Toistolauseet repeat until, while ja for repeat lause until ehtolause while ehto do lause for indeksi:=alaraja to yläraja do lause for indeksi:=yläraja downto alaraja do lause 22 vastaus := 0; repeat vastaus := vastaus + 1; until vastaus > 10; while vastaus <= 20 do vastaus := vastaus + 2; vastaus := vastaus - 1; for i:=1 to 10 do vastaus := vastaus*i; 23 Aliohjelmat Aliohjelmatyyppejä ovat proseduurit (eivät palauta mitään) funktiot (palauttavat arvon) Parametrit erotetaan puolipisteellä (;) peräkkäiset samantyyppiset vaihtoehtoisesti pilkulla (a,b,c: tyyppi) Proseduurit Kun parametrin nimen edessä var-sana, ns. muuttujaparametri const-sana, parametrin arvoa ei voi muuttaa Proseduurista poistuminen kesken: exit; 24

procedure testi(luku1: Integer; var luku2: Integer; const luku3: Integer); luku1 := luku1 + 50; luku2 := luku2 + 50; //muuttaa kutsussa käytetyn //muuttujan arvoa //luku3 := luku3 + 50; //ei mene kääntäjästä läpi //pääohjelma //Kluku1, Kluku2, Kluku3 = 10 testi(kluku1, Kluku2, Kluku3) //Kluku1: 10, Kluku2: 60, Kluku3: 10 end. Funktiot Arvo palautetaan sijoittamalla se funktion nimeen tai result-muuttujaan, sijoitus ei lopeta funktion suorittamista (Javan return-kutsu) Parametrit kuten proseduureissa function testi2(luku1: Integer) : Integer; result := luku1 * 5; Proseduurin tai funktion ylikuormitus Sama nimi, mutta eri parametrit ja/tai eri tyyppinen palautusarvo procedure Store(X: Longint); overload; procedure Store(X: Shortint); overload; function Divide(X, Y: Real): Real; overload; function Divide(X, Y: Integer): Integer; overload; 25 Edit1.text := IntToStr(testi2(5)); 26 27 Poikkeuksien hallinta try.. finally suorittaa try-osan ja riippumatta kuinka sen suoritus päättyy, suoritetaan finally-osa try.. except suorittaa try-osan ja poikkeuksien sattuessa except-osan procedure TForm1.Button1Click(Sender : TObject); var i : Integer; try i := StrToInt(Edit1.Text); except on E:exception do ShowMessage('Virhe: '+E.message); 28 29