C++ 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.
|
|
- Heli Halttunen
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 C++ Vol 1 Stanley B. Lippman Josée Lajoie
2 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 EDITA Sähköpostiosoite Internet palvelu@itpress.fi Painopaikka Oy Edita Ab, Helsinki 2000 Authorized translation from the English language edition published by Addison Wesley Longman, Inc. Copyright 1998 All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Finnish language edition published by IT Press Copyright Kaikki oikeudet pidätetään. Tämän julkaisun tai sen osan jäljentäminen ilman tekijän kirjallista lupaa painamalla, monistamalla, äänittämällä tai muulla tavoin on tekijänoikeuslain mukaisesti kielletty. Suomenkielisen version on julkaissut IT Press Copyright Alkuperäisen teoksen nimi on C++ Primer Third Edition ISBN
3 Bethille, joka saa tämän ja kaiken muun mahdolliseksi Danielille ja Annalle, jotka käytännössä hillitsevät kaikkia mahdollisuuksia SBL Markille ja Äidille heidän ehdottomasta rakkaudesta ja tuesta. JL
4
5 Sisällysluettelo v SISÄLLYSLUETTELO Tämän kirjan rakenne xviii Muutokset kolmanteen painokseen C++-kielen tulevaisuus xxiii Kiitokset xxiii Kiitokset toiseen painokseen xxiv Lähdeluettelo xxv xxii OSA I C++, yleiskatsaus 1 1 Alkuun pääsy 5 Ongelman ratkaisu 5 C++-ohjelma 6 Esikääntäjän direktiivit 13 Muutama sana kommenteista 17 Ensimmäinen katsaus syöttöön ja tulostukseen 19
6 vi Sisällysluettelo 2 Matka C++-kieleen 23 Sisäinen Array-tietotyyppi 23 Dynaaminen muistinvaraus ja osoittimet 26 Oliopohjainen suunnittelu 30 Oliokeskeinen suunnittelu 41 Geneerinen suunnittelu 51 Poikkeuspohjainen suunnittelu 58 Taulukko jollain muulla nimellä 62 Standardinmukainen taulukko on vektori 68 OSA II Peruskieli 73 3 C++:n tietotyypit 75 Literaalivakio 75 Muuttujat 79 Osoitintyypit 88 Merkkijonotyypit 93 Const-määre 102 Viittaustyypit 106 Bool-tyyppi 110 Luetellun joukon tyypit 111 Taulukkotyypit 114 Vektori-säiliötyyppi 121 Kompleksilukujen tyypit 125 Typedef-nimet 126 Volatile-määre 127 Parityyppi 127 Luokkatyypit 128
7 Sisällysluettelo vii 4 Lausekkeet 141 Mikä on lauseke? 141 Aritmeettiset operaattorit 143 Yhtäsuuruus-, vertailu- ja loogiset operaattorit 146 Sijoitusoperaattorit 149 Lisäys- ja vähennysoperaattorit 153 Kompleksilukujen operaatiot 155 Ehdollinen operaattori 158 Sizeof-operaattori 159 New- ja delete-lausekkeet 162 Pilkkuoperaattori 164 Biteittäiset operaattorit 164 Bittijoukko-operaatiot 168 Sidontajärjestys 172 Tyyppikonversiot 176 Esimerkki pinoluokasta Lauseet 189 Yksinkertaiset ja yhdistetyt lauseet 189 Esittelylause 190 If-lause 194 Switch-lause 202 For-lause 210 While-lause 214 Do while -lause 216 Break-lause 218 Continue-lause 220 Goto-lause 220 Esimerkki linkitetystä listasta 222
8 viii Sisällysluettelo 6 Abstraktit säiliötyypit 249 Tekstinkyselyjärjestelmämme 250 Vektori vai lista? 254 Kuinka vektori kasvaa itsestään 256 Jonosäiliön määrittely 260 Iteraattorit 265 Jonosäiliöiden operaatioita 269 Tekstirivien tallentaminen 273 Alimerkkijonon löytäminen 276 Välimerkkien käsittely 282 Merkkijono jossain muussa muodossa 285 Merkkijonon lisäoperaatioita 288 Tekstin sijaintitaulukon rakentaminen 294 Poisjätettävän sanajoukon rakentaminen 305 Koko ohjelma 308 Monikartta/monijoukko 318 Pino 321 Jono ja prioriteettijono 323 Palaaminen istack-luokkaamme 324 OSA III Proseduraalipohjainen ohjelmointi Funktiot 331 Yleiskatsaus 331 Funktion prototyyppi 334 Argumenttien välitys 338 Arvon palauttaminen 357 Rekursio 362 Välittömät eli inline-funktiot 363 Linkitysdirektiivit: extern "C" 365 main(): komentorivin valitsimien käsittely 367 Osoittimet funktioihin 378
9 Sisällysluettelo ix 8 Viittausalue ja elinaika 389 Viittausalue 389 Globaalit oliot ja funktiot 395 Paikalliset oliot 402 Dynaamisesti varatut oliot 406 Nimiavaruuksien määrittelyt 420 Nimiavaruuden jäsenten käyttö Ylikuormitetut funktiot 443 Ylikuormitettujen funktioiden esittelyt 443 Ylikuormituksen ratkaisun kolme vaihetta 455 Argumenttien tyyppikonversiot 458 Funktion ylikuormituksen ratkaisun yksityiskohdat Funktiomallit 489 Funktiomallin määrittely 489 Funktiomallin instantiointi 497 Malliargumentin päättely 500 Eksplisiittiset malliargumentit 505 Mallin käännösmallit 509 Mallin eksplisiittinen erikoistaminen 514 Funktiomallien ylikuormitus 520 Instantiointien ylikuormituksen ratkaisu 523 Nimiresoluutio mallimäärittelyissä 531 Nimiavaruudet ja funktiomallit 537 Esimerkki funktiomallista 542
10 x Sisällysluettelo 11 Poikkeusten käsittely 547 Poikkeuksen heittäminen 547 Try-lohko 551 Poikkeuksen sieppaaminen 555 Poikkeusmääritykset 564 Poikkeukset ja suunnittelunäkökohdat Geneeriset algoritmit 571 Yleiskatsaus 571 Geneeristen algoritmien käyttö 575 Funktio-oliot 586 Paluu iteraattoreihin 594 Geneeriset algoritmit 602 Milloin geneerisiä algoritmeja ei tulisi käyttää? 606 OSA IV Oliopohjainen ohjelmointi Luokat 613 Luokan määrittely 613 Luokkaoliot 621 Luokan jäsenfunktiot 624 Implisiittinen this-osoitin 636 Staattiset luokan jäsenet 640 Osoitin luokan jäseneen 648 Yhdiste: tilaa säästävä luokka 657 Bittikenttä: tilaa säästävä jäsen 663 Luokan viittausalue 665 Sisäkkäiset luokat 672 Luokat nimiavaruuden jäseninä 683 Paikalliset luokat 687
11 Sisällysluettelo xi 14 Luokan alustus, sijoitus ja tuhoaminen 689 Luokan alustus 689 Luokan muodostaja 691 Luokan tuhoaja 703 Luokkaoliotaulukot ja -vektorit 710 Jäsenen alustusluettelo 717 Jäsenittäinen alustus 724 Jäsenittäinen sijoitus 730 Tehokkuusnäkökohtia Ylikuormitetut funktiot ja käyttäjän määrittelemät konversiot 737 Operaattorin ylikuormitus 737 Ystävät 748 Operaattori = 751 Operaattori [ ] 754 Operaattori ( ) 755 Operaattori -> 756 Operaattorit ++ ja Operaattorit new ja delete 763 Käyttäjän määrittelemät konversiot 771 Konversion valinta 782 Ylikuormituksen ratkaisu ja jäsenfunktiot 795 Ylikuormituksen ratkaisu ja operaattorit Luokkamallit 811 Luokkamallin määritteleminen 811 Luokkamallin instantiointi 820 Luokkamallien jäsenfunktiot 830 Ystäväesittelyt luokkamalleissa 834 Luokkamallien staattiset tietojäsenet 840 Luokkamallien sisäkkäiset tyypit 842
12 xii Sisällysluettelo Jäsenmallit 845 Luokkamallit ja käännösmalli 849 Luokkamallin erikoistamiset 856 Luokkamallin osittainen erikoistaminen 862 Nimiresoluutio luokkamalleissa 863 Nimiavaruudet ja luokkamallit 866 Array-luokkamalli 868 OSA V Oliokeskeinen ohjelmointi Luokkaperiytyminen ja alityypitys 879 Luokkahierarkian määrittely 882 Hierarkian jäsenten tunnistaminen 890 Kantaluokan jäsenten käsittely 900 Kantaluokan ja johdetun luokan muodostus 908 Kantaluokan ja johdetun luokan virtuaaliset funktiot 919 Jäsenittäinen alustaminen ja sijoittaminen 943 UserQuery-luokka käyttäjän kyselyiden hallintaan 948 Kokoaminen Moni- ja virtuaaliperiytyminen 965 Näyttämön järjestely 965 Moniperiytyminen 970 Julkinen, yksityinen ja suojattu periytyminen 977 Luokan viittausalue periytymisessä 985 Virtuaaliperiytyminen 993 Esimerkki moni- ja virtuaaliperiytymisestä 1006
13 Sisällysluettelo xiii 19 Periytymisen käyttö C++:ssa 1021 Ajonaikainen tyyppitunnistus (RTTI) 1021 Poikkeukset periytymisessä 1033 Ylikuormituksen ratkaisu ja periytyminen Iostream-kirjasto 1063 Tulostusoperaattori << 1067 Syöttö 1072 Syötön ja tulostuksen lisäoperaattorit 1083 Tulostusoperaattorin << ylikuormitus 1090 Syöttöoperaattorin >> ylikuormitus 1095 Tiedoston syöttö ja tulostus 1097 Ehtotilat 1107 String-virrat 1109 Muotoilutila 1112 Vahvasti tyypitetty kirjasto 1121 LIITE Geneeriset algoritmit aakkosjärjestyksessä 1123 accumulate() 1125 adjacent_difference() 1126 adjacent_find() 1127 binary_search() 1128 copy() 1129 copy_backward() 1130 count() 1131 count_if() 1133 equal() 1134 equal_range() 1136 fill() 1138 fill_n() 1139 find() 1140 find_if() 1141 find_end() 1143 find_first_of() 1144 for_each() 1145 generate() 1146
14 xiv Sisällysluettelo generate_n() 1147 includes() 1148 inner_product() 1149 inplace_merge() 1150 iter_swap() 1152 lexicographical_compare() 1153 lower_bound() 1154 max() 1156 max_element() 1156 min() 1156 min_element() 1157 merge() 1158 mismatch() 1159 next_permutation() 1160 nth_element() 1162 partial_sort() 1163 partial_sort_copy() 1164 partial_sum() 1165 partition() 1166 prev_permutation() 1168 random_shuffle() 1169 remove() 1169 remove_copy() 1170 remove_if() 1171 remove_copy_if() 1172 replace() 1173 replace_copy() 1173 replace_if() 1174 replace_copy_if() 1174 reverse() 1175 reverse_copy() 1176 rotate() 1177 rotate_copy() 1177 search() 1178 search_n() 1180 set_difference() 1181 set_intersection() 1181 set_symmetric_difference() 1182 set_union() 1182 sort() 1184 stable_partition() 1185 stable_sort() 1186 swap() 1187
15 Sisällysluettelo xv swap_range() 1188 transform() 1189 unique() 1190 unique_copy() 1191 upper_bound() 1192 Kekoalgoritmit 1194 make_heap() 1194 pop_heap() 1195 push_heap() 1195 sort_heap() 1195 Hakemisto 1199
16 xvi Sisällysluettelo
++ 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,
1. C++:n STL-kirjasto
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,
Olio-ohjelmointi Syntaksikokoelma
C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja
INSIDE C++ Ohjelmoijan käsikirja. Ivor Horton WROX PRESS
INSIDE C++ Ohjelmoijan käsikirja Ivor Horton WROX PRESS C++ Ohjelmoijan käsikirja Kirjoittanut Kääntäjä Kansi Kustantaja Ivor Horton Jouni Laaksonen Frank Chaumont IT Press PL 25 00511 HELSINKI Sähköpostiosoite
Algoritmit C++ Kauko Kolehmainen
Algoritmit C++ Kauko Kolehmainen Algoritmit - C++ Kirjoittanut Taitto Kansi Kustantaja Kauko Kolehmainen Kauko Kolehmainen Frank Chaumont Oy Edita Ab IT Press PL 760 00043 EDITA Sähköpostiosoite Internet
Liite. 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ä
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
12 Mallit (Templates)
12 Mallit (Templates) Malli on määrittely, jota käyttämällä voidaan luoda samankaltaisten aliohjelmien ja luokkien perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista
Esipuhe. xvii. Copyright IT Press Tämän e-kirjan kopiointi, tulostaminen ja jakeleminen eteenpäin luvatta on kielletty.
Esipuhe Melko useita muutoksia on tapahtunut tämän C++-kirjan toisen ja kolmannen painoksen välillä. Merkittävin on se, että C++ on käynyt läpi kansainvälisen standardoinnin, joka ei ole ainoastaan lisännyt
C++ tukee myös kaksoistarkkuuden ja yhden tarkkuuden liukulukutietotyyppejä:
2 Matka C++-kieleen Luku alkaa katsauksella tukeen, jota C++-kielellä on tarjota taulukkotyypille tarkoittaa peräkkäistä kokoelmaa yhdentyyppisiä elementtejä, kuten kokonaislukuarvojen taulukkoa, joka
1 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
812347A 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
Neutralointi kipsialtaan vuodon aikana
Neutralointi kipsialtaan vuodon aikana 4.11.-15.11.2012 Etelän turvapadot Etelän turvapadoilta luontoon vuotaneen Pohjoisen turvapadoilta luontoon vuotaneen liuoksen Pohjoisen turvapadot liuoksen neutralointi
Geneeriset 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,
13 Operaattoreiden ylimäärittelyjä
248 13 C++-kielessä voidaan operaattoreita ylimäärittää. Ylimääriteltävää operaattoria voidaan pitää ikäänkuin metodina, joka esitellään luokan esittelyssä ja määritellään luokan ulkopuolella kuten metoditkin.
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,
Virtuaalifunktiot ja polymorfismi
Virtuaalifunktiot ja polymorfismi 16 Virtuaalifunktiot ja polymorfismi Polymorfismi on niin tehokas olio-ohjelmoinnin ominaisuus, että tulet varmastikin käyttämään sitä lähes kaikissa C++-ohjelmissasi.
C++11 lambdat: [](){} Matti Rintala
C++11 lambdat: [](){} Matti Rintala bool(*)(int) Tarve Tarve välittää kirjastolle/funktiolle toiminnallisuutta Callback-funktiot Virhekäsittely Käyttöliittymät Geneeristen kirjastojen räätälöinti STL:n
Ohjelmointikieli TIE Principles of Programming Languages Syksy 2017 Ryhmä 19
Ohjelmointikieli TIE-20306 Principles of Programming Languages Syksy 2017 Ryhmä 19 Juho Kärnä Ville Mäntysaari 1. Johdanto D on yleiskäyttöinen, strukturoitu, staattisesti tyypitetty, käännettävä ohjelmointikieli
Osa IV. Oliokeskeinen ohjelmointi
Osa IV Oliokeskeinen ohjelmointi Osa 4 keskittyy oliokeskeiseen ohjelmointiin tämä tarkoittaa C++:n luokkapiirteiden määrittelyä ja käyttöä, joilla voidaan luoda uusia tyyppejä ja joita voidaan käsitellä
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
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ä.
Periytymisen käyttö C++:ssa
19 Periytymisen käyttö C++:ssa Periytymisessä voi osoitin tai viittaus kantaluokkatyyppiin viitata johdetun luokkatyypin olioon. Ohjelmamme voidaan sitten kirjoittaa käsittelemään näitä osoittimia tai
815338A Ohjelmointikielten periaatteet
815338A Ohjelmointikielten periaatteet 2015-2016 V Abstraktit tietotyypit ja olioohjelmointi Sisältö I. Abstraktit tietotyypit II. 1. Johdatus abstrakteihin tietotyyppeihin 2. Abstraktit tietotyypit Adassa
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
Osasto: Materiaalin käsittely, Rikkihapon annostelu agglomeraattiin kuljettimella
1/6 Osasto: Projekti: TK Materiaalin käsittely, Rikkihapon annostelu agglomeraattiin kuljettimella Pvm. 17.12.2015 jatkettu 7.4.2016 Tekijä: Ville Heikkinen, Matti Okkonen, Herkko Kylli Asiakirja: Tulokset
Periytyminen. Luokat ja olio-ohjelmointi
Periytyminen 15 Periytyminen Tässä luvussa käsittelemme aihetta, joka on olio-ohjelmoinnin kaikkein tärkein osa - periytyvyys. Periytyvyyden avulla voimme luoda uusia luokkia uudelleenkäyttämällä ja laajentamalla
4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
Ylikuormitetut funktiot ja käyttäjän määrittelemät konversiot
15 Ylikuormitetut funktiot ja käyttäjän määrittelemät konversiot Luvussa 15 katsotaan funktioiden kahta erityiskategoriaa: ylikuormitettuja operaattoreita ja konversiofunktioita. Näiden funktioiden avulla
Merkkijonot ja C++ Antti-Juhani Kaijanaho. 5. maaliskuuta 2001. 1 Vanhojen C++-kääntäjien käyttäjät, huomio! 2 Merkkijonojen perusteet
Merkkijonot ja C++ Antti-Juhani Kaijanaho 5. maaliskuuta 2001 1 Vanhojen C++-kääntäjien käyttäjät, huomio! Tämä kirjoitus perustuu vuonna 1998 julkistettuun C++-kielen kansainväliseen ISO-standardiin.
Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin
Sisällys 17. Ohjelmoinnin tekniikkaa for-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. if-else-lause vaihtoehtoisesti
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
Tieto- ja tallennusrakenteet
Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)
T740103 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
Kielioppia: toisin kuin Javassa
Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien
Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten
Sisällys 16. Ohjelmoinnin tekniikkaa Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. For-lause lyhemmin. If-else-lause vaihtoehtoisesti
815338A Ohjelmointikielten periaatteet 2014-2015
815338A Ohjelmointikielten periaatteet 2014-2015 X Skriptiohjelmointi Sisältö 1. Johdanto 2. Skriptikielten yleispiirteitä 3. Python 815338A Ohjelmointikielten periaatteet, Skriptiohjelmointi 2 X.1 Johdanto
Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen
Chapel TIE-20306 Ryhmä 91 Joonas Eloranta Lari Valtonen Johdanto Chapel on Amerikkalaisen Cray Inc. yrityksen kehittämä avoimen lähdekoodin ohjelmointikieli. Chapel on rinnakkainen ohjelmointikieli, joka
16. Ohjelmoinnin tekniikkaa 16.1
16. Ohjelmoinnin tekniikkaa 16.1 Sisällys Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. For-lause lyhemmin. If-else-lause vaihtoehtoisesti
Luokkamallit Luokkamallin määritteleminen
16 Luokkamallit Tässä luvussa kuvataan luokkamallit ja kuinka niitä määritellään. Luokkamalli on ohje sellaisen luokan luomiselle, jonka yksi tai useampi tyyppi on parametroitu. Aloittelevana C++-ohjelmoijana
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
1.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
16. Ohjelmoinnin tekniikkaa 16.1
16. Ohjelmoinnin tekniikkaa 16.1 Sisällys For-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. If-else-lause vaihtoehtoisesti
ITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
Projektinhallinta. Richard Murch. Sisällysluettelo
Sisällysluettelo i IT Projektinhallinta Richard Murch ii Sisällysluettelo IT-projektinhallinta Richard Murch Edita Publishing Oy IT Press PL 760 00043 EDITA palvelu@itpress.fi Lue lisää IT Press -kirjoista
TW- EAV510/TW- EAV510AC: PPTP- OHJEISTUS
TW- EAV510/TW- EAV510AC: PPTP- OHJEISTUS Esimerkki 1: PPTP- yhteys kahden TW- EAV510/TW- EAV510AC laitteen välille Esimerkki 2: Palvelinlaitteena TW- EAV510/TW- EAV510AC, asiakaslaitteena Windows 8 HUOM!
Ehto- ja toistolauseet
Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden
Funktiomallit. 10.1 Funktiomallin määrittely
10 Funktiomallit Tässä luvussa kuvataan, mikä funktiomalli on, ja tuodaan esille, kuinka niitä määritellään ja käytetään. Funktiomallin käyttö on melko yksinkertaista ja monet aloittelevat C++-ohjelmoijat
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
Rajapinnat ja olioiden välittäminen
Rajapinnat ja olioiden välittäminen Moduulit/oliot kutsuvat toisiaan kapseloitujen rajapintojen läpi Kutsuissa välitetään usein olioita paikasta toiseen Jos olion omistus (= tuhoamisvastuu) säilyy koko
JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat:
1. Luokan jäsenet Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat: class luokan_nimi tyypit: enum, struct, class, typedef
C++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi
1 C++11 Syntaksi Jari-Pekka Voutilainen 13.4.2012 2 Range-for Iteroi säiliön kaikki alkiot for-silmukassa. Säiliöltä vaaditaan begin- ja end-iteraattorit. Pätee kaikille C++11 STL-säiliöille, taulukoille,
A274101 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
12. Monimuotoisuus 12.1
12. Monimuotoisuus 12.1 Sisällys Johdanto. Periytymismekanismi määrittää alityypityksen. Viitteiden sijoitus ja vertailu. Staattinen ja dynaaminen luokka. Myöhäinen ja aikainen sidonta. Parametrinvälitys
PROJEKTI- HALLINNAN KÄSIKIRJA
RISTO PELIN PROJEKTI- HALLINNAN KÄSIKIRJA (seitsemäs painos) PROJEKTIJOHTAMINEN OY RISTO PELIN Kaikki oikeudet pidätetään. Tämän kirjan jäljentäminen ilman tekijän kirjallista lupaa painamalla, monistamalla,
Harjoitus 1 -- Ratkaisut
Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin
ITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.
TIETORAKENTEET JA ALGORITMIT
TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Muuttujat eri muisteissa Ohjelman muistialueen layout Paikallisen ja globaalin muuttujan ominaisuudet Dynaamisen muistinkäytön edut Paikallisten muuttujien dynaamisuus ADT
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
TAMPEREEN TEKNILLINEN YLIOPISTO
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ
T 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
1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
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
TW- EAV510/TW- EAV510AC: L2TP- OHJEISTUS
TW- EAV510/TW- EAV510AC: L2TP- OHJEISTUS Esimerkki 1: L2TP- yhteys kahden TW- EAV510/TW- EAV510AC laitteen välille Esimerkki 2: L2TP- yhteys TW- EAV510/TW- EAV510 AC ja Windows 8/8.1 koneen välillä Esimerkki
Algoritmit 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
15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien
\+jokin merkki tarkoittaa erikoismerkkiä; \n = uusi rivi.
1. Johdanto 1.1 Yleistä Suurten ohjelmien organisointi vaikeaa C:ssä. 1980 Stroustrup lisäsi C:hen olio-ohjelmoinnin (OOP = Object Oriented Programming). C C++: C-ohjelma on (muutamia poikkeuksia lukuunottamatta)
Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();
Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio
812336A 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
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
Algoritmit 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
Harjoitus 5 (viikko 41)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä, käytä
Operaattoreiden uudelleenmäärittely
Operaattoreiden uudelleenmäärittely 14 Operaattoreiden uudelleenmäärittely Tässä luvussa käsittelemme, kuinka voit lisätä toiminnallisuutta luokkiisi, jotta ne toimivat enemmän C++:n perustietotyyppien
7/20: Paketti kasassa ensimmäistä kertaa
Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007
Euroopan unionin neuvosto Bryssel, 11. toukokuuta 2016 (OR. en)
Euroopan unionin neuvosto Bryssel, 11. toukokuuta 2016 (OR. en) 8823/16 ENER 146 ENV 279 SAATE Lähettäjä: Euroopan komissio Saapunut: 10. toukokuuta 2016 Vastaanottaja: Kom:n asiak. nro: D044838/02 Asia:
Viittausalue ja elinaika
8 Viittausalue ja elinaika Tämä luku vastaa kahteen tärkeään kysymykseen, jotka koskevat C++:n esittelyitä: missä voidaan esittelyssä esille tullutta nimeä käyttää? Milloin ohjelmalle on turvallista käyttää
Harjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)
Sisällys JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys Periytyminen (inheritance) Näkyvyys (visibility) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E. Hyvönen: Java Osa
P e d a c o d e ohjelmointikoulutus verkossa
P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN
Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5
Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät tekniset ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida
15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
Ohjelmoinnin 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
Tietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Kurssin sisältö pääpiirteittäin Tarvittavat pohjatiedot Avainsanat Abstraktio Esimerkkiohjelman tehtäväkuvaus Abstraktion käyttö tehtävässä Abstrakti tietotyyppi Hyötyjä ADT:n
TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 27. lokakuuta 2009
TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 27. lokakuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe D tiistai 10.11. klo 10 välikielen generointi Kääntäjän rakenne
14.1 Rekursio tyypitetyssä lambda-kielessä
Luku 14 Rekursiiviset tyypit Edellisessä luvussa esitetyt tietue- ja varianttityypit eivät yksinään riitä kovin mielenkiintoisten tietorakenteiden toteuttamiseen. Useimmissa ohjelmissa tarvitaan erilaisia
812341A Olio-ohjelmointi, I Johdanto
812341A Olio-ohjelmointi, 2016 I Johdanto Sisältö 1. Abstraktiosta 2. Olio-ohjelmoinnin historiaa 3. Olioparadigmasta 4. Peruskäsitteiden kertausta 812341A Olio-ohjelmointi, Johdanto 2 1 Abstraktiosta
TW- EAV510 / TW- EAV510 AC: OpenVPN
TW- EAV510 / TW- EAV510 AC: OpenVPN OpenVPN- yhteys kahden TW- EAV510/TW- EAV510AC laitteen välille HUOM! Jos yhteyttä käytetään 3G/4G/LTE- verkon yli, pitää käytössä olla operaattorilta julkiset IP- osoitteet
OHJ-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
Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python
Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat
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
C++ Ohjelmoijan käsikirja. Hakemisto. #ifdef 394 #ifndef 394, 396 ympäristön tuki 396 koodi, monistamisen välttäminen
Hakemisto Symbolit!, looginen NOT 127,129!=, vertailuoperaattori 111, 207 # operaattorin uudelleenmäärittely 534 esikäsittelijän komennot 383 merkkijonon korvaus, esikäsittelijän makrot 391 ## useammat
Toiminnanohjausjärjestelmien hyödyntäminen Suomessa 2013
Toiminnanohjausjärjestelmien hyödyntäminen Suomessa 2013 Loppukäyttäjätutkimus, alle 500 henkilön organisaatiot Osa 1/3: Pilvipalvelujen hyödyntäminen toiminnanohjausjärjestelmissä Leena Mäntysaari, Mika
Algoritmit 2. Luento 2 Ke Timo Männikkö
Algoritmit 2 Luento 2 Ke 15.3.2017 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2017 Luento
Ohjelmoinnin 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:
12. Monimuotoisuus 12.1
12. Monimuotoisuus 12.1 Sisällys Johdanto. Periytymismekanismi määrittää alityypityksen. Viitteiden sijoitus ja vertailu. Staattinen ja dynaaminen luokka. Parametrinvälitys eräs monimuotoisuuden sovellus.
Omat tietotyypit. Mikä on olio?
Omat tietotyypit 11 Omat tietotyypit C++:n suuri vahvuus on sen oliopohjaisuudessa. Siihen liittyy runsaasti asiaa ja kulutammekin seuraavat viisi lukua tässä aiheessa. Tässä ja seuraavassa luvussa käsittelemme
Ohjelman virheet ja poikkeusten käsittely
Ohjelman virheet ja poikkeusten käsittely 17 Ohjelman virheet ja poikkeusten käsittely Poikkeukset ovat tapa ilmoittaa virheistä ja odottamattomista tilanteista C++-ohjelmassasi. Poikkeusten käyttö virheiden
Common Lisp Object System
Common Lisp Object System Seminaarityö Tomi Vihtari Ohjelmointikielten periaatteet kevät 2004 Helsingin Yliopisto Tietojenkäsittelytieteen laitos Järvenpää 5. huhtikuuta 2004 Sisältö 1 Johdanto... 1 2