1. C++:n STL-kirjasto
|
|
- Kari Tikkanen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 1. C++:n STL-kirjasto C-kielen ongelma on, että taulukkojen koot on tiedettävä etukäteen. Lisäksi C ei tarjoa mitään keinoa automaattiseen indeksin tarkistukseen. Toisin sanoen on täysin ohjelmoijan vastuulla, ettei taulukoa indeksoida sen koon yli. Sovelluksissa on usein tarpeen kasvattaa tai supistaa taulukon kokoa lennossa. Tämä on toki mahdollista ohjelmoida itsekin new ja delete-operaattoreilla. Ei kuitenkaan välttämättä kannata keksiä pyörää uudelleen, koska C++:n Standardimallikirjasto (Standard Template Library) eli STL sisältää suuren joukon valmiita tietorakenteita olioiden dynaamiseen käsittelyyn. Aikaisemmin tällä kurssilla on käytetty jo string-luokkaa, joka kuuluu STL-kirjastoon. Tässä yhteydessä tarkastellaan kahta muuta yksinkertaista STL:n avulla toteutettavaa tietorakennetta list, vector ja map. Täydellinen kuvaus STL:n luokista löytyy esimerkiksi Silicon Graphicsin kotisivuilta osoitteessa Käsitteitä Malli eli template on määrittely, jota käyttämällä voidaan luoda samankaltaisten olioiden perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista tyyppiin sidottua ohjelmakoodia. Malleja käytetään, kun samanlainen logiikka toistuu eri tietotyyppejä käytettäessä. Tarkemmin Malleista kerrotaan Markun materiaalissa luvussa 25. Esimerkkejä: Luodaan vektori luvut, joka sisältää kokonaislukuja: vector <int> luvut; Luodaan lista nimet, joka sisältää merkkijonoja: list <string> nimet; Kaikille vektori- ja listaoliolle on esimerkiksi olemassa metodi, joka lisää tai poistaa niihin uuden alkion riippumatta siitä, mikä alkion tyyppi on. Säiliö eli container on olio, joka sisältää toisia olioita. Säiliöllä on metodeja, joiden avulla se pystyy käsittelemään sisältämiään olioita. Jokaiselle säiliötyypille on määritelty iteraattori-tyyppi, jonka avulla säiliön alkiot käydään läpi. Säiliö omistaa sisältämänsä oliot ja olioiden elinaika ei voi olla pidempi kuin itse säiliön.
2 STL:n kaikki säiliöluokat: Yksinkertaiset säiliöluokat (Simple Container Classes) o vector o list o stack o queue o deque Assosiatiiviset säiliöluokat(associative Container Classes) o map o set o multimap o multiset Lähes kaikki säiliöluokat sisältävät seuraavat metodit: push_front Lisätään alkio säiliön alkuun (ei määritelty vektorille) pop_front Poistetaan ensimmäinen alkio (ei määritelty vektorille) push_back Lisätään alkio säiliön loppuun pop_back Poistetaan viimeinen alkio empty Totuusarvo joka ilmaisee onko säiliö tyhjä size Säiliön koko insert Lisätään uusi alkio erase Poistetaan alkio clear Poistetaan kaikki alkiot resize Muutetaan säiliön kokoa front Osoitin ensimmäiseen alkioon back Osoitin viimeiseen alkioon Iteraattori on yleistetty osoitin. Se osoittaa säiliön yksittäiseen elementtiin. Sen käsittely ohjelmassa on hyvin samankaltainen kuin osoittimen: Esimerkki: vector <int>::iterator it; it++; //siirretään iteraattori seuraavaan säiliön alkioon cout << *it; //tulostetaan it:n osoittaman alkion sisältö Vektori Vektori muistuttaa tavallista C-taulukkoa siinä, että se sisältää nolla tai useampia samantyyppistä ja kokoista alkiota, jotka sijaitsevat keskusmuistissa peräkkäisissä muistipaikoissa. Uusia alkioita voidaan lisätä ja poistaa vektorin lopusta. Alkioihin
3 voidaan viitata satunnaisessa järjestyksessä []-indeksoinnilla (kuten C:n taulukkoon). Periaatteessa on mahdollista lisätä alkioita myös vektorin alkuun tai keskelle, mutta linkitetty lista on niihin tapauksiin parempi ratkaisu. Vektori on STL:n säiliöluokista yksinkertaisin ja samalla yleensä kaikkein tehokkain. Tässä ohjelmassa luetaan lukuja vektoriin luvut niin kauan kunnes syötetään eipositiivinen kokonaisluku. Huomaa, että missään vaiheessa ohjelmoijan ei välttämättä tarvitse tietää vektorin kokoa eikä huolehtia siitä, onko tilaa riittävästi. Metodit begin() ja end()palauttavat osoittimen vektorin alkuun ja loppuun (viimeisen alkion jälkeen). #include <iostream> #include <vector> using namespace std; int main() vector <int> luvut; vector <int>::iterator it; //iteraattori int x; do cout << "Luku? " << endl; cin >> x; luvut.push_back(x); //Lisää alkio vektorin loppuun while (x>0); cout << "Vektorissa on " << luvut.size() << " alkiota." <<endl; for (it=luvut.begin();it!=luvut.end();it++) cout << *it << endl; return 0;
4 Oheisessa kuvassa on havainnollistettu push_back()- metodin toimintaa: Vektoriin lisätään 5. alkio, jonka arvo on 10. Osoitin vektorin loppuun luvut.end() siirtyy automaattisesti. Säiliö voi olla muukin kuin valmiiksi määritelty tietotyyppi. Seuraavassa on määritelty tietue rekisteri, joka sisältää opiskelijan etunimen, sukunimen ja arvosanan. Rekisteri-tyyppinen muuttuja nimi sisältää yhden opiskelijan tiedot. Vektori nimet sisältää listan kaikista opiskelijoista. #include <iostream> #include <vector> #include <string> using namespace std; struct rekisteri string en; string sn; int as; ; int main() rekisteri nimi; vector <rekisteri> nimet; vector <rekisteri>::iterator it; //iteraattori char x; do cout << "Etunimi? " << endl; cin >> nimi.en; cout << "Sukunimi? " << endl; cin >> nimi.sn; cout << "Arvosana? " << endl; cin >> nimi.as; nimet.push_back(nimi); fflush(stdin); cout << "Jatketaanko (k/e)?" << endl; cin.get(x);
5 while (x!='e'); cout << "Vektorissa on " << nimet.size() << " alkiota." <<endl; for (it=nimet.begin();it!=nimet.end();it++) cout << it -> en << " " << it ->sn << " " << it -> as << endl; return 0; Edelliseen vielä sellainen huomautus, että iteraattori on aina osoitin. Tässsä iteraattori it on osoitin tietueeseen. Tietueosoittimen yksittäiseen kenttään viitataan nuolioperaattorilla ->. Tässä luettelo vector-luokan metodeista: assign at back begin Erases a vector and copies the specified elements to the empty vector. Returns a reference to the element at a specified location in the vector. Returns a reference to the last element of the vector. Returns a random-access iterator to the first element in the container.
6 capacity clear empty end erase front get_allocator insert max_size pop_back push_back rbegin rend resize reserve size swap Returns the number of elements that the vector could contain without allocating more storage. Erases the elements of the vector. Tests if the vector container is empty. Returns a random-access iterator that points just beyond the end of the vector. Removes an element or a range of elements in a vector from specified positions. Returns a reference to the first element in a vector. Returns an object to the allocator class used by a vector. Inserts an element or a number of elements into the vector at a specified position. Returns the maximum length of the vector. Deletes the element at the end of the vector. Add an element to the end of the vector. Returns an iterator to the first element in a reversed vector. Returns an iterator to the end of a reversed vector. Specifies a new size for a vector. Reserves a minimum length of storage for a vector object. Returns the number of elements in the vector. Exchanges the elements of two vectors. Lista STL:n lista on ns. kaksoislinkitetty lista (double linked list).. Lista koostuu peräkkäisestä solmuista. Solmu sisältää datan sekä joko yksi tai kaksi linkkiä listan edelliseen ja / tai seuraavaan alkioon. Yksinkertainen linkitetty lista sisältää datan ja osoittimen seuraavaan listan alkioon: Kaksisuuntainen linkitetty lista sisältää osoittimen sekä edelliseen että seuraavaan alkioon: Kaksoislinkitetty lista tarvitsee enemmän tilaa keskusmuistista kuin yksinkertainen. Se tarjoaa kuitenkin vastaavasti monipuolisemman tavan käydä listaa läpi molempiin suuntiin.
7 Ohessa graafisesti esitettynä listan alkion lisääminen ja poisto. STL:n listaan voi lisätä alkioita joko alkuun (push_front), loppuun (push_back) tai välille (insert). #include <iostream> #include <list> using namespace std; int main() list <int> luvut1,luvut2; list <int>::iterator it; int luku; do cout << "Luku?" << endl; cin >> luku; //Pano edestä: luvut1.push_front(luku); //Pano takaa: luvut2.push_back(luku); while (luku>0); cout << "luvut1:" << endl;
8 for (it=luvut1.begin();it!=luvut1.end();it++) cout << *it << endl; cout << "luvut12:" << endl; for (it=luvut2.begin();it!=luvut2.end();it++) cout << *it << endl; return 0; Ohessa on esitetty luettelo list-luokan metodeista: assign back begin clear empty end erase front Erases elements from a list and copies a new set of elements to the target list. Returns a reference to the last element of a list. Returns an iterator addressing the first element in a list. Erases all the elements of a list. Tests if a list is empty. Returns an iterator that addresses the location succeeding the last element in a list. Removes an element or a range of elements in a list from specified positions. Returns a reference to the first element in a list. get_allocator Returns a copy of the allocator object used to construct a list. insert max_size merge pop_back pop_front push_back push_front rbegin remove remove_if rend resize reverse size Inserts an element or a number of elements or a range of elements into a list at a specified position. Returns the maximum length of a list. Removes the elements from the argument list, inserts them into the target list, and orders the new, combined set of elements in ascending order or in some other specified order. Deletes the element at the end of a list. Deletes the element at the beginning of a list. Adds an element to the end of a list. Adds an element to the beginning of a list. Returns an iterator addressing the first element in a reversed list. Erases elements in a list that match a specified value. Erases elements from the list for which a specified predicate is satisfied. Returns an iterator that addresses the location succeeding the last element in a reversed list. Specifies a new size for a list. Reverses the order in which the elements occur in a list. Returns the number of elements in a list.
9 sort splice swap unique Arranges the elements of a list in ascending order or with respect to some other order relation. Removes elements from the argument list and inserts them into the target list. Exchanges the elements of two lists. Removes adjacent duplicate elements or adjacent elements that satisfy some other binary predicate from the list. Map Map on säiliöluokka, jossa tieto esitetään avain-arvo-pareina. Avain ja arvo säilytetään oliossa, jonka tyyppi on pair. Luokalla pair on kaksi jäsentä: o o first on avain second on itse arvo Esimerkki: map<int, string *> PhoneBook; Muistissa oheinen map-määrittely näyttää seuraavalta:
10 Esimerkkiohjelma tulostaa teletappien nimet ja värit. Nimi on avain ja väri on data #include <iostream> #include <map> #include <string> using namespace std; int main() map<string, string> teletapit; teletapit["tiivitaavi"]="violetti"; teletapit["hipsu"]="vihreä"; teletapit["laalaa"]="keltainen"; teletapit["pai"]="punainen"; map<string, string>::const_iterator iter; for (iter=teletapit.begin();\ iter!= teletapit.end(); ++iter) cout << iter->first << " on väriltään " \ << iter->second << endl; return 0; Algoritmit STL-kirjastossa on joukko valmiita algoritmeja, joiden avulla monet tyypilliset ohjelmointitehtävät on mahdollista tehdä ilman, että niitä tarvitsee kirjoittaa itse alusta. Tällaisia toimintoja on esimerkiksi lajittelu (sort) ja haku (find). Olemme aikaisemmin
11 tutustuneet mm. swap- ja reverse-algoritmeihin. Tässä on esitetty täydellinen lista STL:n algoritmeista. Läheskään kaikkia ei tällä kurssilla tarvita, mutta lienee hyvä tietää, mitä kaikkea löytyy valmiina, jos jotain näistä joskus oikeasti tarvitsee. This section provides a list of all the standard STL algorithms listed by category, together with an encoded description of their input parameters and a brief synopsis. The following table shows the meanings of letters used to decode input parameters shown in the algorithm list. Key Meaning Key Meaning b Bi-directional iterator p Predicate f Forward iterator r Random access iterator g Function object v Value i Input iterator & Reference to a value o Output iterator For example, the input parameters for the for_each() algorithm are iig. Using the above table, you can determine that for_each() takes two input iterators and a function object as arguments. Applying for_each iig Apply a function to every item in a range. Bounding equal_range ffv Return the lower and upper bounds within a range. lower_bound ffv Return the lower bound within a range. upper_bound ffv Return the upper bound within a range. Comparing equal iii Check that two sequences match. lexicographical_compare iii Lexicographically compare two sequences. mismatch iii Search two sequences for a mismatched item. Copying copy copy_backward Counting count count_if Filling fill fill_n Filtering unique unique_copy Generating generate iio Copy a range of items to another area. bbb Copy a range of items backwards to another area. iiv Count items in a range matching a value. iip Count items in a range satisfying a predicate. ff Set every item in a range to a particular value. o Set n items to a particular value. ff Collapse all consecutive values in a sequence. iio Copy a sequence, collapsing consecutive values. ffg Fill a sequence using a generator function. generate_n og Generate a specified number of items. Heap make_heap rr Make a sequence into a heap.
12 pop_heap rr Pop the top value from a heap. push_heap rr Place the last element into a heap. sort_heap rr Sort a heap. Math Operations accumulate iiv Sum the values in a range. adjacent_difference iio Calculate the difference between adjacent pairs of values. inner_product iiiv Calculate the inner product of two sequences. partial_sum iio Fill a range with a running total. median vvv Calculate the median of three values. Merging inplace_merge bbb Merge two sorted lists in place into a single sorted list. merge iiiio Merge two sorted lists into a single sorted list. Min/Max min max min_element ii max_element ii Partitioning nth_element && Return the minimum of two items. && Return the maximum of two items. Return the minimum item within a range. Return the maximum item within a range. rrr Partition a range by its nth element. partition bbp Partition a range using a predicate. stable_partition bbp Partition a range using a predicate. Permuting next_permutation bb Change sequence to next lexicographic permutation. prev_permutation bb Change sequence to last lexicographic permutation. Removing remove ffv Remove all matching items from a sequence. remove_copy iiov Copy sequence, removing all matching items. remove_copy_if iiop Copy sequence, removing all that satisfy predicate. remove_if ffp Remove items satisfying predicate from a sequence. Replacing replace replace_copy replace_if ffvv Replace specified value in a sequence with another. iiovv Copy sequence replacing values satisfying predicate. ffpv Replace specified values satisfying a predicate. Reversing reverse bb Reverse the items in a sequence. reverse_copy bbo Create a reversed copy of a sequence. Rotating rotate fff Rotate a sequence by n positions. rotate_copy fffo Copy a sequence, rotating it by n positions Searching adjacent_find ii Locate consecutive sequence in a range. binary_search ffv Locate an item in a sorted sequence. find iiv Locate an item in a sequence. find_if iip Locate an item satisfying a predicate in a range. search ffff Locate one sequence within another. Set Operations includes iiii Search for one sequence in another sequence. set_difference iiiio Create set of elements in first sequence that are not in second.
13 set_intersection set_symmetric_difference set_union iiiio Create set of elements that are in both sequences. iiiio Create set of elements that are not in both sequences. iiiio Create set of elements that are in either sequence. Shuffling random_shuffle rr Randomize sequence using random shuffles. Sorting partial_sort rrr Sort the smallest n elements of a sequence. partial_sort_copy iirr Sort the smallest n elements of a sequence. sort rr Sort a sequence. stable_sort rr Sort a sequence. Swapping iter_swap ff Swap the values indicated by two iterators. swap && Swap two values. swap_ranges fff Swap two ranges of items. Transforming transform iiog Transform one sequence into another.
STL:n uudistukset. Seppo Koivisto TTY Ohjelmistotekniikka
STL:n uudistukset Seppo Koivisto TTY Ohjelmistotekniikka 2012-05-04 Sisältö 1 Muutokset säiliöihin ja uudet säiliötyypit 2 3 4 5 STL:n säiliöt Viitteet ja osoittimet ovat muuttuneet: Allocator::reference
LisätiedotC++ Vol 1. Stanley B. Lippman Josée Lajoie. Copyright IT Press Tämän e-kirjan kopiointi, tulostaminen ja jakeleminen eteenpäin luvatta on kielletty.
C++ Vol 1 Stanley B. Lippman Josée Lajoie C++ Vol 1 Kirjoittaja Kääntäjä Kansi Kustantaja Stanley B. Lippman & Josée Lajoie Erkki Huru Frank Chaumont Oy Edita Ab IT Press PL 760 00043 EDITA Sähköpostiosoite
LisätiedotDemo 6 vastauksia. 1. tehtävä. #ifndef #define D6T1 H D6T1 H. #include <iostream> using std::ostream; using std::cout; using std::endl;
Demo 6 vastauksia 1. tehtävä #ifndef #define D6T1 H D6T1 H #include using std::ostream; using std::cout; using std::endl; #include using std::string; 10 template class
LisätiedotOlio-ohjelmointi Syntaksikokoelma
C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja
Lisätiedot1 C++:n standardikirjasto
TIE-20100 Tietorakenteet ja algoritmit 1 1 C++:n standardikirjasto Tässä luvussa käsitellään C++:n standardikirjaston tietorakenteita ja algoritmeja. Tarkoituksena on käsitellä sellaisia asioita, jotka
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Taulukon edut Taulukon haitat Taulukon haittojen välttäminen Dynaamisesti linkattu lista Linkatun listan solmun määrittelytavat Lineaarisen listan toteutus dynaamisesti linkattuna
LisätiedotKää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ätiedotLiite. Geneeriset algoritmit aakkosjärjestyksessä
Liite Geneeriset algoritmit aakkosjärjestyksessä Tässä liitteessä katsomme kutakin yksittäistä algoritmia vuorollaan. Olemme päättäneet esitellä ne aakkosjärjestyksessä (pienin poikkeuksin) niin, että
LisätiedotOsoitin ja viittaus C++:ssa
Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja
Lisätiedot12 Mallit (Templates)
12 Mallit (Templates) Malli on määrittely, jota käyttämällä voidaan luoda samankaltaisten aliohjelmien ja luokkien perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista
LisätiedotListarakenne (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ätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. V Geneerisyys
812347A Olio-ohjelmointi, 2015 syksy 2. vsk V Geneerisyys Sisältö 1. Johdanto geneerisyyteen 2. Geneeriset funktiot 3. Geneeriset luokat 4. Standard Template Library (STL) 5. IOStream-kirjasto 812347A
LisätiedotTIETORAKENTEET JA ALGORITMIT
TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle
LisätiedotCapacity Utilization
Capacity Utilization Tim Schöneberg 28th November Agenda Introduction Fixed and variable input ressources Technical capacity utilization Price based capacity utilization measure Long run and short run
Lisätiedot812336A C++ -kielen perusteet, 21.8.2010
812336A C++ -kielen perusteet, 21.8.2010 1. Vastaa lyhyesti seuraaviin kysymyksiin (1p kaikista): a) Mitä tarkoittaa funktion ylikuormittaminen (overloading)? b) Mitä tarkoittaa jäsenfunktion ylimääritys
Lisätiedotint puts(char *buff) Kirjoittaa puskurissa buff \0 :lla päätetyn merkkijonon standarditulostukseen. Formatoitu konsoli-i/o Tiedostot
1. Standardikirjasto Ohjelmankehitysympäristössä on joukko kirjastoituja funktioita. on joukko otsikkotiedostoja, joissa on kirjastofunktioiden prototyypit (esittelyt) ja tarvittavien vakioiden, tietotyyppien
LisätiedotKää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ätiedotTietueet. Tietueiden määrittely
Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Merkintöjen tulkintoja *++Pstack->top = item *Pstack->top++ = item (*Pstack->top)++ *(Pstack++)->top = item *(++Pstack)->top = item Lisää pinon toteutuksia Dynaaminen taulukko
LisätiedotOhjelmointi 1 Taulukot ja merkkijonot
Ohjelmointi 1 Taulukot ja merkkijonot Jussi Pohjolainen TAMK Tieto- ja viestintäteknologia Johdanto taulukkoon Jos ohjelmassa käytössä ainoastaan perinteisiä (yksinkertaisia) muuttujia, ohjelmien teko
LisätiedotThe CCR Model and Production Correspondence
The CCR Model and Production Correspondence Tim Schöneberg The 19th of September Agenda Introduction Definitions Production Possiblity Set CCR Model and the Dual Problem Input excesses and output shortfalls
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,
Lisätiedot1.1 Pino (stack) Koodiluonnos. Graafinen esitys ...
1. Tietorakenteet Tietorakenteet organisoivat samankaltaisten olioiden muodostaman tietojoukon. Tämä järjestys voidaan saada aikaan monin tavoin, esim. Keräämällä oliot taulukkoon. Liittämällä olioihin
LisätiedotAlternative DEA Models
Mat-2.4142 Alternative DEA Models 19.9.2007 Table of Contents Banker-Charnes-Cooper Model Additive Model Example Data Home assignment BCC Model (Banker-Charnes-Cooper) production frontiers spanned by convex
LisätiedotKaksiloppuinen jono D on abstrakti tietotyyppi, jolla on ainakin seuraavat 4 perusmetodia... PushFront(x): lisää tietoalkion x jonon eteen
Viimeksi käsiteltiin pino: lisäys ja poisto lopusta jono: lisäys loppuun, poisto alusta Pinon ja jonon yleistävä tietorakenne: kaksiloppuinen jono alkion lisäys/poisto voidaan kohdistaa jonon alkuun tai
LisätiedotMuuttujien roolit Kiintoarvo cin >> r;
Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,
LisätiedotOHJ-1150 Ohjelmointi II
OHJ-1150 Ohjelmointi II syksy 2013 Luentomoniste Ari Suntioinen arisuntioinen@tutfi Sisällysluettelo Sisältö OHJ-1150 Ohjelmointi II vector-tyyppi 252 Standard Template Library (STL) 261 STL-säiliöt 263
LisätiedotStandardi mallikirjasto
Standardi mallikirjasto 20 Standardi mallikirjasto Kuten jo tiedätkin C++ sisältää laajan standardikirjaston, joka yksinkertaistaa monia ohjelmointitehtäviä. Tähän saakka näkemäsi lisäksi tämä kirjasto
LisätiedotOhjelmointi 1 C#, kevät 2013, 2. tentti
ITKP102 Ohjelmointi 1 C# 15.5.2013 1 / 6 Ohjelmointi 1 C#, kevät 2013, 2. tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yhden arkin verran. Tentin valvojalla
LisätiedotBounds on non-surjective cellular automata
Bounds on non-surjective cellular automata Jarkko Kari Pascal Vanier Thomas Zeume University of Turku LIF Marseille Universität Hannover 27 august 2009 J. Kari, P. Vanier, T. Zeume (UTU) Bounds on non-surjective
LisätiedotC++11 seminaari, kevät Johannes Koskinen
C++11 seminaari, kevät 2012 Johannes Koskinen Sisältö Mikä onkaan ongelma? Standardidraftin luku 29: Atomiset tyypit Muistimalli Rinnakkaisuus On multicore systems, when a thread writes a value to memory,
LisätiedotLaskennallisesti Älykkäät Järjestelmät. Sumean kmeans ja kmeans algoritmien vertailu
Laskennallisesti Älykkäät Järjestelmät Sumean kmeans ja kmeans algoritmien vertailu Annemari Auvinen (annauvi@st.jyu.fi) Anu Niemi (anniemi@st.jyu.fi) 28.5.2002 1 Tehtävän kuvaus Tehtävänämme oli verrata
LisätiedotTaulukot. 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ätiedotT740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010
12. Periytyminen Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi
LisätiedotA274101 TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen
Lisätiedot1.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ätiedotSisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto
Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Muuttujat eri muisteissa Ohjelman muistialueen layout Paikallisen ja globaalin muuttujan ominaisuudet Dynaamisen muistinkäytön edut Paikallisten muuttujien dynaamisuus ADT
Lisätiedot18. Abstraktit tietotyypit 18.1
18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
Lisätiedot++ 153, 759 += 98 = 102, 751 == 102 -> 756 ->* 655 >> 165, 1063? 133 ^ 165 166 147 ~165
Hakemisto 1199 Symbols 165, 1063! 147 -- 153, 759 #endif-direktiivi 14 #ifdef-direktiivi 14 #ifndef-direktiivi 14 #include 9 #include-direktiivi 17 & 165 && 143, 147 &&-operaattori 143 ( ) 755 (...) 354,
LisätiedotRakenteiset tietotyypit Moniulotteiset taulukot
C! Rakenteiset tietotyypit Moniulotteiset taulukot 22.2.2018 Agenda Rakenteiset tietotyypit Vilkaisu 6. kierroksen tehtäviin Moniulotteiset taulukot Esimerkki Seuraava luento to 8.3. Ilmoittautuminen ohjelmointikokeeseen
LisätiedotSIMULINK S-funktiot. SIMULINK S-funktiot
S-funktio on ohjelmointikielellä (Matlab, C, Fortran) laadittu oma algoritmi tai dynaamisen järjestelmän kuvaus, jota voidaan käyttää Simulink-malleissa kuin mitä tahansa valmista lohkoa. S-funktion rakenne
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 5: Sijoituslause, SICP-oliot, tietorakenteen muuttaminen (mm. SICP 33.1.3, 3.33.3.2) Riku Saikkonen 6. 11. 2012 Sisältö 1 Muuttujan arvon muuttaminen:
LisätiedotList-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen
1 List-luokan soveltamista List-luokan metodeja Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan metodeja List-luokan
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
Lisätiedot1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.
START START SIT 1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward. This is a static exercise. SIT STAND 2. SIT STAND. The
Lisätiedot3. Binääripuu, Java-toteutus
3. Binääripuu, Java-toteutus /*-------------------------------------------------------------/ / Rajapinta SearchTree: binäärisen hakupuun käsittelyrajapinta / / Metodit: / / void insert( Comparable x );
LisätiedotT Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010
11. Luokka Opetellaan seuraavaksi, miten omia luokkia kirjoitetaan. Aikaisemmin olikin jo esillä, että luokka on tietorakenne, joka sisältää sekä tiedot (attribuutit) että niitä käsittelevät aliohjelmat
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä
812347A Olio-ohjelmointi, 2015 syksy 2. vsk X Poikkeusten käsittelystä Sisältö 1. Yleistä poikkeusten käsittelystä 2. Poikkeuskäsittelyn perusteita C++:ssa 3. Standardissa määritellyt poikkeukset 4. Poikkeusvarmuus
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 3: SICP kohdat 2.22.3, 33.1 ja 3.33.3.2 Riku Saikkonen 8. 11. 2010 Sisältö 1 Lisää listoista 2 Symbolit ja sulkulausekkeet 3 Derivoijaesimerkki 4 Muuttujan
LisätiedotJavaScript alkeet Esimerkkikoodeja moniste 3 (Metropolia 11/2011)
JavaScript alkeet Esimerkkikoodeja moniste 3 (Metropolia 11/2011) Array (taulukko) olio Esim. 9.1. taulukko eli Array olio kirjataulukko
LisätiedotRINNAKKAINEN OHJELMOINTI A,
RINNAKKAINEN OHJELMOINTI 815301A, 18.6.2005 1. Vastaa lyhyesti (2p kustakin): a) Mitkä ovat rinnakkaisen ohjelman oikeellisuuskriteerit? b) Mitä tarkoittaa laiska säikeen luominen? c) Mitä ovat kohtaaminen
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
LisätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
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. Ohjelmointitehtävien osalta palautetaan
LisätiedotAlgoritmit 1. Demot Timo Männikkö
Algoritmit 1 Demot 2 1.-2.2.2017 Timo Männikkö Tehtävä 1 (a) Ei-rekursiivinen algoritmi: laskesumma(t, n) sum = t[0]; for (i = 1; i < n; i++) sum = sum + t[i]; return sum; Silmukka suoritetaan n 1 kertaa
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 5: Sijoituslause, SICP-oliot, todistamisesta (mm. SICP 33.1.3, 3.33.3.2) Riku Saikkonen 7. 11. 2011 Sisältö 1 Muuttujan arvon muuttaminen: set! 2 SICP-oliot
LisätiedotGeneeriset luokat. C++ - perusteet Java-osaajille luento 6/7: Template, tyyppi-informaatio, nimiavaruudet. Geneerisen luokan käyttö.
Geneeriset luokat C++ - perusteet Java-osaajille luento 6/7: Template, tyyppi-informaatio, nimiavaruudet Geneerinen luokka tarkoittaa parametroitua luokkamallia, jonka avulla voidaan muodostaa useita,
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Elegantti toteutus funktiolle insert_to_list_end Alkion lisäys sisällön mukaan järjestettyyn listaan (insert_to_list) Linkatun listan yleisyys alkiotyypin suhteen source-tasolla
LisätiedotOsoittimet ja taulukot
C! ja taulukot 1.2.2018 Tiedotteita Tämän jälkeen taas pari väliviikkoa (tenttiviikko) Seuraava luento 22.2. Laskareita ei tenttiviikolla 12.2. 16.2. 2 ja muisti Muisti Keskusyksikkö Suorittaa muistissa
LisätiedotC-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.
Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen
LisätiedotOhjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.
Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan
LisätiedotOsa VII. Mitä mallit ovat ja kuinka niitä käytetään Miksi mallit tarjoavat paremman vaihtoehdon makroille Kuinka luokkamalleja luodaan
Osa VII 23. oppitunti Mallit Muutaman viime vuoden aikana on C++ -kieleen lisätty joitakin uusia piirteitä. Eräs kiinnostavimpia ja tehokkaimpia uusia C++ -ominaisuuksia ovat mallit. Mallit mahdollistavat
Lisätiedot1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
LisätiedotReturns to Scale II. S ysteemianalyysin. Laboratorio. Esitelmä 8 Timo Salminen. Teknillinen korkeakoulu
Returns to Scale II Contents Most Productive Scale Size Further Considerations Relaxation of the Convexity Condition Useful Reminder Theorem 5.5 A DMU found to be efficient with a CCR model will also be
Lisätiedot13 Operaattoreiden ylimäärittelyjä
248 13 C++-kielessä voidaan operaattoreita ylimäärittää. Ylimääriteltävää operaattoria voidaan pitää ikäänkuin metodina, joka esitellään luokan esittelyssä ja määritellään luokan ulkopuolella kuten metoditkin.
LisätiedotPlasmid Name: pmm290. Aliases: none known. Length: bp. Constructed by: Mike Moser/Cristina Swanson. Last updated: 17 August 2009
Plasmid Name: pmm290 Aliases: none known Length: 11707 bp Constructed by: Mike Moser/Cristina Swanson Last updated: 17 August 2009 Description and application: This is a mammalian expression vector for
LisätiedotC++ rautaisannos. Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout:
C++ rautaisannos Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout: # include #include main ( ) main (
Lisätiedot811312A Tietorakenteet ja algoritmit II Perustietorakenteet
811312A Tietorakenteet ja algoritmit 2017-2018 II Perustietorakenteet Sisältö 1. Johdanto 2. Pino 3. Jono 4. Lista 811312A TRA, Perustietorakenteet 2 II.1. Johdanto Tietorakenne on tapa, jolla algoritmi
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 4: Symbolit, derivojaesimerkki, kierroksen 1 ratkaisut (mm. SICP 2.32.3.2) Riku Saikkonen 1. 11. 2011 Sisältö 1 Symbolit ja sulkulausekkeet 2 Lisää Schemestä:
LisätiedotSQL-perusteet, SELECT-, INSERT-, CREATE-lauseet
SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin
LisätiedotMetodit. 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ätiedotOperatioanalyysi 2011, Harjoitus 2, viikko 38
Operatioanalyysi 2011, Harjoitus 2, viikko 38 H2t1, Exercise 1.1. H2t2, Exercise 1.2. H2t3, Exercise 2.3. H2t4, Exercise 2.4. H2t5, Exercise 2.5. (Exercise 1.1.) 1 1.1. Model the following problem mathematically:
LisätiedotLoppukurssin järjestelyt C:n edistyneet piirteet
C! Loppukurssin järjestelyt C:n edistyneet piirteet 30.3.2017 Ohjelmassa Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Esikääntäjä Parametrilistat Funktio-osoittimet Kunniamainintoja Kuura
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap Tietorakenneluokkia ja -rajapintoja Java tarjoaa laajan kokoelman tietorakennerajapintoja ja - luokkia. Aiemmin
LisätiedotITKP102 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ätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Listan määritelmä Listan toteutustapoja Yksinkertainen taulukkototeutus Linkattu taulukko Dynaamisesti linkattu taulukko Listan toteutuksen yleisyysvaatimukset Millä ehdoilla
LisätiedotHelsingin yliopisto, Tietojenkäsittelytieteen laitos Ohjelmistotuotanto, kurssikoe , H. Laine Arvostelu
Helsingin yliopisto, Tietojenkäsittelytieteen laitos Ohjelmistotuotanto, kurssikoe 15.11.2002, H. Laine Arvostelu Arvostelu kannattaa tehdä siten että maksimipistemäärä on 6 pistettä. On sitä helpompaa
LisätiedotAlgoritmit 2. Luento 2 To Timo Männikkö
Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento
LisätiedotEfficiency change over time
Efficiency change over time Heikki Tikanmäki Optimointiopin seminaari 14.11.2007 Contents Introduction (11.1) Window analysis (11.2) Example, application, analysis Malmquist index (11.3) Dealing with panel
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien
LisätiedotHarjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:
Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int
LisätiedotChoose Finland-Helsinki Valitse Finland-Helsinki
Write down the Temporary Application ID. If you do not manage to complete the form you can continue where you stopped with this ID no. Muista Temporary Application ID. Jos et onnistu täyttää lomake loppuun
LisätiedotTIE Tietorakenteet ja algoritmit 25
TIE-20100 Tietorakenteet ja algoritmit 25 Tällä kurssilla keskitytään algoritmien ideoihin ja algoritmit esitetään useimmiten pseudokoodina ilman laillisuustarkistuksia, virheiden käsittelyä yms. Otetaan
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
LisätiedotKONEISTUSKOKOONPANON TEKEMINEN NX10-YMPÄRISTÖSSÄ
KONEISTUSKOKOONPANON TEKEMINEN NX10-YMPÄRISTÖSSÄ https://community.plm.automation.siemens.com/t5/tech-tips- Knowledge-Base-NX/How-to-simulate-any-G-code-file-in-NX- CAM/ta-p/3340 Koneistusympäristön määrittely
Lisätiedot1. Olio-ohjelmointi 1.1
1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja
LisätiedotUse of spatial data in the new production environment and in a data warehouse
Use of spatial data in the new production environment and in a data warehouse Nordic Forum for Geostatistics 2007 Session 3, GI infrastructure and use of spatial database Statistics Finland, Population
LisätiedotOther approaches to restrict multipliers
Other approaches to restrict multipliers Heikki Tikanmäki Optimointiopin seminaari 10.10.2007 Contents Short revision (6.2) Another Assurance Region Model (6.3) Cone-Ratio Method (6.4) An Application of
LisätiedotLyhyt kertaus osoittimista
, syksy 2007 Kertausta Luento 10 12.10.2007 Syksy 2007 1 Lyhyt kertaus osoittimista char *p; /* char, int, jne ilmoittavat, minkä tyyppisiä */ Keskusmuisti int *q; /* olioita sisältäviin muistilohkoihin
LisätiedotOlio-ohjelmointi Geneerisyys. 1. Johdanto
Olio-ohjelmointi Geneerisyys Aiemmin käsiteltiin kolme monimuotoisuuden muotoa. Tässä osassa tutustutaan niistä neljänteen geneerisyyteen. Esitys perustuu pääosin teoksen [Bud] lukuun 18. Java-kielen geneerisyyden
LisätiedotTieto- ja tallennusrakenteet
Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)
LisätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 2: SICP kohdat 22.2.3 Riku Saikkonen 2. 11. 2010 Sisältö 1 Linkitetyt listat 2 Listaoperaatioita 3 Listarakenteet 4 Gambit-C:n Scheme-debuggeri Linkitetyt
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja
LisätiedotAlgoritmit 1. Luento 4 Ke Timo Männikkö
Algoritmit 1 Luento 4 Ke 18.1.2017 Timo Männikkö Luento 4 Tietorakenteet Pino Pinon toteutus Jono Jonon toteutus Lista Listaoperaatiot Algoritmit 1 Kevät 2017 Luento 4 Ke 18.1.2017 2/29 Pino Pino, stack,
LisätiedotAbstraktit tietotyypit. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Abstraktit tietotyypit TIEA341 Funktio ohjelmointi 1 Syksy 2005 Data abstraktio Abstraktio on ohjelmoinnin tärkein väline Data abstraktio abstrahoi dataa Abstrakti tietotyyppi Koostuu kolmesta asiasta:
LisätiedotThe Viking Battle - Part Version: Finnish
The Viking Battle - Part 1 015 Version: Finnish Tehtävä 1 Olkoon kokonaisluku, ja olkoon A n joukko A n = { n k k Z, 0 k < n}. Selvitä suurin kokonaisluku M n, jota ei voi kirjoittaa yhden tai useamman
LisätiedotEsimerkkiprojekti. 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