OHJELMISTON ALUSTAN VAIHTO

Koko: px
Aloita esitys sivulta:

Download "OHJELMISTON ALUSTAN VAIHTO"

Transkriptio

1 Opinnäytetyö (AMK) Tietotekniikka Sulautetut ohjelmistot 2012 Samuli Sillsten OHJELMISTON ALUSTAN VAIHTO Unixista Linuxiin

2 OPINNÄYTETYÖ (AMK) TIIVISTELMÄ TURUN AMMATTIKORKEAKOULU Tietotekniikka Sulautetut ohjelmistot Toukokuu s. Ohjaaja: TkL Jari-Pekka Paalassalo Samuli Sillsten OHJELMISTON ALUSTAN VAIHTO Tässä opinnäytetyössä toteutettiin ohjelmiston alustan vaihto. Työssä keskityttiin kääntäjän vaihtumisen tuomiin ongelmiin. Työn tarkoituksena oli kerätä lista ongelmista, joita ohjelmiston kääntämisen sekä testauksen aikana kohdattaisiin. Listaan kirjattiin myös ratkaisut näihin ongelmiin. Kun ohjelmisto saatiin käännettyä uudelle alustalle, asiakas aloitti testit. Asiakas kirjasi virheet niille erikseen varatulle sivustolle. Näiden virheiden lisäksi projektiryhmäläiset korjasivat sellaiset virheet, jotka heille tuli vastaan. Lopputuloksena saatiin lista virheistä sekä vaadittavista korjauksista. Lisäksi dokumentoitiin muutokset, joita kääntäjän vaihtuminen vaati make-tiedostoihin. ASIASANAT: Linux, Unix, alusta, ohjelmistoalusta, C++, kääntäjä, GCC, g++

3 BACHELOR S THESIS ABSTRACT TURKU UNIVERSITY OF APPLIED SCIENCES Degree programme in Information Technology Embedded Software p. Instructor: M. Sc Jari-Pekka Paalassalo, Lic. Sc. (Tech.), Principal Lecturer Samuli Sillsten A PLATFORM CHANGE FOR SOFTWARE The subject of this thesis was to execute a platform change for software. This thesis concentrated on the problems that the change of compiler caused. The purpose of this thesis was to collect a list of problems and their solutions which the project group would encounter while compiling and testing software. After the software had successfully been compiled to a new platform the client started testing. The client posted the errors to a site reserved for them. In addition to these errors, the project group fixed the errors they encountered themselves. The result of the thesis was a list of errors and their solutions. In addition, there is a list of the changes that the change of compiler caused to makefiles. KEYWORDS: Linux, Unix, Software Platform, C++, Compiler, GCC, g++

4 SISÄLTÖ SANASTO 6 1 JOHDANTO 7 2 OHJELMISTO Esityskerros Logiikkakerros Datakerros 10 3 ALUSTA Alustan vaihdon syyt Vanha alusta Uusi alusta 11 4 KÄÄNTÄJÄ Käännöksen vaiheet Kääntäjän valinta 14 5 UUDEN ALUSTAN ASENNUS 16 6 KÄÄNTÄMINEN bittisyys Makefile-tiedostot Kooditiedostot 17 7 TESTAUS Tyhjän lukeminen For-silmukan toiminta 20 8 TULOKSET 21 9 YHTEENVETO 22 LÄHTEET 23

5 LIITTEET Liite 1. Tehdyt muutokset ja korjaukset KUVAT Kuva 1. Ohjelmiston rakenne 9 Kuva 2. Käännöksen vaiheet [8] 12

6 SANASTO EDI Varusohjelma Organisaatioiden välistä standardoitua tiedonsiirtoa. Varusohjelmat ovat atk-järjestelmien toteuttamista ja ylläpitoa varten, sekä koneiden ja tietoliikenteen käynnissä pitämiseen tarvittavia ohjelmia.

7 7 1 JOHDANTO Opinnäytetyön tarkoituksena on seurata ohjelmiston alustan vaihdon tuomia haasteita ja sitä kuinka ne ratkaistaan. Työtä tullaan mahdollisesti käyttämään apuna vastaavissa alustan vaihdoissa. Työn alussa tutustutaan alustan vaihdon kohteena olevaan ohjelmistoon ja sen toteutukseen. Tämän jälkeen käydään läpi tarpeet ja syyt, jonka vuoksi alusta vaihdettiin, sekä tutustutaan tarkemmin alustoihin. Työssä keskitytään kääntäjän vaihtumisen tuomiin ongelmiin. Jotta kääntämisen aiheuttamia ongelmia ymmärrettäisiin paremmin, käydään läpi hieman kääntäjän toimintaa. Työn tuloksena tullaan käymään läpi yleisimmät virhetyypit ja se mistä nämä johtuivat. Tarkoituksena on kerätä liitetiedostoon löydetyt virheet ja näiden korjaukset. Liitetiedostosta löytyy myös sellaiset muutokset, jotka kääntäjän vaihtuminen vaati. Vaadittavia muutoksia, jotka aiheutuvat kääntäjän vaihtumisesta, kutsutaan työssä virheiksi. Näitä ei kuitenkaan suoranaisesti voi lukea virheiksi, koska ohjelmisto on vanhalla kääntäjällä toiminut oikein.

8 8 2 OHJELMISTO Ohjelmiston kehitys on aloitettu vuonna 2000 ja sen tuotantokäyttö on alkanut vuonna Ohjelmisto hallinnoi satamaoperaattorin tavaran kulkua ja sen raportointia sekä hoitaa myös laskutustiedot laskutusohjelmalle. Ohjelmistoa on päivitetty ja ylläpidetty vuosien varrella. Suurin viime aikana tullut päivitys on tuonti-puolen lisääminen järjestelmään helmikuussa Tätä ennen ohjelmisto hallinnoi vain lähtevää tavaraa. [1] Ohjelmistoon kuuluu sataman tilausohjelma (SATI), jolla lähetetään ja vastaanotetaan EDI-sanomia ja hallitaan tulosteiden käsittelyä. SATIn toteutus vastaa itse ohjelman toteutusta ja käsipäätteillä toimiva osa käyttää samoja palveluita kuin Windows-osa, eikä näin ollen ole tarvetta kohdistaa virheitä. [1] Pääasiallisena ohjelmointikielenä ohjelmistossa on käytetty C++:aa. Tietokannat on toteutettu Oraclen tietokantoina. Koodirivejä ohjelmistossa on yhteensä noin 1,75 miljoonaa, joista riviä on Delphi-koodia. Niin liittymistä kutsuttavia BL-palveluita kuin tietokantapalveluitakin on ohjelmistossa lähes tuhat. [1] Ohjelmisto on toteutettu kolmikerrosarkkitehtuurilla, eli ohjelmisto koostuu esityskerroksesta, logiikkakerroksesta ja datakerroksesta [2]. Välikerrosohjelmistona on käytetty Tuxedoa. Tuxedo hoitaa eri kerrosten ja ohjelmiston osien välisen tiedonkulun [3]. Kuvasta 1 selviää ohjelmiston rakenne.

9 9 Kuva 1. Ohjelmiston rakenne 2.1 Esityskerros Esityskerros koostuu kahdesta eri käyttöliittymästä ja noin kolmestakymmenestä muusta liittymästä. Käyttöliittyminä toimivat Windows ja Unix. Windowskäyttöliittymä on toteutettu Borland Delphillä. Delphillä on myös ohjelmoitu näytöille sellaista toiminnallisuutta, joka ei vaadi lisätietojen hakua tietokannoista. Unix-käyttöliittymään otetaan yhteys taljareiden käsipäätteillä. Muista liittymistä löytyy esimerkiksi asiakkaille tarkoitetun internet-pohjaisen ennakkotietojen syöttöjärjestelmän käyttämä liittymä sekä graafisen konttiohjelmiston käyttämä liittymää. 2.2 Logiikkakerros Logiikkakerros on toteutettu kahdessa tasossa: BL-palvelut, joita kutsutaan näytöltä, ja BL-luokat, jotka sisältävät ohjelmalogiikan. BL-palveluissa kutsutaan

10 10 luokkia ja metodeita, jotka sijaitsevat BL-luokissa. Näin pidetään BL-palvelut siistinä ja lisätään uudelleenkäytettävyyttä. BL-luokiin on ohjelmoitu ohjelmiston toiminnallisuus. BL-luokista kutsutaan datakerroksen tietokantapalveluita, joiden avulla tehdään haut, tarkastukset ja päivitykset. 2.3 Datakerros Datakerros koostuu erinäisistä tietokantapalveluista. Haut, listahaut, päivityspalvelut ja poistopalvelut ovat näistä yleisimmät. Sql-haut on toteutettu pääosin automaattihakuina mutta erikoisempia ja harvinaisia tapauksia varten on käytetty manuaalihakuja.

11 11 3 ALUSTA Alustalla tarkoitetaan laitteistoa ja ohjelmistoliittymiä, jotka mahdollistavat ohjelmistojen suorittamisen. Tyypillisesti alustaan sisältyy laitteisto, käyttöjärjestelmä, ohjelmointikieli sekä käyttöliittymä. [4] Alusta on tärkeä osa ohjelmistokehityksessä, koska sen valinnan mukaan määräytyy muut mahdollisesti käytettävät varusohjelmat. [4] 3.1 Alustan vaihdon syyt Ohjelmiston alustan vaihdolle on useita syitä. HP-UX alustaa ei enää päivitetä eikä se näin ollen tue uusimpia Tuxedon versioita. Myös Tuxedon lisenssit ovat kalliimmat HP-UX:lle kuin Linuxille. Koska Tuxedon lisenssit ovat prosessorien core kohtaisia, tarvitaan uudemmalla 64-bittisellä alustalla paljon vähemmän lisenssejä. Lisäksi alustan vaihdolla haluttiin taata arkkitehtuurin mahdollisimman hyvä jatkuvuus. [5] [6] 3.2 Vanha alusta Vanhana alustana toimiva HP-UX on HP:n versio UNIX-käyttöjärjestelmästä. Alustalla on käytetty Tuxedon versiota 7 ja kääntäjänä on käytetty ac++:n versiota A Tulostuspalveluissa käytetään Adoben JetFormia. 3.3 Uusi alusta Uudeksi alustaksi tulee Intel Xeon 64-bittisellä prosessorilla varustettu kone, jolle asennetaan SUSE Linux Enterprise Server 11 SP1 -käyttöjärjestelmä. Koneelle asennetaan Tuxedon versio 11gR1. Kääntäjänä käytetään GNU kääntäjä g++:n versiota 4.3. Tietokannat on sijoitettu omille tietokantapalvelinkoneilleen, eikä näin ollen tietokantoihin tule päivityksiä. [6]

12 12 4 KÄÄNTÄJÄ Kääntäjä on tietokoneohjelma, joka kääntää ohjelmointikoodia tietokoneen ymmärtämään binäärimuotoon. Toisin sanoen kääntäjä siis mahdollistaa ihmiselle ymmärrettävän koodin kirjoittamisen. [7] 4.1 Käännöksen vaiheet Kuvassa 2 on kuvattu kääntäjän toiminta ja sen suorittamia toimenpiteitä. Kaikki kääntäjät eivät välttämättä käy joka vaihetta läpi. Kuva 2. Käännöksen vaiheet [8] Leksikaalianalyysistä (Lexical Analyzer) ja syntaktisesta analyysistä (Syntactic Analyzer) voidaan käyttää yhteisnimeä jäsennys. Ensimmäisessä vaiheessa,

13 13 leksikaalianalyysissä, lähdekoodi pilkotaan merkityksellisiksi symboleiksi säännöllisten lausekkeiden kieliopin mukaan. Esimerkiksi (tasku)laskinohjelma selaa syötettyjä näppäilyjä "12*(3+4)^2" ja pilkkoo sen tokeneiksi: 12, *, (, 3, +, 4, ), ^, ja 2. Kukin on merkityksellinen symboli aritmeettisen lauseen kontekstissa. Jäsentimessä voi olla sääntö, että merkit *, +, ^, ( ja ) ovat uuden tokenin aloitusmerkkejä. Siten merkityksettömiä tokeneita, kuten 12* tai (3, ei generoida. [9] Jäsennyksen toisessa vaiheessa tarkistetaan, että tokenit muodostavat hyväksyttävän lausekkeen. Tämä tehdään tavallisesti kontekstivapaiden kielioppien kanssa. Ne määrittelevät rekursiivisesti komponentit, jotka voivat muodostaa lausekkeen ja missä järjestyksessä niiden on esiinnyttävä. [9] Semanttisessa analyysissä tutkitaan ilmaisujen merkityksen järkevyyttä. Toisin sanottuna semanttisessa analyysissä tutkitaan muuttujien ja aliohjelmien tyypit, kontrollivuo sekä nimien oikeaa käyttöä. [10] Koodin generointivaiheessa tapahtuu itse käännös. Tässä vaiheessa muutetaan koodi tietokoneen ymmärtämään muotoon. [8] Viimeinen vaihe on optimointi. Nykypäivän optimoivat kääntäjät ovat hyvin tehokkaita optimoimaan koodia. Usein on viisasta jättää koodin viritys kääntäjän huoleksi. Tarkastellaan tätä esimerkin avulla. Oletetaan, että haluttaisiin ohjelman laskevan kaksiulotteisen taulukon alkiot yhteen. Tarkastellaan ensin suoraa ja helppoa tapaa toteuttaa tämä, jonka jälkeen käydään läpi esimerkki, kuinka optimointi voitaisiin toteuttaa. Koodiesimerkissä 1 on yksi, ja varmasti hyvin yleinen, toteutus tapa tällaiselle toiminnallisuudelle. [11]

14 14 Koodiesimerkki 1. Lasketaan taulukon alkiot yhteen for-silmukoissa [11] Koska taulukon alkiot sijaitsevat fyysisessä muistissa peräkkäisissä muistiosoitteissa, voidaan koodia optimoida käymällä muistiosoitteet peräkkäin läpi osoitinmuuttujan avulla. Koodiesimerkissä 2 on optimoitu koodi. [11] Koodiesimerkki 2. Lasketaan taulukon alkiot yhteen osoitinmuuttujaa apuna käyttäen [11] Jos nämä kaksi esimerkkiä kääntäisi ja suorittaisi, saataisiin samanlaisia suoritusaikoja, koska kääntäjä itse optimoisi koodin kuvassa 3 esitetyllä tavalla. Tämän kaltaisten optimointien teko olisi siis pelkästään ajan hukkaa oikeaa ohjelmaa ohjelmoidessa. 4.2 Kääntäjän valinta Kääntäjän valintaan voi vaikuttaa moni tekijä. Jokaiselle ohjelmointikielelle on olemassa omat kääntäjänsä. Tästä syystä tuleekin ensin tutustua kääntäjävaihtoehtoihin, joita valitulle kielelle on. Toiseksi kääntäjän valintaan vaikuttaa käytettävä alusta. Kaikki kääntäjät eivät toimi kaikilla alustoilla, joten alusta tulee tietää ennen kääntäjän valintaa. [12]

15 15 Hinta on yksi alustan valintaan vaikuttavista tekijöistä. Kannattaa valita maksuton kääntäjä, mikäli tämä vain on mahdollista. Lisäksi työpaikka tai muu ryhmä, jossa työskentely tapahtuu, voi määrätä tietyn kääntäjän käytöstä. [12]

16 16 5 UUDEN ALUSTAN ASENNUS Uuden alustan asennus tapahtui kolmannen osapuolen toimesta ja se suoritettiin suoraan asiakkaan omalle koneelle. Ennen käännöksien aloittamista ryhmälle jäi Tuxedon palvelin sekä openssl-kirjaston asentaminen. Näissä kummassakaan ei tullut mitään tavallisuudesta poikkeavaa vastaan. Lisäksi Tuxedon asetukset piti määrittää ja luoda Linuxille käyttäjätunnukset. [1]

17 17 6 KÄÄNTÄMINEN Kääntäminen päätettiin toteuttaa kokeilemalla, koska projektiryhmällä ei ollut aiheesta aiempaa kokemusta. Aina yhden ongelman ratkettua koitettiin kääntämistä uudestaan ja alettiin selvittää, mistä seuraava virheviesti johtui. Näin toimittiin, kunnes ohjelma saatiin kääntymään ongelmitta bittisyys Uuden alustan 64-bittisyys aiheutti suuren osan ongelmista. Aluksi Oracle oli asennettuna sekä 32- että 64-bittisenä. Käännös ei kuitenkaan onnistunut, joten Oracle jouduttiin asentamaan uudestaan ainoastaan 32-bittisenä. 6.2 Makefile-tiedostot Vanhoja Makefile-tiedostoja päätettiin käyttää ja tehdä muutokset niihin. Koska kääntäjä oli muuttunut, piti se ilmoittaa Makefile-tiedostoille. Kääntäjän vaihtumisen myötä acc-kääntäjän komento +O1, jolla säädetään optimoinnin tasoa, piti poistaa, koska kyseistä komentoa ei g++:ssa ole. Makefile-tiedostossa tuli ilmoittaa, että käännöksestä haluttiin 32-bittinen, koska muuten kääntäjä käänsi tiedostot 64-bittisiksi. Joissain Makefile-tiedostoissa oli turhia komentoja. Ennen hyödyttömät komennot estivät nyt tiedostojen kääntymisen. Komennot $(ORALIBS) ja lsql poistettiin näistä tiedostoista. 6.3 Kooditiedostot Kooditiedostoissa oli kohtia, jotka estivät kääntymisprosessin. Tällaisia olivat ainakin kirjastojen muuttuneet nimet, esim. iostream.h -> iostream. Lisäksi ongelmia aiheutti acc-kääntäjän ominaisuus, joka toimi C++:n sääntöjen vastai-

18 18 sesti. acc-kääntäjä määritteli for-silmukan kierroslaskurin ylemmälle tasolle ja muuttujaa pystyi käyttämään for-silmukan jälkeenkin. Tämä ongelma ratkaistiin esittelemällä muuttuja yleisesti ennen ensimmäistä silmukkaa, jossa sitä käytettiin. Koodiesimerkissä 3 on esitettynä vanha ja uusi toteutus. Koodiesimerkki 3. For-silmukka Vanhalla toteutuksella: for(int i = 0; i < Lista.GetCount(); i++) { total += i; } printf("i:n arvo: %ld\n", i); for(i = 0; i < total; i++) { total2 += i; } Korjattu: int i = 0; for(i = 0; i < Lista.GetCount(); i++) { total += i; } printf("i:n arvo: %ld\n", i);... Lauseen using namespace std; lisääminen vaadittiin muutamaan tiedostoon. Syitä, miksi g++-kääntäjä vaati lauseen lisäämisen ja acc oli toiminut ilman, ei tutkittu.

19 19 7 TESTAUS Kun tiedostot oli saatu käännettyä ja ohjelmisto käyntiin uudella alustalla, ohjelmisto testattiin. Alustan muuttumisen jälkeen tuli testata jokainen ominaisuus, jonka ohjelmisto sisälsi. Ohjelmiston laajuuden vuoksi testaamista oli hyvin paljon. Testattavien tapausten suuren määrän vuoksi asiakas suoritti testauksen, mikä mahdollisti ryhmän keskittymisen löydettyjen virheiden korjaamiseen. Suurin osa virheistä kaatoi palvelun, ja ne olivat näin ollen helppo todeta, mutta ohjelmistossa oli myös virheitä, jotka eivät yhtä selvästi tulleet esille. Testauksissa löydettiin lisäksi virheitä, jotka eivät johtuneet alustan vaihtumisesta. Näihin virheisiin ei tässä työssä kiinnitetä huomiota. 7.1 Tyhjän lukeminen Ehdottomasti suurimman osan virheistä aiheutti tyhjän lukeminen. Nämä virheet olivat joko listan ensimmäisestä alkiosta tiedon lukeminen tai tyhjän char*- muuttujan käsittely. Listojen ensimmäisestä alkiosta lukeminen korjattiin tarkastamalla, oliko listanssa yhtään alkiota, ennen kuin luettiin ensimmäistä alkiota. Niissä kohdissa, joissa ensimmäisen alkion lukeminen tapahtui vanhoissa tarkastustulosteissa, poistettiin rivi tai kommentoitiin rivi pois. Koodiesimerkissä 4 on lisätty tarkastus ennen ensimmäisestä alkiosta tiedon lukemista. Koodiesimerkki 4. Listan tarkastus ennen lukua int luku = 0; if(lista.getcount() > 0){ // Lisätty tarkistus // Nyt tiedetään ettei lista ole tyhjä. // Voidaan lukea ensimmäisestä alkiosta luku = Lista[0].GetValue(); printf( Listan alkion arvo: %ld\n, Lista[0].GetValue()); }

20 20 char*-muuttujien käsittelyssä tarkastettiin, oliko char*-muuttujan arvo eri kuin nolla, minkä jälkeen voitiin tarkastaa esim. pituus. Vaikka korjaus oli yksinkertainen, oli joissain tiedostoissa samaa virhettä hyvin paljon ja monen if-, for- tai while-lauseen sisällä. Tästä syystä joissain tapauksissa virheen löytäminen oli ongelmallista. Mistään ei myöskään pystynyt tarkistamaan, mikä kohta tarkalleen aiheutti virheen. Virheen sijainti piti päätellä viimeisestä tulosteesta ennen palvelun kaatumista tai seurata koodia virheen löytymiseksi. Tässä kohtaa olisi ollut mahdollista käyttää virheiden jäljittäjä, mutta niitä ei haluttu, koska ne olisivat estäneet samanaikaisen testaustoiminnan. 7.2 For-silmukan toiminta For-silmukan käyttö tietokantapalveluiden hakujen tulosten läpikäynnissä kaatoi palvelun. Tämän virheen löytäminen oli ongelmallista, koska kohta oli ennen toiminut oikein eikä kääntäjä antanut virheilmoitusta siitä. Pääasiassa vastaavat kohdat oli toteutettu while-silmukalla, mutta muutamassa kohtaa oli käytetty forsilmukkaa (Koodiesimerkki 5). Koodiesimerkki 5. Tietokantahaun tulosten läpikäyminen table.movefirst(); /*for( ;! table.iseof();table.movenext()){ tietokantalista.addtolist((void*)&table); }*/ while(!table.iseof()){ tietokantalista.addtolist((void*)&table); table.movenext(); } Esimerkissä näkyy, kuinka for-silmukalla toteutettu osa on kommentoitu pois ja korvattu vastaavalla while-silmukalla. Päällisin puolin for-silmukalla tehdyn toteutuksen pitäisi tehdä sama kuin while-silmukalla. Asiaa ei kuitenkaan lähdetty sen enempää tutkimaan, vaan todettiin, että on nopeampaa korjata virheelliset toteutukset.

21 21 8 TULOKSET Alustan vaihdon työmäärä yllätti suuruudellaan niin asiakkaan kuin projektiryhmänkin. Koska Linux on Unixin kaltainen käyttöjärjestelmä, odotettiin koodin kääntymisen ja toimintaan saamisen vaativan huomattavasti vähemmän työtä kuin se todellisuudessa aiheutti. [5] Korjattuja virheitä ei kirjattu, joten ei ole tietoa, kuinka monta virhettä on korjattu. Virheitä ei kirjatt,u koska jotkut projektiryhmäläiset tekivät projektia toisten projektien ohessa. Toinen syy tähän on se, että vaikka asiakas suoritti testit, projektiryhmäläiset korjasivat virheitä, joita heille tuli itselleen vastaan niitä mihinkään kirjaamatta. Projektin myötä selvisi hyvin, kuinka erilaisia kääntäjät voivat olla. Vaikka kieli ja lopputulos on määritelty, ei kääntäjille ole määritelty, kuinka lopputulokseen tulee päästä. Tästä syystä kääntäjät voivat erota toisistaan. Esimerkiksi muuttujien muistipaikkojen käsittelyn erilaisuus aiheutti paljon virheitä.

22 22 9 YHTEENVETO Tässä työssä toimittiin osana ohjelmiston alustan vaihdon suorittavaa projektiryhmää ja seurattiin alustan vaihdon kulkua. Virheitä tulee varmasti vielä löytymään lisää, kun uutta alustaa aletaan käyttää tuotannossa. Alustan vaihto ennen ohjelmiston testauksen aloittamista sujuin hyvin. Ensimmäiset ongelmat tulivat esille vasta sitten, kun ohjelmistoa käännettiin. Näistä ongelmista suurin osa aiheutui uuden alustan 64-bittisyydestä. Suurin osa testaamisvaiheen aikana ilmenneistä virheistä johtui huonoista ohjelmointitavoista. Esimerkiksi listaa luettaessa tulee aina muistaa tarkistaa, ettei lista ole tyhjä. Koska ohjelmisto on vanha ja hyvät ohjelmointitavat ovat yleistyneet, on oletettavissa, että mitä uudempi ohjelmisto on, sitä helpommin onnistuu alustan vaihto. Tämä on kuitenkin vain olettamus, eikä mahdollisia työmääräarviota voida laskea sen mukaan.

23 23 LÄHTEET 1. Sivonen, Ville, henkilökohtainen keskustelu, Three Layer Architecture in C#.NET, [Verkkodokumentti]. Saatavilla: (luettu ) 3. Middleware, [www-dokumentti]. Saatavilla: (luettu ) 4. Computing platform, [www-dokumentti]. Saatavilla: (luettu ) 5. Asiakas, henkilökohtainen keskustelu, Asiakkaan oma esiselvitys, (luettu ) 7. Ohjelmointikielen kääntäjä, [www-dokumentti]. Saatavilla: (luettu ) 8. Compilers and Translators, [www-dokumentti]. Saatavilla: (luettu ) 9. Jäsennys, [Verkkodokumentti]. Saatavilla: (luettu ) 10. Semanttinen analyysi, [www-dokumentti]. Saatavilla: (luettu ) 11. Ohjelmointikielten ja kääntäjien vaikutukset ohjelman suorituskykyyn, [wwwdokumentti]. Saatavilla: (luettu ) 12. What are the differences between C++ compilers?, [www-dokumentti]. Saatavilla : (luettu )

24 Liite 1/1 (2) Tehdyt muutokset ja korjaukset Tälle liitteelle on kerätty luettelomaisesti tehdyt muutokset ja korjaukset Makefile-tiedostot Lista muutoksista jotka tehtiin Makefile-tiedostoihin Muutos Vaikutus Lisätiedot Tuxedon version muutos Ei löytänyt tuxedoa TUXDIR=/progs/tuxedo/7.1-> TUXDIR=/app/tuxedo11 Kääntäjän muutos Ei löytänyt kääntäjää CC=aCC -> CC=g++ acc:n optimoinnin Ei kääntynyt +O1\ poistettu komento pois Kääntö 32-bittiseksi Ei toiminut 64-bittisenä -m32 komennolla Turhat komennot pois Ei kääntynyt $(ORALIBS) ja lsql poistettu Muut tiedostot Tässä kohdassa käsitellään muut virheet jotka estivät kääntymisen, kaatoivat palvelun tai aiheuttivat ohjelman toimimattomuuden. Alla lista virheistä Ongelma Kuvaus ongelmasta Vaikutus Korjaus Peruskirjastojen nimet Joidenkin peruskirjastojen nimet olivat muuttuneet Ei kääntynyt Muutettu: iostream.h -> iostream fstream.h -> fstream string.h -> string nimiavaruus Vaadittiin using namespace Ei kääntynyt Lisätty ko. lause ltd; ltoa functio Funktio puuttui Ei kääntynyt Koodattu itse vastaava funktio samalla nimellä

25 Liite 1/2 for-silmukan kierroslaskurin esittely Tyhjien lukeminen char* muuttujan käsittely Muuttujien esittely Tuxedolle acc-kääntäjällä toimi C++:san sääntöjen vastaisesti, muuttuja säilyi silmukan jälkeen Luettiin listan ensimmäisestä alkiosta, käsiteltiin tyhjää muuttujaa tyhjän char* muuttujan käsittely, esim pituuden tarkistus (strlen(tyhjä char*)) Jotkut char*-muuttujat esiteltiin liian lyhyinä Ei kääntynyt Esitelty muuttuja ennen for-silmukkaa mahdollistaen sen käytön myöhempänä Kaatoi palvelun Tarkistus ettei ole tyhjä ennen lukua Kaatoi palvelun Tehty omia funktioita, tarkistettu ennen käyt- tämistä onko char* tyhjä Kaatoi palvelun Lisätty muuttujien pituutta printf- Annetaan vähemmän Kaatoi pal- Kommentoitu tulostus tulostaminen parametreja kuin odote- velun pois tai korjattu taan for-silmukan Tietokantapalvelun haun Kaatoi pal- Vaihdettu toteutus whi- käyttö tulosten läpikäynnissä velun le-silmukkaan Viittausmuuttu- Toimivat erikoisesti Toimi väärin Muutettu toteutusta jat / Ei toiminut Moniperinnän Koodeja ei löytynyt Toimi väärin Kopioitu koodit header- puuttuminen / Ei toiminut tiedostoihin Set-metodin Kun parametriksi annettiin Toimi väärin Poistettu turhana. Set- käyttö saman muuttujan Get- / Ei toiminut metodi tyhensi itsensä metodi ennen asetusta, eli tyhjensi myös mitä oltiin asettamassa. char*- Mikäli metodi palautti Toimi väärin Lisätty static, Muuttu- pa- muuttujan lautus char*-muuttujan piti se määritellä staticmuuttujaksi / Ei toiminut jan muistialue vapautetaan ennen kuin se palautetaan kutsuvalle metodille.

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

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 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ätiedot

Kääntäjän virheilmoituksia

Kää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ätiedot

S11-09 Control System for an. Autonomous Household Robot Platform

S11-09 Control System for an. Autonomous Household Robot Platform S11-09 Control System for an Autonomous Household Robot Platform Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Quang Doan Lauri T. Mäkelä 1 Kuvaus Projektin tavoitteena on

Lisätiedot

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)

TT00AA12-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ätiedot

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4 Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.

Lisätiedot

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

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,

Lisätiedot

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

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,

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

2 Konekieli, aliohjelmat, keskeytykset ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

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,

Lisätiedot

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ä Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä olevilla komponenteilla? Voisiko jollakin ohjelmointikielellä

Lisätiedot

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. 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ätiedot

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

Määrittelydokumentti

Määrittelydokumentti Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin

Lisätiedot

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

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

Lisätiedot

12. Näppäimistöltä lukeminen 12.1

12. Näppäimistöltä lukeminen 12.1 12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.

Lisätiedot

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

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

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

SQL Server 2005 Express Edition tietokannan asennusohje

SQL Server 2005 Express Edition tietokannan asennusohje 1 SQL Server 2005 Express Edition tietokannan asennusohje SQL Server 2005 Express Edition on Microsoftin tietokantaohjelmiston ilmaisversio. Asennukset tulee tehdä käyttäjätunnuksella, jolla on administrator-oikeudet.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

T Testiraportti - järjestelmätestaus

T Testiraportti - järjestelmätestaus T-76.115 Testiraportti - järjestelmätestaus 18. huhtikuuta 2002 Confuse 1 Tila Versio: 1.0 Tila: Päivitetty Jakelu: Julkinen Luotu: 18.04.2002 Jani Myyry Muutettu viimeksi: 18.04.2002 Jani Myyry Versiohistoria

Lisätiedot

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

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

Lisätiedot

HARJOITUS 3: Asennetaan Windows Vista koneeseen Windows 7 Professional upgrade ohjelmisto (Windows 7 käyttöjärjestelmän asennus)

HARJOITUS 3: Asennetaan Windows Vista koneeseen Windows 7 Professional upgrade ohjelmisto (Windows 7 käyttöjärjestelmän asennus) HARJOITUS 3: Asennetaan Windows Vista koneeseen Windows 7 Professional upgrade ohjelmisto (Windows 7 käyttöjärjestelmän asennus) Microsoft Windows Vista Business Microsoft Winodows 7 Professional Upgrade

Lisätiedot

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä? Se edullisempi tietokanta Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä? Rasmus Johansson rasmus.johansson@microsoft.com Ratkaisumyyntipäällikkö (Sovellusalusta) Microsoft Oy Miten

Lisätiedot

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

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille: Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin

Lisätiedot

Asteri Vuokrankanto (Dos) Vuosipäivitys 1.11.2007

Asteri Vuokrankanto (Dos) Vuosipäivitys 1.11.2007 Asteri Vuokrankanto (Dos) Vuosipäivitys 1.11.2007 Päivityksen asentaminen... 4 Vista... 6 Uuteen koneeseen siirtäminen... 7 - pikakuvake työpöydälle... 9 Tulostusongelmat uusissa koneissa... 12 - Tulostaminen

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

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

Lisätiedot

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin. TIETOKANTA MERIKOTKIEN SEURANTAAN Käyttöohje Versiohistoria: Versio Päivämäärä Kuvaus Tekijä 1.0 11.12.2007 Ensimmäinen luonnos Janne Piippo 2.0 13.12.2007 Virallinen verio Janne Piippo HELSINGIN YLIOPISTO

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3 16. Lohkot 16.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 16.2 Lohkot Kaarisulut

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

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

Lisätiedot

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Ylläpitodokumentti Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Helsinki 16.7.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 11.08.2010 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

11. Javan toistorakenteet 11.1

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

Lisätiedot

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-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ätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne

Luento 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ätiedot

Luento 1 Tietokonejärjestelmän rakenne

Luento 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ätiedot

Käytin tehtävän tekemiseen Xubuntu 13.04 -käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Käytin tehtävän tekemiseen Xubuntu 13.04 -käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta. Tehtävänanto - Asenna ja testaa LAMP - Aiheuta vähintään 3 virhettä ja analysoi lokista - Tee nimipohjainen virtuaalipalvelin, joissa toimii myös www. (Karvinen, T. 23.09.2013) Työympäristö Tein tehtävän

Lisätiedot

LINUX-HARJOITUS, MYSQL

LINUX-HARJOITUS, MYSQL LINUX-HARJOITUS, MYSQL Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

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')

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

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,

Lisätiedot

Valppaan asennus- ja käyttöohje

Valppaan asennus- ja käyttöohje Versio Päiväys Muokkaaja Kuvaus 0.9 16.2.2006 Tuukka Laakso Korjattu versio 0.1 Antti Kettunen Alustava versio Sisällysluettelo 1 Johdanto...2 2 Valppaan asennus...3 2.1 Valppaan kääntäminen...3 2.2 Valmiiksi

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot

Jouko Nielsen. Ubuntu Linux

Jouko Nielsen. Ubuntu Linux Jouko Nielsen Ubuntu Linux 19.4.2017 SISÄLLYS 1 UBUNTU... 3 2 LUETTELO VERSIOISTA... 4 3 OMINAISUUDET... 4 4 ASENNUS... 5 5 UBUNTU SERVER... 9 LÄHTEET... 10 3 1 UBUNTU Ubuntu on debian pohjainen Linux

Lisätiedot

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä www.niksula.cs.hut.fi/~jjkankaa// Testauksen loppuraportti v. 1.0 Päivitetty 23.4.2001 klo 19:05 Mikko Viljainen 2 (14) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite 1.0

Lisätiedot

CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen

CUDA. 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ätiedot

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

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

WINE API ja Virtualisointiohjelmistot

WINE API ja Virtualisointiohjelmistot WINE API ja Virtualisointiohjelmistot Yleistä Winestä Ohjelmisto, joka mahdollistaa Windows -pohjaisten ohjelmien käytön kuissa käyttöjärjestelmissä Toimii yhteensopivuuskerroksena ohjelman ja käyttöjärjestelmän

Lisätiedot

5. HelloWorld-ohjelma 5.1

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

Lisätiedot

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

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: KERTAUSTEHTÄVIÄ Tietue Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: struct henkilotiedot char nimi [20]; int ika; char puh [10]; ; Edellä esitetty kuvaus määrittelee

Lisätiedot

Sisällys. 15. Lohkot. Lohkot. Lohkot

Sisällys. 15. Lohkot. Lohkot. Lohkot Sisällys 15. Lohkot Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.1 15.2 Lohkot Aaltosulkeet

Lisätiedot

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

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi

Lisätiedot

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

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

Lisätiedot

811120P Diskreetit rakenteet

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

Lisätiedot

Uutta Remote Support Platform 3.0 -versiossa

Uutta Remote Support Platform 3.0 -versiossa Uutta Remote Support Platform for SAP Business One Asiakirjaversio: 1.0 2012-10-08 Kaikki maat Typografiset merkintätavat Kirjasintyyli Esimerkki Näytöstä lainatut sanat tai merkit. Näitä ovat kenttien

Lisätiedot

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011 1 Joonas Ruotsalainen GIT PIKAOPAS Tutkielma 2011 2 SISÄLTÖ 1. JOHDANTO... 3 2. ASENTAMINEN... 4 3. KÄYTTÖ... 4 3.1 Perusasetukset... 4 3.2 Git:n ottaminen käyttöön projektissa... 5 3.3 Tiedostojen lisääminen

Lisätiedot

Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO

Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO Opinnäytetyö KESKI-POHJANMAAN AMMATTIKORKEAKOULU Puutekniikan koulutusohjelma Toukokuu 2009 TIIVISTELMÄ OPINNÄYTETYÖSTÄ Yksikkö Aika Ylivieska

Lisätiedot

Harjoitus 4 (viikko 47)

Harjoitus 4 (viikko 47) Kaikki tämän harjoituksen tehtävät liittyvät joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Saa hyvän alun harjoitustyön tekoon, kun ratkaiset mahdollisimman monta tehtävää. Mikäli tehtävissä

Lisätiedot

ETS5 Sulautettu Älykäs Langaton. KNX- Partnerpäivä Micael Forsstedt

ETS5 Sulautettu Älykäs Langaton. KNX- Partnerpäivä Micael Forsstedt ETS5 Sulautettu Älykäs Langaton KNX- Partnerpäivä 6.11.2014 Micael Forsstedt Sisältö ETS Historia Uudistukset Tietokanta USB- Dongle ja muisti RF tuki Käyttöliittymä My KNX Rinnakkaisajo ja päivitys Koulutus

Lisätiedot

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari

Lisätiedot

5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma

5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma 5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma Every cloud has a silver line. - englantilainen sananlasku Tässä osiossa tärkeää: yksi- ja moniulotteinen taulukko Sisältö Yleistä Yksiulotteinen

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

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

Lisätiedot

Convergence of messaging

Convergence of messaging Convergence of messaging Testaussuunnitelma The Converge Group: Mikko Hiipakka Anssi Johansson Joni Karppinen Olli Pettay Timo Ranta-Ojala Tea Silander Helsinki 20. joulukuuta 2002 HELSINGIN YLIOPISTO

Lisätiedot

Tiedonsiirto helposti navetta-automaation ja tuotosseurannan välillä

Tiedonsiirto helposti navetta-automaation ja tuotosseurannan välillä Tiedonsiirto helposti navetta-automaation ja tuotosseurannan välillä Tiedonsiirto VMS-, Alpro- tai DelProtuotannonohjausjärjestelmästä Ammuohjelmistoon 5/2014 Asennettavat ohjelmat ja versiot VMS-Management

Lisätiedot

11/20: Konepelti auki

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

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

L models. Käyttöohje. Ryhmä Rajoitteiset

L models. Käyttöohje. Ryhmä Rajoitteiset Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Käyttöohje Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset 0.1

Lisätiedot

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Mitä Uutta - SURFCAM V5.1 Sisällysluettelo

Mitä Uutta - SURFCAM V5.1 Sisällysluettelo VER CAD/CAM Software with world class precision and control... Mitä uutta Mitä Uutta - SURFCAM V5.1 Sisällysluettelo 1) Parannettu muistinhallinta 32 ja 64 bitin järjestelmissä 3 2) Konesimulointi Optio

Lisätiedot

Opponointitestaus VYM -> LiKe 29.03.2001

Opponointitestaus VYM -> LiKe 29.03.2001 Opponointitestaus VYM -> LiKe 29.03.2001 Opponoinnin testitapaukset Opponoinnin testitapaukset on pääosin suoritettu loggautumalla sisään käyttäjällä Minna Reino, joka on I -käyttäjä After Sales-projektissa.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Toukokuu 2013 1 (10) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Päivitysohje Copyright Aditro 2013 Toukokuu 2013 2 (10) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten

Lisätiedot

Datatähti 2009 -alkukilpailu

Datatähti 2009 -alkukilpailu Datatähti 2009 -alkukilpailu Ohjelmointitehtävä 1/3: Hissimatka HUOM: Tutustuthan huolellisesti tehtävien sääntöihin ja palautusohjeisiin (sivu 7) Joukko ohjelmoijia on talon pohjakerroksessa, ja he haluavat

Lisätiedot

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu TESTIRAPORTTI LiKe Liiketoiminnan kehityksen tukiprojekti Versio: 1.1 Tila: hyväksytty Päivämäärä: 13.2.2001 Tekijä:

Lisätiedot

KYMENLAAKSON AMMATTIKORKEAKOULU

KYMENLAAKSON 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ätiedot

Kontrollipolkujen määrä

Kontrollipolkujen määrä Testaus Yleistä Testaus on suunnitelmallista virheiden etsimistä Tuotantoprosessissa ohjelmaan jää aina virheitä, käytettävistä menetelmistä huolimatta Hyvät menetelmät, kuten katselmoinnit pienentävät

Lisätiedot

Oracle 11g tietokannan päivityksen tarjoamat hyödyt ja kustannussäästöt

Oracle 11g tietokannan päivityksen tarjoamat hyödyt ja kustannussäästöt Dedicated to Your Success. Oracle 11g tietokannan päivityksen tarjoamat hyödyt ja kustannussäästöt Puitesopimustoimittaja Pasi Parkkonen Director, Citrus Solutions Oy pasi.parkkonen@citrus.fi 040-5905307

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

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

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on. Datatähti 2015 A: Omenat Aikaraja: 2 s Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on. Uolevi haluaa saada mahdollisimman monta omenaa, mutta

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

T 76.115 Tietojenkäsittelyopin ohjelmatyö Hirviöryhmä loppukatselmointi. Hirviö. Projektikatselmointi

T 76.115 Tietojenkäsittelyopin ohjelmatyö Hirviöryhmä loppukatselmointi. Hirviö. Projektikatselmointi Hirviö Projektikatselmointi Mikä Hirviö on? Hajautettu muistikirja Professoreille Muistiinpanoja keskusteluista opiskelijan kanssa Diplomitöiden ja jatko opintojen seuranta Raportointi Opetushenkilökunnalle

Lisätiedot

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

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

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot

KESKI-SUOMEN MAAKUNNAN JA LÄHIKUNTIEN LUKIOIDEN TIETOTEKNIIKAN II KILPAILU

KESKI-SUOMEN MAAKUNNAN JA LÄHIKUNTIEN LUKIOIDEN TIETOTEKNIIKAN II KILPAILU KESKI-SUOMEN MAAKUNNAN JA LÄHIKUNTIEN LUKIOIDEN TIETOTEKNIIKAN II KILPAILU KESKI-SUOMEN MAAKUNNAN JA LÄHIKUNTIEN LUKIOIDEN FYSIIKAN, KEMIAN JA MATEMATIIKAN XXIII KILPAILUN OSANA 23.1.2014 Huom: Tehtävä

Lisätiedot

Qt kaikkialla? 9.4.2010

Qt kaikkialla? 9.4.2010 Qt kaikkialla? Helsinki Tammasaarenkatu 5, 00180 Helsinki, Tel. 09 431 551 Tampere Satakunnankatu 18, 33210 Tampere, Tel. 03 315 861 Turku Lemminkäisenkatu 32 A, 20520 Turku, Tel. 02 263 571 Qt Qton C++

Lisätiedot

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3 AgilElephant SEPA Diary Petri Kalsi 55347A Heikki Salminen 51137K Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: PK&HS Sivu 1 / 7 Dokumenttihistoria Revisiohistoria Revision päiväys: 29.11.2004 Seuraavan

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps

TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps Pikaohje Laite toimii Windows XP SP3, Windows 7,8,10 ja Mac OSx 10.5 tai käyttöjärjestelmissä, Linux tuki netistä ladattavilla ajureilla USB portin

Lisätiedot

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010 SQLite selvitysraportti Juha Veijonen, Ari Laukkanen, Matti Eronen Maaliskuu 2010 Opinnäytetyö Kuukausi Vuosi 1 SISÄLTÖ 1. YLEISTÄ SQLITE:STA... 2 2. HISTORIA... 2 3. SQLITEN KÄYTTÖ... 3 3.1 SQLiten asennus

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

12. Javan toistorakenteet 12.1

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

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä

Lisätiedot

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä

Lisätiedot