3. C-kieli sulautetun järjestelmän ohjelmointikielenä , pva
|
|
- Martti Hyttinen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 3. C-kieli sulautetun järjestelmän ohjelmointikielenä , pva "Ohjelmointi ei ole mitään massojen huvia, vaikka sitä joskus helpoksi luullaankin. Joiltakin se sujuu luonnostaan, jotkut voivat jopa oppia sen." - Jere Käpyaho Sisältö 3.1. Mikä on ohjelmointikieli? 3.2. Sulautetun järjestelmän ohjelmointikielen tulee olla: Miksi sulautetut järjestelmät ohjelmoidaan C-kielellä? 3.3. Sulautetut järjestelmät ja ANSI C Mikä on C99? Miksi C eikä asm? 3.1. Mikä on ohjelmointikieli? Ohjelmointikielen määritykseen on monta tapaa; Ohjelmointikieli on väline, jolla ihminen kertoo tietokoneelle mitä se tulee tehdä. Opettaja Ohjelmointikieli on ohjelmien esittämiseen tarkoitettu, prosessorikohtaiseen konekieleen käännettävissä oleva kieli. Tietosanakirja Ohjelmointikieli on joukko käsitteitä, jolla ohjelmoija määrittelee algoritmin rajaamat suoritettavat tehtävät. Ohjelmoija Ohjelmointikieli on työkalu, joiden avulla ohjelmoija miettii, mitä on mahdollista tehdä ja mitä ei. Tietokone ei tiedä yhtään mitään, eikä se pysty ajattelemaan abstrakteja asioita samalla lailla kuin ihminen. Ihminen osaa tulkita hyvinkin monimutkaisia kuvitteellisia asioita, tai päätellä kiroitusvihreestä huolimatta vaikkapa kirjeensaajan oikean nimen ja osoitteen. Tietokone pystyy tulkitsemaan pelkästään 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. 1
2 Silta Ohjelmointikieli on ikään kuin silta ihmisen abstraktista ajattelusta tietokoneen konkreettiseen numeroiden maailmaan. Ihmisen (tietokonekielen) käsitteistä tosi, true ja epätosi, false, käänninohjelma luo tietokoneelle 1 ja 0. Niiden perusteella kone ikään kuin päättelee mitä tehdä, jatkaako lukujen käsittelyä seuraavasta ykkösnollajonosta vai hypätäkö ohjelmassa eteen/taaksepäin Sulautetun järjestelmän ohjelmointikielen tulee olla: Lähellä konetta Ohjelmointikielen tulee toimia 'lähellä konetta' siten, että CPU:n eri rekistereitä ja oheispiirejä (liitäntäpiirejä) voidaan manipuloida bittitasolla. Lähellä ohjelmoijaa Ohjelmointikielen tulee toimia 'lähellä ohjelmoijaa', eli ohjelmoijan kannalta sen tulee olla ikään kuin oikea ihmisen kommunikaatioonsa käyttämä kieli. Siis mielellään lähellä yleisesti puhuttua/kirjoitettua (englannin) kieltä. Kuva 3.1. Tietokoneohjelman hierarkiatasot. 2
3 Miksi sulautetut järjestelmät ohjelmoidaan C-kielellä? Pienissä systeemeissä käytetään pienitehoisia, yleensä 8-bittisiä mikro-ohjaimia, joissa on vähän muistia ja joiden päätehtävä on ohjata ja valvoa jonkun elektronisen laitteen toimintaa. Siksi käytettävissä olevan ohjelmointikielen tulee olla laiteläheistä. Valittavan ohjelmointikielen tulee olla yleinen eli paljon käytetty ja siksi myös normioitu, standardoitu. Suositulle kielelle löytyy tarvittaessa apua; so. koulutusta, kirjallisuutta, kursseja, työkaluja, valmiita ohjelmia, www-osoitteita, keskustelupalstoja netissä, jne. Mielellään sen tulee olla sellainen, että se on helppo oppia ja kuitenkin tehokas. Tärkeintä tietenkin on, että käytettävälle mikro-ohjaimelle löytyy valittavan kielen käänninohjelma ja muita työkaluja. C-kielen ominaisuuksia - se on tehokas, eli C-kääntäjä tekee tiivistä ja nopeaa koodia - se on siirrettävä, eli koodi toimii eri prosessoriympäristöissä (eri tietokoneissa). Siitä nimitys "kannettava assembly". - C-kääntimiä löytyy hyvin usealle prosessorille, sekä kaupallisia, että ilmaisia - lausekielinen, korkean tason yleisluonteinen kieli, joten se on helppo oppia - laiteläheinen, päästään operoimaan CPU:n ja oheispiirien rekistereitä bittitasolla. - se on käännettävä kieli. Kääntäminen tapahtuu käännin-ohjelmalla ennen ohjelman käyttöä. Kääntimien ongelma, tosin aika pieni, on se, että saman prosessorin eri C-kääntimet käyttävät kielen eri syntakseja, murteita, jolloin koodin vaihdettavuus vaatii toisinaan sovitustyötä. Silti ns. perus-c voi olla ja tuleekin olla, hyvinkin yhdenmukaista so. vaihtokelpoista. Ritchie&Kernighan kehittelivät uutta käyttöjärjestelmää ja loivat samalla C-kielen. 3
4 C on ns. rakenteinen ohjelmointikieli C-kieli sopii jäsentävään suunnitteluun eli rakenteiseen, strukturoituun ohjelmointiin. Ohjelma on helpompi kehittää kun monimutkaiset ongelmat jaetaan ensin pienempiin palasiin. Se mahdollistaa valmiiden, käytännössä testattujen funktioiden uusiokäytön. Esimerkkinä vaikka LCD-näytön ohjaus tai sarjaportin käsittely. Rakenteinen ohjelma on helpompi korjata, koska ohjelmavirheet, bugit, paikallistetaan tavallisesti yhteen funktioon. Virheitä ei tarvitse etsiä koko koodista. Ohjelmasta tulee samalla hierarkkinen, kun funktiot kutsuvat toisiaan. Joitain funktioita käytetään anturien lukemiseen, toista tulosten laskentaan, kolmatta toimilaitteen ohjaamiseen, jne. C:n sanotaan olevan laiteläheisen ohjelmoinnin kantaisän. Oikeastaan sulautetuissa systeemeissä, joissa yleensä on käytettävissä vähäiset laiteresurssit, ei muita korkean tason kieliä voi ajatellakaan. Sulautetut ja C-koodin siirrettävyys Jos hieman karrikoidaan, niin pienten mikro-ohjainten ohjelmointi on pääosin rekistereiden bittien manipulointia ja huomattavasti vähemmän yleisluontoista, oikeaa, tietojenkäsittelyä. Suurien, 16- ja 32-bittisten, mikro-ohjaimien yhteydessä voidaan hyödyntää valmiita kirjastoja, tehdä oikeaa ohjelmointia. Pikkuohjaimien I/O-pinnien kanssa työskentely on enemmälti käsityötä. Mutta juuri sehän niissä kiehtoo. Ainoastaan sellainen koodi, joka on kirjoitettu täysin ANSI C:n mukaisia kirjastoja käyttäen, on siirrettävissä sellaisenaan alustasta toiseen. Sulautetuissa järjestelmissä se ei ole mahdollista. Laiteläheisyys tuo niin paljon ohjelmakoodiin erikoisratkaisuja, että aina on suoritettava enemmän tai vähemmän tapauskohtaisia muutoksia. Jopa saman mikro-ohjaimen eri C-kääntimien kesken siirrettävyys on lähinnä mainoslause. Toki se on helpompaa saman, kuin eri mikro-ohjainperheiden kesken Sulautetut järjestelmät ja ANSI C C-kieli on hyvin standardisoitu. Standardointi mahdollistaa sen, että kieli on helposti siirrettävissä eri ympäristöihin (eri mikro-ohjaimille). Samalla se takaa, että käyttövarmuus, ylläpidettävyys ja suoritustehokkuus ovat hyvät. ANSI, American National Standards Institute, on vuodesta 1983 alkaen huolehtinut C-ohjelmien yhteensopivuudesta. Ennen sitä kaikki ohjelmoijat noudattivat normina Ritchie ja Kerninghan kirjaa The C Programming Language. ANSI C standardi valmistui 1989 ja sitä on myöhemmin (1999) täydennetty. Kun ohjelmassa käytetään pelkästään ANSI-standardin mukaista koodia, se on käännettävissä eri ympäristöihin ja kääntämisen voi tehdä kaikilla normin mukaisilla C- työkaluilla. ANSI C määrittää C-kielen lisäksi myös standardikirjaston (Standard Library), jossa määritetään ne perusfunktiot, jotka ovat käyttävissä eri ympäristöissä ja josta voi poimia useaan eri tilanteeseen ja ongelmaan sopivan ohjelmamoduulin. Valmiita funktioita löytyy mm. käyttöjärjestelmän käsittelyyn, muotoiltuun syötteeseen ja tulostukseen, muistin varaamiseen, merkkijonojen käsittelyyn jne. Normi esittää yksityiskohtaisesti kunkin valmiin funktion toiminnan. 4
5 Mitä lähempänä laitteistoa ollaan, sitä vähemmän voi käyttää yleiskäyttöisiä valmiita ratkaisuja. Standardinmukaista ANSI C:tä ei oikeastaan ole olemassa sulautetuille järjestelmille. Suurin osa sen kirjastoista on aivan liian raskasta 8-bittiselle mikro-ohjaimelle. Toisaalta laiteläheisyys edellyttää suuren määrän koodia, jota ei ole standardoitu. Mikä on C99? ISO 9899 on uusin standardi eli C99. - mitaltaan muuttuvat taulukot, koko voidaan määrittää ajonaikaisesti - // kommentit C++-kielestä - Boolean tyyppi, stdbool.h - helpommat muuttujamäärittelyt - uusia tietotyyppejä vaativaan laskentaan - funktiolla on oltava paluutyyppi, return type - inline-avainsana, pienet usein kutsuttavat funktiot voidaan kääntää konekieliseksi koodiksi ilman hyppykäskyjä tai pinon käsittelyä. Suoritus nopeutuu. Kaupalliset C-kääntimet ovat jäämässä pois tuotannosta, koska C++ tullut tilalle. Siksi gcc ja sen AVRversio avr-gcc valtaavat alaa. Lisätietoja C-standardien saatavuudesta: < Standardi on kielen "lakikirja". Standardin tehtävänä on olla tiivis ja yksiselitteinen.. WinAVR-paketti sisältää oman kirjaston, jossa on useita standardikirjaston funktioita, mm. merkkijonon käsittelyyn sstrcpy, strlen, matematiikkafunktioita kuten sin, cos, sqrt, pow, i-o-funktioita kuten printf ja scanf. Kaikkia ei voi, eikä kannata konfiguroida, koska ne ovat esim. liian suuria. Toisaalta siinä on paljon AVR-spesifisiä funktioita. Perimmäisenä pyrkimyksenä kuitenkin standardin noudattaminen. Sulautettujen järjestelmien koodikirjastoon kukin kääntimen valmistaja joutuu tekemään suuren joukon kyseisen prosessorin (mikro-ohjaimen) läheisiä, standardiin kuulumattomia funktioita. Näiden funktioiden määrä ja laatu ovat hyvin ratkaisevia tekijöitä, kun sopivaa käännin-ohjelmaa valitaan. Myös yksityinen ohjelmoija voi kirjoittaa omia - tai käyttää muiden valmistamia funktioita, jos oma järjestelmä edellyttää erityistarpeita. Hyvin tehty oma funktio on yleiskäyttöinen ja antaa lisämukavuuksia koodaamiseen. 5
6 GCC, GNU C Compiler GCC tarkoittaa nykyään GNU Compiler Collection, koska sillä voi kääntää C:n lisäksi myös C++, Java, Fortran, Ada, kieliä ja se tukee mm. Alpha, Intel x86, Motorola 68k, MIPS, PowerPC, ARM, AVR, Motorola HC11/12 ohjaimia. Ristikäännin Sulautettujen laitteiden ohjelmia kehitetään muussa kuin kohdeympäristössä (PC), jolloin tarvitaan ristikäännin. Ristikäännin toimii siis PC-koneessa (Pentium, AMD), mutta koodi käännetään kohdeprosessorin konekoodiksi (esim. AVR). Koska ANSI-C ei suoraan tue rekisterien käyttöä esim. symbolisen konekielen tavoin (LDI r16,8) siksi laiteläheisessä ohjelmoinnissa tarvitaan erityisen paljon rekistereiden manipulointia makrojen tai erikoiskirjastofunktioiden avulla. Miksi C eikä asm? Assembly eli lyhyesti asm, on matalan tason ohjelmointikieli ja se on aina laitteeseen (mikro-ohjain) sidottu. Oikeasti assembly on konekoodia, jonka konekielen käskyt on muutettu apusanoiksi eli muistikkaiksi, mnemonics, jotta ne olisivat koodaajan helpommin hallittavissa. Koska asm on laiteläheinen, sen koodi on suoraan cpu:n komentamiseen tarkoitettuja yksinkertaisia käskyjä, ja niitä oltava paljon. Se vaatii ohjelmoijalta kohtuutonta ja turhaa muistamista. Ohjelman tekeminen asmilla on todella suuritöistä. Tämänpäivän 8-bittiset ohjaimet ovat tehokkuudeltaan aivan toista kuin vuosikymmen sitten, joten ne antavat mahdollisuuden tehdä monipuolisia sovelluksia, niin laite- kuin ohjelmatasollakin. Jotta työ olisi muutakin kuin puuhastelua, ammattimaisuus edellyttää koodausta korkeamman tason kielellä. Muistathan, että korkean tason kielenä yksi C-käsky käännettynä käsittää (joskus hyvinkin) monta asmkäskyä. Kun ohjelmoidaan C-kielellä, tai jollain muulla korkean tason kielellä, CPU:n sisäinen toiminta ja rekisterit voidaan ainakin osittain unohtaa. C-käännin hoitakoon sen. Opiskeluvaiheessa MCU:n sisäisen rakenteen ja toiminnan haltuunotto on tärkeää, sillä sitä tietämystä tarvitaan jatkuvasti uusien asioiden omaksumiseen. Mutta kun ne hallitaan, ts. ammattisanasto ja työkalut hallitaan, voidaan keskittyä ongelman ratkaisuun eli sovellusohjelman koodaamiseen. Toinen tärkeä ominaisuus on siirrettävyys, portability. Jos jostain syystä on vaihdettava MCU toiseen, C-koodin siirtäminen siihen on huomattavasti kevyempi toimenpide kuin kaiken koodaaminen uudelleen asmilla. Porttaamisessa auttaa, jos on mahdollista toteuttaa koodia mahdollisimman paljon C-kielen standardikirjasto-funktioilla, sillä ne soveltuvat sellaisenaan käyttöön uudessakin ympäristössä. 6
7 Ja mikä lienee tärkeintä; korkean tason kielessä voit keskittyä oikeaan ohjelmointiin eli algoritmien suunnitteluun. Vaikka toisaalta; rekisterien ja niiden bittien manipuloinnista ei laiteläheisessä sulautettujen systeemien ohjelmoinnissa koskaan päästä eroon. Onneksi. Molempi parempi Assemblyä käytetään C-kielen sisällä kun kyseessä on koodin aikakriittiset osiot (nopeus, synkronointi). Siksi koodaajan tulee osata ainakin käyttämänsä mikro-ohjaimen assembly-koodin perusteet. Netistä lainattua: Nyky-C:n sijasta voisi ehkä harkita C++:n käyttöä sulautetuissa järjestelmissä, sillä C++:ssä voi käyttää korkeampaa abstraktio-tasoa. C++:lla voi tehdä tehokkuudeltaan C:n veroista koodia ja oikeastaan C++ toteuttaa paremmin C-mäisyyden lähtökohdat kuin nyky-c. Special note: The C language does not define any mechanism for using different address spaces. As a result, each compiler has defined it's own mechanism for dealing with this aspect of Harvard architecture for the AVR. C, by default, assumes everything exists in the same address space. C-kieli olettaa, että ohjelmakoodi ja data sijaitsevat samassa muistiavaruudessa. Miten korkean tason kielestä konekoodia? Assembler on ohjelma, joka kääntää symbolisesta konekielestä (assembly) konekoodia ennen ohjelman ajoa. Tulkki, Interpreter on ohjelma, joka tulkitsee ohjelman käskyjä rivi kerrallaan ohjelman ajon aikana. Tästä seuraa, että ohjelman ajo on hidasta. Hyvä tulkkiohjelma on iso ja monimutkainen, joten se tarvitsee paljon muistia. Käyttö on hankalaa, ensin ladataan tulkki, sitten vasta varsinainen ohjelma. Käännin, Compiler on ohjelma, jonka avulla lähdekoodi käännetään ennen ohjelman ajoa toimivaksi ajokelpoiseksi koodiksi. Se on nopea, koska CPU osaa ajaa suoraan käännettyä koodia. Käänninohjelma on iso ja monimutkainen, mutta sitä ei tarvita enää ohjelman ajon aikana. Itse ohjelma ei tarvitse paljon muistia. 7
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ä.
Lisätiedot4. Lausekielinen ohjelmointi 4.1
4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,
LisätiedotOngelma(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
LisätiedotLuento 1 Tietokonejärjestelmän rakenne
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
LisätiedotLuento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
LisätiedotLuento 1 Tietokonejärjestelmän rakenne
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Luento
LisätiedotLuento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
LisätiedotConcurrency - 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...
LisätiedotTietokoneohjelman anatomia Mikä on tietokoneohjelma ja tietokonekieli
Tietokoneohjelman anatomia Mikä on tietokoneohjelma ja tietokonekieli PUNOMO NETWORKS OY 28.9.2017 pva https://punomo.fi/?p=52266&preview=true Nothing is particularly hard if you devide it into small jobs.
LisätiedotAS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin
AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013
Lisätiedot4. 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ätiedotLuento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus
Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän e eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokone- järjestelmäj ä Käyttäjä Tietokonelaitteisto Oheislaitteet
LisätiedotBL40A1810 Mikroprosessorit, harjoitus 1
BL40A1810 Mikroprosessorit, harjoitus 1 Käytettävä laitteisto Kurssin opetuslaitteistona käytetään Legon MINDSTORMS laitteita, jonka pääosia ovat ohjelmoitava NXT-yksikkö (Atmel ARM7, 64k RAM, 256k Flash),
LisätiedotSulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.
Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. On arvioitu, että maailmassa on tällä hetkellä enemmän sulautettuja
LisätiedotC++ Kuva 1-1. C- ja C++ kielien perustana olevat kielet.
1. JOHDANTO C-kieli on perustana useille muille ohjelmointikielille. Esimerkiksi C++-kieli on kehitetty C- kielestä, Java- ja C#-kielen syntaksin perustana on toiminut C-kieli ja useat muutkin ohjelmointikielet
LisätiedotTIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?
Miksi moniprosessorijärjestelmä? Laskentaa voidaan hajauttaa useammille prosessoreille nopeuden, modulaarisuuden ja luotettavuuden vaatimuksesta tai hajauttaminen voi helpottaa ohjelmointia. Voi olla järkevää
LisätiedotTähtitieteen käytännön menetelmiä Kevät 2009
Tähtitieteen käytännön menetelmiä Kevät 2009 2009-01-12 Yleistä Luennot Luennoija hannu.p.parviainen@helsinki.fi Aikataulu Observatoriolla Maanantaisin 10.00-12.00 Ohjattua harjoittelua maanantaisin 9.00-10.00
LisätiedotSoveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen
Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen ohjelmointiin Jukka Talvitie Valvoja: Professori Jorma Jormakka Paikka: TietoEnator oyj Ongelma Ideologia Lifebelt
LisätiedotKoodaamme 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.
LisätiedotOngelma(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ä
LisätiedotÄ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
LisätiedotLuento 1 (verkkoluento 1) Tietokonejärjestelmä
Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä This image cannot currently be displayed.
LisätiedotKoottu 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ätiedotOHJELMISTOKEHITYS -suuntautumisvaihtoehto
OHJELMISTOKEHITYS -suuntautumisvaihtoehto Suuntautumisvaihtoehdon esittely 1. vuoden opiskelijoille Kari Laitinen www.oamk.fi/~karil/opetus.html Ohjelmistokehitys -opintosuunnan valitsevista henkilöistä
LisätiedotOngelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?
Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? 2013-2014 Lasse Lensu 2 Systeemiohjelmat ovat tietokoneen laitteistoa lähellä olevia ohjelmia,
Lisätiedottää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
LisätiedotMikro-ohjain µc harjoitukset - yleisohje
Mikro-ohjain µc harjoitukset - yleisohje Keijo Salonen 20. marraskuuta 2016 Sisältö 1 Esittely 2 2 Arduino UNO R3 mikro-ohjain kortti 2 3 Koekytkentälevy 5 4 Elektroniikan komponentit 7 5 Työkalut ja muut
LisätiedotChapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen
Chapel TIE-20306 Ryhmä 91 Joonas Eloranta Lari Valtonen Johdanto Chapel on Amerikkalaisen Cray Inc. yrityksen kehittämä avoimen lähdekoodin ohjelmointikieli. Chapel on rinnakkainen ohjelmointikieli, joka
Lisätiedot2.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
LisätiedotELM 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................................
LisätiedotC-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
LisätiedotTIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos
TIES325 Tietokonejärjestelmä Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos Kevät 2008 Luku 1 Tietokone abstraktina yksikkönä Tietokoneen asbtratiotasoa sen muotoisena kuin me sen tällä hetkellä
LisätiedotPerinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.
TIETOKONEOHJELMIEN RAKENNE Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. Teollisuusautomaation ohjelmiin on lainattu runsaasti perinteisen
Lisätiedot1. Olio-ohjelmointi 1.1
1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja
LisätiedotOhjelmointi 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
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Kurssin sisältö pääpiirteittäin Tarvittavat pohjatiedot Avainsanat Abstraktio Esimerkkiohjelman tehtäväkuvaus Abstraktion käyttö tehtävässä Abstrakti tietotyyppi Hyötyjä ADT:n
LisätiedotOhjelmoinnin 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ätiedotCUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen
CUDA Moniydinohjelmointi 17.4.2012 Mikko Honkonen Yleisesti Compute Unified Device Architecture Ideana GPGPU eli grafiikkaprosessorin käyttö yleiseen laskentaan. Nvidian täysin suljetusti kehittämä. Vuoden
LisätiedotITKA203 Käyttöjärjestelmät, kesä Kesäkurssi Opettaja: Paavo Nieminen
Kesäkurssi 22.5.-27.7.2007 Opettaja: Paavo Nieminen Luento 3 24.5.2007 Ohjelmointi ja ohjelmointikieli suoritus ja konekieli Aiheet: Pääteyhteys ja interaktiivisen shellin käytön idea;
LisätiedotLaiteläheinen C-kieli, mitä C-käännösprosessissa tapahtuu
Laiteläheinen C-kieli, mitä C-käännösprosessissa tapahtuu PUNOMO NETWORKS OY 25.8.2016, pva Sisältö 1. Komentoriviltä kääntäminen - jotta selviää miten toimitaan ja mitä terminologiaa eli käsitteitä on
LisätiedotPythonin 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.NET ajoympäristö. Juha Järvensivu 2007
.NET ajoympäristö Juha Järvensivu juha.jarvensivu@tut.fi 2007 Käännösprosessi C# lähdekoodi C# kääntäjä CILtavukoodi JITkäännös Ajettava natiivikoodi Kehitysympäristössä ohjelmoijan toimesta Ajonaikana.NET
LisätiedotDart. Ryhmä 38. Ville Tahvanainen. Juha Häkli
Dart Ryhmä 38 Ville Tahvanainen Juha Häkli 1.LYHYESTI Dart on luokkapohjainen, yksiperintäinen, puhdas olio-ohjelmointikieli. Dart on dynaamisesti tyypitetty. Sovellukset on organisoitu modulaarisiksi
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotOhjelmointi Linuxissa. Sisällysluettelo. 1. Mitä tarvitaan sovellusten tuottamiseen? Tehnyt: Antti Martikainen (1300698)
Ohjelmointi Linuxissa Tehnyt: Antti Martikainen (1300698) Sisällysluettelo 1. Mitä tarvitaan sovellusten tuottamiseen?...1 2. GNU Toolchain...2 3. Tekstieditorit...2 4. Hello world-sovelluksen luominen
LisätiedotTIE 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
LisätiedotKontrollerin sisäisten komponenttien käytöstä. Vielä vähän asiaa sisäisten lohkojen käytöstä
Mikrokontrollerit Kontrollerin sisäisten komponenttien käytöstä Mikrokontrollerit Vielä vähän asiaa sisäisten lohkojen käytöstä Sulautetussa järjestelmässä laitteiston ominaisuudet hallitaan ohjelmistolla.
LisätiedotOhjelmointitaito (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ätiedot11/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
LisätiedotTä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ätiedotAVRStudion käyttö debuggaukseen. Emulaattori 24.8.2008 pva
AVRStudion käyttö debuggaukseen. Emulaattori 24.8.2008 pva Hän joka mikro-ohjain-oppia ilmaiseksi jakaa, hän elää ja kuolee rikkaana. - Mr Ben Mable Yleistä Perusteellisesti ja huolella suunniteltu koodi
LisätiedotVirtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).
1 Virtualisoinnin avulla voidaan purkaa suora linkki suoritettavan sovelluksen (tai käyttöjärjestelmän tms.) ja sitä suorittavan laitteiston välillä. Näin saavutetaan joustavuutta laitteiston käytössä.
LisätiedotLaitelä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
Lisätiedot1. 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
LisätiedotTietotekniikan koulutusohjelman suuntautumisvaihtoehdot
Tietotekniikan koulutusohjelman suuntautumisvaihtoehdot 1. vuosi Perusopinnot 2. vuosi 3. vuosi ELEKTRONIIKAN SUUNNITTELU JA TESTAUS MOBIILI TIETOLIIKENNE OHJELMISTOJEN KEHITYS 4. vuosi Ohjelmistojen kehitys
LisätiedotTT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)
TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu
LisätiedotLaiteläheinen C-kieli, hello.c
Laiteläheinen C-kieli, hello.c PUNOMO NETWORKS OY 23.8.2016 pva Oletus Sinulla on GNU/Linux-Mint-koneessa (tai vastaava Windows) NetBeans-IDE konfiguroituna toimimaan SSH-etäkäytössä RaspberryPi:n kanssa.
LisätiedotAlgoritmit 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
LisätiedotC-kieli mahdollistaa hyvin tiiviin ja samalla sekavan tavan esittää asioita, kuitenkin hyvän ohjelman tulisi olla mahdollisimman helppolukuinen ja
1. C-kieli yleiskäyttöinen ohjelmointikieli, standardoitu 1990. siirrettävä laiteläheinen pieni ydin, monimutkaiset kokonaisuudet rakennetaan aliohjelmakirjastojen avulla. direktiivit ja esikääntäjien
LisätiedotTest-Driven Development
Test-Driven Development Syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole keksiä kaikkia mahdollisia
LisätiedotSe mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.
Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta
LisätiedotOhjelmoinnin 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ätiedotTutoriaalilä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
LisätiedotTest-Driven Development
Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole
LisätiedotOhjelmistojen mallintaminen, mallintaminen ja UML
582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti
LisätiedotKääntäjän virheilmoituksia
OHJ-1101 Ohjelmointi 1e 2008-09 1 Kääntäjän virheilmoituksia Kun progvh2 ohjelma käännetään antaa tutg++ seuraavat virheilmoitukset ja varoitukset: proffa> tutg++ progvh2.cc progvh2.cc:29:13: warning:
LisätiedotAlgoritmit. 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.
LisätiedotKäyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen
Käyttöjärjestelmien historia Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen Käyttöjärjestelmien jaottelu Voidaan jaotella erilaisin menetelmin Aikajana (määrä,
LisätiedotIDE asennus, Integrated Development Environment Atmelin AVR-mikro-ohjaimille. 15.8.2008 pva
IDE asennus, Integrated Development Environment Atmelin AVR-mikro-ohjaimille. 15.8.2008 pva Pienen maan armeija on samaa tarkoitusta varten kuin päivystävän upseerin pistooli. Omia varten. - Arvo Salo
Lisätiedot2. 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ätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien
LisätiedotApuja ohjelmointiin» Yleisiä virheitä
Apuja ohjelmointiin» Yleisiä virheitä Ohjelmaa kirjoittaessasi saattaa Visual Studio ilmoittaa monenlaisista virheistä "punakynällä". Usein tämä johtuu vain siitä, että virheitä näytetään vaikket olisi
LisätiedotLoppukurssin järjestelyt C:n edistyneet piirteet
C! Loppukurssin järjestelyt C:n edistyneet piirteet 30.3.2017 Ohjelmassa Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Esikääntäjä Parametrilistat Funktio-osoittimet Kunniamainintoja Kuura
LisätiedotCommon Language Runtime
hyväksymispäivä arvosana arvostelija Common Language Runtime Jukka Katajisto Helsinki 16.4.2005 Ohjelmointikielten kääntäjät -kurssin seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö
LisätiedotKäyttöjärjestelmän rakenne
Käyttöjärjestelmän rakenne Tietokonejärjestelmä = Laitteisto + ohjelmisto Sovellus saa laitteiston käyttöönsä kj:n avustuksella CPU ja muisti Oheislaitteet KJ tarjoaa laitteiston käytössä tarvittavat palvelunsa
LisätiedotOhjelmistojen mallintaminen
Ohjelmistojen mallintaminen - Mallit - Ohjelmiston kuvaaminen malleilla 31.10.2008 Harri Laine 1 Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta
LisätiedotLoppukurssin järjestelyt
C! Loppukurssin järjestelyt 29.3.2018 Ohjelmassa Yhteenvetoa palautteesta Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Kysyttävää / kerrattavaa 10-kierroksen asioista? Aikatauluista 10. kierroksen
Lisätiedot16. 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
LisätiedotTietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen
Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:
LisätiedotOhjelmoinnin 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.
LisätiedotTietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä
Tietojenkäsittelyn perusteet 2 Lisää käyttöjärjestelmistä 2011-02-09 Leena Ikonen 1 Systeemiohjelmat Systeemiohjelmiin kuuluvat Kääntäjät ja tulkit (+debuggerit) Käyttöjärjestelmä Linkittäjät Lataajat
LisätiedotProlog kielenä Periaatteet Yhteenveto. Prolog. Toni ja Laura Fadjukoff. 9. joulukuuta 2010
kielenä 9. joulukuuta 2010 Historia kielenä Historia Sovelluksia kehitettiin vuonna 1972 Kehittäjinä ranskalaiset Pääkehittäjä Alain Colmerauer Philippe Roussel programmation en logique Robert Kowalski
LisätiedotKYMENLAAKSON AMMATTIKORKEAKOULU
1 KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka Ole Halonen GNU-ohjelmointityökalut Linux-järjestelmät 206101310 Seminaarityö 22.11.2012 2 Sisällysluettelo 2 1 Johdanto
LisätiedotC++ Ohjelmoijan käsikirja. Johdanto
Johdanto C++ Ohjelmoijan käsikirja Johdanto Tervetuloa Inside C++-kirjan pariin. Tämä on opaskirja standardi C++:n käyttöön. Käsittelemme kirjassa kaikki syntaksin, kieliopin, olio-ohjelmoinnin ja standardikirjastojen
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Aliohjelmat, foreign function interface Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 25. 3. 2013 Sisältö 1 Aliohjelmien käyttäminen
LisätiedotOngelma(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?
LisätiedotSisä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ätiedotC-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.
Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen
Lisätiedot16. 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ätiedotTietorakenteet 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ä
LisätiedotPERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki
PERL TIE-20306 Principles of Programming Languages Ryhmä 4: Joonas Lång & Jasmin Laitamäki 1. Johdanto Perl on ohjelmointikielten perhe, johon kuuluu Perl 5 ja Perl 6. Kielet ovat kuitenkin erilliset ohjelmointikielet
Lisätiedot13/20: Kierrätys kannattaa koodaamisessakin
Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy
LisätiedotDynaaminen muisti. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät 2017.
C! Dynaaminen muisti 9.2.2017 Agenda Kertausta merkkijonoista Dynaaminen muisti Valgrind-perusteet ja esimerkkejä Seuraava luento to 2.3. Ei harjoituksia arviointiviikolla 13.2. 17.2. 2 Palautetta merkkijonoihin
Lisätiedot12 Mallit (Templates)
12 Mallit (Templates) Malli on määrittely, jota käyttämällä voidaan luoda samankaltaisten aliohjelmien ja luokkien perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
LisätiedotSisä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
LisätiedotAliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
LisätiedotImperatiivisten ohjelmien organisointiparadigmojen. historia
Imperatiivisten ohjelmien organisointiparadigmojen historia Timo Tapanainen Helsingin yliopisto, tietojenkäsittelytieteen laitos Tietojenkäsittelytieteen historia -seminaari, kevät 2007 Sisältö Paradigma,
LisätiedotImperatiivisten ohjelmien organisointiparadigmojen historia
Imperatiivisten ohjelmien organisointiparadigmojen historia Timo Tapanainen Helsingin yliopisto, tietojenkäsittelytieteen laitos Tietojenkäsittelytieteen historia -seminaari, kevät 2007 Sisältö Paradigma,
Lisätiedot