Merkkijonot (strings) (Müldnerin kirjan luku 9) Luennon sisältö. Merkeistä. Merkkien luokittelufunktiot. Merkkijonot Komentoriviparametrit

Koko: px
Aloita esitys sivulta:

Download "Merkkijonot (strings) (Müldnerin kirjan luku 9) Luennon sisältö. Merkeistä. Merkkien luokittelufunktiot. Merkkijonot Komentoriviparametrit"

Transkriptio

1 , kevät 2006 Merkkijonot Komentoriviarametrit Luento Kevät 2006 Liia Marttinen 1 Merkkijonot (tring) (Müldnerin kirjan luku 9) C:ä merkkijono ei ole ennaltamääritelty datatyyi (kuten Javaa) Merkkijono on ooitin merkkeihin Ooitin mjono: Joukko merkkejä muitia\0 Merkkijonojen käittelyä varten tandardikirjato tring.h Kevät 2006 Liia Marttinen 2 Luennon iältö Kirjatofunktiot merkkien käittelyyn Merkkijonon määrittely ja alutaminen ja käyttö Merkkijonojen lukeminen ja kirjoittaminen formatoitu I/O merkkijonoille canf ja rintf Riveittäin lukeminen ja tulotaminen fget ja fut; get ja ut Kirjatofunktiot merkkijonojen käittelyyn Komentoriviarametrit Kevät 2006 Liia Marttinen 3 Merkeitä c on merkki ja c on merkkijono \0564, \xa6 datatyyi int igned char, unigned char L a long int eim. jaanin tai kiinan merkkeihin Syöttö ja tulotu getchar, utchar canf( format, &var), rintf( format, ex) fget, fut, fcanf, frintf Ecae-merkit (amat kuin Javaa) '\n' = rivinvaihtomerkki '\t' = tabulaattori '\v' = ytyuora tabulointi '\b' = eruutumerkki '\r' = rivinalkuunalautumerkki '\f' = ivunvaihtomerkki '\a' = hälytymerkki, yleenä äänimerkki '\\' = kenoviiva '\'' = heittomerkki '\"' = lainaumerkki '\0' = merkkijonon loetumerkki if((c=getchar()) == EOF) if(canf( %d%d, i,j)!=2) if((c=fgetc(tkahva)) == EOF).. while((c= getchar())!= \n ) while ((c=getchar())!=eof) while(getchar()!= \n ) ; Kevät 2006 Liia Marttinen 4 #include<ctye.h> Kirjatofunktioita merkkien käittelyyn Merkkien luokittelufunktiot Standardikirjaton ctye.h funktioita Merkkien luokitteluun ilower(int c) idigit(int c) alauttaa nollan, jo merkki ei ole kyyttyä tyyiä, muuten nollata eroavan arvon Merkkimuutokiin tolower(int c) touer(int c) jo muuto onnituu, alauttaa muutetun arvon, muuten alauttaa EOF:n Alfanumeeriet int ialnum(int c) int ialha(int c) int ilower(int c) int iuer(int c) int idigit(int c) int ixdigit(int c) int iodigit(int c) Muut merkit int irint(int c) int igrah(int c) int iunct(int c) int iace(int c) i c an alhanumeric i c an alhabetic letter i c a lower cae letter i c an uer cae letter i c a digit i c a hexadecimal digit i c an octal digit if (c>= a && c<= z ) Kirjatofunktioilla iirrettävämää koodia! i c rintable (not a control character) i c rintable (not a ace) i c rintable (not ace or alhanumeric) i c whiteace Kevät 2006 Liia Marttinen 5 Kevät 2006 Liia Marttinen 6 1

2 Merkkijonon määrittely ja muitinvaraaminen merkkijonolle Merkkijono määritellään ooittimena, joka ooittaa merkkeihin: char *; Merkkijonolle itää myö varata tilaa muitita. Myö \0-merkille on varattava tilaa Kirjatofunktiot oaavat käitellä merkkijonona vain ellaita merkkien jonoa, joka äättyy \0-merkkiin! Eim. 10 merkin jonolle varattava 11 merkin kokoita muitialuetta: muitinvarau -fraai #define SIZE 10 if(( = malloc((size+1)*izeof(char))) == NULL). Mitä tehdään varauken eäonnituea? Kevät 2006 Liia Marttinen 7 Merkkijonon alutaminen ja merkkijonon ituu Vain muitialue, johon ooittaa, mutta ei vielä merkkijono, koka \0 uuttuu! Alutettu, tyhjä merkkijono: [0] = '\0'; \0 Merkkijono, jonka ituu on 0! Merkkijonoon voidaan tallettaa liää merkkejä: H E L L O A L L \0 Nyt merkkijonon ituu on 9. Kevät 2006 Liia Marttinen 8 Merkkijonon muitinvarau ja i:nnen merkin ooittaminen Merkkijonon muitinvarau aina calloc-funktiolla, koka calloc nullaa muitialueen => merkkijono on alutettu if(( = calloc(n+1, izeof(char))) == NULL).. viittau merkkijonon i:nteen merkkiin [i] :llä (0<= i < merkkijonon ituu) H E L L O A L L \0 [0] [1] [2] [3] [4] [5] [6] [7] [8] S[3] = L ja [6]= A Kevät 2006 Liia Marttinen 9 Merkkijonon refiki (alkuää) ja uffiki (louää) H E L L O A L L \0 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] Merkkijonon louäähän ääee heloti käiki Eimerkiki +6 ooittaa merkkijonoa ALL, jonka ituu on 3 merkkiä +8 ooittaa merkkijonoa L, jonka ituu on 1 merkki +9 ooittaa tyhjää merkkijonoa, jonka ituu on ei ooita mihinkään merkkijonoon! Alkuäähän eim. merkkijonoon HELL on taa vaikeami äätä käiki, koka e ei ääty \0-merkkiin. Kevät 2006 Liia Marttinen 10 Merkkijonovakio char *nimi Tarja Halonen Vakion iältöä Tarja Halonen\0 ei aa muuttaa nimi On voitu tallettaa eim. read only alueelle Ei aa välittää arametrina ellaielle funktiolle, joka muuttaa arametrinaan aamaa merkkijonoa Huomaa ero: T ja T T on merkki T T on merkkijono eli merkki T ja itä euraava null-merkki T\0 Kevät 2006 Liia Marttinen 11 Merkkijono arametrina ja aluuarvona Koka merkkijono on iteaiaa ooitin, itä voidaan käyttää amalla tavoin kuin ooittimia yleenä Merkkijonon tulee olla alutettu (muuten ei ole merkkijono!) Merkkijonovakioita ei aa muuttaa # funktio muuttaa # merkkijonon 1. merkin # ioki kirjaimeki void modify(char *) { [0] = touer([0]); char *; /* EI VIELÄ! modify(); */ if(( = calloc(10, izeof(char))) == NULL) errorf(); [0] = 'h'; [1] = 'i'; /* [2] == '\0' */ modify(); h i \0 H i \0 H I \0 modify(+1); char *q = "hello"; /*merkkijonovakio*/ modify(q); /* EI, EI; EEII näin! */ Kevät 2006 Liia Marttinen 12 2

3 Merkkijono arametrina ja aluuarvona (2) (vanha merkkijono ei muutu, nyt muuto tehdään en koioon) Muita vaauttaa muitilohko, char *modify(cont char *) { kun itä ei enää tarvita: char *new; /* uui merkkijono */ char *; /* elaa vanhaa */ free (new); char *n; /* elaa uutta */ if ((new = calloc (length()+1), izeof(char))) == NULL) return NULL; for ( =, n = new; *; ++, n++) *n = *; *n = *; /* koioi vielä \0-merkin /* new[0] = touer(new[0]); return new; tarja H.\0 char * = tarja H. ; char *q = modify(); q = modify(+3); tai char *q =modify( tarja H. ); tarja H.\0 Ja H.\0 Tarja H.\0 Kevät 2006 Liia Marttinen 13 q q Erilaiia koiointitaoja while((q[i]= [i])!= \0 ) i++; while((*q=*)!= \0 ) {q++; ++; while ((*q++=*++)!= \0 ); while (*q++ = *++); Tekevät aman aian: koioivat merkit merkkijonota merkkijonoon q. Muita varata muitita tilaa merkkijonolle q ennen koioimita. Älä hukkaa merkkijonojen alkuja! Koioitava merkkijono\0?? q Koioita Kevät 2006 Liia Marttinen 14 Muutetun merkkijonon alautu arametrina Eimerkki: funktio tarkitaa, onko annettu merkkijono kelvollinen kokonailuku joko deimaalina tai hekadeimaalina eitettynä. void modify1(cont char *, char **new) { /* return through arameter a coy of modified*/ char *; /* elaa vanhaa */ char *n; /* elaa uutta */ new if ( == NULL) return -1; if ((*new = calloc (length()+1), izeof(char))) == NULL) return NULL; for ( =, n = *new; *; ++, n++) *n = *; *n = *; /* koioi vielä \0-merkin /* (*new)[0] = touer((*new)[0]); char *; modify1("hello", &); ooitin : hello\0 ooitin char ooitin, joka ooittaa ooittimeen, joka ooittaa char tyyieen muuttujaan Calloc-funktion varaama muitialue H e l l n new = & Kevät 2006 Liia Marttinen 15 int inumber(cont char *) { if ( == NULL [0] == \0 ) /* tyhjä merkkijono */ return 0; # onko hekaluku eli tyyiä 0x2A68? if ([0] == 0 ) { /*nolla enimmäienä*/ if ([1] == \0 ) return 1; /*elkkä nolla kelaa*/ if([1] == x [1] == X ) /*hekaluku?*/ if ([2] == \0 ) return 0; /* 0x ei riitä*/ for ( +=2; *; ++) if (!ixdigit (*)) return 0; return 1; /* kelvollinen hekaluku */ # onko deimaaliluku for (;*; ++) if (!idigit (*)) return 0; return 1; Fraai merkkijonon läikäyntiin: for ( = ; *; ++) käytä *:tä; Kevät 2006 Liia Marttinen 16 Merkkijono ja formatoitu I/O % ekä yötöä että tulotukea Syötöä merkkijonon alua olevat tyhjät ohitetaan ja lukeminen aloitetaan enimmäietä ei-tyhjätä merkitä Luetaan yki ana eli euraavaan tyhjään merkkiin ati => canf lukee vain yhden anan cont int SIZE = 7; char *; if (( = malloc((size + 1) * izeof(char))) == NULL) virhetilanne(); canf( %, ); canf ( %7,); Mitä luetaan, jo yöte on Java language? Entä, jo yöte on language Java? Entä canf ( %SIZE,);? Ei käy, illä lainaumerkkien iällä ei käitellä makroja! Kevät 2006 Liia Marttinen 17 Merkkijonon lukeminen canf ( %, ) koka on ooitin Ennen lukemita merkkijonolle on oltava muitia varattuna Muitia on oltava tareeki! Varmita rajoittamalla ituu. if (canf( %10, )!=1) error Lukee yhden korkeintaan 10 merkin mittaien anan. Varaa tilaa myö \0- merkille. Kevät 2006 Liia Marttinen 18 3

4 Merkkijonon tulotu rintf( %, tr) tulotaa ooittimen tr ooittaman muitilohkon kaikki merkit \0-merkkiin aakka char * = C ja Java ovat kieliä. rintf ( %\n, ); rintf ( %\n, +5); Tulotu: C ja Java ovat kieliä. Java ovat kieliä. C ja Java ovat kieliä.\0 +5 Kevät 2006 Liia Marttinen 19 Eimerkki int lower(char *) { /* return number of l.c. letter */ int i; char *q; for(i = 0, q =, *q, q++) if(ilower(*q)) i++; return i; int main() { cont int M = 10; char *; if(( = calloc(m + 1, izeof(char)) == NULL) return EXIT_FAILURE; if(canf("%10", )!= 1) return EXIT_FAILURE; rintf("%d lower cae letter in %\n", lower(), ); return EXIT_SUCCESS; Ohjelma lukee yhden korkeintaan 10 merkin mittaien anan ja tulotaa iinä olleiden ienten kirjainten lukumäärän. #include <tdio.h> #include <tdlib.h> #include <ctye.h> for(i = 0, q =, *q, q++) if(ilower(*q)) i++; = ; i=0; while (*++) if (ilower(*)) i++; Kevät 2006 Liia Marttinen 20 canf ja rintf merkkijonota lukeminen ja merkkijonoon kirjoittaminen fget ja fut tiedoto merkkijono (myö tdin ja tdout) Rivi kerrallaan lukeminen ja kirjoittaminen int canf (, format, argument) merkkijonot luvuiki if (canf (,"%lf", &d)!=1) if(canf(+6, "%d%f", &i, &d)!= 2) Luvut \0 int rintf (, format, argument) merkkijonon kokoamieen oita rintf(, Syötetty luku oli %d, j); rintf(, "% %d %f", "tet", 1, 1.5); tet 1 1.5\0 char* fget(char *buf, int n, FILE *in); Lukee yhden rivin, mutta enintään n-1 merkkiä tiedotota in ja tallettaa en muitilohkoon buf. Tallettaa myö rivinloetumerkit. Vaikka fget onnitueaan aina kirjoittaa muitilohkoon viimeieki \0- merkin, niin merkkijonon kelvolliuu kannattaa varmitaa: buf[trlen(buf)] = \0 ; Tehokkaamiakin taoja näihin toimintoihin on! :n ja :n oltava alutettuja merkkijonoja, joille on varattu riittäväti tilaa muitita calloc-funktiolla. Kevät 2006 Liia Marttinen 21 int fut (cont char *, FILE *out); Kirjoittaa merkkijonon (ilman \0-merkkiä) tiedotoon out. Kevät 2006 Liia Marttinen 22 get ja ut tdin-yöttö ja tdout-tulotu Merkkijono-oeraatiot: <tring.h> char * get(char *buf); Lukee aina koko rivin (ei ii korkeintaan tiettyä määrää) eikä talleta rivin loetumerkkiä muitilohkoon. int ut(cont char *buf); Kirjoittaa merkkijonon ja äättää en aina rivinvaihdolla. Rivi kerrallaan lukemien yleinen ongelma: aina oletettava jokin makimiituu jolle varataan tilaa! Kevät 2006 Liia Marttinen 23 Runaati merkkijonoja käitteleviä funktioita Merkkijonon ituu ize_t trlen (cont char *tring); Huom! merkkijonojen ituukien vertailu if (trlen(x) >= trlen(y)) if ((int)trlen(x) SIZE >= 0) Merkkijonon koiointi char *trcy(char *det, cont char *rc); char *trncy(char *det, cont char *rc, ize_t n); Merkkijonon liittäminen toieen char *trcat(char *det, cont char *rc); char *trncat(char *det, cont char *rc, ize_t n) Varmita, että koio on alutettu merkkijono koiolle on varattu tareeki muititilaa koioon tulee \0- merkki. Kevät 2006 Liia Marttinen 24 4

5 Liää merkkijono-oeraatioita <tring.h> Palauttaa Merkkijonojen vertailu (merkki merkiltä) <0 jo 1 < 2 int trcm(cont char *1, cont char *2); 0 jo 1 == 2 int trcnm(cont char *1, cont char *2, ize_t n); >0 jo 1 > 2 Merkin tai merkkijonon etiminen char *trchr(cont char *tr, int c); enimmäinen c:n eiintymä char *trchr(cont char *tr, int c); viimeinen c:n eiintymä char *trtr(cont char *tr, cont char *ubtr); etii merkkijonoa ize_t trn(cont char *tr, cont char *et); 1. joukkoon kuuluva merkki ize_t trcn(cont char *tr, cont char *et); 1. joukkoon kuulumaton merkki char *trbrk(cont char *tr, cont char *et); 1. joukkoon kuuluva merkki merkkijoukon merkkien eiintyminen merkkijonoa, alauttaa eiintymiaikan (ohitettujen merkkien lukumääränä tai ooittimena) Kevät 2006 Liia Marttinen 25 Yhä merkkijono-oeraatiota <tring.h> Merkkijonon jako anoiki (token) /home/avirta/kuri/c/2006/teti.c\0 erotumerkein tr char *trtok(char *tr, cont char *e); char *e \ ; enimmäiellä kerralla annettava merkkijono; euraavilla kerroilla voi antaa en tilalla NULL:in trtok(null, e); Tällöin jatkaa euraavan anan etimitä amata merkkijonota. Tee koio ja käytä itä! Muuttaa merkkijonoa: \0 jokaien havaitun anan erään. Merkkijono numeroiki <tdlib.h> double trtod(cont char *, char **); long trtol(cont char *, char **, int bae); fail: :n alkuun unigned long trtoul(cont char *, char **, int bae); ucce: eka muuttamaton ANSI C verioita, jotka korvaavat vanhat: atof, atoi ja atol merkki Kevät 2006 Liia Marttinen 26 Eimerkki: Merkkijonon riiuminen turhita edeä ja erää olevita tyhjämerkeitä tai muita turhita merkeitä Heia vaan \0 Heia vaan\0 /* tri from leading and trailing character from * et. For examle: * char * = tri(",hi, how are you,", ","); */ char *tri(cont char *, cont char *et) { int tart = trn(, et); /* leading character*/ int end; /* trailing character */ char *koy; int length = trlen(); /*merkkijonon ituu*/ if(length!= tart) { /* there are character not in */ for(end = length; end > 1; end--) /* trailing */ if(trchr(et, [end]) == NULL) /* onko oitettava merkki */ break; length = end - tart + 1; /* left after tri */ Müldnerin kirjan eimerkki 9-13 Eimerkki jatkuu: /*char *tri() continued */ if((koy = calloc(length + 1, izeof(char)))==null) return NULL; memcy(koy, + tart, length); koy[length] = '\0'; /* length!= tart */ ele { /* here, no character in */ if((koy = calloc(length + 1, izeof(char)))==null) return NULL; trcy(koy, ); return koy; Kevät 2006 Liia Marttinen 27 Kevät 2006 Liia Marttinen 28 Komentoriviarametrit Ooittaminen komentoriviargumentteihin eti Virtanen Ville rektiedoto int main (int argc, char **argv); int main (int argc, char *argv[]); ohjelmannimi arametri1 arametri 2 argc merkkijonojen lukumäärä argv ooitin ooitinlohkoon argc: 4 argv: argv[0] argv[1] argv[2] argv[3] eti\0 Virtanen\0 Ville\0 rektiedoto\0 echo Hello, world argc = 3 argv argv[0] argv[1] argv[2] echo\0 Hello,\0 world\0 argv[0] tai argv ooittaa 1. arametriin eli ohjelman nimeen ( eti ), argv[1] tai argv+1 ooittaa 2. arametriin ( Virtanen ) argv[2] tai argv+2 ooittaa 3. arametriin ( Ville ) argv[3] tai argv+3 ooittaa 4. arametriin ( rektiedoto ) echo Hello, world -merkit toimivat argv argv[0] echo\0 joiakin järjetelmiä! argv[1] Hello, world\0 argc = 2 Kevät 2006 Liia Marttinen 29 argv[0][0] tai (*argv)[0] tai **argv ooittaa 1. arametrin 1. merkkiin argv[2][4] tai (*(argv+2))[4)] tai *(*(argv+2)+4) ooittaa 3. arametrin 5. merkkiin. 5

6 Komentoarametrien lukumäärän tarkitu /* Tarkita komentoriviarametrien lukumäärä! */ int main(int argc, char **argv) {. witch(argc) { cae 4: /* kaikki tiedot annettu komentorivillä*/ cae 3: /*OK! käytetään oletuarvoa*/ default: frintf(tderr, Väärä käyttötaa: %.. \n", argv[0]); /*Voii myö kertoa oikean käytötavan!*/ return EXIT_FAILURE; Kevät 2006 Liia Marttinen 31 Komentoriviarametrien käyttö: Tiedoton rivien tulotu näytölle #define DEFAULT 10 #define MAX 80 /*tulotaa näytölle tiedoton n enimmäitä riviä */ int dilay(cont char *fname, int n, int Max); int main(int argc, char **argv) { int line = DEFAULT; witch(argc) { cae 3: /* elvitä rivien lukumäärä argumentti */ ohjelman nimi rivien lkm how -n fname - = argumentti on otionaalinen; voi uuttua tiedoton nimi if(argv[1][0]!= '-' canf(argv[1] + 1, "%d", &line)!=1 line <= 0) return EXIT_FAILURE; argv++; /* no break: retrieve filename */ cae 2: if(dilay(argv[1], line, MAX) == 0) return EXIT_FAILURE; break; default: return EXIT_FAILURE; argv argv argv[0] how\0 argv[0] how\0 return EXIT_SUCCESS; argv[1] -n\0 argv[1] teti\0 argv[2] teti\0 Kevät 2006 Liia Marttinen 32 Ohjelma lakee ja tulotaa arameteina annettujen lukujen umma #include <tdio.h> #include <tdlib.h> int main(int argc, char **argv) { int i; double luku, umma=0.0; char **; char *; if (argc==1) { rintf ("Parametreja voi olla vaihteleva"); rintf (" määrä ja ne voivat olla"); rintf (" kokonailukuja tai liukulukuja"); rintf ("\nkäyttö: SUMMA arg1 arg2... argn\n"); exit(0); /* loetetaan ohjelman toiminta */ if (( = calloc(80, izeof(char))) == NULL) return 1; = &; for (i=1; i<argc; i++) { luku = trtod(argv[i], ); umma=umma+luku; rintf ("Lukujen umma on %.2lf\n",umma); return 0; Kevät 2006 Liia Marttinen 33 Mitä oittiin? Merkkijonojen alutaminen ja käittely Merkkijonojen yöttö ja tulotu Standardikirjaton funktioita merkkijonojen käittelyyn Komentoriviarametrien käyttö Kevät 2006 Liia Marttinen 34 Eni kerralla Taulukoiden käittelyä Ykiulotteiet taulukot Määrittely, koiointi, vertailu Taulukko arametrina Alutu ja talletu Moniulotteiet taulukot Dynaamiet taulukot Kevät 2006 Liia Marttinen 35 6

Merkkijonot (strings) luku 9)

Merkkijonot (strings) luku 9) , yky 2007 Merkkijonot (tring) luku 9) (Müldnerin kirjan Merkkijonot Komentoriviarametrit Luento 7 28.9.2007 Syky 2007 1 C:ä merkkijono ei ole ennaltamääritelty datatyyi (kuten Javaa) Merkkijono on ooitin

Lisätiedot

C-ohjelmointi, kevät Merkkijonot Komentoriviparametrit. Luento

C-ohjelmointi, kevät Merkkijonot Komentoriviparametrit. Luento , kevät 2006 Merkkijonot Komentoriviparametrit Luento 7 14.3.2006 Kevät 2006 Liisa Marttinen 1 Merkkijonot (strings) (Müldnerin kirjan luku 9) C:ssä merkkijono ei ole ennaltamääritelty datatyyppi (kuten

Lisätiedot

Merkkijonot Komentoriviparametrit

Merkkijonot Komentoriviparametrit , kevät 2006 Merkkijonot Komentoriviparametrit Luento 7 14.3.2006 Kevät 2006 Liisa Marttinen 1 Merkkijonot (strings) (Müldnerin kirjan luku 9) C:ssä merkkijono ei ole ennaltamääritelty datatyyppi (kuten

Lisätiedot

C-ohjelmointi, syksy Merkkijonot Komentoriviparametrit. Luento C-ohjelmointi Syksy

C-ohjelmointi, syksy Merkkijonot Komentoriviparametrit. Luento C-ohjelmointi Syksy , syksy 2008 Merkkijonot Komentoriviparametrit Luento 7 26.9.2008 Syksy 2008 1 Merkkijonot (strings) luku 9) (Müldnerin kirjan C:ssä merkkijono ei ole ennaltamääritelty datatyyppi (kuten Javassa) Merkkijono

Lisätiedot

Merkkijonot Komentoriviparametrit

Merkkijonot Komentoriviparametrit C-ohjelmointi Merkkijonot Komentoriviparametrit Viikko 5 1 Merkkijonot (strings) luku 9) (Müldnerin kirjan C:ssä merkkijono ei ole ennaltamääritelty datatyyppi (kuten Javassa) Merkkijono on osoitin merkkeihin

Lisätiedot

S if b then S else S S s. (b) Muodosta (a)-kohdan kieliopin kanssa ekvivalentti, so. saman kielen tuottava yksiselitteinen.

S if b then S else S S s. (b) Muodosta (a)-kohdan kieliopin kanssa ekvivalentti, so. saman kielen tuottava yksiselitteinen. T-79.148 yky 2003 Tietojenkäittelyteorian peruteet Harjoitu 7 Demontraatiotehtävien ratkaiut 4. Tehtävä: Ooita, että yhteydettömien kielten luokka on uljettu yhdite-, katenaatioja ulkeumaoperaatioiden

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

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

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

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

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

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

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

Luennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö ja tulostu

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

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

Luennon sisältö. Taulukot (arrays) (Müldnerin kirjan luku 10) Yksiulotteiset taulukot. Mikä taulukko on? Taulukko-osoitin. tavallinen osoitin

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

C-ohjelmointi, syksy 2006

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

C-ohjelmointi, syksy Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot. Binääritiedostot. Luento

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

Rakenteiset tietotyypit Moniulotteiset taulukot

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

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

7. Näytölle tulostaminen 7.1

7. Näytölle tulostaminen 7.1 7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio

Lisätiedot

Lyhyt kertaus osoittimista

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

// // whiledemov1.c // #include <stdio.h> 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

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 1 / 2009 syksy Tentti / 18.12 Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN

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

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

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

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

C-kurssi syksy ltö. Luennon sisält. Luento 2: tyypit, rakenteet, makrot Tyypit. signed, unsigned short,, long Vakiot const Rakenteet

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

Luennon sisält. ltö. C-kurssi syksy ääreet: int ja char. Yksinkertaiset tyypit. Kokonaisluvut. Merkit

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

Harjoitus 4 (viikko 47)

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

Lisätiedot

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 23.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 23.2.2009 1 / 44 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta

Lisätiedot

C-kurssi kevät Luennon sisältö

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

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

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

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

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tyyppejä ja vähän muutakin TIEA341 Funktio ohjelmointi 1 Syksy 2005 Viime luennolla... Haskellin alkeita pääasiassa Hello World!... ja muita tutunoloisia ohjelmia Haskellilla Haskellin voima on kuitenkin

Lisätiedot

Harjoitus 5 (viikko 48)

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

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

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

Lisätiedot

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

// Tulostetaan double-tyyppiseen muuttujaan hinta tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf(%.1f euros. Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään

Lisätiedot

S if b then S else S S s. (b) Muodosta (a)-kohdan kieliopin kanssa ekvivalentti, so. saman kielen tuottava yksiselitteinen.

S if b then S else S S s. (b) Muodosta (a)-kohdan kieliopin kanssa ekvivalentti, so. saman kielen tuottava yksiselitteinen. T-79.148 Kevät 2004 Tietojenkäittelyteorin peruteet Hrjoitu 7 Demontrtiotehtävien rtkiut 4. Tehtävä: Ooit, että yhteydettömien kielten luokk on uljettu yhdite-, ktentioj ulkeumopertioiden uhteen, o. jo

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

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

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

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

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

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

// Tulostetaan double-tyyppiseen muuttujaan hinta tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf(%.1f euros. Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään

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

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

Kirjoita, 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ä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

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

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

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet

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

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

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

Lisätiedot

Harjoitus 6 (viikko 42)

Harjoitus 6 (viikko 42) Nämä ovat kurssin viimeiset harjoitukset. Hyväksytyistä ratkaisuista ja läsnäoloista kerättyjen pisteiden summan tulee olla vähintään 40 % ( pistettä) tehtävien ja läsnäolopisteiden kokonaislukumäärien

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

Tapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007

Tapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007 Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit

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

Taulukoiden käsittely Javalla

Taulukoiden käsittely Javalla 1 Taulukoiden käsittely Javalla Mikä taulukko on? Taulukon syntaksi Merkkijonotaulukko Lukutaulukko Taulukon kopiointi 1 Mikä taulukko on? Taulukko on rakenne, minne saadaan talteen usea saman tyyppinen

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

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

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A. Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta

Lisätiedot

KUINKA PALJON VAROISTA OSAKKEISIIN? Mika Vaihekoski, professori. Lappeenrannan teknillinen yliopisto

KUINKA PALJON VAROISTA OSAKKEISIIN? Mika Vaihekoski, professori. Lappeenrannan teknillinen yliopisto KUINKA PALJON VAROISTA OSAKKEISIIN? Mika Vaihekoki, proeori Lappeenrannan teknillinen yliopito Näin uuden vuoden alkaea ueat meitä miettivät ijoitualkkuna kootumuta. Yki kekeiitä kyymykitä on päätö eri

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

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

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita. Nämä ovat kurssin viimeiset harjoitukset. Hyväksytyistä ratkaisuista ja läsnäoloista kerättyjen pisteiden summan tulee olla vähintään 40 % ( pistettä) tehtävien ja läsnäolopisteiden kokonaislukumäärien

Lisätiedot

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

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

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.

Lisätiedot

Merkkijonot ja C++ Antti-Juhani Kaijanaho. 5. maaliskuuta 2001. 1 Vanhojen C++-kääntäjien käyttäjät, huomio! 2 Merkkijonojen perusteet

Merkkijonot ja C++ Antti-Juhani Kaijanaho. 5. maaliskuuta 2001. 1 Vanhojen C++-kääntäjien käyttäjät, huomio! 2 Merkkijonojen perusteet Merkkijonot ja C++ Antti-Juhani Kaijanaho 5. maaliskuuta 2001 1 Vanhojen C++-kääntäjien käyttäjät, huomio! Tämä kirjoitus perustuu vuonna 1998 julkistettuun C++-kielen kansainväliseen ISO-standardiin.

Lisätiedot

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

14. Hyvä ohjelmointitapa 14.1

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

Loppukurssin järjestelyt

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

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

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

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

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 4.10.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 4.10.2017 1 / 23 Mahdollisuus antaa luentopalautetta Luennon aikana voit kirjoittaa kommentteja ja kysymyksiä sivulle

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

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

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

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 12. huhtikuuta 2019 Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä. Yksi A4-kokoinen lunttilappu

Lisätiedot

Binäärioperaatiot Tiedostot ja I/O

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

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

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

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

Harjoitus 3 (viikko 39)

Harjoitus 3 (viikko 39) Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien

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

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

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

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

Sosiaalihuollon kertomusmerkintä

Sosiaalihuollon kertomusmerkintä Soiaalihuollon kertomumerkintä Kommentoitava materiaali Terveyden ja hyvinvoinnin laito (THL) L 30 (Mannerheimintie 166) 0071 Helinki Telephone: 09 54 6000 www.thl.fi Siällyluettelo Soiaalihuollon kertomumerkintä...

Lisätiedot

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus) VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,

Lisätiedot

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

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot