Tietueet. Tietueiden määrittely

Save this PDF as:
 WORD  PNG  TXT  JPG

Koko: px
Aloita esitys sivulta:

Download "Tietueet. Tietueiden määrittely"

Transkriptio

1 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 ja käsittelemään tietoa joustavasti, tiedon abstrahointi korkean tason rakenteilla. C-kielessä on vaihtoehtoisia tapoja tietueiden määrittelyyn. 415

2 tapa 1. Tietuetyyppi määritellään avainsanalla struct. Rakenteen yleinen muoto on seuraavanlainen struct nimi { }; tietotyyppi kenttä1; tietotyyppi kenttä2;... tietotyyppi kenttän; Esimerkiksi: 416

3 #define NIMEN_PITUUS 11 struct tuote { char nimi[nimen_pituus]; /* kenttä nimelle */ double hinta; /* kenttä hinnalle */ }; Tämä esittely ei varaa vielä tilaa nimi- eikä hinta -muuttujille. struct tuote kertoo kääntäjälle, että voidaan varata tilaa muuttujille joiden sisäinen rakenne on kuvauksen mukainen, eli sisältää kentät nimelle ja hinnalle. 417

4 Varataan tilaa muuttujalle, joka on määriteltyä struct -tyyppiä struct tuote1; Nyt muuttuja tuote on sisäiseltä rakenteelta: 418

5 tuote1 nimi-kentän sisältö hinta 419

6 Muuttujan määrittelyssä muuttuja voidaan myös alustaa alustuslistan avulla. Kääntäjä kopioi alustuslistan sisällön vastaaviin muuttujiin. Eli merkkijono "HK_Blöö" kopioidaan nimi -merkkijonomuuttujan sisällöksi ja 2.99 kopioidaan hinta -muuttujan sisällöksi. struct tuote tuote2 = {"HK_Blöö", 2.99 }; 420

7 tuote2 H K _ B l ö ö \0 nimi-kentän sisältö 2.99 hinta 421

8 Tapa2: Tietueelle määritellään oma tietotyyppi käyttämällä typedef - määrettä. Tietuetyypin määrittelyn syntaksi: typedef struct { tietotyyppi kenttä; tietotyyppi kentta;... tietotyyppi kenttän; } Tietuetyyppi; typedef ja struct ovat C-kielen varattuja sanoja. 422

9 Tunnus Tietuetyyppi on määriteltävän abstraktin tietotyypin nimi. Jokainen kenttäx on lista kentän nimiä pilkulla erotettuna, kenttien tietotyypin määrää tyyppix, joka voi olla mikä tahansa standardi tietotyyppi tai itse määritelty tietotyyppi kuten toinen tietue. typedef struct { char nimi[nimen_pituus]; /* kenttä nimelle */ double hinta; /* kenttä hinnalle */ }TuoteTietue; 423

10 typedef -lause ei varaa tilaa tietokoneen muistista, se määrittelee ainoastaan tietotyypin. Nyt muuttujia voidaan varata käyttämällä tietotyypin nimeä TuoteTietue. TuoteTietue tuote3, tuote4 = {"luomumaito", 1.5 }; Muuttujan tuote3 kenttien sisältö on määrittelemätön ja tuote4 saa arvonsa alustuslistasta. 424

11 Tietueen kentän nimi voi esiintyä myös toisen tietueen kentän nimenä ja myös toisen muuttujan nimenä, muodostettava viittaus pitää huolen siitä, että nimisekaannuksia ei synny. Ohjelmoijan määrittelemää tietotyyppiä TuoteTietue voidaan käyttää määrittelemään yksinkertaisia muuttujia, taulukoita ja edelleen muiden tietuetyyppien kenttiä. Seuraavassa määritellään tietotyyppi TuotelajiTietue, joka on rakenteeltaan tietue ja jonka yksi kenttä on taulukko, jonka alkiot ovat tietueita tyypiltään TuoteTietue 425

12 typedef struct { char nimi[nimen_pituus]; double hinta; }TuoteTietue; typedef struct { char lajike[nimen_pituus]; TuoteTietue tuotteet[tuote_lkm]; }TuotelajiTietue; 426

13 Tietueen kenttien käsittely Yksittäiseen tietuemuuttujan (esim. tuote1) kenttään viitataan C- kielessä kenttämuuttujan avulla, joka muodostetaan tietuemuuttujan (esim. tuote1) ja kentän nimen perusteella (esim. hinta) käyttäen ns. pisteoperaattoria. Pistenotaatio: tietuemuuttuja.kentännimi Laskentajärjestyksessä pisteoperaattori on samalla tasolla funktion kutsujen ja taulukkojen indeksoinnin kanssa. 427

14 Kenttämuuttujaa voidaan käyttää kuten vastaavaa tyyppiä olevaa yksinkertaista muuttujaa. Esimerkiksi: TuoteTietue tuote5; Tuotteen nimeksi sijoitetaan merkkijono "Kalapuikko" ja hinnaksi 3.95 strcpy( tuote5.nimi, "Kalapuikko"); tuote5.hinta = 3.95; 428

15 tuote 1 K a l a p u i k k 0 \n 3.95 hinta nimi-kentän sisältö 429

16 Lyhyt esimerkkiohjelma tietueiden käytöstä annettujen määritysten pohjalta: #include <stdio.h> #include <string.h> #define NIMEN_PITUUS 10 #define TUOTE_LKM 5 typedef struct { char nimi[nimen_pituus]; /* kenttä nimelle */ double hinta; /* kenttä hinnalle */ } TuoteTietue; 430

17 int main(void) { TuoteTietue tuote1, tuote2 = {"luomumaito", 1.5 }; } strcpy(tuote1.nimi, "lenkki"); tuote1.hinta = 2.99; printf("\ntuoteen \"%s\" hinta on %.2lf euroa\n", tuote1.nimi, tuote1.hinta); printf("tuoteen \"%s\" hinta on %.2lf euroa\n\n", tuote2.nimi, tuote2.hinta); return(0); 431

18 432

19 Tietuetyyppinen muuttuja esimerkiksi tuote2 ilman kentän valintaa viittaa koko tietorakenteeseen. Kaikkien tietuemuuttujan kenttien arvojen kopiointi toiseen vastaavaan rakenteeseen käy helposti: tuote3 = tuote2; Huom. Tavallisten taulukoiden yhteydessä sijoitusoperaattoria voi käyttää vain muuttujien alustuksessa! 433

20 Tietueet funktioiden parametreina Kun tietuemuuttuja syötetään funktion parametriksi (arvoparametri) kaikki sen kentän arvot kopioidaan vastaaviin muodollisen parametrin kenttiin. Tietueen käyttöä arvoparametrina selventää seuraava funktio, joka tulostaa TuoteTietue -tyyppiä olevan muuttujan kenttien arvot. 434

21 #include <stdio.h> #include <string.h> #define NIMEN_PITUUS 10 typedef struct { char nimi[nimen_pituus]; /* kenttä nimelle */ double hinta; /* kenttä hinnalle */ } TuoteTietue; void tulostatuote(tuotetietue t); 435

22 int main(void) { TuoteTietue tuote1 = {"makarooni", 0.19}; tulostatuote(tuote1); return(0); } void tulostatuote(tuotetietue t){ } printf("\ntuote \"%s\" hinta %.2lf\n", t.nimi, t.hinta); 436

23 437

24 Tietueiden vertailu Vaikka C-kielessä on mahdollista kopioida kokonaisia tietueita käyttämällä sijoitusoperaatiota, kahden tietueen vertailua ei voi suorittaa yhtenä kokonaisuutena. TuoteTietue t1, t2;... if( t1 == t2) /* EI VERTAILE OIKEIN */ Jos halutan verrata ovatko kaksi tietuetta sisällöltään identtisiä, on verrattava jokaista kenttää erikseen. 438

25 #include <stdio.h> #include <string.h> #define NIMEN_PITUUS 20 typedef struct { char nimi[nimen_pituus]; /* kenttä nimelle */ double hinta; /* kenttä hinnalle */ } TuoteTietue; void tulostatuote(tuotetietue t); int vertaa(tuotetietue t1, TuoteTietue t2); 439

26 int main(void) { TuoteTietue tuote1 = {"makarooni", 0.19}; TuoteTietue tuote2 = {"HK_Blöö", 2.99}; TuoteTietue tuote3 = {"makarooni", 0.19}; tulostatuote(tuote1); tulostatuote(tuote2); tulostatuote(tuote3); 440

27 printf("\n**********\n"); if(vertaa(tuote1, tuote2)){ printf("tuotteet:\n"); tulostatuote(tuote1); printf("ja"); tulostatuote(tuote2); printf("ovat samoja"); }else{ printf("tuotteet:\n"); tulostatuote(tuote1); printf("ja"); tulostatuote(tuote2); printf("eivät ole samoja"); } 441

28 printf("\n**********\n"); if(vertaa(tuote1, tuote3)){ printf("tuotteet:\n"); tulostatuote(tuote1); printf("ja"); tulostatuote(tuote3); printf("ovat samoja"); }else{ printf("tuotteet:\n"); tulostatuote(tuote1); printf("ja"); tulostatuote(tuote3); printf("eivät ole samoja"); } printf("\n\n"); return(0); } /* main */ 442

29 void tulostatuote(tuotetietue t){ printf("\ntuote \"%s\" hinta %.2lf\n", t.nimi, t.hinta); } int vertaa(tuotetietue t1, TuoteTietue t2){ } if(strcmp(t1.nimi, t2.nimi)==0 && t1.hinta == t2.hinta) return(1); else return(0); Funktiolle vertaa syötetään kaksi muuttujaa ja se palauttaa 1 tai 0 riippuen siitä ovatko muuttujien kenttien arvot samat. 443

30 Tietueet palautettuina arvoina Tietueiden käsittelyssä on olennaista selvittää mitkä operaatiot ovat sallittuja tietuekokonaisuudelle. tietueen arvon voi sijoittaa toisen tietueen arvoksi tietueita ei voi verrata suoraan toisiinsa C-kielessä kaikkia tietorakenteita ei käsitellä samalla tavalla esim. taulukon nimi tarkoittaa taulukon ensimmäisen alkion osoitetta, tietueen nimi tarkoittaa kaikkien sen kenttien arvojen joukkoa. 444

31 Taulukoiden yhteydessä koko taulukkoa arvoineen ei voida palauttaa return-lauseen arvona. pitää käyttää epäsuoraa osoitusta, osoittimia Tietueille arvon palauttaminen funktioista sen sijaan onnistuu funktio palauttaa kaikkien kenttien arvot. 445

32 Esimerkkinä funktio, joka lukee käyttäjän antamia arvoja tietuemuuttujan kenttiin. tietuemuuttuja tyyppiä TuoteTietue palautettava arvo tyyppiä TuoteTietue funktiolle ei anneta parametreja kutsussa 446

33 #include <stdio.h> #include <string.h> #define NIMEN_PITUUS 20 typedef struct { char nimi[nimen_pituus]; /* kenttä nimelle */ double hinta; /* kenttä hinnalle */ } TuoteTietue; void tulostatuote(tuotetietue t); int vertaa(tuotetietue t1, TuoteTietue t2); TuoteTietue luetuote(void); 447

34 int main(void) { TuoteTietue tuote1; TuoteTietue tuote2; tuote1 = luetuote(); tuote2 = luetuote(); tulostatuote(tuote1); tulostatuote(tuote2); printf("\n**********\n"); 448

35 if(vertaa(tuote1, tuote2)){ printf("tuotteet:\n"); tulostatuote(tuote1); printf("ja"); tulostatuote(tuote2); printf("ovat samoja"); }else{ printf("tuotteet:\n"); tulostatuote(tuote1); printf("ja"); tulostatuote(tuote2); printf("eivät ole samoja"); printf("\n\n"); } return(0); } 449

36 void tulostatuote(tuotetietue t){ printf("\ntuote \"%s\" hinta %.2lf\n", t.nimi, t.hinta); } int vertaa(tuotetietue t1, TuoteTietue t2){ if(strcmp(t1.nimi, t2.nimi)==0 && t1.hinta == t2.hinta) return(1); else return(0); } 450

37 TuoteTietue luetuote(void){ TuoteTietue apu; printf("\nanna tuotteen nimi >"); scanf("%s", apu.nimi); printf("\nanna tuoteen \"%s\" hinta >", apu.nimi); scanf("%lf", &apu.hinta); } return(apu); 451

38 Tietuetaulukot Tietuetyypi voi olla myös taulukon tyyppi. Esimerkiksi: Tarvitaan ohjelma joka tallettaa opiskelijan opintosuorituksia. Yhden opiskelijan tiedot mallinnetaan tietuella: typedef struct { char nimi[nimen_pituus]; int opiskelijakortinnumero; int johdatusohjelmointiin; /* kurssin arvosana */ }OpiskelijaTietue; 452

39 Halutaan käsitellä n opiskelijan nimi, opiskelijakortin numero ja Johdatus ohjelmointiin kurssin arvosana. Luodaan taulukko, joka on tyyppiä OpiskelijaTietue. #include <stdio.h> #include <string.h> #define NIMEN_PITUUS 25 #define OPISKELIJOIDEN_LKM 10 typedef struct { char nimi[nimen_pituus]; int opiskelijakortinnumero; int johdatusohjelmointiin; /* kurssin arvosana */ }OpiskelijaTietue; 453

40 OpiskelijaTietue lueopiskelijantiedot(void); void tulostaopiskelija(opiskelijatietue op); int main(void) { OpiskelijaTietue rekisteri[opiskelijoiden_lkm]; int i; /* luetaan tiedot taulukkoon */ for(i=0; i < OPISKELIJOIDEN_LKM; i++) { rekisteri[i] = lueopiskelijantiedot(); } } /* tulostetaan opiskelijatiedot */ for(i=0; i < OPISKELIJOIDEN_LKM; i++){ tulostaopiskelija(rekisteri[i]); } return(0); 454

41 /* lukee yhden opiskelijan: - nimen, - opiskelijakortin numeron ja - johdatus ohjelmointiin -kurssin arvosanan ja palautta tiedot OpiskeijaTietue-typpisenä arvona */ OpiskelijaTietue lueopiskelijantiedot(void){ OpiskelijaTietue op; printf("\nanna opiskelijan nimi >"); scanf("%s", op.nimi); printf("anna opiskelijakorin numero >"); scanf("%d", &op.opiskelijakortinnumero); printf("anna \"Johdatus ohjelmointiin\"-kurssin arvosana >"); scanf("%d", &op.johdatusohjelmointiin); } return(op); 455

42 /* tulostaa opiskelijan: - nimen - opiskelijakorin numeron ja - Johdatus ohjelmointiin -kurssin arvosanan */ void tulostaopiskelija(opiskelijatietue op){ printf("\n****************************\n"); printf("nimi: %s\n", op.nimi); printf("kortin numero: %d\n", op.opiskelijakortinnumero); printf("jo-arvosana: %d\n", op.johdatusohjelmointiin); printf("\n****************************\n"); } 456

43 Lueteltu tyyppi Luetellun tyypin avulla voidaan antaa kokonaisluvuille nimi ja näin rajoittaa lukualuetta Listan ensimmäinen nimi saa kokonaislukuarvon 0, seuraava arvon 1 jne. Lueteltu tyyppi määritellään avainsanalla enum, yleinen muoto: enum nimi { luettelo... } muuttujannimi; 457

44 Esimerkiksi: enum viikonpaivat { ma, ti, ke, to, pe, la, su } paiva; Nyt muuttuja paiva voi saada arvoja ma - su eli 0-6. paiva = ti; /* arvo on nyt 1 */ Luetellun tyypin yhteydessä voidaan käyttää myös sanaa typedef, jolloin voidaan luetellulle tyypille antaa nimi, jonka avulla määritellään muuttujia. typedef enum {ma, ti, ke, to, pe, la, su } Viikonpaiva; 458

45 Muuttujan määrittely Viikonpaiva pv; pv = ke; /* pv saa arvon 2 */ Symbolien arvon voi määritellä alustuksen avulla. typedef enum {ma = 1, ti, ke, to, pe, la, su } Viikonpv; tällöin ma vastaa arvoa 1 ja ti arvoa 2 jne. 459

46 #include <stdio.h> typedef enum {ma = 1, ti, ke, to, pe, la, su } Viikonpaiva; int main ( void ) { Viikonpaiva pv; char pvnimet[7][12] = { "", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai", "Sunnuntai"}; } for( pv = ma; pv <=su; pv++) { printf("%2d %s\n", pv, pvnimet[pv] ); } return (0); 460

47 461

48 Kertaus C-kielessä käyttäjä voi itse määritellä omia tietotyyppejä, etenkin tietuerakenteet ovat hyödyllisiä. Tietueen kenttiin viitataan pisteoperaattorin (.)joka sijoitetaan tietuemuuttujan ja kentän nimen väliin. Tietueita voi käyttää funktion palautettavina arvoina, kuten standardeja tietotyyppejä. Tietueille on käytössä tavallinen sijoitusoperaatio toisin kuin taulukoille, mutta ei tietueiden vertailua. 462

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

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

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 muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

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

Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2

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

#include // io-toiminnot. //#define KM_MAILISSA int main( ){

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

// // whiledemov1.c // #include int main(void){ int luku1 = -1; int luku2 = -1;

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

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

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

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

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

Tiedosto on yhteenkuuluvien tietojen joukko, joka tavallisimmin sijaitsee kiintolevyllä, muistitikulla tai jollakin muulla fyysisellä tietovälineellä. 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

Lisätiedot

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

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU Ohjelmointi 2 Jussi Pohjolainen TAMK» Tieto- ja viestintäteknologia Tietotyypeistä C++ - kielessä useita tietotyyppejä Kirjaimet: char, wchar_t Kokonaisluvut: short, int, long Liukuluvut: float, double

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Attribuuttikieliopit

Attribuuttikieliopit TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. toukokuuta 2011 Sisällys t Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

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

Lisätiedot

Tietorakenteet ja algoritmit

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

Lisätiedot

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

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

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Pino Pinon määritelmä Pinon sovelluksia Järjestyksen kääntäminen Palindromiprobleema Postfix-lausekkeen laskenta Infix-lausekkeen muunto postfix-lausekkeeksi Sisäkkäiset funktiokutsut

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

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

12 Mallit (Templates)

12 Mallit (Templates) 12 Mallit (Templates) Malli on määrittely, jota käyttämällä voidaan luoda samankaltaisten aliohjelmien ja luokkien perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista

Lisätiedot

Tietorakenteet ja algoritmit

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

Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat:

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

Ohjelmointi 1 Taulukot ja merkkijonot

Ohjelmointi 1 Taulukot ja merkkijonot Ohjelmointi 1 Taulukot ja merkkijonot Jussi Pohjolainen TAMK Tieto- ja viestintäteknologia Johdanto taulukkoon Jos ohjelmassa käytössä ainoastaan perinteisiä (yksinkertaisia) muuttujia, ohjelmien teko

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

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Kurssin sisältö pääpiirteittäin Tarvittavat pohjatiedot Avainsanat Abstraktio Esimerkkiohjelman tehtäväkuvaus Abstraktion käyttö tehtävässä Abstrakti tietotyyppi Hyötyjä ADT:n

Lisätiedot

Loppukurssin järjestelyt C:n edistyneet piirteet

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

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

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

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

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

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Tietorakenteet ja algoritmit

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

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Java-kielen perusteet

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

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

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

Ahlmanin ammattiopisto, Tampere 22.06.2015 10:24 33/2015 (1. jakso) 10. - 16.08.2015 Viikkotuntimäärä: 23

Ahlmanin ammattiopisto, Tampere 22.06.2015 10:24 33/2015 (1. jakso) 10. - 16.08.2015 Viikkotuntimäärä: 23 33/2015 (1. jakso) 10. - 16.08.2015 Viikkotuntimäärä: 23 Maanantai 10.08. Tiistai 11.08. Keskiviikko 12.08. Torstai 13.08. Perjantai 14.08. Lauantai 15.08. Sunnuntai 16.08. Matematiikka YHT2.1. Ma Fyke

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

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

7/20: Paketti kasassa ensimmäistä kertaa

7/20: Paketti kasassa ensimmäistä kertaa Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

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

Moduli 2: Osoittimet ja taulukot. Joel Huttunen

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

Osoittimet ja taulukot

Osoittimet ja taulukot C! ja taulukot 1.2.2018 Tiedotteita Tämän jälkeen taas pari väliviikkoa (tenttiviikko) Seuraava luento 22.2. Laskareita ei tenttiviikolla 12.2. 16.2. 2 ja muisti Muisti Keskusyksikkö Suorittaa muistissa

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

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

Tieto- ja tallennusrakenteet

Tieto- ja tallennusrakenteet Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)

Lisätiedot

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

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

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

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

Moduli 5: Kehittyneitä piirteitä

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

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.

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

Moduli 4: Moniulotteiset taulukot & Bittioperaatiot

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

815338A Ohjelmointikielten periaatteet 2014-2015

815338A Ohjelmointikielten periaatteet 2014-2015 815338A Ohjelmointikielten periaatteet 2014-2015 X Skriptiohjelmointi Sisältö 1. Johdanto 2. Skriptikielten yleispiirteitä 3. Python 815338A Ohjelmointikielten periaatteet, Skriptiohjelmointi 2 X.1 Johdanto

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015 TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 30. marraskuuta 2015 Sisällys t Väitöstilaisuus 4.12.2015 kello 12 vanhassa juhlasalissa S212 saa tulla 2 demoruksia

Lisätiedot

1. Mitä seuraava ohjelma tulostaa? Vastaukseksi riittää yksi rivi joka esittää tulosteen. (6 p)

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

Viikko 13 23.3.2015-29.3.2015

Viikko 13 23.3.2015-29.3.2015 Viikko 13 23.3.2015-29.3.2015 Maanantai 23.3. Tiistai 24.3. Keskiviikko 25.3. Torstai 26.3. Perjantai 27.3. Lauantai 28.3. Sunnuntai 29.3. Radio Channels, Luento 08:15 - TS127 Communication signal processing

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

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

1. Esittelyt ja vakiot 1.1 Esittelyt (declarations) Ennen nimen, tunnuksen (identifier) käyttöä se on

1. Esittelyt ja vakiot 1.1 Esittelyt (declarations) Ennen nimen, tunnuksen (identifier) käyttöä se on 1. Esittelyt ja vakiot 1.1 Esittelyt (declarations) Ennen nimen, tunnuksen (identifier) käyttöä se on esiteltävä. char ch; int count=1; struct complex float re, im; complex z; complex sqrt( complex );

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

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

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 16. helmikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 16. helmikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. helmikuuta 2012 Sisällys t Sisällys t Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

7. Oliot ja viitteet 7.1

7. Oliot ja viitteet 7.1 7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin

Lisätiedot

11. oppitunti III. Viittaukset. Osa. Mikä on viittaus?

11. oppitunti III. Viittaukset. Osa. Mikä on viittaus? Osa III 11. oppitunti Viittaukset Kahdessa viime luvussa opit käyttämään osoittimia kohteiden käsittelyyn vapaalla muistialueella sekä viittaamaan noihin kohteisiin epäsuorasti. Tässä luvussa käsiteltävät

Lisätiedot

Olio-ohjelmointi Syntaksikokoelma

Olio-ohjelmointi Syntaksikokoelma C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja

Lisätiedot

Ahlmanin ammattiopisto, Tampere 22.06.2015 16:11 33/2015 (1. jakso) 10. - 16.08.2015 Viikkotuntimäärä: 0

Ahlmanin ammattiopisto, Tampere 22.06.2015 16:11 33/2015 (1. jakso) 10. - 16.08.2015 Viikkotuntimäärä: 0 33/2015 (1. jakso) 10. - 16.08.2015 Viikkotuntimäärä: 0 Maanantai 10.08. Tiistai 11.08. Keskiviikko 12.08. Torstai 13.08. Perjantai 14.08. Lauantai 15.08. Sunnuntai 16.08. 34/2015 (1. jakso) 17. - 23.08.2015

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

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

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

Lisätiedot

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

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

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

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

Lisätiedot

Ahlmanin ammattiopisto, Tampere 10.06.2015 15:43 36/2015 (1. jakso) 31.08. - 06.09.2015 Viikkotuntimäärä: 7

Ahlmanin ammattiopisto, Tampere 10.06.2015 15:43 36/2015 (1. jakso) 31.08. - 06.09.2015 Viikkotuntimäärä: 7 36/2015 (1. jakso) 31.08. - 06.09.2015 Viikkotuntimäärä: 7 Maanantai 31.08. Tiistai 01.09. Keskiviikko 02.09. Torstai 03.09. Perjantai 04.09. Lauantai 05.09. Sunnuntai 06.09. 09:00 Palmu Riina C TVT2 Yritystoiminnan

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 18.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 18.3.2009 1 / 51 Olioista (kertausta) Olioiden avulla voidaan kuvata useammasta arvosta koostuvaa kokonaisuutta

Lisätiedot

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

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2015 Työkaluista Perinteinen: komentorivi + tekstieditori Editori: esimerkiksi Kate, Notepad++, Aquamacs (Emacs) Ohjelman kääntäminen ja suorittaminen komentoriviterminaalissa TMC - komentorivityökalu

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

C++11 lambdat: [](){} Matti Rintala

C++11 lambdat: [](){} Matti Rintala C++11 lambdat: [](){} Matti Rintala bool(*)(int) Tarve Tarve välittää kirjastolle/funktiolle toiminnallisuutta Callback-funktiot Virhekäsittely Käyttöliittymät Geneeristen kirjastojen räätälöinti STL:n

Lisätiedot

Ohjeet. AS C-ohjelmoinnin peruskurssi Aalto-yliopiston sahkotekniikan korkeakoulu Tentti , Raimo Nikkila

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

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

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

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

Lisätiedot

20. Javan omat luokat 20.1

20. Javan omat luokat 20.1 20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

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

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta. Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita

Lisätiedot

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Elegantti toteutus funktiolle insert_to_list_end Alkion lisäys sisällön mukaan järjestettyyn listaan (insert_to_list) Linkatun listan yleisyys alkiotyypin suhteen source-tasolla

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Osoittimet ja taulukot

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

Table of Contents. T740103 Olio-ohjelmointi C/C++ perusteita Jukka Jauhiainen OAMK Tekniikan yksikkö 2010, 2011

Table of Contents. T740103 Olio-ohjelmointi C/C++ perusteita Jukka Jauhiainen OAMK Tekniikan yksikkö 2010, 2011 Tämän materiaalin lähteenä on käytetty osoitteesta http://www.cplusplus.com/doc/tutorial löytyvää C+ + Language Tutorial. Tämän osan tarkoituksena on pääasiassa kerrata C-kielestä tuttuja perusasioita

Lisätiedot

19. Olio-ohjelmointia Javalla 19.1

19. Olio-ohjelmointia Javalla 19.1 19. Olio-ohjelmointia Javalla 19.1 Sisällys Olioiden esittely ja alustus. Metodit Yleistä metodeista. Mihin metodeja tarvitaan? Metodien määrittely. Omat metodit: nimeäminen, paikka, kutsuminen, parametrit

Lisätiedot

17. Javan omat luokat 17.1

17. Javan omat luokat 17.1 17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)

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

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