Översikt. Modern C++ Generisk programmering vs OOP. En titt i backspegeln... Generisk programmering. Objektorienterad programmering.
|
|
- Roger Jonsson
- för 7 år sedan
- Visningar:
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
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 merKontrakt 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 merSystemdesign 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 merAnalys 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 merFö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
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 merDatabaser - 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 merDatastrukturer 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 merMö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 merTommy 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 merEgna 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 merMö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 merSvenska 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 merWebprogrammering 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 merDatabaser - 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 mer101. 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 merBorel-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 merProgrammering 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 merF12 - 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 merInduktion 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 merFö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 merDigitalteknik 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 merProgramsystemkonstruktion 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 merInnehå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 merTentamen 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 merTentamen *: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 merFö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 merDuo 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 merInnehå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 merRekursion. 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 merInnehå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
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 merREGULJÄ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 merTDIU20 - 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 merInnehå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 merDet 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 merProgrammering 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 merObjektorienterade 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 merImperativ 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 merTDIU01 - 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 merVi 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 merMS-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 merProgrammering 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 merAlgoritmbiblioteket (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 mer732G 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 mer2D1387 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 merSubsystem. 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 merTommy 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 merEtt 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 merUML. 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 merFö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 merTDDC76 - 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 merDatabaser - 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 merLinjä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 mergrundlä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 merDatorö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 merInnehå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 merVad ä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 merZ-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 merStatistisk 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 merTentamen 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 merDD2387 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 merOOP 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 merFö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 merc 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 merInnehå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 merTDIU01 - 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 mervara 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 merIntroduktion 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 merTDIU01 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.
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 merEtt 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 merSå 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 merTMS136: 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 merMinsta 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 merArmin 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 merSANNOLIKHETER. 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 merExempel. 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 merHö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 merClasses 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 merTDDC76 - 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 merFö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 merInnehå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 merb) 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 merTDDC30 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 merDatastrukturer. 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 merBINÄ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 merParameterö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 merPlanering 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 merKompilering 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 merFö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 merInledande 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 merDEL 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 merLite 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 merFö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 merProgramsystem 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 merFö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 merAlgoritmanalys. 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 merIntro 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 merKlassdeklaration. 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