Översikt. Modern C++ Generisk programmering vs OOP. En titt i backspegeln... Generisk programmering. Objektorienterad programmering.

Storlek: px
Starta visningen från sidan:

Download "Översikt. Modern C++ Generisk programmering vs OOP. En titt i backspegeln... Generisk programmering. Objektorienterad programmering."

Transkript

1 Moder C++ Översikt Mattias Flodi Geerisk programmerig vs OOP Stadard Template Library (STL) Partiell specialiserig Metaprogrammerig med templates Policybaserad desig Expressio templates Geerativ programmerig Geerisk programmerig vs OOP E titt i backspegel... C++ is ot a purely Object- Orieted Laguage. It is a laguage that supports Object-Orieted Programmig. Procedurell programmerig: Bestäm vilka procedurer du vill ha; aväd de bästa algoritmera du ka hitta. Modulär programmerig: Bestäm vilka moduler du vill ha; dela upp programmet så att data göms iom modulera. Dataabstraktio: Bestäm vilka datatyper du vill ha; tillhadahåll e full uppsättig operatioer för varje typ. Objektorieterad programmerig Geerisk programmerig Bestäm vilka klasser du vill ha Tillhadahåll e full uppsättig operatioer för varje klass Uttryck gemesamhet med arv Bestäm vilka algoritmer du vill ha Parameterisera dem så att de fugerar för e mägd olika typer och datastrukturer 1

2 Exempel: Byta plats på variabler void swap(t& a, T& b) T temp=a; a=b; b=temp; Exempel: E stackdatatyp template <typeame Type, it Size=100> class Stack Stack(); void push(type); Type pop(); private: Type values[size]; it top; template <typeame Type, it Size> void Stack<Type>::push(Type value) values[top++] = value; template <typeame Type, it Size> T Stack<Type>::pop() retur values[--top]; E stackdatatyp... Att täka på it mai() Stack<it> stk; stk.push(3); it popped_it = stk.pop(); Stack<strig> stk2; stk2.push("hello World"); strig popped_str = stk2.pop(); retur 0; E parameteriserad klass/fuktio kompileras om för varje y parameteruppsättig Kompilerig tar lägre tid Implemetatioe måste ofta fias i.h-file för att de ska vara tillgäglig för kompilator Vissa parameterval ka ge kompilerigsfel, adra ite Måga uika parameteruppsättigar ka leda till stora programfiler Stadard Template Library (STL) Ortogoal desig Utvecklades av Alex Stepaov och Meg Lee som ett mågårigt forskigsprojekt i Scheme, Ada och C++ Accepterades av stadardiserigskommité 1994 Tillhadahåller geeriska datatyper och algoritmer Implemeterar allt frå DOA och mer därtill... set list deque vector Iteratorer frot_isert_iterator ostream_iterator back_isert_iterator reverse_iterator raw_storage_iterator accumulate fid sort copy Algoritmer Behållare 2

3 Specialiserig Partiell specialiserig vector<bool> aväder oödigt mycket mie Ka effektiviseras med e skräddarsydd specialiserig class vector; template <> class vector<bool> Mer geerellt ka vi specialisera m.a.p. vissa parametrar. Detta går bara att göra med klasser. template <typeame Type, it Size> class Stack; // Matchar Stack<bool, N> för alla N template <it Size> class Stack<bool, Size> Partiell specialiserig... Partiell specialiserig... Kompilator möstermatchar för att hitta de mest passade implemetatioe class set; // Matchar alla typer som är pekare class set<t*> Äu mer komplicerat: class vector<pair<t, it> > Kaske käs ige... mis i ML? fu first x = il (head::tail) = head; Metaprogrammerig med templates Me, me... VARFÖR? Templates beskriver ett fuktioellt språk Ett program i språket körs uder kompilerige Ka aväda heltal och datatyper som argumet till fuktioer Går att implemetera if-the-else, listor, assertios, osv Metaprogrammerig är viktig för geerisk programmerig och för optimerig av program Ka t.ex. avädas för att ta reda på egeskaper hos parametrar template <typeame T1, typeame T2> class coversio static bool helper(t2); static double helper(...); static T1 maket1(); eum exists = (sizeof(helper(maket1())) == sizeof(bool)) 3

4 Exempel: Fiboacciserie If/The/Else-satser I ML: fu fib 0 = 0 fib 1 = 1 fib x = fib (x-1) + fib (x-2); Med templates: template <it X> struct fib eum Result = fib<x-1>::result + fib<x-2>::result template <> struct fib<0> eum Result = 0 template <> struct fib<1> eum Result = 1 template <bool Cod, typeame T, typeame U> struct Select; template <typeame T, typeame U> struct Select<true, T, U> typedef T Result; template <typeame T, typeame U> struct Select<false, T, U> typedef U Result; E lista med typer Beräkig av e listas lägd Defiieras rekursivt template <typeame T, typeame U> struct Typelist typedef T Head; typedef U Tail; Listas slut markeras med e tom datatyp, motsvarade MLs il struct NullType E typlista med olika heltalstyper: typedef Typelist<short, Typelist<it, Typelist<log, NullType> > > ItegerTypes; Görs rekursivt med NullType som basfall template <class TList> struct Legth; template <> struct Legth<NullType> eum Result = 0 template <class T, class U> struct Legth< Typelist<T, U> > eum Result = 1 + Legth<U>::Result Idexerig i e lista Metaprogram för optimerig På likade sätt template <class TList, it idex> struct TypeAt; template <typeame Head, typeame Tail> struct TypeAt<Typelist<Head, Tail>, 0> typedef Head Result; template <typeame Head, typeame Tail, it i> struct TypeAt<Typelist<Head, Tail>, i> typedef typeame TypeAt<Tail, i-1>::result Result; Exempel: Bubblesort för små arrayer void bubblesort(it* data, it N) for(it i = N-1; i>0; --i) for (it j = 0; j < i; ++j) if(data[j] < data[j+1]) swap(data[j], data[j+1]); 4

5 Mågfalde i mjukvarudesig Vi ka ite göra allt i ett grässitt! Problem: Det fis måga korrekta sätt att göra samma sak Igetig är helt rätt eller helt fel Olika problem kräver olika lösigar Hur ska ma skriva ett bibliotek så att alla ka aväda det? Mosterklasser är hopplösa att lära sig Explosiv programstorlek Lågsamma program Svårt att uderhålla Förlust av statisk typiformatio Om vi gör olika klasser för olika val? Policybaserad desig Försök göra flera olika klasser: SigleThreadedSmartPtr, MultiThreadedSmartPtr, RefCoutedSmartPtr, RefLikedSmartPtr,... Problem: Kombiatorisk explosio!... och mista förädrig är ett mastodotjobb The bottom lie: Desigvale måste kua göras av avädare, ite bara av skapare Moder C++, Adrei Alexadrescu E policy defierar e klass som styr utseede och beteede hos e aa klass Som template-parameter ka e policy vid kompilerig avgöra iehållet i e klass Exempel: Creator E policy för hur objekt ska skapas Implemeteras som e template-klass Tillhadahåller e create-fuktio template <class T> struct OpNewCreator static T* create() retur ew T; Fler val... template <class T> struct MallocCreator static T* create() void* buf = std::malloc(sizeof(t)); if(!buf) retur 0; retur ew(buf) T; template <class T> struct PrototypeCreator PrototypeCreator(T* pobj = 0) : pobj_(pobj) T* create() retur pobj_? pobj->cloe() : 0; T* get_prototype() retur pobj_; void set_prototype(t* pobj) pobj_ = pobj; private: T* pobj_; 5

6 Avädig E smart poiter desigval Template-klasser ka skickas som templateparametrar template <template <class T> class CreatioPolicy> class WidgetFactory : public CreatioPolicy<Widget>... typedef WidgetFactory<OpNewCreator> MyWidgetFactory; Hur ska klasse veta är objektet ska förstöras? - Referesräkig - Läkad lista - Djup kopierig -... Ska implicit typkoverterig tillåtas? Kotroll av pekarvärdet? Isåfall är? Hur rapportera fel? Allt detta är upp till avädare... Att täka på template < typeame T, template <class> class OwershipPolicy = RefereceCouted, class CoversioPolicy = DisallowCoversio, template <class> class CheckigPolicy = AssertCheck, > class SmartPtr; typedef SmartPtr<Widget, DeepCopy, AllowCoversio> WidgetPtr; Vi vill udvika virtuella fuktioer Destruktor bör vara protected När policies ärvs ka de berika grässittet Kopierig bör göras på per policy-basis Sträva efter ortogoala policies Ortogoalitet hos policies Expressio templates struct IsArray T& at(t* ptr, it idex) retur ptr[idex]; cost T& at(t* ptr, it idex) cost retur ptr[idex]; struct <typeame T> struct IsNotArray Uppfas oberoede ca 1995 av flera forskare; Todd Veldhuize, David Vadervoorde,... Ett sätt att skicka hela uttryck till fuktioer Jfr. LISPs och MLs lambdafuktioer Uttrycket ilieas i fuktioskroppe Aväds t.ex. för matris- och vektorberäkigar Ka ge 2-15 ggr sabbare program (!) 6

7 Exempel på avädig Hur fugerar det? it x=1; cout << (_1 * 2)(x); vector<it> v(10); vector<it*> vp(10); for_each(v.begi(), v.ed(), _1 += 2); trasform(v.begi(), v.ed(), vp.begi(), &_1); Överlagra operatorer så att de returerar ett uttrycksobjekt som represeterar uttrycket Datatype hos objektet ka beskriva ett parseträd för uttrycket sort(vp.begi(), vp.ed(), *_1 > *_2); for_each(vp.begi(), vp.ed(), cout << *_1 << edl); Geerativ programmerig Exempel: MTL vs BLAS Tillsammas blir dessa tekiker som små kodgeererare Mägde fuktioalitet växer expoetiellt med atalet geeriska klasser Kraftfull, specialiserad och högpresterade kod ka automatiskt växa ur ågra få, elemetära kompoeter BLAS: Basic Liear Algebra Subrouties ord, över 10,000 rutier MTL: Matrix Template Library - Gjordes som exjobb av Jeremy Siek ord - Sabbare - Lättare att aväda Istället för O(N*M) får vi O(N+M) MTL vs BLAS... Sammafattig Geerisk programmerig kompletterar OOP STL är ett geeriskt bibliotek som fis i stadarde Metaprogrammerig är ett kraftfullt och ödvädigt verktyg för geeriska bibliotek Policybaserad desig låter avädare forma biblioteke efter behov Med expressio templates, metaprogrammerig o.s.v. ka abstraktio OCH prestada uppås 7

Design mönster. n n n n n n. Command Active object Template method Strategy Facade Mediator

Design mönster. n n n n n n. Command Active object Template method Strategy Facade Mediator Desig möster Desig möster Commad Active object Template method Strategy Facade Mediator Commad Ett av de eklaste desig möstre Me också mycket avädbart Ett grässitt med e metod Comm ad do()

Läs mer

Kontrakt baserad design. Design by contract

Kontrakt baserad design. Design by contract Kotrakt baserad desig Desig by cotract Motiverig Objekt ka valige ite avädas på ett godtyckligt sätt Metoder ska aropas med vissa parametervärde I rätt ordig Svårt att veta hur ett objekt ka avädas uta

Läs mer

Systemdesign fortsättningskurs

Systemdesign fortsättningskurs Systemdesig fortsättigskurs Orgaisatio Föreläsare Potus Boström Assistet? Tider mådagar och tisdagar kl. 8-10 Börjar 3.9 och slutar 16.10 Rum B3040 Orgaisatio Iga föreläsigar 24.9, 25.9, 1.10 och 2.10

Läs mer

Analys av algoritmer. Beräkningsbar/hanterbar. Stora Ordo. O(definition) Datastrukturer och algoritmer. Varför analysera algoritmer?

Analys av algoritmer. Beräkningsbar/hanterbar. Stora Ordo. O(definition) Datastrukturer och algoritmer. Varför analysera algoritmer? Datastrukturer och algoritmer Föreläsig 2 Aalys av Algoritmer Aalys av algoritmer Vad ka aalyseras? - Exekverigstid - Miesåtgåg - Implemetatioskomplexitet - Förstålighet - Korrekthet - - 29 30 Varför aalysera

Läs mer

Föreläsningar 7,8 sept 24, sept 26 v 39). delvis DD Chapter 6.

Föreläsningar 7,8 sept 24, sept 26 v 39). delvis DD Chapter 6. Föreläsigar 7,8 sept 4, sept 6 v 39). delvis DD Chapter 6. Metoder som returerar värde. När vi skriver uttryck ka vi aväda ibyggda operatorer, t ex i uttrycket efter tilldeligssymbole i satse : k = 3*i

Läs mer

Återanvändning. Två mekanismer. Nedärvning av egenskaper (inheritance) Objekt komposition

Återanvändning. Två mekanismer. Nedärvning av egenskaper (inheritance) Objekt komposition Iheritace Återavädig Två mekaismer Nedärvig av egeskaper (iheritace) Objekt kompositio A A +a +b B B Iheritace Återavädig geom att skapa subklasser kallas ofta white box reuse Ekelt att aväda Relatioe

Läs mer

Databaser - Design och programmering. Programutveckling. Programdesign, databasdesign. Kravspecifikation. ER-modellen. Begrepps-modellering

Databaser - Design och programmering. Programutveckling. Programdesign, databasdesign. Kravspecifikation. ER-modellen. Begrepps-modellering Databaser desig och programmerig Desig processe ER-modellerig Programutvecklig Förstudie, behovsaalys Programdesig, databasdesig Implemetatio Programdesig, databasdesig Databasdesig Koceptuell desig Koceptuell

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Iehåll Föreläsig 6 Asymtotisk aalys usammafattig experimetell aalys uasymtotisk aalys Lite matte Aalysera pseudokode O-otatio ostrikt o Okulärbesiktig 2 Mäta tidsåtgåge uhur ska vi mäta tidsåtgåge? Experimetell

Läs mer

Mönster. n n n n n. Visitor Decorator Extension Object State Taskmaster

Mönster. n n n n n. Visitor Decorator Extension Object State Taskmaster Desig möster Möster Visitor Decorator Extesio Object State Taskmaster Visitor Aväds för komplicerade datastrukturer där det fis e växade mägd operatioer på dea Grafik exempel ige: Shape draw() ps() ik()

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet

Tommy Färnqvist, IDA, Linköpings universitet Föreläsig 2 Algoritmaalys TDDC70/91: DALG Utskriftsversio av föreläsig i Datastrukturer och algoritmer 5 september 2013 Tommy Färqvist, IDA, Liköpigs uiversitet 2.1 Iehåll Iehåll 1 Aalys av värsta fallet

Läs mer

Egna funktioner. Vad är sin? sin är namnet på en av många inbyggda funktioner i Ada (och den återfinns i paketet Ada.Numerics.Elementary_Functions)

Egna funktioner. Vad är sin? sin är namnet på en av många inbyggda funktioner i Ada (och den återfinns i paketet Ada.Numerics.Elementary_Functions) - 1 - Vad är si? si är amet på e av måga ibyggda fuktioer i Ada (och de återfis i paketet Ada.Numerics.Elemetary_Fuctios) si är deklarerad att ta emot e parameter (eller ett argumet) av typ Float (mätt

Läs mer

Mönster. n n n n n n n n n n. Singleton Monostate Null object Factory Composite Observer Abstract server Adapter Bridge Proxy

Mönster. n n n n n n n n n n. Singleton Monostate Null object Factory Composite Observer Abstract server Adapter Bridge Proxy Desig möster Möster Sigleto Moostate Null object Factory Composite Observer Abstract server Adapter Bridge Proxy Sigleto Preseterades reda Exempel: objekt med kofiguratios data Avädig: Cofig.getIstace().

Läs mer

Svenska Segelflygförbundet Sida 1 av 5. Datum Felmeddelande Källa Företag Användare Grupp. Form, 02 25. Form, 02 25. Form, 02 25.

Svenska Segelflygförbundet Sida 1 av 5. Datum Felmeddelande Källa Företag Användare Grupp. Form, 02 25. Form, 02 25. Form, 02 25. Sveska Sida 1 av 5 Datum Felmeddelade Källa Företag Avädare Grupp 2015-02-26 Ka ej iitiera forme BL_Lo.KuUpp SSF 15:47:01 Sveska Carli 2015-02-26 Coversio from strig "" to type BL_Lo.KuUpp SSF 15:47:00

Läs mer

Webprogrammering och databaser. Begrepps-modellering. Exempel: universitetsstudier Kravspec. ER-modellen. Exempel: kravspec forts:

Webprogrammering och databaser. Begrepps-modellering. Exempel: universitetsstudier Kravspec. ER-modellen. Exempel: kravspec forts: Webprogrammerig och databaser Koceptuell datamodellerig med Etitets-Relatiosmodelle Begrepps-modellerig Mål: skapa e högivå-specifikatio iformatiosiehållet i database Koceptuell modell är oberoede DBMS

Läs mer

Databaser - Design och programmering. Databasdesign. Kravspecifikation. Begrepps-modellering. Design processen. ER-modellering

Databaser - Design och programmering. Databasdesign. Kravspecifikation. Begrepps-modellering. Design processen. ER-modellering Databaser desig och programmerig Desig processe Databasdesig Förstudie, behovsaalys ER-modellerig Kravspecifikatio För att formulera e kravspecifikatio: Idetifiera avädare Studera existerade system Vad

Läs mer

101. och sista termen 1

101. och sista termen 1 Lektio, Evariabelaalys de ovember 999 5.. Uttryck summa j uta summasymbole. j + Termera är idexerade frå j = till j = och varje term är blir j j+. Summa Skriver vi upp summa uta summasymbole blir de +

Läs mer

Borel-Cantellis sats och stora talens lag

Borel-Cantellis sats och stora talens lag Borel-Catellis sats och stora tales lag Guar Eglud Matematisk statistik KTH Vt 2005 Iledig Borel-Catellis sats är e itressat och avädbar sats framför allt för att bevisa stora tales lag i stark form. Vi

Läs mer

Programmering i C++ EDA623 Mallar. EDA623 (Föreläsning 12) HT / 29

Programmering i C++ EDA623 Mallar. EDA623 (Föreläsning 12) HT / 29 Programmering i C++ EDA623 Mallar EDA623 (Föreläsning 12) HT 2013 1 / 29 Mallar Innehåll Klassmallar Funktionsmallar EDA623 (Föreläsning 12) HT 2013 2 / 29 Containerklasserna vector, deque och list utgör

Läs mer

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander F12 - Collections ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Collections (samlingar) En collection är ett objekt som fungerar som en samling av andra objekt En collection erbjuder

Läs mer

Induktion LCB Rekursion och induktion; enkla fall. Ersätter Grimaldi 4.1

Induktion LCB Rekursion och induktion; enkla fall. Ersätter Grimaldi 4.1 duktio LCB 2000 Ersätter Grimaldi 4. Rekursio och iduktio; ekla fall E talföljd a a 0 a a 2 ka aturligtvis defiieras geom att ma ager e explicit formel för uträkig av dess elemet, som till exempel () a

Läs mer

Förfrågan till Klockarens redaktörer

Förfrågan till Klockarens redaktörer Förfråga till Klockares redaktörer 1. Hur öjd är du med Klockare? Ge Klockare ett geerellt vitsord. Atal svarade: 29 1 2 3 4 5 6 7 8 9 10 Totalt Medelvär Usel 1 0 2 1 2 5 5 9 3 1 Utmärkt 29 6,72 3,45%

Läs mer

Digitalteknik F6. Några sammansatta digitala komponenter och lite designmetodik. Digitalteknik F6 bild 1

Digitalteknik F6. Några sammansatta digitala komponenter och lite designmetodik. Digitalteknik F6 bild 1 Digitaltekik F6 Några sammasatta digitala kompoeter och lite desigmetodik Digitaltekik F6 bild Sammasatta kompoeter Problem: E större kostruktio är praktiskt omöjlig att mauellt realisera med bara gridar.

Läs mer

Programsystemkonstruktion med C++: Övning 2. Karl Palmskog september 2010

Programsystemkonstruktion med C++: Övning 2. Karl Palmskog september 2010 Programsystemkonstruktion med C++: Övning 2 Karl Palmskog palmskog@kth.se september 2010 Specalfunktioner i klasser Konstruktorer i konstruktorerna för en klass initieras klassens medlemmar initialvärden

Läs mer

Innehåll. Pekaren this Självreferens. Klasser Resurshantering, representation. Överlagring av operatorer. Överlagring av operatorer

Innehåll. Pekaren this Självreferens. Klasser Resurshantering, representation. Överlagring av operatorer. Överlagring av operatorer Innehåll EDAF30 Programmering i C++ 8. Klasser; resurshantering och polymorfism Sven Gestegård Robertz Datavetenskap, LTH 2016 1 Klasser 2 Operatorer 3 Klasser, resurshantering Rule of three Move semantics

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Datum: 2009-04-15 Tid: 8-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna ungefär

Läs mer

Tentamen *:85/2I4123 C

Tentamen *:85/2I4123 C DSV Sid 1(6) *:85/2I4123 Jozef Swiatycki 2006-01-21 Tentamen *:85/2I4123 C++ 2006-01-21 Denna tentamen består av fyra uppgifter som tillsammans kan ge maximalt 30 poäng. För godkänt resultat krävs minst

Läs mer

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Abstrakt stack Abstrakt kö Länkade listor Abstrakta datatyper Det är ofta praktiskt att beskriva vilka operationer man vill kunna göra på sina

Läs mer

Duo HOME Duo OFFICE. Programmerings manual SE 65.044.20-1

Duo HOME Duo OFFICE. Programmerings manual SE 65.044.20-1 Duo HOME Duo OFFICE Programmerigs maual SE 65.044.20-1 INNEHÅLL Tekiska data Sida 2 Motage Sida 3-5 Programmerig Sida 6-11 Admiistrerig Sida 12-13 Hadhavade Sida 14-16 TEKNISKA DATA TEKNISK SPECIFIKATION

Läs mer

Innehåll. Pekare Exempel

Innehåll. Pekare Exempel Innehåll EDAF30 Programmering i C++ Avslutning. Sammanfattning och frågor 1 Syntax, förklaringar Sven Gestegård Robertz Datavetenskap, LTH 2016 2 Stack-allokering Heap-allokering: new och delete 3 Avslutning.

Läs mer

Rekursion. Att tänka rekursivt Att programmera rekursivt i Java Exempel. Programmeringsmetodik -Java 254

Rekursion. Att tänka rekursivt Att programmera rekursivt i Java Exempel. Programmeringsmetodik -Java 254 Rekursion Rekursion är en grundläggande programmeringsteknik M h a rekursion kan vissa problem lösas på ett mycket elegant sätt Avsnitt 11 i kursboken: Att tänka rekursivt Att programmera rekursivt i Java

Läs mer

Innehåll. Pekare Exempel

Innehåll. Pekare Exempel Innehåll EDAF30 Programmering i C++ Avslutning. Sammanfattning och frågor 1 Syntax, förklaringar Sven Gestegård Robertz Datavetenskap, LTH 2017 2 Stack-allokering Heap-allokering: new och delete 3 Avslutning.

Läs mer

Övningar Dag 2 En första klass

Övningar Dag 2 En första klass Kurs i C++ Sid 1 (5) Övningar Dag 2 En första klass Denna övning går ut på att steg för steg bygga upp en klass och skapa objekt. Vi kommer att utgå från en sammansatt datatyp i en struct och parallellt

Läs mer

REGULJÄRA SPRÅK (8p + 6p) 1. DFA och reguljära uttryck (6 p) Problem. För följande NFA över alfabetet {0,1}:

REGULJÄRA SPRÅK (8p + 6p) 1. DFA och reguljära uttryck (6 p) Problem. För följande NFA över alfabetet {0,1}: CD58 FOMEA SPÅK, AUTOMATE, OCH BEÄKNINGSTEOI, 5 p JUNI 25 ÖSNINGA EGUJÄA SPÅK (8p + 6p). DFA och reguljära uttryck (6 p) Problem. För följade NFA över alfabetet {,}:, a) kovertera ovaståede till e miimal

Läs mer

TDIU20 - Objektorienterad programmering i c++ - föreläsning 4

TDIU20 - Objektorienterad programmering i c++ - föreläsning 4 TDIU20 - Objektorienterad programmering i c++ - föreläsning 4 Pontus Haglund Department of Computer and information science 1 Vad gjorde vi förra gången? Felhantering Operatorer Typkonvertering 2 Grundläggande

Läs mer

Innehåll. Parametriserade typer. Klassmallar. Klassmallen Vektor Konstructor med std::initializer_list. Klassmallen Vektor Medlemsfunktioner

Innehåll. Parametriserade typer. Klassmallar. Klassmallen Vektor Konstructor med std::initializer_list. Klassmallen Vektor Medlemsfunktioner Innehåll EDAF30 Programmering i C++ 10. Generisk programmering. Mallar och funktionsobjekt Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Funktionsobjekt Mallar med variabelt antal argument 10. Generisk

Läs mer

Det finns många flaggor till g++,

Det finns många flaggor till g++, C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se Inge Frick, inge@nada.kth.se Alexander Baltsatsis hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m.

Läs mer

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT 2013 1 / 26

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT 2013 1 / 26 Programmering i C++ EDA623 Mer om klasser EDA623 (Föreläsning 6) HT 2013 1 / 26 Mer om klasser Innehåll Konstanta objekt Statiska medlemmar Pekaren this Vänner (friends) Överlagring av operatorer EDA623

Läs mer

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till

Läs mer

Imperativ programmering. Föreläsning 4

Imperativ programmering. Föreläsning 4 Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Pekare och Listor Eric Elfving Institutionen för datavetenskap 31 oktober 2014 Översikt 2/41 Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor Arbeta

Läs mer

Vi har... Diskuterat olika objektorienterade mekanismer. Ha också tagit upp några krav på hur dom här mekanismerna ska användas

Vi har... Diskuterat olika objektorienterade mekanismer. Ha också tagit upp några krav på hur dom här mekanismerna ska användas Desig priciper Vi har... Diskuterat olika objektorieterade mekaismer Nedärvig Delegerig Typ-parametriserig Kotrakt baserad desig Ha också tagit upp ågra krav på hur dom här mekaismera ska avädas Hur ska

Läs mer

MS-A0409 Grundkurs i diskret matematik Sammanfattning, del I

MS-A0409 Grundkurs i diskret matematik Sammanfattning, del I MS-A0409 Grudkurs i diskret matematik Sammafattig, del I G. Gripeberg Aalto-uiversitetet 2 oktober 2013 G. Gripeberg (Aalto-uiversitetet) MS-A0409 Grudkurs i diskret matematiksammafattig, del 2Ioktober

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

Algoritmbiblioteket (STL) Designstrategi Generiska algoritmer som fungerar på godtyckliga samlingsdatatyper, vilka har iteratorer.

Algoritmbiblioteket (STL) Designstrategi Generiska algoritmer som fungerar på godtyckliga samlingsdatatyper, vilka har iteratorer. Algoritmbiblioteket (STL) (f.d.) Standard Template Library Samlingstyper (containers) Algoritmer Funktionsobjekt Adaptrar Designstrategi Generiska algoritmer som fungerar på godtyckliga samlingsdatatyper,

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

Läs mer

2D1387 Programsystemkonstruktion med C++ Laboration 1: Grundläggande C++ 31 augusti 2005

2D1387 Programsystemkonstruktion med C++ Laboration 1: Grundläggande C++ 31 augusti 2005 2D1387 Programsystemkonstruktion med C++ Laboration 1: Grundläggande C++ 31 augusti 2005 I den här labben kommer du att lära dig att använda grundläggande C++ såsom klasser, loopar, variabler och minneshantering.

Läs mer

Subsystem. Klasser är ett bra sätt att organisera små system. Klasser är för små enheter för att organisera stora system

Subsystem. Klasser är ett bra sätt att organisera små system. Klasser är för små enheter för att organisera stora system Desig av subsystem Subsystem Klasser är ett bra sätt att orgaisera små system Klasser är för små eheter för att orgaisera stora system Större eheter behövs för orgaiserige Subsystem Sex priciper diskuteras

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet

Tommy Färnqvist, IDA, Linköpings universitet Föreläsning 9 Pekare, länkade noder, länkade listor TDDD86: DALP Utskriftsversion av föreläsning i Datastrukturer, algoritmer och programmeringsparadigm 25 september 2015 Tommy Färnqvist, IDA, Linköpings

Läs mer

Ett enkelt program i C++, hello.cpp. #include <iostream> int main() { std::cout << "Hello World\n"; return 0; } C++, Övning 1

Ett enkelt program i C++, hello.cpp. #include <iostream> int main() { std::cout << Hello World\n; return 0; } C++, Övning 1 Ett enkelt program i C++, hello.cpp C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m. ett exempel int

Läs mer

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer. Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language

Läs mer

Föreläsning 10: Kombinatorik

Föreläsning 10: Kombinatorik DD2458, Problemlösig och programmerig uder press Föreläsig 10: Kombiatorik Datum: 2009-11-18 Skribeter: Cecilia Roes, A-Soe Lidblom, Ollata Cuba Gylleste Föreläsare: Fredrik Niemelä 1 Delmägder E delmägd

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer Klasser - speciella medlemsfunktioner Eric Elfving Institutionen för datavetenskap En klass ansvarar ofta för en resurs. Ibland är resursen så enkel som en datamedlem

Läs mer

Databaser - Design och programmering. Databasdesign. Funktioner. Relationsmodellen. Relationsmodellen. Funktion = avbildning (mappning) Y=X 2

Databaser - Design och programmering. Databasdesign. Funktioner. Relationsmodellen. Relationsmodellen. Funktion = avbildning (mappning) Y=X 2 Databaser Desig och programmerig Relatiosmodelle Databasdesig Förstudie, behovsaalys defiitioer ER-modell -> relatiosmodell ycklar Relatiosmodelle Itroducerades av Edward Codd 1970 Mycket valig Stödjer

Läs mer

Linjär Algebra (lp 1, 2016) Lösningar till skrivuppgiften Julia Brandes

Linjär Algebra (lp 1, 2016) Lösningar till skrivuppgiften Julia Brandes Lijär Algebra (lp 1, 2016) Lösigar till skrivuppgifte Julia Brades Uppgift 1. Betecka mägde av alla matriser med M(). Vi har e elemetvist defiierad additio av två matriser A, B M(). De är defiierad geom

Läs mer

grundläggande C++, funktioner m.m.

grundläggande C++, funktioner m.m. C++, Övning 1 Jonas Sjöbergh, jsh@nada.kth.se hur man kompilerar och kör make preprocessor minnesallokering, pekare grundläggande C++, funktioner m.m. ett exempel Ett enkelt program i C++, hello.cpp #include

Läs mer

Datorövning 2 Fördelningar inom säkerhetsanalys

Datorövning 2 Fördelningar inom säkerhetsanalys Luds tekiska högskola Matematikcetrum Matematisk statistik STATISTISKA METODER FÖR SÄKERHETSANALYS FMS065, HT-15 Datorövig 2 Fördeligar iom säkerhetsaalys I dea datorövig ska vi studera ågra grudläggade

Läs mer

Innehåll Grafräknaren och diskret matematik...1 Vad handlar diskret matematik om?...1 Permutationer och kombinationer...3 Något om heltalsräkning...

Innehåll Grafräknaren och diskret matematik...1 Vad handlar diskret matematik om?...1 Permutationer och kombinationer...3 Något om heltalsräkning... Iehåll Grafräkare och diskret matematik...1 Vad hadlar diskret matematik om?...1 Permutatioer och kombiatioer...3 Något om heltalsräkig...4 Modulusoperator...4 Faktoriserig i primfaktorer...5 Talföljder...7

Läs mer

Vad är det okända som efterfrågas? Vilka data är givna? Vilka är villkoren?

Vad är det okända som efterfrågas? Vilka data är givna? Vilka är villkoren? Problemlösig. G. Polya ger i si utmärkta lilla bok How to solve it (Priceto Uiversity press, 946) ett schema att följa vid problemlösig. I de flod av böcker om problemlösig som har följt på Polyas bok

Läs mer

Z-Testet. Idè. Repetition normalfördelning. rdelning. Testvariabel z

Z-Testet. Idè. Repetition normalfördelning. rdelning. Testvariabel z Repetitio ormalfördelig rdelig Z-Testet X i. Medelvärdets fördelig:.stadardiserad ormalfördelig: N (, ) X N, X X N (, ) N (,) X N, X N(,) 3. Kvatiler: uwe.meel@math.uu.se Vad gör g r Z-testetZ? H : e ormalfördelad

Läs mer

Statistisk analys. Vilka slutsatser kan dras om populationen med resultatet i stickprovet som grund? Hur säkra uttalande kan göras om resultatet?

Statistisk analys. Vilka slutsatser kan dras om populationen med resultatet i stickprovet som grund? Hur säkra uttalande kan göras om resultatet? Statistisk aalys Vilka slutsatser ka dras om populatioe med resultatet i stickprovet som grud? Hur säkra uttalade ka göras om resultatet? Mats Guarsso Tillämpad matematik III/Statistik - Sida 83 Exempel

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Datum: 2008-08-14 Tid: 08-12 Plats: PC6-PC7 i E-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna varje

Läs mer

DD2387 Programsystemkonstruktion med C++ Tentamen 1 Torsdag 7 januari 2016, 14:00-18:00

DD2387 Programsystemkonstruktion med C++ Tentamen 1 Torsdag 7 januari 2016, 14:00-18:00 DD2387 Programsystemkonstruktion med C++ Tentamen 1 Torsdag 7 januari 2016, 14:00-18:00 Introduktion Skriv dina svar på separata papper, dessa scannas in efter inlämning. Du kan skriva på både fram- och

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public

Läs mer

Föreläsning REPETITION & EXTENTA

Föreläsning REPETITION & EXTENTA Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder

Läs mer

c n x n, där c 0, c 1, c 2,... är givna (reella eller n=0 c n x n n=0 absolutkonvergent om x < R divergent om x > R n n lim = 1 R.

c n x n, där c 0, c 1, c 2,... är givna (reella eller n=0 c n x n n=0 absolutkonvergent om x < R divergent om x > R n n lim = 1 R. P Potesserier Med e potesserie mear vi e serie av type c x, där c, c, c,... är giva (reella eller komplexa) kostater, s.k. koefficieter, och där x är e (reell eller komplex) variabel. För varje eskilt

Läs mer

Innehåll. 1 Funktionsmalllar. 2 Klassmallar. struct Name { string s; //... }; const Name & minimum ( const Name & a, const Name & b) { if(a.s < b.

Innehåll. 1 Funktionsmalllar. 2 Klassmallar. struct Name { string s; //... }; const Name & minimum ( const Name & a, const Name & b) { if(a.s < b. Innehåll EDAF30 Programmering i C++ Generisk programmering med templates (mallar) Sven Gestegård Robertz Datavetenskap, LTH 2015 1 Funktionsmalllar 2 Generisk programmering med templates (mallar) 2/1 Generisk

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

vara ett polynom där a 0, då kallas n för polynomets grad och ibland betecknas n grad( P(

vara ett polynom där a 0, då kallas n för polynomets grad och ibland betecknas n grad( P( Armi Halilovic: EXTRA ÖVNINGAR Polyom POLYNOM OCH ALGEBRAISKA EKVATIONER Defiitio Polyom är uttrycket av type a a a 0 ( där är ett icke-egativt heltal) Defiitio Låt P( a a a0 vara ett polyom där a 0, då

Läs mer

Introduktion till statistik för statsvetare

Introduktion till statistik för statsvetare "Det fis iget så praktiskt som e bra teori" November 2011 Bakgrud Stadardiserig E saolikhetsekvatio Kosekves av stora tales lag Stora tales lag ger att är slumpvariablera X i är oberoede, med e och samma

Läs mer

TDIU01 Programmering i C++

TDIU01 Programmering i C++ TDIU01 Programmering i C++ Föreläsning 6 - Klasser Eric Elfving, eric.elfving@liu.se Institutionen för datavetenskap (IDA) Avdelningen för Programvara och system (SaS) Klasser När vi skapade vår lista

Läs mer

. Mängden av alla möjliga tillstånd E k kallas tillståndsrummet.

. Mängden av alla möjliga tillstånd E k kallas tillståndsrummet. Stokastiska rocesser Defiitio E stokastisk rocess är e mägd familj av stokastiska variabler Xt arameter t är oftast me ite alltid e tidsvariabel rocesse kallas diskret om Xt är e diskret s v för varje

Läs mer

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0.. Ett problem Kontrollstrukturer och er Hur sparas data T ex när man vill spara resultaten av en tävling Exempel med 3 deltagare: public class Competition private int result1; private int result2; private

Läs mer

Så här kommer byggherren och entreprenören överens om energianvändningen

Så här kommer byggherren och entreprenören överens om energianvändningen Så här kommer byggherre och etrepreöre överes om eergiavädige Så här kommer byggherre och etrepreöre överes om eergiavädige Sveby står för Stadardisera och verifiera eergiprestada i byggader och är ett

Läs mer

TMS136: Dataanalys och statistik Tentamen 2013-10-26 med lösningar

TMS136: Dataanalys och statistik Tentamen 2013-10-26 med lösningar TMS36: Dataaalys och statistik Tetame 03-0-6 med lösigar Examiator och jour: Mattias Sude, tel. 0730 79 9 79 Hjälpmedel: Chalmersgodkäd räkare och formelsamlig formelsamlig delas ut med teta). Betygsgräser:

Läs mer

Minsta kvadrat-metoden, MK. Maximum likelihood-metoden, ML. Medelfel. E(X i ) = µ i (θ) MK-skattningen av θ fås genom att minimera

Minsta kvadrat-metoden, MK. Maximum likelihood-metoden, ML. Medelfel. E(X i ) = µ i (θ) MK-skattningen av θ fås genom att minimera Matematisk statistik slumpes matematik Saolikhetsteori hur beskriver ma slumpe? Statistikteori vilka slutsatser ka ma dra av ett datamaterial? Statistikteori översikt Puktskattig Hur gör ma e bra gissig

Läs mer

Armin Halilovic: EXTRA ÖVNINGAR

Armin Halilovic: EXTRA ÖVNINGAR Stokastiska rocesser Defiitio E stokastisk rocess är e mägd (familj) av stokastiska variabler X(t) arameter t är oftast (me ite alltid) e tidsvariabel rocesse kallas diskret om X(t) är e diskret s v för

Läs mer

SANNOLIKHETER. Exempel. ( Tärningskast) Vi har sex möjliga utfall 1, 2, 3, 4, 5 och 6. Därför är utfallsrummet Ω = {1, 2, 3, 4, 5,6}.

SANNOLIKHETER. Exempel. ( Tärningskast) Vi har sex möjliga utfall 1, 2, 3, 4, 5 och 6. Därför är utfallsrummet Ω = {1, 2, 3, 4, 5,6}. rmi Halilovic: EXTR ÖVIGR SOLIKHETER GRUDLÄGGDE BEGRE OH BETEKIGR Utfall Resultat av ett slumpmässigt försök. Utfallsrummet ägde av alla utfall (beteckas oftast med Ω ). Hädelse E delmägd av utfallsrummet.

Läs mer

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer Exempel for (int antal=; antal < 75; antal++) System.out.println (antal); Arrayer for (int num=5; num

Läs mer

Höftledsdysplasi hos dansk-svensk gårdshund - Exempel på tavlan

Höftledsdysplasi hos dansk-svensk gårdshund - Exempel på tavlan Höftledsdysplasi hos dask-svesk gårdshud - Exempel på tavla Sjö A Sjö B Förekomst av parasitdrabbad örig i olika sjöar Exempel på tavla Sjö C Jämföra medelvärde hos kopplade stickprov Tio elitlöpare spriger

Läs mer

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer Objektorientering - Arv och polymorfi Eric Elfving Institutionen för datavetenskap 1 / 25 Med hjälp av arv kan vi bryta ut saker som är gemensamt hos flera klasser.

Läs mer

Föreläsning 3. Stack

Föreläsning 3. Stack Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista ADT Stack Grundprinciper: En stack

Läs mer

Innehåll. Användardefinierade typer. Användardefinierade typer Kategorier. Konstruktorer. Konstruktorer Två sätt att skriva initiering av medlemmar

Innehåll. Användardefinierade typer. Användardefinierade typer Kategorier. Konstruktorer. Konstruktorer Två sätt att skriva initiering av medlemmar Innehåll EDAF30 Programmering i C++ 3. Mer om klasser. Funktionsanrop Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Klasser pekaren this const för objekt och medlemmar Kopiering friend inline 2 Funktionsanrop

Läs mer

b) Bestäm det genomsnittliga antalet testade enheter, E (X), samt även D (X). (5 p)

b) Bestäm det genomsnittliga antalet testade enheter, E (X), samt även D (X). (5 p) Avd Matematisk statistik TENTAMEN I SF922, SF923 och SF924 SANNOLIKHETSTEORI OCH STATISTIK, TISDAGEN DEN 29:E MAJ 208 KL 0800 300 Examiator för SF922/SF923: Tatjaa Pavleko, 08-790 84 66 Examiator för SF924:

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket 1 Länkade listor Likadant som i Ada-kursen. 2 Stack MyStack MyStack

Läs mer

Datastrukturer. föreläsning 3. Stacks 1

Datastrukturer. föreläsning 3. Stacks 1 Datastrukturer föreläsning 3 Stacks 1 Abstrakta datatyper Stackar - stacks Köer - queues Dubbeländade köer - deques Vektorer vectors (array lists) All är listor men ger tillgång till olika operationer

Läs mer

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X Algoritmer och Datastrukturer Kary FRÄMLING/Göran PULKKIS (v23) Kap. 7, Sid 1 BINÄRA TRÄD Träd används för att representera olika slags hierarkier som ordnats på något sätt. Den mest använda trädstrukturen

Läs mer

Parameteröverföring. Exempel. Exempel. Metodkropp

Parameteröverföring. Exempel. Exempel. Metodkropp Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I

Läs mer

Planering Programmering grundkurs HI1024 HT TIDAA

Planering Programmering grundkurs HI1024 HT TIDAA Planering Programmering grundkurs HI1024 HT 2016 - TIDAA Föreläsning V35 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer

Läs mer

Inledande matematisk analys (TATA79) Höstterminen 2016 Föreläsnings- och lekionsplan

Inledande matematisk analys (TATA79) Höstterminen 2016 Föreläsnings- och lekionsplan Iledade matematisk aalys TATA79) Hösttermie 016 Föreläsigs- och lekiospla Föreläsig 1 Logik, axiom och argumet iom matematik, talbeteckigssystem för hetal, ratioella tal, heltalspoteser. Lektio 1 och Hadledigstillfälle

Läs mer

DEL I. Matematiska Institutionen KTH

DEL I. Matematiska Institutionen KTH 1 Matematiska Istitutioe KTH Lösig till tetamesskrivig på kurse Diskret Matematik, momet A, för D2 och F, SF1631 och SF1630, de 5 jui 2009 kl 08.00-13.00. DEL I 1. (3p) Bestäm e lösig till de diofatiska

Läs mer

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå

Läs mer

Programsystem konstruktion med C++ (2D1387) Innehåll. övning 2 klasser och arv

Programsystem konstruktion med C++ (2D1387) Innehåll. övning 2 klasser och arv Programsystem konstruktion med C++ (2D1387) övning 2 klasser och arv Ronnie Johansson rjo@nadakthse grupp 4 2003 09 25 Innehåll Klasskonstruktorer och initieringslistor Klassdestruktorer Åtkomstkontroll

Läs mer

Första exemplet. Kompilator & länkare. Projekt. Övning 1, Ögrupp 4, Programsystemkonstruktion med C++, Ronnie Johansson,

Första exemplet. Kompilator & länkare. Projekt. Övning 1, Ögrupp 4, Programsystemkonstruktion med C++, Ronnie Johansson, Övning 1, Ögrupp 4, Programsystemkonstruktion med C++, 2003 09 11 Ronnie Johansson, rjo@nada.kth.se Vi kommer att titta på: Kompilering och länkning make och Makefile Preprocessordirektiv main() funktionen

Läs mer

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm. Algoritmanalys Analys av algoritmer används för att uppskatta effektivitet. Om vi t. ex. har n stycken tal lagrat i en array och vi vill linjärsöka i denna. Det betyder att vi måste leta i arrayen tills

Läs mer

Intro till standardbiblioteket. Eric Elfving

Intro till standardbiblioteket. Eric Elfving Intro till standardbiblioteket Eric Elfving 1 Behållare (containers) 2 Iteratorer 3 Algoritmer 15 mars 2018 2 / 13 Bibliotekets behållare delas in i tre grupper: Sekevensbehålare (Sequence containers)

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer