Tiedosto on yhteenkuuluvien tietojen joukko, joka tavallisimmin sijaitsee kiintolevyllä, muistitikulla tai jollakin muulla fyysisellä tietovälineellä.

Koko: px
Aloita esitys sivulta:

Download "Tiedosto on yhteenkuuluvien tietojen joukko, joka tavallisimmin sijaitsee kiintolevyllä, muistitikulla tai jollakin muulla fyysisellä tietovälineellä."

Transkriptio

1 Tiedostot Tiedosto on yhteenkuuluvien tietojen joukko, joka tavallisimmin sijaitsee kiintolevyllä, muistitikulla tai jollakin muulla fyysisellä tietovälineellä. C-kielessä syöttö ja tulostus kuvataan laiteriippumattomasti abstraktilla tietovirralla (data stream). Tietovirta kuvaa laitteita kuten päätettä, näppäimistöä tai levytiedostoa. 463

2 Tietovirtoja on kahdenlaisia tekstimuotoisia binäärimuotoista 464

3 Tekstitiedostot Tekstitiedosto sisältää ASCII-merkkejä, joista muodostetaan yhtä tekstiriviä kuvaavia jonoja, jotka erotetaan toisistaan rivinvaihtomerkillä '\n' (newline). Rivi voi olla tyhjä, mutta silloinkin perässä on rivinvaihtomerkki (riippuu ympäristöstä: Windows/UNIX, tarvitaanko viimeisen rivin lopussa rivinvaihtomerkkiä). 465

4 Esimerkiksi tekstitiedostosta Tässä<return> on<return> 3 riviä <tiedoston lopetus> Ohjelma näkee tiedoston tietovirtana Tässä\non\n3 riviä<eof> Jokainen rivinvaihto lisää merkin '\n' ja tiedoston loppuun lisätään tunnus EOF (End Of File) merkiksi tiedoston loppumisesta. 466

5 Tekstitiedoston sisältökin on binäärisessä muodossa, mutta ohjelmat tulkitsevat niiden sisällön eri tavalla. Jos tekstitiedostoon talletetaan luku 593, ei lukua talleteta yhtenä binäärilukuna. Luku talletetaan siten että luvun jokainen symboli talletetaan erillisenä merkkinä '5', '9' ja '3'. Merkit talletetaan ASCII-koodeina '53', ' 57' ja '51'. 467

6 Koodit muunnetaan ennen lopullista talletusta binäärisiksi '5' -> > '9' -> > '3' -> > Tiedoston sisältö olisi nyt: <EOF> '5' '9' '3' 468

7 Tekstitiedostoa voidaan käsitellä myös binääritiedostona esimerkiksi kopioitaessa tiedoston sisältö toiseen tiedostoon. Binääritiedostoa ei voi käsitellä tekstitiedostona, tekstiedostojen käsittelyohjelmat eivät osaa tulkita sisältöä oikealla tavalla ja tuloksena on "siansaksaa". Esimerkiksi Unix/Linux -komennolla less voidaan tulostaa valitun tekstitiedoston sisältöä kuvaruudulle. Jos ohjelmalla yrittää avata suoritettavaa ohjelmatiedostoa (=binääritiedosto), ohjelma ilmoittaa käyttäjälle että "tiedosto voi olla binäärimuotoista, katsotaanko kuitenkin?" Tuloksena on tällaista: 469

8 470

9 Tiedostojen käsittely voi olla peräkkäiskäsittelyä, jossa ohjelman on luettava tiedostoa sen alusta alkaen vaikka tarvittava tieto sijaitsisi tiedoston lopussa. suorasaantityyppistä, jolloin on mahdollista hakea tietty paikka tiedostosta, tarvitsematta lukea kaikkea edellä olevaa tietoa. 471

10 Tiedoston käsittelemiseksi ohjelmassa tarvitaan tiedoston osoitin, joka kertoo ohjelmalle tiedoston sijainnin (osoitteen). Tiedoston osoitin viittaa tiedoston kuvaajaan, joka on tyyppiä FILE. FILE -tietorakenne on kuvattu tiedostossa stdio.h. 472

11 FILE -tietorakenne sisältää mm: tiedosto-osoittimen, joka osoittaa tiedostossa paikkaa, johon seuraava tiedostonkäsittelyoperaatio kohdistuu osoittimen puskurialueeseen indikaattoreita, jotka kertovat mm. onko tapahtunut syöttö- tai tulostusvirheitä ja onko tiedosto loppunut Puskurialue on tietoalue (keskusmuistissa), jonne tiedoston tiedot väliaikaisesti tallentuvat tiedostoa luettaessa tai tiedostoon kirjoitettaessa. Puskurialueen käyttö nopeuttaa tiedostojen käsittelyä, koska 473

12 keskusmuisti on nopeampaa kuin esimerkiksi kiintolevy. Tiedoston osoitin -muuttuja määritellään FILE *tiedosto; Ennen kuin tiedostoa voidaan käyttää kirjoittamiseen tai lukemiseen on tiedosto avattava fopen -funktiolla. Avaamisessa tietovirta liitetään ulkoiseen tiedostoon. Yleinen muoto: FILE * fopen (const char tiednimi, const char "moodi"); Esimerkki. Seuraavat lauseet määrittelevät kaksi muuttujaa, jotka ovat osoittimia FILE -tietorakenteeseen ja avaavat tiedostot 474

13 käsittelyä varten. FILE * infilep; FILE * outfilep; intfilep = fopen ( "c:\\data.txt", "r"); outfilep = fopen ( "c:\\results.txt", "w"); Windows/Dos-ympäristössä voidaan tiedoston nimen määrittelyn yhteydessä määritellä koko hakemistopolku ('\'- merkki on kuitenkin annettava kaksinkertaisena '\\'). Unix/Linux ympäristössä hakemistoerotin on '/' ja sitä ei tarvitse antaa kaksinkertaisena. Lisäksi levyasematunnuksia ei ole kuten Windows -maailmassa. 475

14 FILE * infilep; FILE * outfilep; intfilep = fopen ( "Users/ilkka/demot/data.dat", "r"); outfilep = fopen ( "Users/ilkka/demot/results.dat", "w"); Tiedoston osoittimen tyyppi FILE * (huomaa isot kirjaimet), fopen palauttaa osoittimen muistialueeseen, joka toimii puskurina. 476

15 Muuttuja intfilep osoittaa puskurialueeseen, jonne on luettu tekstiä tiedostosta data.txt (tai data.dat). Tiedosto on avattu lukemista varten (r = read). Muuttuja outfilep osoittaa puskurialueeseen, jonne tiedostoon results.txt (tai results.dat) talletettavaksi tarkoitettu teksti ensin talletetaan ja josta se myöhemmin kirjoitetaan tiedostoon, joka on avattu kirjoittamista varten ( w = write ). Tiedostoja käsitellään tämän jälkeen muuttujien intfilep ja outfilep avulla. 477

16 Jos tiedostojen avaus jostakin syystä epäonnistuu, palauttaa fopen arvon NULL. NULL on symbolinen vakio, joka on määritelty stdio.h - kirjastossa, tämä on eri kuin merkkijonon lopetusmerkki '\0' (NUL) Tiedoston c:\\data.txt (tai Users/ilkka/demot/data.dat) avauksen onnistuminen on testattava ennen kuin tiedostoa aletaan käsitellä. if ( infilep == NULL ) printf("virhe tiedoston a:\data.txt avaamisessa\n"); 478

17 Tiedostojen sisällön käsittelyyn vastaavat funktiot kuin tavalliseen I/O-käsittelyyn. tavallinen I/O tiedosto I/O scanf ("%d", &luku); fscanf(infilep, "%d", &luku); printf("luku=%d\n",luku); fprintf(outfilep,"arvo=%d\n",luku); ch = getchar(); ch = fgetc(infilep); putchar(ch); fputc(ch, outfilep); 479

18 Tiedostot on käsittelyn lopuksi suljettava funktiolla fclose. tiedosto voidaan avata myöhemmin samassa ohjelmassa uudelleen, jos tarve vaatii fclose vapauttaa tiedoston puskurialueelle varatun tilan ja kirjoittaa puskurin sisällön tiedostoon, jos tietoa ei vielä ole talletettu. fclose (infilep); fclose (outfilep); 480

19 Tekstitiedoston käsittelyssä voidaan erottaa kolme eri tyyliä merkeittäin: fgetc, fputc riveittäin: fgets, fputs formatoidusti: fscanf, fprintf 481

20 Esimerkkiohjelma, joka kopioi tekstitiedoston #include <stdio.h> #define KOKO 80 int main ( void ) { char inname[koko], outname[koko]; /* nimet */ FILE *inp, *outp; int ch; /* merkin ASCII-koodin lukemiseen */ printf("\nanna kopioitavan tiedoston nimi >"); scanf("%s",inname); if( (inp=fopen(inname, "r")) == NULL){ printf("tiedoston %s avaaminen lukemista varten epäonnistui\n", inname); return 0; } 482

21 printf("\nanna kopiotiedoston nimi >"); scanf("%s", outname); outp = fopen(outname, "w"); for ( ch = fgetc( inp ); ch!= EOF; ch = fgetc ( inp )){ fputc ( ch, outp); } } fclose( inp ); fclose( outp ); printf("\nkopioitiin tiedosto %s tiedostoksi %s\n", inname, outname); return ( 0 ); 483

22 484

23 Tiedoston avauksessa olennaista avausmoodi r avaa olemassa olevan tiedoston lukemista varten w luo uuden tiedoston kirjoitusta varten, jos tiedosto on jo olemassa, tuhoutuu sen vanha sisältö a avaa olemassa olevan tiedoston lisäämistä varten, jos tiedostoa ei ole se luodaan r+ avaa olemassa olevan tiedoston sekä lukemista että kirjoitusta varten w+ avaa tiedoston lukemista ja kirjoittamista varten, jos tiedosto on jo olemassa, tuhoutuu sen vanha sisältö a+ avaa olemassa olevan tiedoston sekä lukemista että lisäämistä varten, jos tiedostoa ei ole niin se luodaan. 485

24 Esimerkkifunktio, joka ylläpitää asiakkaiden tilitietoja tekstitiedostossa tilinumero nimi saldo Suunnittelussa on otettava huomioon miten tiedostossa erotetaan toisistaan tilinumero, nimi, saldo ja miten eri tilirivit erotetaan toisistaan. 486

25 Esiteltävässä ohjelmassa tilinumero erotetaan nimestä välilyönnillä ja nimi erotetaan saldosta välilyönnillä tilirivit erotetaan toisistaan rivinvaihdolla '\n' eli tiedosto on muotoa: Kalle \n91928 Ville \n12001 Liisa \n99999 Erkki 0.000<EOF> #include<stdio.h> void lisaatileja( void ); int main(void){ } lisaatileja(); return 0; 487

26 void lisaatileja ( void ) { int tilinro; char nimi[40]; double saldo; FILE *ptr; if ( ( ptr = fopen ("roskapankki.dat", "a" ) ) == NULL ) printf("\ntiedoston avaaminen epäonnistui\n"); else { do { printf("\nanna tilinumero, nimi, saldo. \n"); printf("anna - 1 tilinumeroksi, kun haluat lopettaa.\n"); printf("\ntilinumero?"); scanf("%d", &tilinro); if ( tilinro < 0 ) break; /* ulos silmukasta */ 488

27 printf("\nnimi? "); scanf("%s", nimi ); printf("\nsaldo? "); scanf("%lf", &saldo); fprintf(ptr, "%d %s %.2lf\n", tilinro, nimi, saldo); }while( 1 ); /* näennäisesti ikuinen silmukka */ fclose( ptr ); } } /* else */ 489

28 490

29 Vastaavasti kun halutaan lukea tekstitiedostosta ja tiedoston tarkka muoto tiedetään, voidaan käyttää funktiota fscanf 491

30 #include<stdio.h> int main(void){ FILE * ptr; int tilinro; double saldo; char nimi[40]; if (( ptr = fopen ("roskapankki.dat", "r" )) == NULL ) printf("\ntiedoston avaaminen avaaminen epäonnistui"); else { printf("%-12s%-13s%s\n","tilinumero", "Nimi","Saldo"); fscanf(ptr, "%d%s%lf", &tilinro, nimi, &saldo); 492

31 while(!feof( ptr)) { printf("%-12d%-13s%9.2lf\n", tilinro, nimi, saldo); fscanf(ptr, "%d%s%lf", &tilinro, nimi, &saldo); } fclose ( ptr ); } /* else */ return 0; } 493

32 494

33 Binääritiedostot Tekstitiedostoja lukiessa ohjelma muuttaa tietovirran merkit tietokoneen sisäiseen binääriesitykseen ja vastaavasti kirjoitettaessa toisinpäin. Usein ohjelmat tuottavat tiedostoja, jotka annetaan suoraan syöttötietona jollekin toiselle ohjelmalle eikä tiedoston sisältöä ole tarkoitus näyttää ihmiselle. Binääritiedostossa tieto talletetaan nimensä mukaisesti binäärisessä eli koneen ymmärtämässä muodossa. 495

34 Esimerkiksi luvun 593 tallettaminen käyttää 4 tavua (32 bittiä ), luku talletetaan binäärilukuna: Vältetään turha muunnos kun käsittely tapahtuu koko ajan binäärisenä. Seuraava ohjelmakoodi luo binääritiedoston "nums.bin", joka sisältää parilliset kokonaisluvut

35 #include<stdio.h> int main(void){ FILE *binfile; int i; binfile = fopen ("nums.bin", "wb"); if(null!= binfile){ for ( i = 2; i <=500; i += 2) fwrite(&i, sizeof(int), 1, binfile); } fclose (binfile); } return 0; 497

36 Ero tekstitiedoston käsittelyyn fwrite-kirjastofunktio Funktiolla fwrite on neljä parametria 1. ensimmäisen kirjoitettavan tietoalkion osoite ( & ) 2. tietoalkion koko ( sizeof ) 3. yhdellä kertaa kirjoitettavien tietoalkioiden lukumäärä ( 1 ) 4. tiedoston osoite, jonne tiedot kirjoitetaan (binfile) 498

37 Jos taulukko score on 10 kokonaisluvun taulukko, kirjoittaisi seuraava lause koko taulukon binfile -osoittimen osoittamaan tiedostoon. fwrite( score, sizeof(int), 10, binfile ); 499

38 Lukemiseen vastaavasti funktio fread, jolla on neljä parametria 1. muuttujan osoite, jonne luettu tieto talletetaan ( & ) 2. luettavan tietoalkion koko (sizeof) 3. yhdellä kertaa luettavien tietoalkioiden maksimi lukumäärä 4. tiedoston osoite, josta tiedot luetaan fread ja fwrite palauttavat luettujen ja vastaavasti kirjoitettujen tietoalkioiden lukumäärän. 500

39 Tiedostotyyppejä ei kannata sekoittaa binäärit luetaan ja kirjoitetaan funktioilla fread ja fwrite tekstitiedostot luetaan ja kirjoitetaan funktioilla fscanf, fprintf sekä fgetc ja fputc 501

40 Suorasaantitiedostot Tiedostojen käsittelyssä suorasaanti mahdollistaa tietueen poimimisen mistä tahansa kohtaa tiedostoa. Suorasaanti perustuu tiedon fyysiseen sijaintikohtaan tiedostossa. Jos tiedostoon sijoitetaan peräkkäin neljä 20 tavun mittaista tietuetta, sijoittuvat ne seuraavasti tietue 2. tietue 3. tietue 4. tietue 502

41 Käsittelyssä olennaista tiedosto-osoitin, joka näyttää kulloisenkin tiedoston fyysisen käsittelykohdan osoittimen siirtoon funktiot fseek ja rewind Suorasaantia käytetään yleensä binääritiedostojen yhteydessä, koska ei tarvitse tehdä muunnoksia. 503

42 Seuraavassa ohjelmassa tehdään suorasaantitiedosto tilikirjanpitoa varten. Oletetaan että kirjanpitoon riittää sadan tietueen tiedosto, jossa jokainen tietue koostuu kentistä int tilinro char sukunimi[15] char etunimi[15] double saldo #include <stdio.h> typedef struct asiakas_s { int tilinro; char sukunimi[15]; char etunimi[15]; double saldo; } Asiakas_t; 504

43 int main (void) { Asiakas_t tyhja = {0, "", "", 0.0 }; FILE * tiedosto; if (( tiedosto = fopen ("saldot.dat", "w")) == NULL ) printf("\ntiedoston avaaminen epäonnistui"); else { fwrite (&tyhja, sizeof(asiakas_t), 100, tiedosto); } fclose(tiedosto); return (0); } 505

44 Edellinen ohjelma loi suorasaantitiedoston "saldot.dat" ( oletushakemistoon ) ja alusti siihen sata tyhjää tietuetta, joita voidaan käyttää asiakastietueina. Seuraavana esiteltävä funktio lisää em. tiedostoon halutulle tilinumerolle ( = tietuenumero ) uudet asiakastiedot. Kirjoituksessa on löydettävä annettua tietueen numeroa vastaava paikka tiedostosta, jonne tiedot talletetaan. Paikka saadaan kaavalla ( tietueen järjestysnumero - 1 ) * tietueen koko Funktiota fseek käyttämällä voidaan käsittelykohta asettaa 506

45 kolmannelle tietueelle tyyppiä Asiakas_t tietovirtaan tiedosto fseek ( tiedosto, ( 3-1 ) * sizeof( Asiakas_t ), SEEK_SET ); Olennaista on huomata, että tiedoston osoitin tarkoittaa eri asiaan kuin tiedosto-osoitin. tiedoston osoitin näyttää käsiteltävän tiedoston tiedosto-osoitin näyttää käsittelykohdan tiedoston sisällä Funktiolla fseek asetetaan käsittelykohta, joka siirtyy yhdellä (Huom. osoitinaritmetiikka!) eteenpäin jokaisen fread -operaation 507

46 seurauksena. Funktion fseek kolmas parametri kertoo alkupisteen, josta siirtymisen laskenta alkaa. Vakion nimi Arvo Alkupiste SEEK_SET 0 Tiedoston alku SEEK_CUR 1 Nykyinen sijainti SEEK_END 2 Tiedoston loppu 508

47 #include <stdio.h> typedef struct asiakas_s { int tilinro; char sukunimi[15]; char etunimi[15]; double saldo; } Asiakas_t; void uusi ( FILE * tiedosto); void LueRoskat(void); int main (void) { int i; FILE * tiedosto; 509

48 if (( tiedosto = fopen ("saldot.dat", "r+")) == NULL ) printf("\ntiedoston avaaminen epäonnistui"); else { for(i=0; i<4;i ++) uusi( tiedosto ); //4 asiakasta talteen } fclose( tiedosto ); } return 0; 510

49 void uusi( FILE *tiedosto ) { Asiakas_t asiakas; int tili; printf("\nanna tilinumero ( 1-100): "); scanf("%d", &tili); lueroskat(); fseek(tiedosto,( tili - 1 ) * sizeof( Asiakas_t), SEEK_SET ); fread( &asiakas, sizeof( Asiakas_t), 1, tiedosto); 511

50 if( asiakas.tilinro!= 0 ) printf("\ntilinumero %d on jo käytössä!\n",asiakas.tilinro); else { printf("\nanna sukunimi, etunimi, saldo >\n"); scanf("%s%s%lf", asiakas.sukunimi, asiakas.etunimi, &asiakas.saldo); lueroskat(); asiakas.tilinro = tili; } fseek(tiedosto,(asiakas.tilinro-1)*sizeof(asiakas_t), SEEK_SET ); fwrite(&asiakas, sizeof(asiakas_t), 1, tiedosto); } void LueRoskat(void){ while(fgetc(stdin)!='\n'); } 512

51 Funktio lukee asiakastietoja binääritiedostosta ja kirjoittaa tiedot tekstimuodossa toiseen tiedostoon. Funktiolla rewind siirretään käsittelykohta tiedoston alkuun. 513

52 void teksti ( FILE *luku) { FILE *kirjoitus; Asiakas_t asiakas; } if( (kirjoitus = fopen ("saldot.dat", "w")) == NULL) printf("\ntiedostoa ei voitu avata\n"); else{ rewind( luku ); fprintf(kirjoitus,"%-6s%-16s%-16s%-10s\n","tili", "Sukunimi","Etunimi","Saldo"); fread (&asiakas, sizeof( Asiakas_t), 1, luku ); while(!feof( luku ) ) { if( asiakas.tilinro!= 0 ) fprintf( kirjoitus, "%-6d%-16s%-16s%10.2lf\n", asiakas.tilinro, asiakas.sukunimi, asiakas.etunimi, asiakas.saldo); fread (&asiakas, sizeof( Asiakas_t), 1, luku ); } } 514

53 Funktiolla ftell saadaan selville tiedosto-osoittimen senhetkinen arvo, tavuina tiedoston alusta. Tämän avulla voidaan laskea esim. montako asiakastietuetta tiedostossa on. #include <stdio.h> typedef struct asiakas_s { int tilinro; char sukunimi[15]; char etunimi[15]; double saldo; } Asiakas_t; 515

54 int main(void){ FILE * tiedosto; int kokotavuina; int tietueidenlukumaara; tiedosto = fopen("saldot.dat", "r"); if( NULL!= tiedosto ){ fseek( tiedosto, 0, SEEK_END ); /* tiedoston loppuun */ kokotavuina = ftell( tiedosto ); tietueidenlukumaara = kokotavuina / sizeof( Asiakas_t ); } printf("\ntiedosto \"saldot.dat\" sisältää %d\n tietuetta\n",tietueidenlukumaara ); fclose( tiedosto ); } return 0; 516

55 517

56 Taulukot ja tiedostot #include <stdio.h> #include <stdlib.h> #include <string.h> #define ITEMS 7 int main ( void ) { char filename [85] ="taulukko.dat"; int count; FILE *fileptr; int data[items] = {8, 57, 5, 309, 33, 87, 55 }; int data2[items]={0}; 518

57 if((fileptr = fopen ( filename, "w"))!= NULL){ printf("\nkirjoitan tietoalkioita tiedostoon %s...\n", filename); fwrite ( data, sizeof(data), 1, fileptr ); fclose ( fileptr ); if((fileptr = fopen ( filename, "r"))!= NULL) { printf ("\nluetaan tietoalkioita tiedostosta %s...\n", filename ); fread( &data2, sizeof(data), 1, fileptr ); fclose(fileptr); } printf("\ntaulukon tietoalkiot ovat:\n\n"); for ( count = 0; count < ITEMS; count++) { printf("data2[%d] arvo on %d\n", count, data2[count]); } } } return ( 0 ); 519

58 520

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot Tiedosto yhteenkuuluvien tietojen joukko, joka on tavallisesti talletettu pysyväismuistiin muodostuu tietueista, jotka voivat olla keskenään samanlaisia tai vaihdella tyypiltään tiedostot ovat joko tekstitiedostoja

Lisätiedot

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

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

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

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

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

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

Tiedosto. Tiedostot ovat joko binääritiedostoja tai tekstitiedostoja. Tekstitiedostot

Tiedosto. Tiedostot ovat joko binääritiedostoja tai tekstitiedostoja. Tekstitiedostot Tiedosto Monessa tilanteessa olisi hyvä pystyä tallentamaan ohjelman suorituksen aikana syntyvää tietoa pysyvämmin. Nythän kaikki katoaa kun ohjelman suoritus lopetetaan. Tietoja on mahdollista tallentaa

Lisätiedot

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

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,

Lisätiedot

Ohjausrakenteet. Valinta:

Ohjausrakenteet. Valinta: Ohjausrakenteet Luento antaa yleiskuvan siitä kuinka ohjelmassa suorittaan vaihtoehtoisia tehtäviä valintarakenteiden avulla ja kuinka samanlaisia ohjelma-askeleita toistetaan toistorakenteiden avulla

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman

Lisätiedot

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

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

tietueet eri tyyppisiä tietoja saman muuttujan arvoiksi

tietueet eri tyyppisiä tietoja saman muuttujan arvoiksi tietueet eri tyyppisiä tietoja saman muuttujan arvoiksi ero taulukkoon taulukossa alkiot samantyyppisiä tietueessa alkiot voivat olla erityyppisiä tiedot kuitenkin yhteen kuuluvia ohjelmoinnin perusteet,

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

C-kieli mahdollistaa hyvin tiiviin ja samalla sekavan tavan esittää asioita, kuitenkin hyvän ohjelman tulisi olla mahdollisimman helppolukuinen ja

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

Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa

Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa ssa ohjelman käytössä suoritusaikana oleva muisti jakautuu neljään osaan: koodisegmentti datasegmentti pinosegmentti (stack) kasa (heap) ssa ohjelman koodisegmentti sisältää käännetyn ohjelmakoodin sisältö

Lisätiedot

2. C-kieli ja ongelmanratkaisu

2. C-kieli ja ongelmanratkaisu 2. C-kieli ja ongelmanratkaisu Taustaa Esimerkki C-kielisen ohjelman kehityksestä Kielen yleispiirteet Muuttujat Suoritettavat lauseet Tietotyypit ja lausekkeet Tietojen lukeminen ja tulostaminen 64 C

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

TIETORAKENTEET JA ALGORITMIT

TIETORAKENTEET JA ALGORITMIT TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle

Lisätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja

Lisätiedot

Muuttujien roolit Kiintoarvo cin >> r;

Muuttujien roolit Kiintoarvo cin >> r; Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ...

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ... 1. Tietorakenteet Tietorakenteet organisoivat samankaltaisten olioiden muodostaman tietojoukon. Tämä järjestys voidaan saada aikaan monin tavoin, esim. Keräämällä oliot taulukkoon. Liittämällä olioihin

Lisätiedot

Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä.

Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä. 3. Funktiot Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä. Modulaarisuudella pyritään parantamaan ohjelman ymmärrettävyyttä, testattavuutta sekä

Lisätiedot

13 Operaattoreiden ylimäärittelyjä

13 Operaattoreiden ylimäärittelyjä 248 13 C++-kielessä voidaan operaattoreita ylimäärittää. Ylimääriteltävää operaattoria voidaan pitää ikäänkuin metodina, joka esitellään luokan esittelyssä ja määritellään luokan ulkopuolella kuten metoditkin.

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

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja

Lisätiedot

3. Binääripuu, Java-toteutus

3. Binääripuu, Java-toteutus 3. Binääripuu, Java-toteutus /*-------------------------------------------------------------/ / Rajapinta SearchTree: binäärisen hakupuun käsittelyrajapinta / / Metodit: / / void insert( Comparable x );

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

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

Osoittimet. Mikä on osoitin?

Osoittimet. Mikä on osoitin? Osoittimet 7 Osoittimet On aika siirtyä käsittelemään osoittimia, C++:lle elintärkeätä ominaisuutta. Osoittimet ovat tärkeitä, koska ne luovat perustan muistin dynaamiselle varaukselle ja käytölle. Ne

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro: KILPAILIJAN TEHTÄVÄT Kilpailijan nimi / Nro: Tehtävän laatinut: Hannu Laurikainen, Deltabit Oy Kilpailutehtävä Kilpailijalle annetaan tehtävässä tarvittavat ohjelmakoodit. Tämä ohjelma on tehty laitteen

Lisätiedot

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot. EVTEK Teknillinen ammattikorkeakoulu Ohjelmointi (C) T0004 Syksy 2003 Olli Hämäläinen kurssin sisältö ja tavoitteet työmuodot luennot 1-2/2003 laboratorioharjoitukset 1-2/2003 kotitehtävät, laboratoriokerrat

Lisätiedot

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,

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

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

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

Ohjeet. Jaa vastauksesi konsepteille siten, etta:

Ohjeet. Jaa vastauksesi konsepteille siten, etta: / AS-0.1103/4 C~ohjelmoinnin peruskurssi Aalto-yliopiston teknillinen korkeakoulu Tentti 12.05.2010, Raimo Nikkilii Ohjeet Kaikki ohjelmointitehtavat tulee toteuttaa C-kielella hyvaa ohjelmointityylia

Lisätiedot

Plagioinnin tunnistaminen lähdekielisistä ohjelmista

Plagioinnin tunnistaminen lähdekielisistä ohjelmista Plagioinnin tunnistaminen lähdekielisistä ohjelmista Plagiointi- ja tutkimusetiikka seminaari 30.09.2003 Kirsti Ala-Mutka TTY/Ohjelmistotekniikka Sisältö Plagiointi ohjelmointikursseilla Tyypillisiä ulkoasumuutoksia

Lisätiedot

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

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

int puts(char *buff) Kirjoittaa puskurissa buff \0 :lla päätetyn merkkijonon standarditulostukseen. Formatoitu konsoli-i/o Tiedostot

int puts(char *buff) Kirjoittaa puskurissa buff \0 :lla päätetyn merkkijonon standarditulostukseen. Formatoitu konsoli-i/o Tiedostot 1. Standardikirjasto Ohjelmankehitysympäristössä on joukko kirjastoituja funktioita. on joukko otsikkotiedostoja, joissa on kirjastofunktioiden prototyypit (esittelyt) ja tarvittavien vakioiden, tietotyyppien

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

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

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (ArrayList-luokka) Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen

Lisätiedot

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt

Lisätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa(); Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio

Lisätiedot

Hieman linkkejä: http://cs.stadia.fi/~kuivanen/linux/kom.php, lyhyt ohje komentoriviohjelmointiin.

Hieman linkkejä: http://cs.stadia.fi/~kuivanen/linux/kom.php, lyhyt ohje komentoriviohjelmointiin. Linux-harjoitus 9 Linuxin mukana tulevat komentotulkit (mm. bash, tcsh, ksh, jne ) sisältävät ohjelmointikielen, joka on varsin tehokas ja ilmaisuvoimainen. Tähän yhdistettynä unix-maailmasta tutut tehokkaat

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

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

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 14.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 14.2.2011 1 / 55 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

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

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

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include 15: 16: int main() 17: {

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: { Osa I 2. oppitunti C++-ohjelman osat Ennen kuin menemme yksityiskohtaisemmin sisälle C++-luokkiin, -muuttujiin jne, katsokaamme ensin, millaisista osista C++-ohjelma koostuu. Tämän tunnin aikana opit seuraavat

Lisätiedot

6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva

6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva 6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva Experience is what causes people to make new mistakes instead of old ones... - Unknown Sisältö Yleistä EEPROM-rekisterit Protoilu-ohje EEPROMmista ja Fuse-biteistä

Lisätiedot

Luento 2: Tiedostot ja tiedon varastointi

Luento 2: Tiedostot ja tiedon varastointi HELIA 1 (19) Luento 2: Tiedostot ja tiedon varastointi Muistit... 2 Päämuisti (Primary storage)... 2 Apumuisti (Secondary storage)... 2 Tiedon tallennuksen yksiköitä... 3 Looginen taso... 3 Fyysinen taso...

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

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

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle ELEC-A4010 Sähköpaja Arduinon ohjelmointi Jukka Helle Arduino UNO R3 6-20VDC 5VDC muunnin 16 MHz kideoskillaattori USB-sarjamuunnin (ATmega16U2) ATmega328 -mikro-ohjain 14 digitaalista I/O väylää 6 kpl

Lisätiedot

Esimerkki 1: Kahviautomaatti.

Esimerkki 1: Kahviautomaatti. Esimerkki 1: Kahviautomaatti. ÄÄRELLISET AUTOAATIT JA SÄÄNNÖLLISET KIELET 2.1 Tilakaaviot ja tilataulut Tarkastellaan aluksi tietojenkäsittelyjärjestelmiä, joilla on vain äärellisen monta mahdollista tilaa.

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset

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

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 12.10.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 12.10.2015 1 / 32 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta

Lisätiedot

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

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100 Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2011 1 / 37 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

Metodien tekeminen Javalla

Metodien tekeminen Javalla 1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.

Lisätiedot

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

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

etunimi, sukunimi ja opiskelijanumero ja näillä

etunimi, sukunimi ja opiskelijanumero ja näillä Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

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

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

Kielioppia: toisin kuin Javassa

Kielioppia: toisin kuin Javassa Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien

Lisätiedot

Ohjelmointi Tunnilla 1 (5) 13.10.2014. Viikko 7 tuntitehtäviä: metodien tekeminen Javalla

Ohjelmointi Tunnilla 1 (5) 13.10.2014. Viikko 7 tuntitehtäviä: metodien tekeminen Javalla 1 (5) Viikko 7 tuntitehtäviä: metodien tekeminen Javalla 1. Tee ohjelma (kalvoesimerkkinä), joka kysyy asunnon myyntihinnan ja laskee asunnon myynnistä maksettavan välityspalkkion. Välityspalkkion on 3,44%

Lisätiedot

OPINTOJAKSON OHJELMOINTI HARJOITUSTEN RATKAISUJA

OPINTOJAKSON OHJELMOINTI HARJOITUSTEN RATKAISUJA OPINTOJAKSON OHJELMOINTI HARJOITUSTEN RATKAISUJA HARJOITUS 1 1. Laadi algoritmi opiskelijan aamutoimista ja koulumatkasta. 2. Laadi algoritmi, joka lukee käyttäjän antamia lukuja niin kauan, kunnes sille

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

Tietojen tallennus ja luku

Tietojen tallennus ja luku Tietojen tallennus ja luku Tehtävissä on käytetty esimerkkejä osoitteesta: http://exploringdata.cqu.edu.au/datasets.htm Matlabin muuttujien tallennus: save ja load Käytössä olevat muuttujat tallennetaan

Lisätiedot

IT K 1 45 K ä yt t öj ä rj estelmät

IT K 1 45 K ä yt t öj ä rj estelmät IT K 1 45 K ä yt t öj ä rj estelmät Tenttikysymyksiä ja vastauksia Aliohjelman suoritusperiaate, ts. selvitä pinon käyttö ja paluuarvon välittäminen (3p) 1. Ennen aliohjelman aloittamista kutsuja tallettaa

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2015 1 / 25 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Dynaaminen muisti Rakenteiset tietotyypit

Dynaaminen muisti Rakenteiset tietotyypit C! Dynaaminen muisti Rakenteiset tietotyypit 1.3.2016 Agenda Kertausta Dynaaminen muisti Valgrind-perusteet ja esimerkkejä Yhteenveto tietorakenteista Vilkaisu 3. kierroksen tehtäviin Esim: miten linkitetty

Lisätiedot

Suurten asiakasriskien ilmoittamiseen liittyvät konekielisen tietojenvälityksen ohjeet

Suurten asiakasriskien ilmoittamiseen liittyvät konekielisen tietojenvälityksen ohjeet 1(6) Suurten asiakasriskien ilmoittamiseen liittyvät konekielisen tietojenvälityksen ohjeet 1 Tietojen esitystapa ja tietoväline Toimitettavat tiedostot koostuvat vaihtuvanmittaisista tietueista. Tietueiden

Lisätiedot

Fortran 90/95. + sopii erityisesti numeriikkaan:

Fortran 90/95. + sopii erityisesti numeriikkaan: Fortran 90/95 + sopii erityisesti numeriikkaan: + optimoivat kääntäjät tehokas koodi + mukana valmiiksi paljon varusfunktioita + kompleksiluvut + taulukko-operaatiot + operaattorit laajennettavissa myös

Lisätiedot

Sähköposti ja uutisryhmät 4.5.2005

Sähköposti ja uutisryhmät 4.5.2005 Outlook Express Käyttöliittymä Outlook Express on windows käyttöön tarkoitettu sähköpostin ja uutisryhmien luku- ja kirjoitussovellus. Se käynnistyy joko omasta kuvakkeestaan työpöydältä tai Internet Explorer

Lisätiedot

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

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. TIETOKONEOHJELMIEN RAKENNE Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. Teollisuusautomaation ohjelmiin on lainattu runsaasti perinteisen

Lisätiedot

Mikä yhteyssuhde on?

Mikä yhteyssuhde on? 1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String

Lisätiedot

T Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

T Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010 11. Luokka Opetellaan seuraavaksi, miten omia luokkia kirjoitetaan. Aikaisemmin olikin jo esillä, että luokka on tietorakenne, joka sisältää sekä tiedot (attribuutit) että niitä käsittelevät aliohjelmat

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

Lisätiedot

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

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi 1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla

Lisätiedot

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014 Racket ohjelmointia osa 2 Tiina Partanen Lielahden koulu 2014 Sisältö 1) Funktiot ja muuttujat (kertaus) 2) Animaatiot & pelit (big-bang) 3) Vertailuoperaattorit sekä boolean arvot 4) Tietorakenteet (struct)

Lisätiedot

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

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