Tietokoneohjelman anatomia Mikä on tietokoneohjelma ja tietokonekieli
|
|
- Simo Niemi
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 Tietokoneohjelman anatomia Mikä on tietokoneohjelma ja tietokonekieli PUNOMO NETWORKS OY pva Nothing is particularly hard if you devide it into small jobs. - Henry Ford Tietokone tunnetaan, sehän on näyttö, hiiri ja näppäimistö, mutta mikä on tietokoneohjelma? Tietokone ei tiedä yhtään mitään, eikä se pysty ajattelemaan samalla lailla kuin ihminen. Ihminen osaa tulkita hyvinkin monimutkaisia asioita tai päätellä kiroitusvihreestä huolimatta vaikkapa kirjeensaajan oikean nimen ja osoitteen. Tietokone ei tähän pysty. Se pystyy tulkitsemaan vain numeroita ja niistäkin vain ykkösiä ja nollia. Tästä johtuen tietokoneen ns. tietojen käsittely on vain hyvin yksinkertaista laskentaa ja loogista päättelyä. Mutta kun se tekee sitä niin nopesti. Siinä on se juju. Tiedon käsittelyn idea Käsiteltävä tieto tuodaan tietokoneeseen joka näppäimistöltä, ulkoisilta laitteilta tai tietoverkosta. Tieto työstetään tietokoneen mikroprosessorissa, välitulokset talletetaan datamuistiin. Tieto työstetään ohjelmamuistista saatujen ohjelman ohjeiden (käskyjen) mukaan. Tiedon työstämisen tulokset viedään näyttöruudulle, tulostetaan paperille, talletetaan ulkoiselle laitteelle, työnnetään tietoverkon kautta palvelintietokoneelle tai pannaan ohjaamaan jotain ulkoista laitetta. Mikä on tietokoneohjelma? Tietokoneohjelma on toimintaohje tietokoneelle. Kone tekee kaiken sen - ja vain sen - mitä ohjelmoija ohjelmassa määrittää. Ohjelma koostuu peräkkäisistä komennoista eli käskyistä. Käskyt on tallennettu ohjelmamuistiin, josta ne haetaan yksi kerrallaan ja viedään mikroprosessorin (CPU) käskynkäsittely-yksikköön, jossa ne tulkitaan ja tehdään käskyn määräämä pieni, hyvin yksinkertainen toiminto. Riittävän paljon erilaisia pieniä toimintoja, hyvin, hyvin nopeaan tahtiin peräjälkeen suoritettuna muodostaa ajettavan ohjelman.
2 Ohjelma: - sellaisia peräkkäisiä binäärilukuja (ykkösiä ja nollia) ohjelmamuistissa, jotka CPU osaa tulkita transistorien ohjausjännitteiksi. Tietokone tekee kaikkea kivaa ohjelman ohjaamana. Tästä seuraa, että tulevaisuudessa tarvitaan lisää ohjelmoinnin osaajia. Minimi on se, että jokaisen kansalaisen on ymmärrettävä, ainakin jollain tasolla, tuon tietokoneistetun yhteiskunnan toiminta. Tietokoneohjelmia kirjoitetaan ns tietokonekielillä, joita on monenlaisia. Mitäs sitten on ohjelmointi, entä ohjelmointikieli? Miten niitä opitaan? Tarkoitus on saada tietokone tekemään asioita, joista on hyötyä käyttäjälle. Kyseessä voi olla tekstin oikoluku, lehtien tai sähköpostin selaaminen tai pelien pelaaminen tai kodin tekniikan ohjaus ja valvonta, teollisuuden koneiden ja laitteiden ohjaus ja valvonta, tms. Jokainen näistä on vaatinut ohjelmointia. Ohjelmointi Kun ohjelmointia opetetaan/opitaan, se on tehtävä ympäristössä jossa oppilaalle syntyy halu oppia. Siksi ohjelmointiin on käytettävä oikeita ohjelmointikieliä, ei mitään leikkimistä. Ja tottakai työkaluohjelmien on oltava helppokäyttöisiä ja tehokkaita. Koodattavan ohjelman tulee heti alkutoimien jälkeen (muutama oppitunti?) tehdä jotain mielenkiintoista, näkyvää, kuten vilkuttaa LED-lamppua, soittaa summeria tai pyörittää pientä sähkömoottoria. Myöhemmin laite-internettiä. Ensimmäisellä tunnilla toki koodataan perinteinen Hello World. Ohjelmaa suoritetaan käskyrivi kerrallaan ja muuttujiin (muistipaikkoihin) sijoitellaan arvoja, arvoilla suoritetaan laskentaa, tulosten perusteella tehdään vertailuja, valintoja, ohjataan jotain tai tehdään jotain muuta tärkeää. Nämä toimet ovat periaatteessa samoja kaikessa ohjelmoinnissa, eli näin opitut taidot ovat yleishyödyllisiä. Nämä taidot voi opetella melkein millä kielellä tahansa. Järkevintä on aloittaa ohjelmoinnin opiskelu helpoimmasta päästä. Ylläolevasta seuraa se, että ohjelmoinnin opetus pitää järjestää perusopintojen jälkeen laiteläheisesti. Opittavalla koodilla ohjataan ja valvotaan tietokoneeseen liitettyjä antureita ja toimilaitteita. Näin opitaan ajattelemaan käytännön läheisesti ja älykkyyttä sisältävien laitteiden toiminnan hahmottaminen ja ymmärtäminen on helpompaa. Ohjelmointi ei välttämättä ole monimutkaista. Ongelmat, joita tietotekniikalla ratkaistaan, ne ovat monimutkaisia. Ohjelmointityö on loogista hommaa ja työkalut (ohjelmointikielet ja koodi-editorit) selväpiirteisiä ja kohtuudella haltuunotettavissa. Silti jokaisesta ei tule huippukoodaajaa, kuten ei tule formulakuskiakaan. Eikä tarvitsekaan. Vaikka oikea ohjelmointityö on ammattilaisten työtä, koodaaminen voisi olla keskivertokansalaisten älykäs harrastus. Tietotekniikan ja ohjelmoinnin perusteiden osaaminen laajentaa jokaisen tämän päivän yhteiskunnan jäsenen ajattelemaan tietokoneellisesti. Ja sillä osaamisella pärjää kiivaasti teknistyvässä arjessa. Vaikka tulisi vastaan minkälaista laitteiden internettiä. Tietokoneajattelu auttaa meitä hyödyntämään nykytelevision kaikkia ominaisuuksia, käyttämään tietokonetta muuhunkin kuin pelaamiseen, puhelinta muuhunkin kuin soittamiseen, hyödyntämään internettiä vaikkapa päivällisen valmistuksessa tai kodin sisustuksessa, viestittämään Skypellä Pihtiputaan mummolle terveiset, jne. Vaikkei itse ajaisi autoa, on tunnettava liikennesääntöjä ja -kulttuuria sen verran ettei jää autojen alle.
3 Mille ohjelmointitaito rakennetaan Ohjelmoijaa auttaa hyvä kielitaito, pohjana laadukas äidinkielen taito. Parhailla ohjelmoijilla on hyvin laaja yleissivistys, ynnä monenlaista tietotaitoa eri elämänalueilta. Looginen päättelykyky on peruskivi jolla pääsee pitkälle. Ohjelmoijan tulee tuntea ohjelmointikielen mahdollisuudet ja tietoa ja taitoa siitä aiheesta, johon koodia kirjoitetaan. Näin on erikoisesti laiteläheisessä, IoT (Internet of Things) ohjelmoinnissa. Mitä se sitten aikanaan tulee olemaankaan. Tärkeää on ymmärtää heti aluksi, että ohjelmoinnin oppiminen on eri asia, kuin ohjelmointikielen oppiminen. Ohjelmointitaito ei riipu kielestä. Se on taito ymmärtää miten yksinkertaisia, mutta selkeästi määriteltyjä käskyjä yhdistämällä tehdään (joskus hyvinkin) monimutkaisia asioita. Ohjelmointitaito kehittyy ahkeruuden, kokemuksen ja kokeneitten myötävaikutuksella. Ohjelmointikielen oppiminen on helpompaa. Mikä on ohjelmointikieli? Opettaja: Ohjelmointikieli on ohjelmien esittämiseen tarkoitettu, prosessorikohtaiseen konekieleen käännettävissä oleva kieli. Tietosanakirja: Ohjelmointikieli on joukko käsitteitä, joilla ohjelmoija määrittelee algoritmin rajaamat suoritettavat tehtävät. Ohjelmoija: Ohjelmointikieli on työkalu, jonka avulla ohjelmoija miettii mitä on mahdollista tehdä ja mitä ei. Ohjelmointikieli on väline jolla ihminen kertoo tietokoneelle, mitä sen pitää tehdä. Ensin se kuitenkin pitää kääntää tietokoneen ymmärtämään muotoon. Mitä ohjelmointikieltä tulisi oppia? Sitä ei tiedä kukaan. Erilaisia ohjelmointikieliä Konekieli Tietokoneen mikroprosessori (CPU) käsittelee tietoja ohjelman määräysten mukaisesti. Ohjelma, siis sarja peräkkäisiä käskyjä, koostuu biteistä eli ykkösistä ja nollista. Prosessoritasolla: 1 = jännite on, virta kulkee, kytkin kiinni 0 = jännitettä ei ole, virta ei kulje, kytkin auki Jokaisen tietokoneen CPU ymmärtää vain sille koodattuja bittikuvioita. Intelin suoritin ymmärtää vain Intelin konekoodia, RasPin ARM omaansa, jne. Tietokoneen ymmärtämiä bittijonoja, erilaisia ykkösten ja nollien yhdistelmiä, nimitetään konekieleksi, machine language. Ne ovat joko 8/16/32/64-bittiä pitkiä, esim näin:
4 Konekielisissä ohjelmissa on kahdenlaisia osia: operaatioita eli käskyjä ja operandeja eli numerotietoa. Ohjelman käskyt ja käsiteltävä tieto, data, talletetaan muistiin, jossa jokaiselle bitille on oma lokero. Operaatioiden avulla ohjelmissa manipuloidaan muistipaikkojen sisältöjä. Tietokoneen osaamat toimenpiteet eli operaatiot ovat hyvin yksinkertaisia. Tietokone osaa esimerkiksi laskea yhteen kaksi lukua ja tarkistaa, onko tulos nolla. Koska tietokoneessa kaikki asiat esitetään bittien avulla, konekieliset ohjelmat ja niiden käsittelemä data ovat käytännössä peräkkäistä ykkösten ja nollien jonoa. Tuon jonon käsittely on ihmiselle hankalaa. Symbolinen konekieli, eli assembly Ohjelmoinnin helpottamiseksi kehitettiin symbolinen konekieli, assembly, asm. Siinä käskyjä ei esitetä enää bittijonoina, vaan jokaista käskyä varten on sovittu määrätty apusana, muistikas, mnemonic. Esimerkiksi yhteenlaskukäskyn muistikas on add ja vähennyslaskukäskyn sub. Niitä on helpompi hallita kuin pelkkiä ykkösnollia. Käskyt sisältävät myös tiedon siitä, mistä käsiteltävät luvut löytyvät. Assembly-kielellä kirjoitettu ohjelma käännetään CPU:n ymmärtämälle konekielelle assembler käännösohjelmalla. Assembly-ohjelma on aina prosessorikohtainen. Koska asm on laiteläheinen, koodi kohdistuu suoraan prosessorin rekistereihin ja siksi niitä tarvitaan paljon pienenkin asian koodaamiseen. Siten se vaatii ohjelmoijalta osaamisen lisäksi kärsivällisyyttä ja ennenkaikkea aikaa. Ohjelman tekeminen asmilla on todella suuritöistä, mutta toisaalta siten syntyy nopeaa koodia. Lausekielet Koska symbolinen konekieli on hankala käyttää, tarvittiin tilalle jotain helpompaa. Aloitettiin rakentamaan lausekieliä. Lausekielisissä ohjelmissa monta peräkkäistä konekielen käskyä on korvattu yhdellä lausekielen käskyllä. Käskyt on suunniteltu niin, että ne vastaavat ohjelmoijan ajattelua ja (englannin) kieltä. Lausekielet eli korkean tason kielet (high level language) muistuttavat puhuttua kieltä. Ne ovat lähellä ihmistä. Sanavarasto on suppea ja niitten käyttöä ohjaa ja määrittää tarkat kielioppisäännöt eli syntaksi (syntax). Kaikilla asioilla on lisäksi hyvin tarkat merkitykset eli semantiikka (semantics). Lausekielet ovat laiteriippumattomia, eli ohjelmointi ei riipu siitä tietokoneesta, jolla ohjelma ajetaan. Lausekieli eli lähdekoodi on käännettävä tai ajon aikana tulkattava ko. tietokoneen prosessorin ymmärtämäksi konekoodiksi. Käännöksen suorittaa kääntäjä-ohjelma (compiler), tai ohjelman ajon aikana tulkki-ohjelma (interpreter). Kääntäjä kääntää koko lausekielisen ohjelman kerralla, muuttaa sen konekielelle ja tallentaa ajokelpoiseksi tiedostoksi. Se on hyvin monimutkainen prosessi. Selvitän toisaalla. Konekielinen ohjelma voidaan ajaa milloin ja miten monta kertaa tahansa. Näin menetellään esim C-kielisen koodin kanssa. Tulkki tulkitsee lausekielistä ohjelmaa käsky kerrallaan, muuttaa käskyn konekielelle ja suorittaa käskyn välittömästi. Tämän jälkeen tulkki siirtyy lausekielisen ohjelman seuraavalle riville ja seuraavaan käskyyn. Tulkattuja käskyjä ei tallenneta minnekään, joten jos ohjelma halutaan ajaa uudelleen, pitää se myös tulkita uudelleen. Näin menetellään esim Python-koodin kanssa.
5 Ihmisen ja tietokoneen kommunikointihierarkia ohjelmoinnin kannalta. High level code, Python Assembly code Binary code Ohjelmointikielien hiearkia.
6 Ohjelmoija, joka osaa ohjelmointikielten yleiset periaatteet (joita opiskelet parast aikaa), pystyy ja haluaa opiskella useita eri kieliä. Siten hän voi valita kuhunkin tarkoitukseen sopivimman kielen. Ohjelmointikielen valintakriteerejä Tietokoneohjelmia on monenlaisia, samoin ohjelmointikieliä joilla ohjeet koneille kirjoitetaan. Ohjelmointikieli on oikeastaan vain työkalu jolla ihminen pystyy kertomaan tietokoneelle, mitä sen milloinkin pitää tehdä. Ohjelmoijan tulee tuntea kielen ominaisuudet eli mahdollisuudet ja sen lisäksi se ympäristö, jossa ohjelmaa ajetaan. Kirjanpito-ohjelman tekijän tulee tuntea kirjanpitokäytännöt ja lainsäädäntö, kun taas raudanläheisen kännykkäohjelman tekijä kohtaa aivan erilaiset ongelmat. Ohjelmointikielen oppiminen ei ole vaikeaa, työlästä kylläkin, mutta toisaalta erittäin mielenkiintoista. Kunhan opiskellaan oikeita asioita ja oikealla tavalla. Kieliä on kehitelty vuosien varrella tusinoittain periaatteella: joka työhön oma kieli. Opiskeltavan ensimmäisen kielen valinnasta on kiistelty yhtä kauan. On välttämätön ensin topologiaa, oliopohjaista ohjelmointia, toiminnallisuus- ja algoritmilähtöistä ideologiaa ja ties vaikka mitä. Meillä on selvä ajatus, joka on ollut selvä jo ennenkuin kukaan oli kuullutkaan hittisanaa IoT, Internet of Things. Ihmiset ovat jo netissä, nyt sinne ovat menossa laitteet. Se edellyttää laiteläheistä ohjelmointia. Siksi haluamme tehdä laiteläheistä koodia. IoT edellyttää sitä. Ensimmäisen kielen, sen jolla opiskellaan ohjelmointia, on oltava lähellä ohjelmoijaa : * ohjelmoijan kannalta sen tulee olla ikään kuin oikea ihmisen kommunikaatioonsa käyttämä kieli, koska se siten on helposti otettavissa haltuun. Sen jälkeen siirrytään laiteläheiseen ohjelmointiin, joten kielen on oltava lähellä konetta : * siten, että CPU:n rekistereitä ja oheispiirejä (liitäntäpiirejä) voidaan manipuloida bittitasolla. Lisää syitä. * Maksimi hyöty - minimi työ eli vähillä perustiedoilla pääsee tekemään toimivia ohjelmia. * Samaa koodia tulisi voida ajaa eri laitteilla ja eri käyttöjärjestelmillä, kielen tulee olla ajoympäristöstä riippumaton. * Tärkeä kriteeri: ohjelmointityökalujen tulee olla ilmaisia, löytyä netistä, tukena aktiivinen yhteisöä ja niillä tulee olla laaja käyttäjäkunta myös ammattilaisten keskuudessa, se takaa niiden jatkuvuuden. * Työkalujen oltava laajennettavissa periaatteella sama työkalu useaan eri työhön. NetBeansin avulla opitaan ensin esim C-kieltä, myöhemmin asennetaan siihen lisämoduuli JavaScriptin opiskelua varten ja sen jälkeen HTML-moduuli. Ei ole yhtä ainoaa oikeaa kieltä. Aloituskieli ei voi olla oikea tai väärä. Kun ammattilainen ja osaava harrastelijakin käyttää useaa eri kieltä, niin aloituskieleksi tulisi valita se, joka on helpoin oppia. Sitten vielä yksi kieli. Mutta sitä ennen käsite algoritmi. Algoritmin idean oppiminen ja hyödyntäminen lienee vaikein osa ohjelmoinnin oppimista. Aiheesta on kirjoitettu useita kirjoja. Niihin kannattaa tutustua. Mutta vasta myöhemmin, kun ohjelmoijalla on tarpeeksi pohjatietoa asian omaksumiseen. Uusi tieto tarvitsee tartuntapintaa. Sulautettuihin systeemeihin ensiaskeleitaan ottavan tulee hallita ainakin algoritmien perusidea.
7 Algoritmi Ohjelma käsittelee tietorakenteita, joista kohtaa lisää. Ohjekokoelma jonka mukaan noita tietorakenteita käsitellään, kutsutaan algoritmiksi (algorithm). Algoritmi on kuvaus jonkin tehtävän suorittamiseksi tarvittavista toimenpiteistä, eli miten lähtötiedoista syntyy uutta tietoa, tulosteita. Algoritmi vastaa kysymykseen, mitä pitää tehdä ja missä järjestyksessä, jotta tavoite saavutetaan? Algoritmilla kuvataan ongelman ratkaisu niin yksinkertaisina loogisina askeleina, että sen perusteella voidaan kirjoittaa ohjelma. Algoritmin eli ongelman ratkaisun voi kuvata puheena, graafisesti kuvilla (vuokaavio) tai pseudokielellä (lopullista ohjelmakoodia jäljittelevää tekstiä). Algoritmin käsite on laaja, eikä sillä tarkoiteta pelkkiä tietokoneeseen tai matematiikkaan liittyviä menetelmiä. Algoritmeja ovat kaikki täsmälliset suoritusohjeet, esim. keittokirja, virkkausohjekirja tai vaikka drinkkien sekoitusohjekirja. Niiden ohjeita noudattamalla ruuan laiton, virkkaamisen tai drinkkien sekoittelun tulisi onnistua. Keittokirjan resepti on algoritmi ja raaka aineet tietorakenteita. Algoritmien perusvaatimukset Yleisyys: algoritmin on sovelluttava kaikkiin mahdollisiin määritellyn tehtävän eri tapauksiin Deterministisyys: tehtävän ratkaisun on oltava yksikäsitteisesti määritelty, niin että joka vaiheessa tiedetään täsmällisesti mitä seuraavaksi tehdään. Determinismi, lainalaisuusoppi, on filosofian näkökanta, jonka mukaan kaikilla asioilla on syynsä. Tästä seuraa, että kaikki, mikä tapahtuu, tapahtuu välttämättä, eikä mikään voisi tapahtua toisin. Tuloksellisuus: algoritmin on annettava aina oikea tulos, lisäksi sen suorituksen tulee aina päättyä. Algoritmien laatiminen Asteittain tarkentuva menetelmä, jossa suunnitellaan ensin isot kokonaisuudet ja sitten vaiheittain tarkennetaan pienempiin osiin, top-down design: ohjelman määrittely toiminnot funktiot» lauseet» lausekkeet» muuttujat» jne. Algoritmista kannattaa ensin tehdä sanallinen kuvaus ja vasta myöhemmin lausemuotoinen kuvaus. Lausekielisesti esitetty algoritmi on jo lähellä ns. puoliohjelmointia. Ja nyt siihen lisäkieleen Parasta opetella käyttämään yhtä algoritmin kirjoittamismallia ja kunnolla. Tällöin valintaehdotukseni on pseudokieli, koska siinä tehtävän jäsentelyn ja ajattelun ohessa syntyy ohjelmalauseiden alkioita. Toisaalta pseudokoodin kirjoittaminen on saanut yhä lisääntyvää suosioita ohjelmoijien keskuudessa. Kaverille kans. Pseudokieli Pseudokieli on selväkielistä tekstiä, siis ihmiselle tarkoitettu kuvaus mitä ollaan tekemässä. Se on sekoitus suomea, englantia ja ohjelmointikielen termejä, joilla kuvataan tehtävän suoritusaskeleet. Jokaisesta moduulista (funktio) kirjoitetaan oma pseudokoodi. Pseudokoodin kirjoittaminen aloitetaan vasta sitten, kun ensin on selvitetty mikä on ongelma, mitä ollaan tekemässä, mikä on toimintaympäristö, mitä se edellyttää ohjelmalta.
8 Kun algoritmin kirjoittaa pseudokoodiksi, se on lähimpänä lausekielistä ohjelmarakennetta ja siten jatko on vähätöisempää. Tärkeää on jakaa monimutkainen tehtävä osatehtäviksi. Jos on tarvetta, nämä jaetaan edelleen pienemmiksi osatehtäviksi, kunnes päädytään helposti ratkaistavaan 'pikku ongelmaan'. Kun pseudokielen avulla on luotu kuvaus tehtävästä, niin sitten sen kääntäminen ja kirjoittaminen varsinaiseksi lähdekoodiksi on helppoa. Tai ainakin se on vähemmän vaikeaa. Algoritmi kirjoitetaan ihmisen ajattelua varten, mutta koko ajan miettien, miten työ on tietokoneella tehtävissä. Hyvin tehdystä algoritmista on helppoa kirjoittaa itse ohje, eli ohjelma tietokoneelle. Ja sitten takaisin ohjelman rakenteen analysointiin. Selvitän seuraavaksi ohjelmointiin ja ohjelmaan liittyviä käsitteitä jotta pääset helpommin alkuun. Käsitteiden syvällisempi oppiminen tapahtuu kurssin edetessä ja taitojen kasvaessa. Esiteltävät asiat ovat ohjelmoinnissa yleiskäyttöisiä, ne esiintyvät kaikissa ohjelmointikielissä. Siten näiden perusasioiden syvällinen oppiminen helpottaa suuresti jatko-opintoja. OHJELMAN PERUSELEMENTIT Tunnus, identifier Tunnukset ovat nimiä erilaisille asioille, jollaisia ovat mm. muuttujat, vakiot ja tyypit. Muuttuja, variable Muuttujaa käytetään tietovarastona erilaisille asioille. Muuttuja on bittien muodostama lokero tietokoneen muistissa. Muuttujan arvo on muistialueen sisältö. Muuttujan nimi viittaa muuttujan sisältämään tietoon. Muuttujista on perusteellinen selvitys Python-kurssin alkuharjoituksissa. Tyyppi, type Ohjelman tulee tietää onko joku nimisessä muistipaikassa jokin luku, kirjain, teksti (merkkijono) vai jotain muuta, jotta ohjelmassa osataan tehdä muuttujalle oikeita toimia eli operaatioita. Muuttujan tyyppi (type) kertoo ohjelmalle mitä muuttujalle voi tehdä. Näitä ovat mm seuraavat: int kokonaisluku (16 bittiä) long kokonaisluku (32 bittiä) float liukuluku double kaksoistarkkuuden liukuluku char merkki Vakio, constant Kaikissa ohjelmissa käytetään laskutoimituksissa yleensä joitain kiinteitä lukuarvoja. Lauseet, statement Ohjelman varsinainen toiminta tapahtuu lauseissa. Lauseessa tehdään jokin toimenpide, esimerkiksi kahden luvun yhteenlasku. Kommentit, comments Ohjelmiin voi ja niihin pitää liittää ohjelman toimintaa selittäviä tekstejä eli kommentteja. Kääntäjä/tulkki ei niitä noteeraa.
9 Rakenteinen ohjelmointi Kun ohjelma koostetaan selkeistä ohjelmarakenteista puhutaan rakenteisesta ohjelmoinnista. Ohjausrakenteilla ohjataan ja muutetaan ohjelman kulkua eli käskyjen suoritusjärjestystä. Useimmat suorituksen ohjauskäskyt perustuvat jonkin ehdon testaamiseen. Ehto joko täyttyy, eli on tosi - true, tai ei täyty, eli on epätosi- false. Jos tuntee ohjausrakenteet, silloin ohjelman toiminta on helppo ymmärtää ja tarvittaessa korjata tai muuttaa. Ohjelman perusrakenteet 1. peräkkäisrakenne 2. valintarakenne 3. toistorakenne 1. Peräkkäisrakenne ei selittelyä kaipaa, sarja toimenpiteitä peräkkäin. Ohjelma etenee suoraviivaisesti siten miten käskyt on ohjelmaan kirjoitettu. 2. Valintarakenne tehdään jotain jonkun totta olevan ehdon perusteella. Jos if-ehto on tosi, niin tehdään lause tai lauseita ja ellei se ole tosi (on siis epätosi) niin sitten hypätään noiden lauseiden ohi ja ohjelma jatkuu. Nuolet kuvaavat ohjelman etenemistä. If-else-rakenne Joskus on tarpeen tehdä jotain siinäkin tapauksessa että ehto ei ole tosi. Tällöin valitaan vaihtoehto if-else rakenteella. Else suoritetaan siinä tapauksessa että ehto ei ole tosi.
10 Vuokaavioesitys if else rakenteelle Ehdon ollessa tosi haaraudutaan oikealle ja suoritetaan lause 1, epätodessa tilanteessa suoritetaan lause 2. Molemmissa vaihtoehoissa jatketaan ohjelmaa if else rakennetta seuraavasta lauseesta. Valinta useasta vaihtoehdosta If-else lauseita voi olla useampiakin kuin seuraavan mallin mukaan. if (ehto) lauseet else if lauseet else lauseet 3. Toistorakenne, samanlaisina toistuvien yksittäistapahtumien toistamista. Toistorakenteet voivat olla alkuehtoisia tai loppuehtoisia. Alkuehtoista ei välttämättä suoriteta kertaakaan. Esimerkkinä alkuehtoisesta toistosta: haluat keittää kahvit, tarkista onko kaapissa kahvia, jos on, keitä kahvit, ellei, niin sitten et keitä. Kahvit jää juomatta. Loppuehtoinen suoritetaan aina vähintään yhden kerran. Esimerkki loppuehtoisesta toistosta: Haluat lainata kirjastosta viimeisimmän Linux Journalin, kävelet kirjastoon, valitset lehden, mutta vasta sitten tarkistat tuliko kirjastokortti mukaan, jos on, lainaat lehden, ellei, palaat kotiin tyhjin käsin.
11 While toistorakenne Toistorakenteen avulla voidaan suorittaa samoja lauseita toistuvasti peräkkäin. Toistojen määrä on joko etukäteen määrätty tai se riippuu ohjelmassa esitetyistä ehdoista. For toistorakenne For rakennetta käytetään, jos toistojen määrä tiedetään ohjelmassa ennen kuin toistot aloitetaan. Toistojen lukumäärää hallitaan toistolaskurin avulla. Laskuriin kohdistuu kolme operaatiota: 1. laskurin alkuarvon asettaminen 2. laskurin arvon vertaaminen loppuarvoon, ehto 3. laskurin arvon päivittäminen, lisääminen tai vähentäminen yhdellä For toistorakenne.
12 Do... while toistorakenne Jo käsitellyt toistolauseet while ja for ovat molemmat ns. alkuehtoisia toistolauseita. Lauseessa olevan ehdon arvo tutkitaan, ennen kuin siirrytään toistettavaan lauseosaan. Seuraavaksi käsiteltävä toistolause on loppuehtoinen do... while toistorakenne. Siinä suoritetaan ensin yksi toistokerta ja sen jälkeen tutkitaan pitääkö toistaa uudestaan.
Laiteläheinen C-kieli, yleistä
Laiteläheinen C-kieli, yleistä PUNOMO NETWORKS OY 23.8.2016 pva Johdanto Mikroprosessori, CPU, Central Prosessing Unit on komponentti, jonka toiminta on ohjattavissa muistiin tallennetuilla käskyillä.
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,
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,
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
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
Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla
Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla ohjelmoida useita komponenteiltaan ja rakenteeltaan
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
2.2. Tietokoneohjelman tekeminen 7.1.2008. pva, kuvat jma
2.2. Tietokoneohjelman tekeminen 7.1.2008. pva, kuvat jma Nothing is particularly hard if you divide it into small jobs. - Henry Ford Yleistä Tietokone tekee kaiken sen - ja vain sen - mitä ohjelmoija
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
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
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
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
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
Tutoriaaliläsnäoloista
Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus
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
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
3. C-kieli sulautetun järjestelmän ohjelmointikielenä 07.01.2008, pva
3. C-kieli sulautetun järjestelmän ohjelmointikielenä 07.01.2008, pva "Ohjelmointi ei ole mitään massojen huvia, vaikka sitä joskus helpoksi luullaankin. Joiltakin se sujuu luonnostaan, jotkut voivat jopa
Ohjelmointi 1. Kumppanit
Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5
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
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
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.
ELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,
Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, että se pystyy suorittamaan kaikki mahdolliset algoritmit?
TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit
TIE-20100 Tietorakenteet ja algoritmit 1 TIE-20100 Tietorakenteet ja algoritmit TIE-20100 Tietorakenteet ja algoritmit 2 Lähteet Luentomoniste pohjautuu vahvasti prof. Antti Valmarin vanhaan luentomonisteeseen
Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään
Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen.
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
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
IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit
IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
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
ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014
18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2009 1 / 25 Mihin teekkari / diplomi-insinööri tarvitsee ohjelmointia? Pienten laskentasovellusten kirjoittaminen.
Harjoitus 3 -- Ratkaisut
Harjoitus 3 -- Ratkaisut 1 ' '-merkki kirjoitetaan =, ' '-merkki!=, ' '-merkki ==. Yhtälöiden ratkaisusta puhutaan lisää myöhemmin. a f x, y : If ehtolauseke x y, y tämä palautetaan, jos
Koodaamme uutta todellisuutta FM Maarit Savolainen https://blog.edu.turku.fi/matikkaajakoodausta/
Koodaamme uutta todellisuutta FM Maarit Savolainen 19.1.2017 https://blog.edu.turku.fi/matikkaajakoodausta/ Mitä on koodaaminen? Koodaus on puhetta tietokoneille. Koodaus on käskyjen antamista tietokoneelle.
tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla
2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella
Muistutus aikatauluista
Muistutus aikatauluista (Nämä eivät välttämättä koske avoimen yo:n opiskelijoita Erkki Kailan rinnakkaisella kurssilla) Luento 1: kotitehtävät sulkeutuvat 20.9 12:00, ennen tutoriaalia Tutoriaali 1 sulkeutuu
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
Algoritmit 1. Luento 3 Ti Timo Männikkö
Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien
Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi
Imperatiivisen ohjelmoinnin peruskäsitteet muuttuja muuttujissa oleva data voi olla yksinkertaista eli primitiivistä (esim. luvut ja merkit) tai rakenteista jolloin puhutaan tietorakenteista. puhuttaessa
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
Johdanto kurssin sisältöön
Johdanto kurssin sisältöön Terminologiaa Algoritmi on jonkin tehtävän suorittamiseksi tarvittavien toimenpiteiden kuvaus Ongelman ratkaisu lasketaan suorittamalla algoritmin toimenpiteet Tietokone suorittaa
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
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
Ohjausrakenteet. Valinta:
Ohjausrakenteet Luento antaa yleiskuvan siitä kuinka ohjelmassa suorittaan vaihtoehtoisia tehtäviä valintarakenteiden avulla ja kuinka samanlaisia ohjelma-askeleita toistetaan toistorakenteiden avulla
Palautetta viime luennosta
Palautetta viime luennosta Kuka saa ja kenen täytyy suorittaa 5op kokonaisuus? Sivuaineopiskelijat suorittavat jos heidän sivuainekokonaisuuteen on merkitty niin Kokonaisuuksia on useita eri tiedekunnittain,
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
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
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
Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.
Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan
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
16. Ohjelmoinnin tekniikkaa 16.1
16. Ohjelmoinnin tekniikkaa 16.1 Sisällys For-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. If-else-lause vaihtoehtoisesti
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
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.
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
Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä
Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä olevilla komponenteilla? Voisiko jollakin ohjelmointikielellä
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op FT Ari Viinikainen Tietokoneen rakenne Keskusyksikkö, CPU Keskusmuisti Aritmeettislooginen yksikkö I/O-laitteet Kontrolliyksikkö Tyypillinen Von Neumann
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
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
Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin
Sisällys 17. Ohjelmoinnin tekniikkaa for-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. if-else-lause vaihtoehtoisesti
Älykännykät ovat pieneen tilaan paketoituja, mutta suuret ominaisuudet omaavia tietokoneita.
Mikä on tietokone PUNOMO NETWORKS OY 22.7.2016 pva, piirroskuvat J. Mansikkaviita Henkilökohtaisesti olen aina valmis oppimaan, vaikka en välitäkään tulla opetetuksi. - Winston Churchill Tietokone on elektroninen
TIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli
TIE-20306 PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli Seminaariesitelmä ryhmä 24 Markku Ahokas Jani Kuitti i SISÄLLYSLUETTELO 1. YLEISTÄ EIFFELISTÄ... 1 1.1 Historia ja tausta... 1 1.2
C-ohjelmoinnin peruskurssi. Pasi Sarolahti
C! C-ohjelmoinnin peruskurssi Pasi Sarolahti Mitä haluan oppia C-kurssilla? ja miksi? Tutustu lähimpään naapuriin Keskustelkaa miksi halusitte / jouduitte tulemaan kurssille 3 minuuttia è kootaan vastauksia
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
Python-koodaus: Muuttujat
Python-koodaus: Muuttujat PUNOMO NETWORKS OY 24.7 && 4.8.2016 pva Oletus Sinulla on Raspin Geany-IDE konfiguroituna toimimaan SSH-etäkäytössä. Tämä on Punomon Python koodikoulun toinen oppitunti. Käynnistä
Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
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
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
OHJELMISTOKEHITYS -suuntautumisvaihtoehto
OHJELMISTOKEHITYS -suuntautumisvaihtoehto Suuntautumisvaihtoehdon esittely 1. vuoden opiskelijoille Kari Laitinen www.oamk.fi/~karil/opetus.html Ohjelmistokehitys -opintosuunnan valitsevista henkilöistä
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
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).
Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.
Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.
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
Algoritmit 1. Luento 1 Ti Timo Männikkö
Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017
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
Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b
Pythonin Kertaus Cse-a1130 Tietotekniikka Sovelluksissa Versio 0.01b Listat 1/2 esimerkkejä listan peruskäytöstä. > lista=['kala','kukko','kissa','koira'] ['kala','kukko','kissa','koira'] >lista.append('kana')
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
Ohjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python 7. helmikuuta 2009 Ohjelmoinnista Ohjelman peruselementtejä Koodin kommentointi Lohkorakenne Ohjausrakenteet If For While Try Funktiot Käyttö
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
OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012
OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 Luento 6: Tiedon esittäminen tietokoneessa, osa 1 Tekijät: Antti Virtanen, Timo Lehtonen, Matti Kujala, Kirsti Ala-Mutka, Petri M. Gerdt et al. Luennon
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
Harjoitus 3 (viikko 39)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien
Laiteläheinen C-kieli osa 1 pva
Laiteläheinen C-kieli osa 1 pva 12.7.2016 Osion sisältö Ohjelmoimaan oppii vain itse tekemällä Ensimmäinen projekti ja ensimmäinen ohjelma hello.c Oletus Sinulla on käytössäsi 1. GNU/Linux (Mint) pöytäkone
Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla
Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,
11/20: Konepelti auki
Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon
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
1. Ohjelmoinnin peruskäsitteet ja -elementit
1. Ohjelmoinnin peruskäsitteet ja -elementit 1. ohjelmoinnin periaatteet 2. ohjelmointikielet 3. algoritmien suunnittelu 1 1.1 Ohjelmoinnin periaatteet Vaatimukset Määrittely Suunnittelu Toteutus Integrointi
KOODAUSPLÄJÄYS. Ohjelmoinnin perusteet
KOODUSPLÄJÄYS Ohjelmoinnin perusteet Korttien merkinnät Korttien yläreunaan on merkitty, mitä taitoja ja ohjelmoinnissa käytettyjä rakenteita korteista oppii. Merkkien määrä ( 4) kuvaa kortin vaikeustasoa.
Ohjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 28.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 28.9.2015 1 / 16 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava
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.
Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.
Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita
if-lauseen yksinkertaisin muoto on sellainen, missä tietyt lauseet joko suoritetaan tai jätetään suorittamatta.
if- valintarakenne Yksittäisen vaihtoehdon valinta if-lauseen yksinkertaisin muoto on sellainen, missä tietyt lauseet joko suoritetaan tai jätetään suorittamatta. Syntaksi: if (ehto) lauseita; Aaltosulkeiden
3. Muuttujat ja operaatiot 3.1
3. Muuttujat ja operaatiot 3.1 Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit.
Tietorakenteet ja algoritmit - syksy 2015 1
Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä
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
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
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
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 17.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 17.1.2011 1 / 27 Mihin teekkari / diplomi-insinööri tarvitsee ohjelmointia? Pienten laskentasovellusten kirjoittaminen.
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
Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.
3. Muuttujat ja operaatiot Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi.. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit. Arvojen