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

Koko: px
Aloita esitys sivulta:

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

Transkriptio

1 Tiedosto Monessa tilanteessa olisi hyvä pystyä tallentamaan ohjelman suorituksen aikana syntyvää tietoa pysyvämmin. Nythän kaikki katoaa kun ohjelman suoritus lopetetaan. Tietoja on mahdollista tallentaa tiedostoon. Tiedosto on yhteenkuuluvien tietojen joukko, joka on tallennettu jollekin pitkäaikaistallennukseen pystyvälle medialle, kuten kiintolevylle, CD-levylle tai DVD-levylle. UNIX-järjestelmässä kaikki oheislaitteet ja järjestelmän osat näkyvät ohjelmoijalle tiedostoina. Tiedostot ovat joko binääritiedostoja tai tekstitiedostoja. Tekstitiedostot Tekstitiedosto sisältää ASCII-merkkejä, joista muodostuu peräkkäisiä rivejä, jotka päättyvät rivinvaihtomerkkiin '\n' (newline). Esimerkkinä tekstitiedostosta on lähdekielinen C-ohjelma, HTML-tiedosto jne. Koska tekstitiedostossa on pelkkiä ASCII-merkkejä, kaikki luvut tallennetaan niihin merkkeinä. Esimerkiksi kokonaisluku 345 varaa tekstitiedostosta tilaa kolme merkkiä. Binääritiedostot Binääritiedostot voivat sisältää käytännössä mitä tahansa tietoa: tekstiä, ääntä kuvaa. Binääritiedoston sisältöä ei voida tulkita ASCII-järjestelmän avulla. Esimerkkejä binääritiedostoista ovat C-ohjelmasta käännetty EXE-tiedosto, wordtiedosto, jpg-kuva jne. 91

2 C-ohjelmien muuttujat voidaan sellaisinaan tallentaa binääritiedostoon, jolloin esimerkiksi kokonaisluku 345 varaa binääritiedostosta tilaa kokonaislukutyypin vaatiman tilanvarauksen verran. Tekstitiedostoja pystyy usein käsittelemään binääritiedostoina, mutta binääritiedostoa ei pysty käsittelemään tekstitiedostona. Tämä johtuu siitä, että tekstitiedostojen yhteydessä suoritetaan automaattisia merkkimuunnoksia. Esimerkiksi, kun tekstitiedostosta tulostetaan kuvaruudulle newline-merkki '\n', se muutetaan kahdeksi ASCII-merkiksi: carriage-return, CR (kursori rivin alkuun) ja line-feed, LF (kursori yksi rivi alaspäin). Binääritiedostoille ei suoriteta missään vaiheessa mitään muunnoksia. Tiedostojen käsittelyn perustoiminnot 1. Tiedoston määrittely Tiedosto määritellään FILE-tietotyypin avulla. FILE on tietue, joka sisältää tiedostonhallintaan liittyviä asioita. Tiedosto määritellään käytännössä määrittelemällä osoitin FILE-tietueeseen: FILE *tiedosto; Tiedosto-osoitin tiedosto on tämän määrittelyn jälkeen jonkin tietovirran (eli tiedoston) nimi. Sitä käytetään kaikissa tiedosto-operaatioissa viittaamaan tiedostoon. On huomattava, että tässä vaiheessa tiedosto ei vielä viittaa mihinkään fyysiseen tiedostoon. 92

3 2. Tiedoston avaaminen Tiedosto joudutaan avaamaan ennen kuin sitä voidaan käyttää. Avaaminen liittää käytännössä yhteen tiedosto-osoittimen ja fyysisen levytiedoston. Avaamiseen käytetään funktiota fopen(). tiedosto = fopen ("C:\\NIMET.TXT", "r"); fopen() saa kaksi merkkijonoparametria, jotka ovat tiedoston fyysinen nimi ja tiedoston avaustapa. Avaustapa ilmoittaa sen, missä tarkoituksessa tiedostoa käytetään. Kolme avaustapaa ovat: r = tiedostoa luetaan (read) w = tiedostoon kirjoitetaan (write) a = tietojen lisääminen tiedoston loppuun (append). Avaustavan yhteydessä voidaan määritellä, käsitelläänkö tiedostoa teksti- vai binääritiedostona. Oletuksena on tekstitiedosto. Jos halutaan avata tiedosto binäärimuodossa, lisätään lainausmerkkien sisään toiseksi parametriksi b-kirjain, siis rb, wb tai ab. Oheisessa esimerkissä avataan tekstitiedosto kirjoittamista varten ja kirjoitetaan sinne teksti #include <stdio.h> void main(void) FILE *tiedostomuuttuja = fopen("teletapit.txt", "w"); fprintf(tiedostomuuttuja, "teletapit nukkumaan!\n"); fclose(tiedostomuuttuja); 93

4 Funktio fprintf() toimii samantyylisesti kuin printf(), mutta tulostus tapahtuu tiedostoon, ei näytölle. Jos tiedoston avaaminen onnistuu, fopen() palauttaa osoittimen kyseiseen tiedostoon, muuten se palauttaa arvon NULL. C-ohjelman pääohjelma main() on itse asiassa samanlainen funktio kuin kaikki muutkin funktiot, eli se pystyy palauttamaan arvon käyttöjärjestelmään, josta se käynnistettiin. Siksi oikea tapa määritellä main() on käyttää void:n sijasta sille paluuarvoa int 1. Virhetilanteessa yleinen tapa on, että ohjelman suoritus loppuu siihen ja käyttöjärjestelmälle palautetaan negatiivinen kokonaisluku. Jos ohjelman suoritus menee loppuun ongelmitta, palautetaan nolla tai positiivinen luku. Ohjelman suoritus loppuu ja paluuarvo palautetaan return-lauseella aivan samoin kuin mistä tahansa funktiosta palatessa: #include <stdio.h> int main(void) FILE *avaus; avaus = fopen("oulu.txt", "w"); if(avaus == NULL) printf("tiedoston avauksessa on tapahtunut\ virhe!"); return(-1); fprintf(avaus, "Paskakaupunni"); fclose(avaus); return(0); 1 Modernit C-kääntäjät suorastaan vaativat paluuarvon, toisin kuin paleoliittiselta kaudelta periytyvä Borland 4.5. Uusissa kääntäjissä määrittely void main(void) aiheuttaa virheilmoituksen. Kääntäjät yleensä lisäävät return(0):n automaattisesti main():n loppuun, jos sitä ei siellä ole. 94

5 Tiedosto oulu.txt tallentuu hakemistoon, joka on C-kääntäjän oletushakemisto ajon aikana. Tiedosto näkyy tiedostolistauksessa ja sen sisältöä voi tutkia jollain tekstieditorilla, vaikkapa Notepadilla: Katsotaan seuraavaksi, miten oulu.txt-tiedostosta luetaan tekstiä: #include <stdio.h> void main(void) FILE *avaus; char puskuri[20]=""; avaus = fopen("oulu.txt", "r"); if(avaus == NULL) printf("tiedoston avauksessa on tapahtunut virhe!"); return(-1); fgets(puskuri,sizeof(puskuri),avaus); printf("%s",puskuri); fclose(avaus); return(0); Nyt tiedot luetaan ensin 20 alkion mittaiseen merkkijonopuskuriin fgets()- funktiolla. fgets() tarvitsee syötteekseen 3 parametria: Puskurin nimi 95

6 Puskurin koko, joka voidaan määrittää sizeof-operaattorilla. Tiedosto-osoittimen fgets() on turvallisempi vaihtoehto tavalliselle gets()-funktiolle, koska sille voidaan määritellä luettavien merkkien maksimimäärä. Sitä voidaan käyttää lukemaan merkkijonoja myös näppäimistöltä tiedoston sijaan, jolloin tiedoston sijalla parametrilistassa on stdin. 2 fgets jättää rivinvaihtomerkin \n merkkijonon loppuun toisin kuin gets (huom, \n on eri asia kuin merkkijonon lopetusmerkki; molemmat funktiot jättävät loppuun loppumerkin \0 ). Tiedoston sulkeminen Kun tiedoston käsittely lopetetaan, se pitää sulkea funktiolla fclose(), jota käytetään seuraavasti: fclose(tiedosto); missä tiedosto on fopen()-funktion palauttama osoitin. Tavallinen aloittelijan tekemä virhe on unohtaa sulkea tiedosto, ja sitten ihmetellä että miksi mitään ei tallennu mihinkään Harj69 Tee ohjelma, jonka avulla tallennat oman nimesi tiedostoon nimi.txt. Harj70 Tee ohjelma, jonka avulla luet oman nimesi tiedostosta, jonka nimi annetaan ohjelman suorituksen aikana merkkijonomuuttujan avulla. 2 Jo ensimmäinen tunnettu Internet-mato vuodelta 1988, nk. Morris Internet Worm hyödynsi gets-funktion merkkijonopuskurin ylivuotoa. 96

7 Harj71 Tee ohjelma, joka tulostaa numerot tabulaattorilla erotettuna 10 lukua/rivi tiedostoon luvut.txt Harj72 Muokkaa harjoitusta 71, niin että se käy hakemassa luvut tiedostosta ja tulostaa ne viisi kappaletta rivilleen ohjelmaikkunaan. Sijaintiosoitin Kun tiedostoa luetaan tai sinne kirjoitetaan, tiedostojärjestelmän sisäinen muuttuja, sijaintiosoitin (sijaintipointteri), osoittaa aina seuraavan käsittelykohdan. Kun tiedosto avataan, sijaintiosoitin siirtyy automaattisesti tiedoston alkuun. Kun tiedostosta luetaan, sijaintiosoitin siirtyy (jälleen automaattisesti) siihen kohtaan, mihin lukeminen päättyi. Tätä voidaan toistaa, jolloin on kysymys tiedoston peräkkäiskäsittelystä. Peräkkäiskäsittelyssä seuraava lukemistapahtuma aloittaa lukemisen siitä, mihin edellinen jäi. Vastaavasti, kun kirjoitetaan, sijaintipointteri etenee kirjoituksen myötä eteenpäin ja osoittaa aina seuraavan kirjoituskohdan. 97

8 NICE TO KNOW Tiedosto-osoittimen manipulointiin on C-kielessä tarjolla seuraavia standardikirjaston funktioita: int fseek ( FILE * stream, long int offset, int origin ); o Siirtää tiedosto-osoittimen nykyisestä paikasta origin offset tavua (toimii varmasti oikein vain binääritiedostoille) long int ftell ( FILE * stream ); o Palauttaa tiedosto-osoittimen paikan tavuina tiedoston alusta (toimii varmasti oikein vain binääritiedostoille) void rewind ( FILE * rewind ); o Siirtää osoittimen tiedoston alkuun int fgetpos ( FILE * stream, fpos_t * position ); o Palauttaa osoittimen fpos_t nimiseen stdio.h:ssa määriteltyyn tietueeseen, jonka avulla saadaan tiedosto-osoittimen paikka selville. Tietuetta fpos_t käytetään syötteenä funktiolle: int fsetpos ( FILE * stream, const fpos_t * pos ); o Siirtää osoittimen paikkaan pos. Esimerkki: Sanakirjaohjelma Tehdään seuraavaksi sanakirjaohjelmasta tiedoston avulla toteutettu versio. Sanat on talletettu tekstitiedostoon sanakirja.txt, jonka sisältö näyttää seuraavalta. 98

9 Kysytään käyttäjältä sana englanniksi ja ohjelma tulostaa vastaavan sanan suomeksi lukemalla se tiedostosta #include <stdio.h> #include <string.h> int main(void) FILE *sanakirjatiedosto; char suomi[20],englanti[20],puskuri[40],sana[20]; printf("anna sana englanniksi\n"); gets(sana); sanakirjatiedosto = fopen("sanakirja.txt", "r"); if(sanakirjatiedosto == NULL) perror("tiedoston avauksessa on tapahtunut virhe!"); return(-1); while (!feof(sanakirjatiedosto)) fgets(puskuri,sizeof(puskuri),sanakirjatiedosto); sscanf(puskuri,"%s %s",&englanti,&suomi); if (strcmp(englanti,sana)==0) printf("suomeksi %s\n",suomi); break; fclose(sanakirjatiedosto); return(0); Ohjelman toiminta lyhyesti: Määritellään 4 kpl merkkijonomuuttujia, joista muuttujaan sana tallennetaan käyttäjän syöttämä sana, jota sanakirjasta etsitään. Yritetään avata sanakirja.txt-tiedosto. Jos avaus ei onnistu, perror()- funktio, joka on erityinen virheilmoitusten tulostukseen tarkoitettu funktio, 99

10 tulostaa tiedon siitä, mikä oli vialla. Ohjelmasta poistutaan ja palautetaan arvo -1 Jos avaus onnistuu, niin: While-silmukassa luetaan tiedostosta tekstiä rivi kerrallaan niin kauan kuin tiedosto ei ole lopussa. Tiedoston loppuminen tarkastetaan feof()- funktiolla (EOF = End Of File). fgets() suorittaa varsinaisen tekstin lukemisen merkkijonomuuttujaan puskuri. Puskurista luetaan kaksi merkkijonoa muuttujiin englanti ja suomi sscanf()-funktiolla. Verrataan löydettyä englanninkielistä sanaa muuttujaan sana. Jos ovat samat, tulostetaan vastaava suomenkielinen sana. Harj73 Eräs mittauslaite on tuottanut mittausdataa tekstitiedostoon. Insinöörioppilas S.A. Tiaiselle on annettu tehtäväksi kirjoittaa C-ohjelma, joka analysoi tätä dataa. Tiaiselle on kerrottu, tiedostossa on aina yhdellä rivillä juokseva numero sekä kaksoistarkkuuden liukuluku. Auta insinöörioppilasta tekemällä ohjelma, joka tulostaa tiedostossa olevat luvut, niiden lukumäärän, keskiarvon sekä suurimman ja pienimmän arvon. Data löytyy täältä Esimerkki: Tietuetaulukon tallentaminen tekstitiedostoon funktiossa Tässä esimerkissä määritellään yksinkertaisin mahdollinen tietue, joka sisältää yhden kokonaisluvun. Ohjelmassa on funktiot kysy(), tulosta() ja tallenna(). Funktioille viedään osoitin tietuetaulukkoon sekä tietuetaulukon alkioiden määrä, joka kysytään pääohjelmassa. Lisäksi kysytään tiedoston nimi, johon tallennetaan ja viedään tallenna()-funktiolle merkkijonotaulukkona. Tässä 100

11 esimerkissä on toinen tapa kirjoittaa funktioita. Jos funktioiden määrittelyosat kirjoitetaan ennen main()-funktiota, ei erillisiä prototyyppeja tarvita. #include <stdio.h> struct tietue int arvo; ; void kysy(struct tietue *x,int maara) int i; for (i=0;i<maara;i++) printf("luku?\n"); scanf("%d",&x->arvo); x++; void tulosta(struct tietue *x,int maara) int i; for (i=0;i<maara;i++) printf("%d\n",x->arvo); x++; int tallenna(struct tietue *x,char *tiedosto,int n) int i; FILE *stream; stream=fopen(tiedosto,"w"); if (stream == NULL) perror("virhe : "); return(-1); for (i=0;i<n;i++) fprintf(stream,"%d\n",x->arvo); x++; fclose(stream); 101

12 return(0); int main(void) tietue luvut[5]; int lkm; char tiedostonimi[30]; printf("mihin tallennetaan?\n"); gets(tiedostonimi); printf("montako lukua?\n"); scanf("%d",&lkm); kysy(luvut,lkm); tulosta(luvut,lkm); tallenna(luvut,tiedostonimi,lkm); return(0); Harj74 Tee Harjoituksen 67 opiskelijarekisteriohjelmasta versio, joka tallettaa syötetyt tiedot tiedostoon. Kirjoita tallennus omaksi funktiokseen. Harj75 Lisää edelliseen harjoitustehtävään funktio, joka lukee tiedostosta opiskelijarekisterissä olevat tiedot ja tulostaa ne näytölle. Harj76 Tee edellisen harjoitustehtävän ohjelmaan tekstipohjainen valikko, jossa on seuraavat toiminnot: o Lisää opiskelija rekisteriin o Hae rekisterissä olevat opiskelijat o Tulosta opiskelijarekisterin sisältö o Tallenna opiskelijarekisterin sisältö o Lopeta 102

13 Binääritiedostoon kirjoittaminen ja lukeminen, hex-editori Binääritiedoston sisältöä ei voi tutkia tekstieditorilla. On kuitenkin erityisiä ohjelmia, ns. hex-editoreita, joiden avulla voidaan tutkia binääritiedostojen sisältöä. Suurempia datamääriä tallennettaessa binääriformaatti on huomattavasti tehokkaampi tapa tallentaa tietoja kuin tekstiformaatti. Binääritiedosto vie vähemmän levytilaa ja sekä sen lukeminen että sinne kirjoittaminen on nopeampaa. Ohjelma tallentaa 1000 kokonaislukua binääritiedostoon. Erona tekstitiedostoon kirjoittamiseen on, että luvut kirjoitetaan yhdellä kertaa fwrite-funktiolla. #include <stdio.h> const int N=1000; int main(void) FILE *avaus; avaus = fopen("numeroita.bin", "wb"); int i,taulukko[n]; if(avaus == NULL) printf("tiedoston avauksessa on tapahtunut virhe!"); return(-1); for (i=0;i<n;i++) taulukko[i]=i; fwrite(taulukko,sizeof(int),\ sizeof(taulukko)/sizeof(int),avaus); fclose(avaus); return(0); 103

14 Ohjelmasta kannattaa huomata, että tiedot kirjoitetaan levylle for-silmukan jälkeen kertalinttuulla. Funktiolla fwrite() annetaan parametrina: o Tulostettava data, tässä osoitin kokonaislukutaulukon alkuun o Tallennettavan dataelementin koko tavuina. Yleensä on turvallisinta varata elementille tilaa kyseisen tietotyypin maksimikoon verran. Maksimikoko voidaan selvittää sizeof()-funktion avulla. Eli tässä esimerkissä sizeof(int) laskee kokonaisluvun tavujen lukumäärän tässä järjestelmässä (4). Sillä varmistetaan, että suurin mahdollinen kokonaisluku pystytään tallentamaan. o Kolmas parametri ilmoittaa tallennettavien alkioiden lukumäärän. Jotta lukumäärä tulee varmasti oikein kaikissa tapauksissa, on tämä luku syytä laskea kaavalla sizeof(taulukko)/sizeof(int) (tässä 4000/4 = 1000). o Viimeisenä annetaan tiedosto-osoitin. Jos käytettäisiin tekstiformaattia, pitäisi jokainen luku kirjoittaa erikseen silmukan sisällä fprintf:llä, joka on huomattavan paljon hitaampaa. Jos numeroita.bin-tiedoston avaa Notepadilla, tulostus näyttää seuraavalta: Tämä ei selvästikään näytä siltä, että tiedostossa olisi tallennettuna 1000 kokonaislukua. Jos sen sijaan käytetään hex-editoria, joka ei kuulu Window$in 104

15 vakiovarustukseen, mutta joita löytyy netistä, näyttää tiedoston sisältö seuraavalta: Yksi tavu vastaa yhtä kahden numeron kokoista heksalukua keskimmäisessä kentässä ( ). Ohjelmassa oli määritelty, että jokainen luku tallennetaan 4 tavulla. Siten jokaista tallennettua lukua vastaa neljän heksaluvun ryhmä: = = = = 3 Jne.. Luvut on esitetty ns. big endian -muodossa, jossa eniten merkitsevä tavu on viimeisenä. Esimerkki: Binääritiedoston lukeminen Edellä talletettu tiedosto voidaan lukea fread()-funktiolla. Parametrit ovat samat kuin fwrite():llä. 105

16 #include <stdio.h> const int N=1000; int main(void) FILE *avaus; avaus = fopen("numeroita.bin", "rb"); int i,taulukko[1000]=; if(avaus == NULL) printf("tiedoston avauksessa on tapahtunut virhe!"); return (-1); fread(taulukko,sizeof(int),\ sizeof(taulukko)/sizeof(int),avaus); for (i=0;i<1000;i++) printf("%d ",taulukko[i]); fclose(avaus); return(0); Esimerkki: Tyypillisen mittauslaitteen dataformaatin tuottaminen ja lukeminen Monet lääketieteelliset mittauslaitteet (esim. EEG tai EKG-laite) tallentavat mittaustuloksensa yleensä binääritiedostoon, vaikka XML-formaatti (joka on tekstiformaatti) onkin viime aikoina yleistynyt. Alan insinöörin olisi varmaankin hyvä tietää, miten datan saa luettua omaan ohjelmaan jatkokäsittelyä varten. Tiedosto koostuu tyypillisesti kahdesta osasta: o Header sisältää mittauksen tiedot, kuten potilaan nimen ja tunnisteen (ID), mittauspäivämäärän ja laitteen parametreja, sekä paljon muuta, laitekohtaista tietoa. o Data sisältää itse mittausdatan jossain muodossa, yleensä kokonaislukuina. 106

17 Tiedoston rakenne on valitettavasti monesti laite- tai valmistajakohtainen, joskin tiedostoformaatteja on viime vuosin pyritty standardoimaan 3. Tiedoston tarkka rakenne on selvitettävä. Yleensä laitevalmistajat antavat tämän tiedon kysyttäessä. Seuraavassa ohjelmassa kirjoitetaan yksinkertainen itse keksitty mittaustiedosto ja luetaan se toisessa ohjelmassa. #include <stdio.h> int main(void) FILE *avaus; char patname[30]="pelle Peloton"; char date[10]=" "; char id[10]="abc666"; int data[1000]=; //Dataksi pelkkiä nollia avaus = fopen("testi.bin", "wb"); int i,taulukko[1000]=; if(avaus == NULL) perror("tiedoston avauksessa on tapahtunut virhe!"); return (-1); fwrite(patname,sizeof(char),sizeof(patname)/\ sizeof(char),avaus); fwrite(date,sizeof(char),sizeof(date)/\ sizeof(char),avaus); fwrite(id,sizeof(char),sizeof(id)/sizeof(char),avaus); fwrite(data,sizeof(int),sizeof(data)/\ sizeof(int),avaus); fclose(avaus); return(0); Tiedostoa luettaessa on tietotyyppien vastattava tavun tarkkuudella toisiaan: 3 Eräs biosignaalien standardi on EDF, eli European Data Format, josta löytyy lisätietoa oheisesta linkistä:: 107

18 #include <stdio.h> int main(void) FILE *avaus; char patname[30]; char date[10]; char id[10]; int data[1000]; avaus = fopen("testi.bin", "rb"); int i,taulukko[1000]=; if(avaus == NULL) perror("tiedoston avauksessa on tapahtunut virhe!"); return (-1); fread(patname,sizeof(char),sizeof(patname)/\ sizeof(char),avaus); fread(date,sizeof(char),sizeof(date)/\ sizeof(char),avaus); fread(id,sizeof(char),sizeof(id)/sizeof(char),avaus); fread(data,sizeof(int),sizeof(data)/sizeof(int),avaus); printf("%s\n%s\n%s\n",patname,date,id); for (i=0;i<1000;i++) printf("%d ",data[i]); fclose(avaus); return(0); Harj77 Tee ohjelma, joka tallentaa luvut binääritiedostoon, lukee ne sieltä ja tulostaa näytölle. Harj78 Tallenna vapaasti valittava teksti binäärimuodossa tiedostoon ja lähetä se kaverille sellaisten tietojen kanssa että hän pystyy sen avaamaan. Harj79 Muuta harjoituksen 76 opiskelijarekisteriä niin, että tiedot tallentuvat binääritiedostoon. 108

19 Komentoriviargumentit Main-funktion sielunelämään liittyy vielä yksi tähän mennessä käsittelemätön juttu. Joku on ehkä joskus käyttänyt tietokonetta MS-DOS-aikakaudella ennen Windowsia, tai käyttänyt Unix- tai Linux-käyttöjärjestelmiä. Näissä järjestelmissä ohjelmia voidaan käynnistää ns. komentotulkista (command interpreter). Itse asiassa Window$:n ikonin klilkkaaminen on sama asia kuin että vastaava komento kirjoitetaan komentotulkkiin. C-kieltä on käytetty paljon esimerkiksi käyttöjärjestelmien ohjelmointiin. Niinpä varsinkin Unixin ja C-kielen kehitys liittyvät läheisesti toisiinsa. C-kielen main()-funktion täydellinen muoto on int main(int argc,char *argv[]) Toisin sanoen main():lle voidaan välittää tietoa käyttöjärjestelmästä: o argc = argument count, eli kuinka monta parametria main():lle syötetään o argv = osoitin merkkijonotaulukkoon, joka sisältää itse komentoriviparametrit. Ensimmäinen komentoriviargumentti argv[0] on itse suoritettavan komennon nimi. #include <stdio.h> int main (int argc, char *argv[]) int count; printf ("1. argumentti %s\n",argv[0]); 109

20 if (argc > 1) printf("muut argumentit:\n"); for (count = 1; count < argc; count++) printf("argv[%d] = %s\n", count, argv[count]); else printf("komennolla ei ollut argumentteja.\n"); return 0; Toisessa esimerkissä tehdään yhteenlaskuohjelma summa(), jota kutsutaan komentoriviltä: #include <stdio.h> #include <stdlib.h> int main (int argc, char *argv[]) int n; double eka=0,toka=0; 110

21 if (argc!=4) printf("virhe!\n"); return(-1); eka=atof(argv[1]); toka=atof(argv[3]); if (eka == 0 toka == 0) printf("virhe"); return(-1); printf("%f\n",eka+toka); return 0; Komentoriviltä suoritettavaksi tarkoitettu käännetään build -komennolla, ei normaalilla compile/run-systeemillä. Build tekee suoritettavan exe-tiedoston, joka ajetaan Window$in Command Promptissa (Komentokehotteessa). Harj80 Tee komentoriviltä suoritettava nelilaskin, jolle annetaan kaksi lukua ja niiden välissä merkki +, -, * tai /. 111

22 Ohjelman jakaminen useampaan tiedostoon Opintojakson viimeisenä asiana käsitellään C-ohjelman jakamista useaan tiedostoon. Tämä on käytännössä välttämätöntä, kun ohjelman koko kasvaa suureksi. Ohjelmaan on helppo lisätä uusia ominaisuuksia ja se pysyy näin helpommin hallittavana. Suurissa ohjelmissa saattaa olla satoja C-kielisiä tiedostoja ja satojatuhansia rivejä koodia. Lienee selvää, ettei kukaan pystyisi sellaista ohjelmaa ymmärtämään, jos koko koodi olisi yhdessä pötkössä. Tässä käytetään esimerkkinä Dev-C++ ympäristöä. Muissa Windows-kääntäjissä pitäisi löytyä suurin piirtein vastaavat toiminnot, joskin mahdollisesti hieman eri nimisinä. Unix-ympäristössä operoidaan ns. makefile:n avulla, jonne listataan käännettävät tiedostot ja se suoritetaan make-nimisen ohjelman avulla. Ohjelman jakaminen aloitetaan avaamalla uusi projektitiedosto: File -> New -> Project 112

23 Vaihdetaan Project options:ssa vaihtoehdoksi C Project ja tyypiksi Console Application. Seuraavassa esimerkissä tehdään merkkijonon merkkien laskentaohjelma, joka on jaettu kolmeen tiedostoon: o main.c sisältää varsinaisen pääohjelman o laskemerkit.h on käyttäjän itse määrittelemä header- eli otsikkotiedosto, joka sisältää tässä esimerkissä funktion laskemerkit() prototyypin. o laskemerkit.c sisältää varsinaisen funktion laskemerkit() rungon eli määrittelyosan. Nämä tiedostot voidaan lisätä projektiin File -> New source file - valikon kautta. Dev-C++:n käyttöliittymä näyttää nyt tältä. Eli Project2:n alle on lisätty kolme edellä mainittua tiedostoa. Kuvassa näkyy pääohjelman sisältö. Huomaa, että 113

24 oma otsikkotiedosto laskemerkit.h on sisällytettävä otsikkotiedostoihin. Sitä ei merkitä hakasulkuihin, vaan lainausmerkkeihin. Tiedosto laskemerkit.h sisältää vain yhden rivin: int laskemerkit(char *); Ja tiedosto laskemerkit.c seuraavan koodin: int laskemerkit(char *s) int i=0; while (s[i]!='\0') i++; return i; Yhteen omaan otsikkotiedostoon voidaan kirjoittaa useamman funktion prototyypit. Jokainen funktio on kuitenkin kirjoittaa omiin tiedostoihinsa, jolloin koodin ylläpidettävyys säilyy hyvänä. Harj81 114

25 Muuta nelilaskinohjelmaa siten, että kukin laskutoimitus on kirjoitettu omaan tiedostoonsa. Kaikkien neljän funktion prototyypit on kirjoitettu yhteen otsikkotiedostoon. Harj82 Lisää edellä esitettyyn esimerkkiohjelmaan omaan tiedostoonsa funktio int laskekirjain(char *merkkijono,char haettava_merkki); joka laskee syötetystä merkkijonosta, kuinka monta kertaa valittu kirjain esiintyy. 115

26 Johdatus ohjelmointiin-opintojakso päättyy tähän. Syksyllä jatketaan Olio-ohjelmoinnilla. Kaikkia kielen piirteitä ei vielä tässäkään ajassa pystytty kattamaan, mutta tärkeimmät perusasiat kuitenkin. Onnea viimeiseen välikokeeseen ja aurinkoista kesää. Jukka & Johanna. Ode to C stumpf@gtenmc.gtetele.com (Jon S. Stumpf) GTE Telecom Inc., Bothell, WA (computer, chuckle) 0x0d2C May your signals all trap May your references be bounded All memory aligned Floats to ints rounded Remember... Non-zero is true ++ adds one Arrays start with zero and, NULL is for none For octal, use zero 0x means hex = will set == means test use -> for a pointer a dot if its not? : is confusing use them a lot a.out is your program there's no U in foobar and, char (*(*x())[])() is a function returning a pointer to an array of pointers to functions returning char 116

27 117

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

3 Tee ohjelma, joka tulostaa kahden opiskelijan nimet ja osoitteet rinnakkain. 4 Tee ohjelma, joka kysyy käyttäjältä numeron ja tulostaa sen näytölle.

3 Tee ohjelma, joka tulostaa kahden opiskelijan nimet ja osoitteet rinnakkain. 4 Tee ohjelma, joka kysyy käyttäjältä numeron ja tulostaa sen näytölle. 1 Tee ohjelma, joka tulostaa nimesi näytölle. Olli Opiskelija 2 Tee ohjelma, joka tulostaa näytölle nimesi ja osoitteesi. Olli Opiskelija Torikatu 19 90100 Oulu 3 Tee ohjelma, joka tulostaa kahden opiskelijan

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

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

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

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

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

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

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 4.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 4.3.2009 1 / 35 Tiedostot Tiedostojen käsittelyä tarvitaan esimerkiksi seuraavissa tilanteissa: Ohjelman käsittelemiä

Lisä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 1.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 1.3.2010 1 / 36 Monikko Monikko (engl. tuple) muistuttaa listaa, mutta monikon sisältöä ei voi muuttaa sen jälkeen,

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

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

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

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

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

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

Zeon PDF Driver Trial

Zeon PDF Driver Trial Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin

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

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

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

Lisätiedot

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

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

Lisätiedot

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

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

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

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

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

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

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

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

Luento 5. Timo Savola. 28. huhtikuuta 2006

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

Lisätiedot

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

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

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

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

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

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

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

Binäärioperaatiot Tiedostot ja I/O

Binäärioperaatiot Tiedostot ja I/O C! Binäärioperaatiot Tiedostot ja I/O 16.3.2017 Tiedotteita Määräaikoja pidennetty Myös 7. kierros uudestaan auki perjantaihin asti Seuraava ja viimeinen luento 30.3. Makrot, funktio-osoittimet Kokeen

Lisätiedot

ATK tähtitieteessä. Osa 4 - IDL input/output. 19. syyskuuta 2014

ATK tähtitieteessä. Osa 4 - IDL input/output. 19. syyskuuta 2014 19. syyskuuta 2014 IDL - INPUT/OUTPUT-rutiinit IDL pystyy lukemaan ja kirjoittamaan monentyyppisiä tiedostoja, esim. FORTRAN ja C-kielten ohjelmien tulostusta. Käytössä on myös monipuoliset tulostuksen

Lisätiedot

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

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

Lisätiedot

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

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,

Lisätiedot

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

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

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

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

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

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

Ohjelmoinnin peruskurssi Y1

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

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

Metropolia ammattikorkeakoulu 05.02.2015 TI00AA43-3004: Ohjelmointi Kotitehtävät 3

Metropolia ammattikorkeakoulu 05.02.2015 TI00AA43-3004: Ohjelmointi Kotitehtävät 3 : http://users.metropolia.fi/~pasitr/2014-2015/ti00aa43-3004/kt/03/ratkaisut/ Tehtävä 1. (1 piste) Tee ohjelma K03T01.cpp, jossa ohjelmalle syötetään kokonaisluku. Jos kokonaisluku on positiivinen, niin

Lisätiedot

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

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

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

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

Lisätiedot

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

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

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

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

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

Lisätiedot

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

T211003 Sovellusohjelmat Matlab osa 4: Skriptit, funktiot ja kontrollirakenteet

T211003 Sovellusohjelmat Matlab osa 4: Skriptit, funktiot ja kontrollirakenteet Ohjelmointi Matlab-komentoja voidaan koota ns. M-tiedostoon. Nimi tulee tiedoston tarkentimesta.m. Matlabilla voidaan ohjelmoida kahdella eri tavalla: Skriptit eli komentojonot eli makrot Funktiot eli

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

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

Ohjelmoinnin perusteet Y Python

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

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

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

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

Lisätiedot

Luento 4. Timo Savola. 21. huhtikuuta 2006

Luento 4. Timo Savola. 21. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 4 Timo Savola 21. huhtikuuta 2006 Osa I Shell Lausekkeet Komentoriville kirjotettu komento on lauseke echo "foo" echo $USER MUUTTUJA=1 ls -l Rivinvaihto

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

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 perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta

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

Ohjelmoinnin peruskurssi Y1

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

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

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

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

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

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3 opettaja: Pasi Ranne

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3 opettaja: Pasi Ranne Seuraavista tehtävistä saatu yhteispistemäärä (max 7 pistettä) jaetaan luvulla 3.5 ja näin saadaan varsinainen kurssipisteisiin laskettava pistemäärä. Bonustehtävien pisteet jaetaan luvulla 4 eli niistä

Lisätiedot

Ohjelmoinnin perusteet, syksy 2006

Ohjelmoinnin perusteet, syksy 2006 Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen

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

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

Lisätiedot

Ohjelmoinnin 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

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

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

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

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

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin

Lisätiedot

Ohjeita LINDOn ja LINGOn käyttöön

Ohjeita LINDOn ja LINGOn käyttöön Ohjeita LINDOn ja LINGOn käyttöön LINDOn tärkeimmät komennot ovat com (command), joka tuloaa käytettävissä olevat komennot ruudulle, ja help, jonka avulla saa tietoa eri komennoia. Vaaukset kursiivilla

Lisätiedot

Kääntäjän virheilmoituksia

Kääntäjän virheilmoituksia OHJ-1101 Ohjelmointi 1e 2008-09 1 Kääntäjän virheilmoituksia Kun progvh2 ohjelma käännetään antaa tutg++ seuraavat virheilmoitukset ja varoitukset: proffa> tutg++ progvh2.cc progvh2.cc:29:13: warning:

Lisätiedot

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

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

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

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

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

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

Lisätiedot

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 26.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 26.9.2018 1 / 21 Oppimistavoitteet: tämän luennon jälkeen Osaat kirjoittaa for-käskyn avulla ohjelman, joka toistaa haluttua

Lisätiedot

C++ Ohjelmoijan käsikirja. Johdanto

C++ Ohjelmoijan käsikirja. Johdanto Johdanto C++ Ohjelmoijan käsikirja Johdanto Tervetuloa Inside C++-kirjan pariin. Tämä on opaskirja standardi C++:n käyttöön. Käsittelemme kirjassa kaikki syntaksin, kieliopin, olio-ohjelmoinnin ja standardikirjastojen

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

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

Lisätiedot

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

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

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

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

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

Lisätiedot