OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012



Samankaltaiset tiedostot
OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Ohjelmoinnin perusteet Y Python

1. Keskusyksikön rakenne

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Johdanto kurssin sisältöön

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

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

811120P Diskreetit rakenteet

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

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

Kääntäjän virheilmoituksia

Algoritmit 1. Luento 1 Ti Timo Männikkö

Ohjelmoinnin perusteet Y Python

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

Algoritmit 1. Demot Timo Männikkö

Ohjelmoinnin perusteet Y Python

Tietotekniikan valintakoe

2 Konekieli, aliohjelmat, keskeytykset

Ajattelemme tietokonetta yleensä läppärinä tai pöytäkoneena

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

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

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

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmoijan binaarialgebra ja heksaluvut

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

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

Java-kielen perusteet

Plagioinnin tunnistaminen lähdekielisistä ohjelmista

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

Älykännykät ovat pieneen tilaan paketoituja, mutta suuret ominaisuudet omaavia tietokoneita.

17/20: Keittokirja IV

Osoitin ja viittaus C++:ssa

Ohjelmointi 1. Kumppanit

Ohjelmoinnin perusteet Y Python

811120P Diskreetit rakenteet

Digitaalitekniikan matematiikka Luku 10 Sivu 1 (14) Lukujärjestelmämuunnokset. 2 s s

Algoritmit 1. Demot Timo Männikkö

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

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

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

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Tehtävä 1. TL5302 Olio-ohjelmointi Koe Malliratkaisuja. Tässä sekä a)- että b)-kohdan toimiva ratkaisu:

Ohjelmoinnin peruskurssi Y1

Ohjelmointi 1 Taulukot ja merkkijonot

Ohjelmoinnin peruskurssi Y1

Ongelma(t): Mistä loogisista lausekkeista ja niitä käytännössä toteuttavista loogisista piireistä olisi hyötyä tietojenkäsittelyssä ja tietokoneen

Tietokoneen toiminta (Computer Organization I)

T Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

Paavo Räisänen. Ohjelmoijan binaarialgebra ja heksaluvut.

Harjoitustehtäväkierros 1

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on.

Tutoriaaliläsnäoloista

Harjoitus 3 (viikko 39)

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

C++ rautaisannos. Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout:

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

Ohjelmoinnin peruskurssi Y1

Python-ohjelmointi Harjoitus 2

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

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

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

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

Kappale 20: Kantaluvut

Tietokoneen muisti nyt ja tulevaisuudessa. Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu

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

Ohjelmoinnin perusteet Y Python

Tietokoneen toiminta (Computer Organization I)

811120P Diskreetit rakenteet

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

T harjoitustehtävät, syksy 2011

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

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

Tietokoneen toiminta, K Tavoitteet (4)

Algoritmit 2. Luento 13 Ti Timo Männikkö

KOODAUSPLÄJÄYS. Ohjelmoinnin perusteet

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Algoritmit 1. Luento 11 Ti Timo Männikkö

Johdatus Ohjelmointiin

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Transkriptio:

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 Luento 8: Tietokoneen toiminta, osa 1 Tekijät: Antti Virtanen, Timo Lehtonen, Matti Kujala, Kirsti Ala-Mutka, Petri M. Gerdt et al.

Päivystysaika Maanantaisin klo 08-09 TE112 Tietotalo, ohjelmistotekniikan laitos, Zipin vieressä olevasta lasiovesta sisälle ja heti ensimmäinen käytävä oikealle Paikalla todennäköisesti myös tiistaisin ja torstaisin klo 12 14... Tapaamisen voi sopia myös sähköpostitse, eeva.laukkanen@tut.fi

Bonustehtävien uusi palautusaikataulu 16.9.2012 23.9.2012 30.9.2012 7.10.2012 14.10.2012 Bonustehtävät tarkastetaan ja hyväksytään kunkin viikon keskiviikkoon mennessä. Pistesaldon voi tarkastaa Moodlen arvioinnit-sivulta, kuten viikkoharjoituspisteetkin.

Harjoitustyön tehtävänanto julkaistu tänään! Essee tietoturvasta Tarkka tehtävänanto sisällysluetteloineen löytyy kurssin Moodlesivulta Parityö, paria voi etsiä Moodlessa Deadline 14.10.2012 eli tenttiviikkoa edeltävänä sunnuntaina Kuten myös kurssin harjoitustehtävien deadline...

Vanhoille opiskelijoille Koska kurssi järjestetään viimeistä kertaa tänä lukuvuonna, hyväksytään sekä aikaisempina vuosina palautetut esseet että viikkoharjoitukset...tietysti vain hyväksytyt suoritukset näistä... Hyväksytty essee Kokonainen harjoituspaketti Bonustehtäviä ei voi kierrättää aikaisemmilta vuosilta Kurssin kotisivulta löytyy suoritustentarkastusautomaatti Vaatii intrakirjautumisen

Harjoitustyöstä: yleisiä ongelmia Lähdeviitteet tekstin seassa! Sekä tietysti lähdeluettelo Mistä löytyvät viittaustekniikat...? Nettilähteisiin viittauspäivämäärä Lähdemateriaalin laatu (esim. Wikipedia ok) Plagiointi tästä jää kiinni... Palautus pdf-muodossa muista formaateista seuraa bumerangi kysykää viikkoharkoissa jos ette osaa muuntaa dokumenttia oikeaan muotoon! Mikäs olikaan tämä bumerangi? Palautusdeadline on ehdoton Vain toinen parista palauttaa työn Muistakaa merkitä kummankin tekijän tiedot työhön!

Luennon aiheet Mikä tietokone on Algoritmin käsite Ohjelman käsite Tietokoneen perusrakenne Prosessorin eli suorittimen toiminta

Tietokoneen toiminta ja rakenne Tietokoneen sisäinen toiminta ja rakenne ei näy suoraan käyttäjälle Onko sen ymmärtäminen hyödyllistä? Vrt: vaatiiko autolla ajaminen tuntemusta auton toiminnasta? Yht äkkiä se vain teki niin Monien käyttäjälle näkyvien asioiden ymmärtäminen on vaikeaa, ellei tiedä miten koneen sisällä tapahtuu Tietokoneiden perusrakenne ja toimintaperiaatteet ovat pysyneet samoina pitkään Ei ole oletettavissa että mitään radikaalia muutosta tapahtuu lähitulevaisuudessa Samat lainalaisuudet ja periaatteet pätevät niin kännykkään, mp3-soittimeen kuin pöytäkoneeseenkin Tällä kurssilla (niin kuin yliopistossa yleensäkin) pyritään välttämään nopeasti vanhenevan tiedon opetusta

Mikä on tietokone? Tietokone on laite, jossa on tiedon syöttö- ja tulostusmahdollisuus Tietokone tuottaa syöttötietojen perusteella tulostietoja Tietokoneella on muisti, jossa voidaan säilyttää Tietoa jota tarvitaan, kun syöttötiedoista tehdään tulostietoa Ohjelmia, eli ohjeita, joiden mukaisesti syöttötiedoista muodostetaan tulostietoja Tietokone Syöttötiedot (input) Muisti Ohjelma Tulostiedot (output)

Miten tietokone toimii? Kaikki, mihin tietokone kykenee, on sisään tulevan tiedon varastointi, muokkaus ja ulostulevan tiedon tuottaminen Kaikki tämä tapahtuu "mekaanisesti" koneessa olevien ohjeiden, eli ohjelmien, mukaisesti Syöttötietojen lukeminen ja tulostietojen tuottaminen tapahtuu usein samaan aikaan Suurin osa ohjelmista on nykyisin interaktiivisia Interaktiivinen tarkoittaa vuorovaikutteista Interaktiivinen ohjelma "keskustelee" käyttäjän kanssa jatkuvasti Vastakohtana ohjelmat, jotka lukevat kaikki syöttötiedot, raksuttavat vähän aikaa ja tulostavat sitten vastauksen Tällaisia ohjelmia kutsutaan eräohjelmiksi, ne käsittelevät erän tietoa kerralla

Mitä tietokone ei ole? Tietokone on vain erittäin nopea laskukone ja tiedon tallentaja; tietokone ei Päätä omasta käytöstään Syötä itse itseensä tarvittavia tietoja Arvaa, mitä käyttäjä haluaisi tehdä Tee mitään ylimääräisiä johtopäätöksiä laskemiensa tulosten perusteella Osaa ottaa huomioon mitään, mitä niille ei ole erikseen kerrottu Tietokoneohjelmat ovat ihmisten tekemiä, ja lähes kaikki tietokoneiden virheet johtuvat ihmisten (ohjelmoijien) ohjelmiin tekemistä virheistä Kone ei siis tee virheitä, mutta ohjelmoija tekee

Millaisia ovat yleisimmät tietokoneet? Sulautettu järjestelmä on tietokonejärjestelmä, joka on rakennettu laitteen sisään siten, ettei käyttäjän tarvitse tietää mitään laitteen sisäisestä toiminnasta. Wikipedia (27.8.2006), URL: http://fi.wikipedia.org/wiki/sulautettu_j%c3%a4rjestelm%c3%a4 Myös näissä laitteissa on muistia ja jonkinlainen ohjelma Näyttölaitetta tai näppäimistöä ei välttämättä ole tai muitakaan tuttuja tietokoneen osia Esimerkkejä: pesukone, auto, kännykkä, DVD-soitin, liikkuvat ja älykkäät työkoneet

Tietokoneohjelma ja algoritmi Edellä kävi ilmi, että tietokoneen toimintaa ohjaavat erilaiset tietokoneohjelmat Tietokoneohjelma-käsitteen ymmärtäminen on käyttäjälle vähintään yhtä tärkeää, kuin jonkinlainen kuva tietokoneen rakenteesta... Olennaisinta tietokoneen toiminnan kannalta on kuitenkin ymmärtää käsite algoritmi Ohjelmat perustuvat algoritmeihin

Mikä on algoritmi? J. G. Brookshear: "Vapaamuotoisesti sanottuna algoritmi on joukko ohjeita, jotka ohjaavat tehtävän suorittamista." "Tarkemmin, algoritmi on äärellinen joukko täsmällisiä, suoritettavissa olevia ohjeita, jotka ohjaavat päättyvää tehtävän suoritusta. Koska algoritmin käsite on näin laaja, eivät algoritmit liity yksinomaan pelkästään tietokoneisiin Esim. keittokirja on itse asiassa kokoelma algoritmeja, joita seuraamalla kokkaamisen pitäisi onnistua Vastaavasti koottavan kirjahyllyn mukana pitäisi tulla algoritmi, jonka avulla palasista saa koottua kirjahyllyn... Algoritmeja ovat siis kaikki täsmälliset suoritusohjeet Algoritmin ei tarvitse selittää "miksi", vaan ainoastaan "miten

Esimerkki algoritmista Jauhelihakastike (4 annosta) Ainekset: 400 g naudan jauhelihaa 1 tl suolaa 1/2 tl mustapippuria 1/2 ps (100 g) sipulikuutioita 1 tlk (500 g) yrttimaustettua tomaattimurskaa 1 ps (250 g) keittovihanneksia (pakaste) 1-2 tl basilikaa tai oreganoa 1. Ruskista jauheliha kuumalla pannulla omassa rasvassaan. 2. Mausta suolalla ja pippurilla. 3. Lisää sipulikuutiot, tomaattimurska ja keittovihannekset. 4. Anna hautua kannen alla noin 10 min, kunnes vihannekset ovat kypsiä. 5. Mausta lopuksi basilikalla tai oreganolla. Tarjoa kastike keitetyn spagetin ja parmesaanijuustoraasteen kanssa.

Toinen esimerkki algoritmista Positiivisen kokonaisluvun muuttaminen binääriluvuksi Vaihe 1: Jaa luku 2:lla ja pane jakojäännös muistiin Vaihe 2: Niin kauan kuin osamäärä ei ole 0, jaa uusin osamäärä kahdella ja pane jakojäännös muistiin Vaihe 3: Kun osamäärä on 0, luvun binääriesitys on jakojäännösten muodostama bittijono päinvastaisessa järjestyksessä Lähde: Brookshear, G,. B.: Tietotekniikka. Edita publishing Oy, Helsinki, 2003.

Toinen esimerkki algoritmista Positiivisen kokonaisluvun muuttaminen binääriluvuksi Vaihe 1: Jaa luku 2:lla ja pane jakojäännös muistiin Vaihe 2: Niin kauan kuin osamäärä ei ole 0, jaa uusin osamäärä kahdella ja pane jakojäännös muistiin Vaihe 3: Kun osamäärä on 0, luvun binääriesitys on jakojäännösten muodostama bittijono päinvastaisessa järjestyksessä Mikä on luvun 13 (DEC) binääriesitys? Muisti: Binääriesitys:? Lähde: Brookshear, G,. B.: Tietotekniikka. Edita publishing Oy, Helsinki, 2003.

Toinen esimerkki algoritmista Positiivisen kokonaisluvun muuttaminen binääriluvuksi Vaihe 1: Jaa luku 2:lla ja pane jakojäännös muistiin Vaihe 2: Niin kauan kuin osamäärä ei ole 0, jaa uusin osamäärä kahdella ja pane jakojäännös muistiin Vaihe 3: Kun osamäärä on 0, luvun binääriesitys on jakojäännösten muodostama bittijono päinvastaisessa järjestyksessä Mikä on luvun 13 (DEC) binääriesitys? 13 / 2: osamäärä 6, jakojäännös 1 Muisti: 1 Binääriesitys:? Lähde: Brookshear, G,. B.: Tietotekniikka. Edita publishing Oy, Helsinki, 2003.

Toinen esimerkki algoritmista Positiivisen kokonaisluvun muuttaminen binääriluvuksi Vaihe 1: Jaa luku 2:lla ja pane jakojäännös muistiin Vaihe 2: Niin kauan kuin osamäärä ei ole 0, jaa uusin osamäärä kahdella ja pane jakojäännös muistiin Vaihe 3: Kun osamäärä on 0, luvun binääriesitys on jakojäännösten muodostama bittijono päinvastaisessa järjestyksessä Mikä on luvun 13 (DEC) binääriesitys? 13 / 2: osamäärä 6, jakojäännös 1 6 / 2: osamäärä 3, jakojäännös 0 Muisti: 10 Binääriesitys:? Lähde: Brookshear, G,. B.: Tietotekniikka. Edita publishing Oy, Helsinki, 2003.

Toinen esimerkki algoritmista Positiivisen kokonaisluvun muuttaminen binääriluvuksi Vaihe 1: Jaa luku 2:lla ja pane jakojäännös muistiin Vaihe 2: Niin kauan kuin osamäärä ei ole 0, jaa uusin osamäärä kahdella ja pane jakojäännös muistiin Vaihe 3: Kun osamäärä on 0, luvun binääriesitys on jakojäännösten muodostama bittijono päinvastaisessa järjestyksessä Mikä on luvun 13 (DEC) binääriesitys? 13 / 2: osamäärä 6, jakojäännös 1 6 / 2: osamäärä 3, jakojäännös 0 3 / 2: osamäärä 1, jakojäännös 1 1 / 2: osamäärä 0, jakojäännös 1 Muisti: 1011 Binääriesitys:? Lähde: Brookshear, G,. B.: Tietotekniikka. Edita publishing Oy, Helsinki, 2003.

Toinen esimerkki algoritmista Positiivisen kokonaisluvun muuttaminen binääriluvuksi Vaihe 1: Jaa luku 2:lla ja pane jakojäännös muistiin Vaihe 2: Niin kauan kuin osamäärä ei ole 0, jaa uusin osamäärä kahdella ja pane jakojäännös muistiin Vaihe 3: Kun osamäärä on 0, luvun binääriesitys on jakojäännösten muodostama bittijono päinvastaisessa järjestyksessä Mikä on luvun 13 (DEC) binääriesitys? 13 / 2: osamäärä 6, jakojäännös 1 6 / 2: osamäärä 3, jakojäännös 0 3 / 2: osamäärä 1, jakojäännös 1 1 / 2: osamäärä 0, jakojäännös 1 Muisti: 1011 Binääriesitys: 1101 Lähde: Brookshear, G,. B.: Tietotekniikka. Edita publishing Oy, Helsinki, 2003.

Tehtävä: muunna 11 binääriluvuksi Positiivisen kokonaisluvun muuttaminen binääriluvuksi Vaihe 1: Jaa luku 2:lla ja pane jakojäännös muistiin Vaihe 2: Niin kauan kuin osamäärä ei ole 0, jaa uusin osamäärä kahdella ja pane jakojäännös muistiin Vaihe 3: Kun osamäärä on 0, luvun binääriesitys on jakojäännösten muodostama bittijono päinvastaisessa järjestyksessä Mikä on luvun 11 (DEC) binääriesitys? 11 / 2: osamäärä?, jakojäännös? Muisti: Binääriesitys:? Lähde: Brookshear, G,. B.: Tietotekniikka. Edita publishing Oy, Helsinki, 2003.

Tehtävä: muunna 11 binääriluvuksi Positiivisen kokonaisluvun muuttaminen binääriluvuksi Vaihe 1: Jaa luku 2:lla ja pane jakojäännös muistiin Vaihe 2: Niin kauan kuin osamäärä ei ole 0, jaa uusin osamäärä kahdella ja pane jakojäännös muistiin Vaihe 3: Kun osamäärä on 0, luvun binääriesitys on jakojäännösten muodostama bittijono päinvastaisessa järjestyksessä Mikä on luvun 11 (DEC) binääriesitys? 11 / 2: osamäärä 5, jakojäännös 1 5 / 2: osamäärä 2, jakojäännös 1 2 / 2: osamäärä 1, jakojäännös 0 1 / 2: osamäärä 0, jakojäännös 1 Muisti: 1101 Binääriesitys: 1011 Lähde: Brookshear, G,. B.: Tietotekniikka. Edita publishing Oy, Helsinki, 2003.

Kolmas esimerkki algoritmista Merkintä i <- 2 tarkoittaa: sijoita muuttujaan i arvo 2 Ks. http://www.cs.tut.fi/etaopetus/titepk/luku14/algoritmi.html#algoritmi

Mikä on tietokoneohjelma? 1/2 Tietokoneohjelma esittää tietyn algoritmin tietokoneen ymmärtämässä muodossa Koska tietokone ei ymmärrä ihmisten käyttämää kieltä, ei esim. keittokirjaa sellaisenaan voi naputtaa koneeseen ja tehdä kokkausrobottia Tietokone ei ymmärrä hölkäsen pöläystä siitä, mitä siihen syötetyllä ohjelmalla pyritään tekemään Koska tietokone on "tyhmä", tietokoneohjelmassa algoritmin ohjeet täytyy selittää rautalangasta vääntäen erittäin seikkaperäisesti Suurin osa tietokoneohjelmien virheistä johtuu siitä, että algoritmia ei ole esitetty tietokoneelle oikein tai koko algoritmi on alkujaankin ollut päin mäntyä

Mikä on tietokoneohjelma? 2/2 Yleensä algoritmia ei heti alkuun esitetä tietokoneen ymmärtämässä muodossa (bitteinä), vaan se kirjoitetaan ensin sopivaan ihmisen luettavaan välimuotoon jotain ohjelmointikieltä käyttäen Ohjelmointikielellä tehdystä ohjelmasta tietokone osaa itse tehdä sopivan bittijonon jonon Tietokone kääntää ohjelmointikielisen ohjelman itsensä ymmärtämään muotoon, siis ohjelmaksi Ohjelmointikielellä tehdyn ohjelman etuna on, että se on sekä ihmisen että koneen "ymmärrettävissä" (konehan ei mitään ymmärrä)

Esimerkki tietokoneohjelmasta #include <iostream> using namespace std; string kaanna (string mjono) { string kaannetty = ""; for (int i = mjono.size(); i>=0; i--) kaannetty += mjono[i]; return kaannetty; } int main() { int luku; string bittijono; cout << "Anna postiivinen kokonaisluku: "; cin >> luku; if (luku % 2) bittijono = "1"; else bittijono = "0"; while( luku / 2 > 0) { luku = luku / 2; if (luku % 2) bittijono += "1"; else bittijono += "0"; } cout << "Binaariluku: " << kaanna(bittijono) << endl; return 0; }

Esimerkki tietokoneohjelmasta #include <iostream> using namespace std; string kaanna (string mjono) { string kaannetty = ""; for (int i = mjono.size(); i>=0; i--) kaannetty += mjono[i]; return kaannetty; } 1 2 3 int main() { int luku; string bittijono; cout << "Anna postiivinen kokonaisluku: "; cin >> luku; if (luku % 2) bittijono = "1"; else bittijono = "0"; while( luku / 2 > 0) { luku = luku / 2; if (luku % 2) bittijono += "1"; else bittijono += "0"; } cout << "Binaariluku: " << kaanna(bittijono) << endl; return 0; }

Esimerkki tietokoneohjelmasta Tietokoneohjelma on algoritmi, joka on esitetty siten, että sen ymmärtää sekä ihminen että tietokone. Alla esitetty esimerkki on melko lähellä tällaista: 1. MovePaistinpannu(1); Laita paistinpannu hellan levylle 2. SetLevy(1, 6); Aseta hellan levyn lämpötilaksi 6 3. Wait( until temp = 100); Odota hetki, jotta pannu lämpenee 4. PutSomeOil(); Laita pannulle ruokaöljyä tai rasvaa 5. PutMetaLoaf(); Kaada jauheliha pannulle 6. do { Mix(); } until isbrown(); Sekoita, kunnes jauheliha on ruskeaa 7. AddFlavors(); Lisää mausteet

Tietokoneen perusrakenne 1/2 Nyt luodaan katsaus tietokoneen fyysiseen perusrakenteeseen Tietokoneen peruskomponentit ovat karkeasti yleistettyinä seuraavat: suoritin keskusmuisti oheislaiteohjaimet ja oheislaitteet väylä

Tietokoneen perusrakenne 2/2 Suoritin eli prosessori ohjaa koneen toimintaa Englanniksi CPU (Central Processing Unit) Keskusmuisti sisältää suoritettavan ohjelman ja käsiteltävät tiedot Oheislaiteohjaimet ohjaavat tietokoneeseen liitettyjä oheislaitteita ja kommunikoivat suorittimen ja muistin kanssa Väylä toimii kommunikaatiokanavana suorittimen, muistin ja oheislaiteohjainten välillä

Tietokoneen perusrakenne: oheislaitteet Oheislaiteohjainten kautta tietokoneeseen voidaan liittää erilaisia oheislaitteita Näiden avulla tietokone voi sitten olla yhteydessä ulkomaailmaan Näytön kautta voidaan välittää tietoa käyttäjälle Näppäimistöllä käyttäjä voi syöttää tietoa tietokoneeseen Kytkimiä, antureita ja moottoreita käyttäen voidaan tietokone liittää erilaisiin laitteisiin ja kojeisiin

Tietokoneen perusrakenne: keskusmuisti 1/3 Keskusmuisti on joukko muistipaikkoja, johon voidaan tallettaa lukuja Muistipaikkaa voi ajatella liitutaululle piirretyksi laatikoksi, johon mahtuu kirjoittamaan yhden luvun Muistipaikan sisältämä luku voidaan tulkita myös esim. kirjaimeksi tai suorittimen konekäskyksi. Muistipaikat on numeroitu nollasta alkaen 0, 1, 2 jne. Muistipaikan numeroa sanotaan yleensä muistiosoitteeksi. Muistipaikkoja on yleensä todella paljon, normaalissa kotimikrossakin muistipaikkoja on nykyisin ainakin 268435456 kappaletta. Muistia 256 MB, Miksi luku ei ole 256000000?

Tietokoneen perusrakenne: keskusmuisti 2/3 Muistipaikat sijaitsevat peräkkäin ja jokaisella paikalla on yksilöivä numero, jonka avulla siihen voidaan viitata Esimerkiksi muistipaikan 4 arvo (10100001) on desimaalilukuna 161

Tietokoneen perusrakenne: keskusmuisti 3/3 Keskusmuistissa muistipaikkojen numeroita sanotaan muistiosoitteiksi Muistipaikkoja voidaan käsitellä mielivaltaisessa järjestyksessä (Random Access Memory, RAM) ja niihin voidaan lukea ja kirjoittaa Muistia, josta voidaan vain lukea, nimitetään ROMmuistiksi (Read Only Memory), ja sen sisältö säilyy virran katkaisun jälkeenkin

Tietokoneen perusrakenne: suoritin 1/4 Suoritin eli prosessori on tietokoneen toiminnan kannalta oleellisin osa Suoritin on integroitu piiri, jonka elektroniikka kykenee suorittamaan muistiin talletettuja konekäskyjä Integroida: yhdentää, muodostaa yhtenäisemmäksi kokonaisuudeksi Mikropiiri: pieni elektroniikan komponentti, jolle on integroitu suuri määrä elektronikkakomponentteja Suoritin suorittaa ohjelmaa askel (käsky) kerrallaan Suorittimen suorittamat käskyt ovat toiminnaltaan hyvin yksinkertaisia Käskyjä ovat usein mm. yhteenlasku, lukujen vertailu, luvun muistista hakeminen, jne

Tietokoneen perusrakenne: suoritin 2/4 Suorittimen perusosat ovat ohjausyksikkö ja ALU (Arithmetic and Logic Unit) Ohjausyksikkö noutaa konekäskyjä muistista ja vastaa niiden suorittamisesta ALU taas toimii ohjausyksikön käskyjen alaisena ja suorittaa yksinkertaisia lasku- ja vertailutoimenpiteitä AND, OR, NOT,... Yhteen- ja vähennyslaskut Kerto- ja jakolaskut

Suorittimen rekisterit Yleisrekisterit: väliaikainen suorittimen tietojen tallentaja ALUn piirien tiedot, tulosten vastaanotto Ohjausyksikössä erikoisrekisterejä: ohjelmalaskuri, käskyrekisteri ja pino-osoitin Ohjelmalaskuri: seuraavan suoritettavan käskyn osoite Käskyrekisteri: parhaillaan suoritettava käsky Pino-osoitin: osoitin ohjelman parametreihin