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



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

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

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

Ohjelmoinnin perusteet Y Python

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

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

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

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

Tutoriaaliläsnäoloista

ITKP102 Ohjelmointi 1 (6 op)

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

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

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

12. Javan toistorakenteet 12.1

13. Loogiset operaatiot 13.1

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

Ohjelmoinnin perusteet Y Python

12. Javan toistorakenteet 12.1

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

Silloinen ohjelma koostui rivinumeroiduista komennoista, jotka ohjelma suoritti peräjälkeen

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,

11. Javan toistorakenteet 11.1

Java-kielen perusteet

Ohjelmoinnin peruskurssi Y1

Ehto- ja toistolauseet

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Zeon PDF Driver Trial

Ohjelmoinnin perusteet Y Python

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

Luento 5. Timo Savola. 28. huhtikuuta 2006

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

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

ITKP102 Ohjelmointi 1 (6 op)

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

Python-ohjelmointi Harjoitus 5

Ohjelmoinnin perusteet Y Python

Java-kielen perusteita

Tietotyypit ja operaattorit

Osoitin ja viittaus C++:ssa

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

Harjoitustyö: virtuaalikone

Fortran 90/95. + sopii erityisesti numeriikkaan:

Kielioppia: toisin kuin Javassa

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

811120P Diskreetit rakenteet

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

13. Loogiset operaatiot 13.1

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

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

811120P Diskreetit rakenteet

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

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

Ohjelmoinnin perusteet Y Python

Testaa taitosi Piirrä yksikköympyrään kaksi erisuurta kulmaa, joiden a) sini on 0,75 b) kosini on

Ohjelmoinnin peruskurssi Y1

Johdatus Ohjelmointiin

Ohjelmoinnin peruskurssi Y1

ADA. Ohjelmointikieli. Ryhmä 5 Henna Olli, Päivi Hietanen

Ohjelmointiharjoituksia Arduino-ympäristössä

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

Algoritmit 1. Luento 3 Ti Timo Männikkö

UML -mallinnus TILAKAAVIO

Ohjelmoinnin perusteet Y Python

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

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

Ohjelmoinnin perusteet Y Python

16. Ohjelmoinnin tekniikkaa 16.1

Ohjelmoinnin peruskurssi Y1

815338A Ohjelmointikielten periaatteet

Ohjelmoinnin perusteet Y Python

Ohjelmointityökalu Scratch

16. Ohjelmoinnin tekniikkaa 16.1

Harjoitus 3 -- Ratkaisut

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

Ohjelmoinnin peruskurssi Y1

Makrojen mystinen maailma lyhyt oppimäärä

2 Konekieli, aliohjelmat, keskeytykset

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

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

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

5/20: Algoritmirakenteita III

Ohjelmointi 1 C#, kevät 2014, 2. uusintatentti NIMI:

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Java-kielen perusteita

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

7. Näytölle tulostaminen 7.1

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin peruskurssi Y1

Palautetta viime luennosta

Transkriptio:

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 tietokoneohjelman piirteitä Pääohjelman seuraamisen lisäksi ja rinnalle tietokoneohjelmiin ja myös automaatioon on otettu käyttöön moniajo ja keskeytysmahdollisuudet. Moniajo tarkoittaa useaa näennäisesti yhtä aikaa pyörivää ohjelmaa ja keskeytykset havahtumista palvelemaan pyydettäessä eli yllättävää nopeasti välissä suoritettavaa aliohjelmaa, kun esimerkiksi klikataan hiirellä jotakin. Windows-ympäristöön ohjelmointi sisältää luonnostaan keskeytystyyppisiä tapahtumia, olioiden klikkauksia. Keskeytykset aiheuttavat perinteisesti ohjelmoituja tapahtumia tai tietokoneen käyttöjärjestelmätason tapahtumia. Mikrokontrollereilla keskeytyksiä käytetään mm. virransäästötilaan siirtymiseen ja siitä palautumiseen, tiedonsiirtoon havahtumiseen jne. Riippumatta ohjelmointikielistä ja toimintatavasta ohjelmien kirjoitusasu vaihtelee, mutta piirteet säilyvät Ohjelmarakenne, jota seurataan rivi riviltä ensin c-koodina: main() /*c-ohjelmaa*/ pi=3.1416; kulma=30*pi/180; ypaikka=(tan(kulma))*xpaikka; xpaikka=xpaikka+10; /* suoritettavan lauseen perässä oli aina ; */

'basic-ohjelmaa: pi=3.1416 kulma=30*pi/180 ypaikka=(tan(kulma))*xpaikka xpaikka=xpaikka+10 ohjelman sisällä on funktiokutsuja ja sijoitus- ja ehtolauseita sijoituslauseissa muuttujalle sijoitetaan uusi arvo sijoituslauseessa lasketaan = merkin oiken puolen arvo ja tehdään siellä mahdollisesti funktiokutsuja yms operaatioita lopputulos sijoitetaan = merkin vasemmalla puolella olevan muuttujan arvoksi muuttujan tyypillä, kokonaisluku, liukuluku, merkki, merkkijono on vaikutusta lopputulokseen sijoituslause mahdollistaa matemaattisesti järjettömänkin lausekkeen xpaikka=xpaikka+10: Jotta sijoituslause tai funktiokutsu tuottaisi järjellisen tuloksen siinä käytettävillä muuttujilla ja funktioiden parametreilla pitää olla järjellinen alkuarvo ja vielä oikeaa muuttujatyyppiä. funktiokutsut tarkoittavat sitä, että itse asiassa suoritetaan peni aliohjelma, funktiokutsussa määriteltyjen parametrien avulla ja palautetaan aliohjelmassa määritelty arvo esimerkiksi tan(kulma) palauttaa radiaaneina esitetyn kulman tangentin arvon, joka on tyypiltään liukuluku.

ohjelman sisällä on tyypillisesti kolmenlaisia ohjausrakenteita: if...(end if) while...(wend) (Joskus sen kirjoitusasuna käytetään myös do ) for...(next) if-ehdon rajaama ohjelma-alue toteutetaan, jos ehto toteutuu, muuten se ohitetaan while-alueella pysytään, niin kauan kuin ehto pysyy totena, kun sinne kerran on päästy vaarana on jumiin jääminen for-luuppia suoritetaan määritelty toistomäärä if (askeleita<100) /*ollaan c-kiihdytysrampissa*/ askelviive=0.01; if askeleita<100 then 'ollaan basic-kiihdytysrampissa askelviive=0.01 end if Sulautetuissa järjestelmissä kierretään tahallaan päättymätöntä luuppia while(1) /* koko ohjelma on tässä välissä */

askeleita=0; while askeleita<(kohde-hidastusmatka) kun tänne on jouduttu, tätä basic ohjelma-aluetta kierretään alusta loppuun niin kauan kuin ehto on tosi ohjelmassa pitää huolehtia siitä, että ehdossa olevien muuttujien arvo päivittyy, jotta päästään ulos askeleita=askeleita+1 wend jne muuta ohjelmaa /* for - luuppia kierretään määritelty määrä, sitten siitä poistutaan ja jatketaan ohjelmassa eteenpäin tässä lasketaan luvun kertoma, aluksi c:llä*/ kertoma=1; luku=10; for(i=1;i<=luku;i++) /*siinä meni alkuarvo, ehto, jolla pysytään tässä luupissa ja mitä tehdään joka kierroksella, eli kasvatetaan muuttujaa yhdellä for-luuppi siis kierretään peräperää erilaisilla muuttujan arvoilla */ kertoma=kertoma*i; /* tätä ohjelmaa voi olla pitkästikin */ 'ja sama basicilla kertoma=1 luku=10 for i= 1 to luku kertoma=kertoma*i

' tätä ohjelmaa voi olla pitkästikin next i print kertoma C-kielessä on alun alkaen vierastettu hyppykäskyjä, pyritty hoitamaan kaikki ehtolauseilla ja funktiokutsuilla, mutta Basicin perusrakenteeseen ne kuuluvat, vaikkakin niiden käyttöä kannattaa yleensä välttää. Vuokaaviona suunnittelu suorastaan yllyttää käyttämään hyppykäskyjä ja useiden automaatiolaitteiden ohjelmointikäskyistä löytyy jonkinlainen ehdollinen tai pakotettu JUMP, JMP tai GOTO, hyppy toiseen kohtaan ohjelmassa. 'basicin kertomaluuppi toteutettuna goto-käskyllä i=0 kertoma=1 luku=10 jatka: i=i+1 kertoma=kertoma*i if i<luku then goto jatka print kertoma