Tiedosto on yhteenkuuluvien tietojen joukko, joka tavallisimmin sijaitsee kiintolevyllä, muistitikulla tai jollakin muulla fyysisellä tietovälineellä.
|
|
- Kaarlo Salonen
- 8 vuotta sitten
- Katselukertoja:
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
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ätiedotTietueet. 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ätiedotMerkkijono 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ätiedotOhjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.
Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan
LisätiedotOhjelmoinnin 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ätiedotPythonin 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// // whiledemov1.c // #include <stdio.h> int main(void){ int luku1 = -1; int luku2 = -1;
// // whiledemov1.c // #include int main(void){ int luku1 = -1; int luku2 = -1; while( luku1
LisätiedotC-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.
Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen
LisätiedotBinäärioperaatiot Tiedostot ja I/O
C! Binäärioperaatiot Tiedostot ja I/O 8.3.2018 Tiedotteita Viimeinen luento to 29.3. Ohjelmointitehtävä, ohjelmointikoe ja niiden järjestelyt Ohjelmointikokeeseen ilmoittautuminen auki 2 .c tiedostot ja.h
LisätiedotModuli 5: Kehittyneitä piirteitä
C! : Kehittyneitä piirteitä 19.4.2016 Aikataulusta 5. harjoituskierroksen määräaika: pe 22.4. Maari-C keskiviikkoisin ja torstaisin (12-14) Ti 26.4. Harjoitustentti (eli kertausluento) Normaalin luennon
LisätiedotC-ohjelmointi, syksy 2006
, syksy 2006 Taulukot Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot Binääritiedostot Luento 8 3.10.2006 Syksy 2006 1 Luennon sisältö Taulukoiden käsittelyä Yksiulotteiset taulukot
LisätiedotC-ohjelmointi, syksy Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot. Binääritiedostot. Luento
, syksy 2006 Taulukot Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot Binääritiedostot Luento 8 3.10.2006 Syksy 2006 1 Luennon sisältö Taulukoiden käsittelyä Yksiulotteiset taulukot
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.3.2010 1 / 44 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotBinäärioperaatiot Tiedostot ja I/O
C! Binäärioperaatiot Tiedostot ja I/O 16.3.2017 Tiedotteita Määräaikoja pidennetty Myös 7. kierros uudestaan auki perjantaihin asti Seuraava ja viimeinen luento 30.3. Makrot, funktio-osoittimet Kokeen
LisätiedotLuennon sisältö. Taulukot (arrays) (Müldnerin kirjan luku 10) Yksiulotteiset taulukot. Mikä taulukko on? Taulukko-osoitin. tavallinen osoitin
, kevät 2006 Taulukot Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot Binääritiedostot Luento 8 21.3.2006 Kevät 2006 Liisa Marttinen 1 Luennon sisältö Taulukoiden käsittelyä Yksiulotteiset
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 4.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 4.3.2009 1 / 35 Tiedostot Tiedostojen käsittelyä tarvitaan esimerkiksi seuraavissa tilanteissa: Ohjelman käsittelemiä
LisätiedotOhjelmassa 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ätiedotTiedosto. 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ätiedotC-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ätiedotOhjausrakenteet. Valinta:
Ohjausrakenteet Luento antaa yleiskuvan siitä kuinka ohjelmassa suorittaan vaihtoehtoisia tehtäviä valintarakenteiden avulla ja kuinka samanlaisia ohjelma-askeleita toistetaan toistorakenteiden avulla
LisätiedotKoottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.
2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman
LisätiedotLyhyt kertaus osoittimista
, syksy 2007 Kertausta Luento 10 12.10.2007 Syksy 2007 1 Lyhyt kertaus osoittimista char *p; /* char, int, jne ilmoittavat, minkä tyyppisiä */ Keskusmuisti int *q; /* olioita sisältäviin muistilohkoihin
Lisätiedottietueet 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#include <stdio.h> // io-toiminnot. //#define KM_MAILISSA int main( ){
demo1.c 30/09/15 08:19 #include // io-toiminnot //#define KM_MAILISSA 1.609 int main( ){ double mailit = 0.0; double kilometrit; const double KM_MAILISSA = 1.609; printf("anna maililukema > ");
LisätiedotC-kieli mahdollistaa hyvin tiiviin ja samalla sekavan tavan esittää asioita, kuitenkin hyvän ohjelman tulisi olla mahdollisimman helppolukuinen ja
1. C-kieli yleiskäyttöinen ohjelmointikieli, standardoitu 1990. siirrettävä laiteläheinen pieni ydin, monimutkaiset kokonaisuudet rakennetaan aliohjelmakirjastojen avulla. direktiivit ja esikääntäjien
LisätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero
LisätiedotTietuetyypin 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ätiedotJava-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ätiedotMuistin 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ätiedotLoppukurssin järjestelyt
C! Loppukurssin järjestelyt 29.3.2018 Ohjelmassa Yhteenvetoa palautteesta Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Kysyttävää / kerrattavaa 10-kierroksen asioista? Aikatauluista 10. kierroksen
Lisätiedot2. 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ätiedotLoppukurssin järjestelyt C:n edistyneet piirteet
C! Loppukurssin järjestelyt C:n edistyneet piirteet 30.3.2017 Ohjelmassa Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Esikääntäjä Parametrilistat Funktio-osoittimet Kunniamainintoja Kuura
LisätiedotLuennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö ja tulostu
C-kurssi Viikko 1: tyypit, rakenteet, makrot Luennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö ja tulostus Makrot
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin
LisätiedotTähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python 15. helmikuuta 2009 Merkkijonot Yleistä Käsittely Muotoiltu tulostus Tiedostot Käsittely Lukeminen Kirjoittaminen Modulit Käyttö Seuraava luento
LisätiedotKirjoita 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ätiedotTietotyypit 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ätiedotPerusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
LisätiedotTIETORAKENTEET 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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 1.3.2010 1 / 36 Monikko Monikko (engl. tuple) muistuttaa listaa, mutta monikon sisältöä ei voi muuttaa sen jälkeen,
LisätiedotPerusteet. 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ätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 14.10.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 14.10.2015 1 / 32 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta
LisätiedotJava-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ätiedotRakenteiset tietotyypit Moniulotteiset taulukot
C! Rakenteiset tietotyypit Moniulotteiset taulukot 22.2.2018 Agenda Rakenteiset tietotyypit Vilkaisu 6. kierroksen tehtäviin Moniulotteiset taulukot Esimerkki Seuraava luento to 8.3. Ilmoittautuminen ohjelmointikokeeseen
Lisätiedot1. Mitä seuraava ohjelma tulostaa? Vastaukseksi riittää yksi rivi joka esittää tulosteen. (6 p)
C- ohjelmoinnin peruskurssi, Tentti 28.5.2015 Lyhyt referenssi funktioista tehtäväpaperin lopussa. Paperilla on 5 tehtävää, joista useimmissa on muutama alikohta. Maksimipistemäärä on 30 pistettä. Kirjoita
Lisätiedot815338A 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ätiedotOhjeet. AS C-ohjelmoinnin peruskurssi Aalto-yliopiston sahkotekniikan korkeakoulu Tentti , Raimo Nikkila
AS-0.1103 C-ohjelmoinnin peruskurssi Aalto-yliopiston sahkotekniikan korkeakoulu Tentti 15.05.2013, Raimo Nikkila Ohjeet Kaikki ohjelmointitehtavat tulee toteuttaa C-kielella hyvaa ohjelmointityylia noudattaen.
Lisätiedot815338A 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ätiedotOhjelmointiharjoituksia Arduino-ympäristössä
Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
LisätiedotOhjelmoinnin 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ätiedotMuuttujien 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ätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
LisätiedotC-kurssi kevät Luennon sisältö
C-kurssi kevät 2006 Luento 2: tyypit, rakenteet, makrot 24.1.2006 Luennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö
LisätiedotLuennon sisältö. C-kurssi kevät Tasokokeen kohta 1: Taulukon järjestäminen. Tasokokeen kohta 2. Tasokokeen kohta 2. Tasokokeen kohta 3
Luennon sisältö C-kurssi kevät 2006 Luento 2: tyypit, rakenteet, makrot 24.1.2006 Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö
Lisätiedot13 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ätiedotICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 Kierros 6, 22. 26. helmikuuta Huom: arviointiviikolla 15. 19.2. ei ole laskuharjoituksia! Demonstraatiotehtävien ratkaisut D1: (a) Osoita, että seuraava yhteydetön
Lisätiedot1.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ätiedotKirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä.
Tehtävä 1. Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä. #include /* mm. I/O-funktiot */ #include /* mm. EXIT_SUCCESS */ /*main-funktio,
LisätiedotOsoitin 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ätiedotSisä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ätiedotJohdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2
Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2 Syntaksilomake (22.4.2007) C-kielen standardikirjaston funktioita gets(merkkijono); scanf("formaatti", &muuttuja1,..., &muuttujan); sscanf(merkkijono,
LisätiedotATK tähtitieteessä. Osa 4 - IDL input/output. 19. syyskuuta 2014
19. syyskuuta 2014 IDL - INPUT/OUTPUT-rutiinit IDL pystyy lukemaan ja kirjoittamaan monentyyppisiä tiedostoja, esim. FORTRAN ja C-kielten ohjelmien tulostusta. Käytössä on myös monipuoliset tulostuksen
Lisätiedot815338A 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ätiedotOhjelmoinnin 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ätiedotif-lauseen yksinkertaisin muoto on sellainen, missä tietyt lauseet joko suoritetaan tai jätetään suorittamatta.
if- valintarakenne Yksittäisen vaihtoehdon valinta if-lauseen yksinkertaisin muoto on sellainen, missä tietyt lauseet joko suoritetaan tai jätetään suorittamatta. Syntaksi: if (ehto) lauseita; Aaltosulkeiden
LisätiedotOhjelmoinnin 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ätiedotModulaarisessa 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ätiedotOperaattoreiden 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ätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Muuttujat eri muisteissa Ohjelman muistialueen layout Paikallisen ja globaalin muuttujan ominaisuudet Dynaamisen muistinkäytön edut Paikallisten muuttujien dynaamisuus ADT
LisätiedotOhjelmoinnin 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ätiedotOsoittimet ja taulukot
Osoittimet ja taulukot Hannu Laine Copyright Hannu Laine Osoittimet int main (void) { int a; int *p; //p on osoitinmuuttuja p = &a; *p = 10; printf( %d, *p); //tulostuu muuttujan a sisältö scanf( %d, p);
LisätiedotC-kurssi syksy ltö. Luennon sisält. Luento 2: tyypit, rakenteet, makrot Tyypit. signed, unsigned short,, long Vakiot const Rakenteet
C-kurssi syksy 2007 Luento 2: tyypit, rakenteet, makrot 5.9.2008 Luennon sisält ltö Tyypit int, char, float, double signed, unsigned short,, long Vakiot const Rakenteet if,, for, while, switch, do-while
LisätiedotLuennon sisält. ltö. C-kurssi syksy ääreet: int ja char. Yksinkertaiset tyypit. Kokonaisluvut. Merkit
Luennon sisält ltö C-kurssi syksy 2007 Luento 2: tyypit, rakenteet, makrot 5.9.2008 Tyypit int, char, float, double signed, unsigned short,, long Vakiot const Rakenteet if,, for, while, switch, do-while
Lisätiedot3. Binääripuu, Java-toteutus
3. Binääripuu, Java-toteutus /*-------------------------------------------------------------/ / Rajapinta SearchTree: binäärisen hakupuun käsittelyrajapinta / / Metodit: / / void insert( Comparable x );
LisätiedotHarjoitus 5 (viikko 48)
Moni tämän harjoituksen tehtävistä liittyy joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Harjoitustyö edistyy sitä paremmin, mitä enemmän tehtäviä ratkaiset. Mikäli tehtävissä on jotain
LisätiedotOsoittimet. 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ätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Useampitasoiset ADT:t Käytetään esimerkkiohjelmaa Ratkaisuyritys 1 Ratkaisuyritys 2 Lopullinen ratkaisu Lopullisen ratkaisun toteutusyritys Lopullisen ratkaisun oikea toteutus
Lisätiedot12. 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ätiedotModuli 2: Osoittimet ja taulukot. Joel Huttunen
: Osoittimet ja taulukot 26.1.2016 Moduli 1 yhteenvetoa laskuharjoituksista (PS: palautteen saa jättää myös suomeksi jos haluaa) Ongelmia ympäristön asennuksessa Hoitakaa kuntoon ajoissa, niin loppukurssilla
LisätiedotModuli 4: Moniulotteiset taulukot & Bittioperaatiot
C! : Moniulotteiset taulukot & Bittioperaatiot 15.3.2016 Agenda Pieni kertausharjoitus Moniulotteiset taulukot Esimerkki taulukoista Tauko (bittitehtävä) Binäärioperaatioista Esimerkki (vilkaistaan IP
LisätiedotLuento 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ätiedotOhjelmoinnin 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ätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Merkintöjen tulkintoja *++Pstack->top = item *Pstack->top++ = item (*Pstack->top)++ *(Pstack++)->top = item *(++Pstack)->top = item Lisää pinon toteutuksia Dynaaminen taulukko
LisätiedotLuokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat:
1. Luokan jäsenet Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat: class luokan_nimi tyypit: enum, struct, class, typedef
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta
LisätiedotC-ohjelmointi: Osoittimet
C-ohjelmointi: Osoittimet Liisa Marttinen & Tiina Niklander 22.2.2005 Muistinhallinta Java vs C Luokka on viittaustyypin määritelmä ja olio on viittaustyypin ilmentymä Muistinhallinta on implisiittistä.
LisätiedotPerusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2015 Työkaluista Perinteinen: komentorivi + tekstieditori Editori: esimerkiksi Kate, Notepad++, Aquamacs (Emacs) Ohjelman kääntäminen ja suorittaminen komentoriviterminaalissa TMC - komentorivityökalu
Lisätiedot14. Hyvä ohjelmointitapa 14.1
14. Hyvä ohjelmointitapa 14.1 Yleistä Ohjelman elinkaari ei tyypillisesti pääty sen toteuttamiseen; ohjelmaa voidaan käyttää ja ylläpitää jopa vuosikymmeniä. Jotta koodin muuttaminen on mahdollista, sen
Lisätiedot2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)
2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi
LisätiedotTAITAJA 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ätiedot1. 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ätiedot5.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ätiedot815338A 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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen
LisätiedotSisä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