Advanced C ++ Programming Datastructuren 2018
|
|
|
- Maurits Aerts
- 6 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Advanced C ++ Programming Datastructuren 2018 Jonathan K. Vis [email protected] Jonathan K. Vis Advanced C++ Programming 1 / 26
2 Vorige week Vragen? Tentamen, programmeeropgaven en eindcijfer; Partiële resultaten van voorgaande jaren; Programmeeropgave 1: Deadline: 17 oktober (strict!); Voorbeeld. Jonathan K. Vis Advanced C++ Programming 2 / 26
3 Waarom? In grote lijnen volgen we alle best practices uit: 1. Programmeermethoden; 2. Algoritmiek; 3. Programmeertechnieken. Maar nu met een focus op: Datastructuren; Programmeren voor andere programmeurs; Libraries. Jonathan K. Vis Advanced C++ Programming 3 / 26
4 1 Object Oriented Programming 2 Inheritance 3 Polymorphism 4 Standard Template Library 5 Templates 6 const Correctness 7 Code Style 8 Comments 9 make Build System 10 Testing Jonathan K. Vis Advanced C++ Programming 4 / 26
5 Object Oriented Programming Organiseren van data en methoden: 1. interne data representatie: attributen (membervariabelen); 2. interface (voor interactie): procedures (memberfuncties); defineren het gedrag, maar de implementatie is verborgen. Constructors en destructors; Access levels: public, private, protected, static; Getters en setters; Operator overloading. Jonathan K. Vis Advanced C++ Programming 5 / 26
6 Definitie in.h #ifndef lijst_h #define lijst_h int const MAX = 500; class Lijst public: Lijst(void); void voegtoe(int const nieuw); private: int data[max]; int laatste; }; // Lijst #endif Jonathan K. Vis Advanced C++ Programming 6 / 26
7 Implementatie in.cc/.cpp #include "lijst.h" Lijst::Lijst(void) laatste = 0; } // Lijst::Lijst void Lijst::voegtoe(int const nieuw) if (laatste < MAX - 1) laatste += 1; data[laatste] = nieuw; } // if } // Lijst::voegtoe Jonathan K. Vis Advanced C++ Programming 7 / 26
8 Meer over headers en namespace s Libraries hebben soms overlappende elementen (dezelfde naam); Denk ook aan programmeeropgave 1; Gebruik een namespace om conflicten te voorkomen; using namespace std; zeker niet in headers; Header guards (voor hergebruik); extern en static. namespace karel std::string const naam = "Karel"; } std::cout << "Hello World: " << karel::naam << std::endl; Jonathan K. Vis Advanced C++ Programming 8 / 26
9 Inheritance of overerving Hergebruik van functionaliteit; Eenheid en structuur (relaties) tussen klasses; Subklasses nemen memberfuncties en -variabelen over van de superklasse (m.u.v. private); Subklasses kunnen members overschrijven; Extra access level: protected: niet van buiten, wèl vanuit een subklasse; friend; geeft toegang tot specifieke private members; Multiple inheritance. Jonathan K. Vis Advanced C++ Programming 9 / 26
10 class rechthoek public: rechthoek(int l, int b); void setlengte(int l); void setbreedte(int b); int getlengte(); int getbreedte(); protected: int lengte, breedte; }; // rechthoek class gekleurderechthoek : public rechthoek public: gekleurderechthoek(int l, int b, int k); private: int kleur; }; // gekleurderechthoek Jonathan K. Vis Advanced C++ Programming 10 / 26
11 Polymorphism class Polygon protected: int width, height; public: void set_values (int a, int b) width = a; height = b; } }; // Polygon class Rectangle: public Polygon public: int area() return width * height; } }; // Rectangle class Triangle: public Polygon public: int area() return width * height / 2; } }; // Triangle Jonathan K. Vis Advanced C++ Programming 11 / 26
12 Polymorphism int main(int, char* []) Rectangle rect; Triangle trgl; Polygon* ppoly1 = ▭ Polygon* ppoly2 = &trgl; ppoly1->set_values(4, 5); ppoly2->set_values(4, 5); std::cout << rect.area() << std::endl; std::cout << trgl.area() << std::endl; } // main virtual-functies geven nog meer controle. Jonathan K. Vis Advanced C++ Programming 12 / 26
13 Standard Template Library Een verzameling van bibliotheken ( verdeelt in: Algoritmes; Containers; Functies; Iterators. De interne werking is bijna altijd onbelangrijk. std::vector<int> ar = 1, 2, 3, 4, 5 }; std::vector<int>::iterator it; for (it = ar.begin(); it!= ar.end(); it++) std::cout << *it << std::endl; } // for Jonathan K. Vis Advanced C++ Programming 13 / 26
14 Input en Output Gebruik ostream/istream; Superklasse van cout, ofstream,... Gebruik eventueel operator overloading voor: <<. void Lijst::drukaf(std::ostream &stream) stream << data << std::endl; } // Lijst::drukaf std::ostream & Lijst::operator<<(std::ostream &stream, Lijst const &lijst) lijst.drukaf(stream) return stream; } // Lijst::operator<< Jonathan K. Vis Advanced C++ Programming 14 / 26
15 Templates Templates worden gebruikt om generieke functies (en klassen) te defineren; Één implementatie voor (vele) verschillende data typen; Implementatie door de compiler; Veelal handig voor rekenkundige operaties voor int, float, complex, breuk,... of voor container klassen: lijst, verzameling,... In heel veel andere gevallen is het nut beperkt. Jonathan K. Vis Advanced C++ Programming 15 / 26
16 #include <iostream> template <typename T> T max(t const &a, T const &b) return a > b? a : b; } // max int main(int, char* []) int a = 4, b = 5; float c = 4.3, d = 4.4; std::cout << max<int>(a, b) << std::endl << max<float>(c, d) << std::endl << max<int>(c, d) << std::endl; } // main Jonathan K. Vis Advanced C++ Programming 16 / 26
17 template <typename T> class Lijst public: void voegtoe(t const &nieuw); private: T data[500]; int laatste; }; // Lijst template <typename T> void Lijst<T>::voegtoe(T const& nieuw) data[laatste++] = nieuw; } // Lijst::voegtoe int main(int, char* []) Lijst<int> lijst; lijst.voegtoe(4); } // main Jonathan K. Vis Advanced C++ Programming 17 / 26
18 Meer Templates Template specialization; Variadic templates; Template aliases (from C ++ 11): template <typename T> using str_map = std::unordered_map<t, std::string>; Header file. Jonathan K. Vis Advanced C++ Programming 18 / 26
19 Template Metaprogramming template <int N> struct Factorial static const int value = N * Factorial<N - 1>::value; }; template <> struct Factorial<0> static const int value = 1; }; int main(int, char* []) std::cout << Factorial<6>::value << std::endl; } // main Jonathan K. Vis Advanced C++ Programming 19 / 26
20 const Correctness Laat de programmeur (en de compiler) weten dat een functie geen aanpassingen doet aan een klasse (bijv. getters); Geef aan dat parameters niet veranderen in de functie; Vaak is het doorgeven van klasses (of grote data typen) efficienter als call-by-reference, denk ook aan templates; const werkt van rechts naar links; Uitzonderingen? const_cast<>. bool Lijst::voegtoe(int const &waarde); bool Lijst::haaluit(int const &plaats, int &waarde); bool Lijst::isin(int const &waarde) const; Jonathan K. Vis Advanced C++ Programming 20 / 26
21 Code Style Veel is goed, zo lang het maar consequent is; Elegante code; Leesbaarheid (begrijpbaarheid); Inspringen (spaties of tabs) ( 06/15/developers-use-spaces-make-money-use-tabs/); Namen: variabelen, klasses, constanten,... Lees eens een echte code style; Gebruik een redelijke editor, IDE. Jonathan K. Vis Advanced C++ Programming 21 / 26
22 Comments Altijd commentaar bovenaan iedere file: /** * klassenaam: beschrijving van klasse/programma naam (studentnummer) naam (studentnummer) filenaam datum laatste wijziging **/ En commentaar bij iedere (member)functiedeclaratie (header file): class dinges public: // commentaar hier! void doeiets(); }; // dinges // Niet hier! void dinges::doeiets() } Jonathan K. Vis Advanced C++ Programming 22 / 26
23 /** functienaam beschrijving wat de functie doet parameternaam beschrijving rol parameter beschrijving van het resultaat exacte beschrijving preconditie exacte beschrijving postconditie wat is er veranderd na het uitvoeren van de functie? **/ Precondities: wat moet er gelden voor een functie kan worden aangeroepen (testbaar!): De datastructuur is niet leeg; Er zijn minimaal n elementen; De operator < is gedefinieerd voor type T. Postconfities: wat geldt er bij het afsluiten van de functie; Bijzondere gevallen, en wat te doen bij errors? Jonathan K. Vis Advanced C++ Programming 23 / 26
24 make Build System Code layout: include/ *.h src/ *.cc tests/ test_*.cc LICENSE Makefile README.md Jonathan K. Vis Advanced C++ Programming 24 / 26
25 INC_DIR = include SRC_DIR = src SOURCES = $(shell find $(SRC_DIR)/ -name *.cc ) OBJECTS = $(SOURCES:.cc=.o) DEPS = $(OBJECTS:.o=.d) TARGET = programma CC = g++ CFLAGS = -march=native CPPFLAGS = $(addprefix -I, $(INC_DIR)) -Wall -Wextra -pedantic.phony: all clean debug release release: CFLAGS += -O3 -DNDEBUG release: all debug: CFLAGS += -O0 -DDEBUG -ggdb3 debug: all all: $(TARGET) clean: rm -f $(OBJECTS) $(DEPS) $(TARGET) $(TARGET): $(OBJECTS) $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ -include $(DEPS) %.o: %.cc $(CC) $(CFLAGS) $(CPPFLAGS) -MMD -o $@ -c $< Jonathan K. Vis Advanced C++ Programming 25 / 26
26 Testing Test driven development; Memory leaks: valgrind; Unit tests; Use assert: #include <cassert> int main(int, char* []) assert(2 + 2 == 4); assert(2 + 2 == 5); } // main Jonathan K. Vis Advanced C++ Programming 26 / 26
Datastructuren Werkcollege Intro
Bart Hijmans, Universiteit Leiden. Universiteit Leiden The Netherlands Focus 1 19 ˆ Ervaring in gebruik en implementatie van datastructuren ˆ Kennis van mogelijkheden ˆ Programmeren voor andere programmeurs
Introductie in C++ Jan van Rijn. September 2013
Introductie in C++ Jan van Rijn September 2013 Inhoud Classes Overerving Const correctness Standard C++ library Templates Classes Voordelen van classes: Modelleren Modulariteit Informatie afschermen Makkelijk(er)
Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.
Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort
Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.
Hoofdstuk 1: Inleiding Objectoriëntatie: 1. Objecten & klassen: samenwerking van componenten om bepaald doel te bereiken; herbruikbaarheid. 2. Encapsulation: afschermen gedragingen en kenmerken van de
Inleiding C++ Coding Conventions
Inleiding C++ Coding Conventions Opleiding Bachelor of Science in Informatica, van de Faculteit Wetenschappen, Universiteit Antwerpen. Nota s bij de cursus voor academiejaar 2012-2013. Ruben Van den Bossche,
Datastructuren: stapels, rijen en binaire bomen
Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)
HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10
CPP 1 van 10 ADSdt 1-2009 TENTAMENVOORBLAD Voor aanvang van het tentamen s.v.p. de tentamengegevens goed doorlezen om eventuele misverstanden te voorkomen!! Naam student : Studentnummer : Groep : Studieonderdeel
Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2
Modelleren Werkelijkheid Modelleren Modeleren Waarvan maken we een model?!analyse " Maak een model van de te automatiseren werkelijkheid of van het op te lossen probleem! Domeinkennis = structuur! Functionele
int getaantalpassagiers{): void setaantalpassagiers(int aantalpassagiers);
bestand voertuig.h biz. 1 van 2 #ifndef VOERTUIG H #define VOERTUIG H #include using std::string; class Voertuig { public: Voertuig(); Voertuig(const string& inschrijvingsnumrner, const string&
Datastructuren: stapels, rijen en binaire bomen
Programmeermethoden : stapels, rijen en binaire bomen Walter Kosters week 12: 26 30 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 en Vierde programmeeropgave Othello programmeren we als volgt:
Inleiding Software Engineering! Unit Testing, Contracten, Debugger! 13 Februari 2014!
Inleiding Software Engineering Unit Testing, Contracten, Debugger 13 Februari 2014 Beknopte info over Unit Testing en Contracten kan je vinden op het einde van dit document. Eclipse beschikt over een handige
Programmeertechnieken Week 4, 5
Programmeertechnieken Week 4, 5 Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/pt2016/ Terug naar C++ We hebben nu kort kennis gemaakt met de abstractielagen onder C++. - Machinecode.
/20. richtlijnen. Lees deze richtlijnen! Log in op de pc met. login: paswoord: examen i examen001. Log in op. x.toledo.ucll.be
OPO Naam: Code: Lectoren: Programmeren voor Multimedia MBI66A F. Vogels Examen Datum: Beginuur: Duur: Hulpmiddelen: TODO TODO 3 uur Open boek /20 Student Naam:....................................................................................
Programmeermethoden. Recursie. week 11: november kosterswa/pm/
Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,
Gevorderd Programmeren
Gevorderd Programmeren Praktijk nota s Opleiding Bachelor of Science in Informatica, van de Faculteit Wetenschappen, Universiteit Antwerpen. Nota s bij de cursus voor academiejaar 2008-2009. J. Broeckhove
Dit document bevat informatie over make bij het eerstejaars college Programmeermethoden, Universiteit Leiden, najaar 2010, zie
Dit document bevat informatie over make bij het eerstejaars college Programmeermethoden, Universiteit Leiden, najaar 2010, zie www.liacs.nl/home/kosters/pm/ Met dank aan allen die aan deze tekst hebben
C++ programmeermethoden Bachelor Kunstmatige Intelligentie
C++ programmeermethoden Bachelor Kunstmatige Intelligentie 1e Deeltentamen Datum: 28 maart 2016 Tijd: 13.00-14.30 Aantal pagina s: 8 (inclusief voorblad) Aantal vragen: 5 Maximaal aantal te behalen punten:
Inleiding... 3. Een terugblik op C... 3
1 Inhoudsopgave. Inleiding.... 3 Een terugblik op C.... 3 1 Inleiding van C naar C++.... 6 1.1 Commentaar met //.... 6 1.2 Plaats van variabelen definities.... 6 1.3 Constante waarden met const.... 7 1.4
Programmeertechnieken Week 6
Programmeertechnieken Week 6 Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/pt2017/ Exception handling Murphy's Law: "Anything that can go wrong, will go wrong." Exception handling (2)
3 e jaars GameTech student C++ voor hobby, eerste programmeertaal Assistent bij een heleboel vakken
18 Februari 2013 Tigran Gasparian 3 e jaars GameTech student C++ voor hobby, eerste programmeertaal Assistent bij een heleboel vakken Gydo Nieraeth 4 e jaars student, 3 e jaars GameTech C++ ervaring: Software
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten
Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.
Herhaling Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. De basisbouwsteen is het object; een geïntegreerde eenheid van data en operaties werkend op deze
Programmeren in C ++ les 4
Elektrotechniek/Embedded Systems engineering inf2d Programmeren in C ++ les 4 cursus 2010-2011 ir drs E.J Boks Les 4 Voortzetting van C ++ verschillen met C Statische klassevariabelen Constante klassevariabelen
Programmeren in C++ (deel 1)
FHT&L MODULE BESCHRIJVING Programmeren in C++ (deel 1) PRO4 Samenstelling: Cees van Tilborg, Thijs Dorssers Datum: september 2011 Versie: 1h Titel: Programmeren in C++ Identificatie Progresscode: PRO4
Vakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen [email protected] en [email protected]
Ontwerp van Informatiesystemen
1ste bach HIB Ontwerp van Informatiesystemen Prof. Verelst Q www.quickprinter.be uickprinter Koningstraat 13 2000 Antwerpen 112 2,50 Online samenvattingen kopen via www.quickprintershop.be Table of Contents
Overerving & Polymorfisme
Overerving & Polymorfisme Overerving Sommige klassen zijn speciaal geval van andere klasse Docent is een speciaal geval van werknemer, dwz. elke docent is ook werknemer Functionaliteit van docent = functionaliteit
Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/
Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,
IDE gebruik en introductie Java. Programmeertechnieken, Tim Cocx
IDE gebruik en introductie Java Programmeertechnieken, Tim Cocx Discover thediscover world atthe Leiden world University at Leiden University IDE Gebruik Discover thediscover world atthe Leiden world University
Grafisch programmeren met GTK
LinuxFocus article number 295 http://linuxfocus.org Grafisch programmeren met GTK door Özcan Güngör Over de auteur: Sinds 1997 gebruik ik Linux. Vrijheid, flexibiliteit en
Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, uur
Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, 8.30-10.30 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde
Programmeermethoden. Pointers. Walter Kosters. week 10: november kosterswa/pm/
Programmeermethoden Pointers Walter Kosters week 10: 13 17 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Introductie Een pointer is in feite gewoon een geheugenadres. Het geheugen kun
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Schrijf je naam onderaan op elk blad. 2.
Abstracte klassen & Interfaces
Abstracte klassen & Interfaces Overerving public class Vierhoek {... Vierhoek public class Rechthoek extends Vierhoek {... public class Ruit extends Vierhoek {... Rechthoek Ruit Elke rechthoek is een vierhoek.
Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele
Informatica Objectgeörienteerd leren programmeren Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode Objectgeörienteerd
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 18 december 2015 Overerving (inheritance) Constructors Overriding Inheritance demo Exceptions Zelf exceptions veroorzaken Overerving (inheritance) 2-dimensionaal
Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, uur
Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, 17 20 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde
Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur
Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, 13.00-15.00 uur 1. De situatie die ontstaat door class A : B C D; kan beschreven worden door (a) B is een A (b)
Objectgeoriënteerd Programmeren in C++
Objectgeoriënteerd Programmeren in C++ Woef, woef! Harry Broeders De Haagse Hogeschool Opleiding Elektrotechniek 27 april 2015 [email protected] Objectgeoriënteerd Programmeren in C++ van Harry Broeders
Datastructuren Programmeeropdracht 3: Expressies. 1 Expressies. Deadline. Dinsdag 8 december 23:59.
Datastructuren 2015 Programmeeropdracht 3: Expressies Deadline. Dinsdag 8 december 23:59. Inleiding. Deze opdracht is losjes gebaseerd op Opdracht 5.13.2 in het boek van Drozdek. U wordt gevraagd expressies
Om de libraries te kunnen gebruiken, moet de programmeur (een deel van) zijn programma in C/C++ schrijven.
1 Inleiding tot.net Software werd en wordt meestal geschreven in C of C++. De broncode van een C/C++ programma wordt dan gecompileerd naar machine code, die eventueel nog gelinkt wordt met machine code
Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur
Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde
Kleine cursus PHP5. Auteur: Raymond Moesker
Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven
Een typisch programma in C en C++ bestaat uit een aantal onderdelen:
Eerste stappen in C. Een typisch programma in C en C++ bestaat uit een aantal onderdelen: /* Alles wat op meerdere lijnen staat zoals hier is commentaar. */ // Dit is commentaar op 1 lijn. Geldig tot einde
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf
Programmeren in C# Overerving
Programmeren in C# Overerving Programmeren in C# 2 public class Balloon private int x = 50; private int y = 50; private int diameter = 20; public int Diameter getreturn diameter; setif (value
Programmeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/
Programmeermethoden Controle-structuren Walter Kosters week 3: 17 21 september 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleveren opgave 1 Inleveren: digitaal clintonobama1.cc en print van mooi.pdf.
continue in een for, while of do lus herhaalt de lus vroegtijdig. De volgende herhaling wordt onmiddellijk begonnen.
Hoofdstuk 3: controlestructuren instructies en blokken Naar elke instructie staat een ; Instructies worden door de haakjes {} in een block samengevat. if else if ( expression) statement1; else statement2;
IMP Uitwerking week 13
IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het
Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction
Informatica Deel II: les 1 Java versus Python Jan Lemeire Informatica deel II februari mei 2014 Parallel Systems: Introduction Arabidopsis (zandraket) Arabidopsis (zandraket) MMIQQA Multimodal Microscopic
Programmeertechnieken Week 7
Programmeertechnieken Week 7 Tim Cocx, Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/pt2017/ "Confidence in Code" "Ons programma / onze module is af, maar hoe weten we nu of alles werkt?"
Inleiding programmeren
Inleiding programmeren Docent: José Lagerberg Assistenten: Robin de Vries, Jordy Perlee, Dimitri Belfor, Stephen Swatman, Erik Kooistra, Daan Kruis, Daniel Louwrink Cursusinformatie: https://staff.fnwi.uva.nl/j.m.lagerberg
Datastructuren en algoritmen
Datastructuren en algoritmen Doelstelling Datastructures + algorithms = programs Boek van Niklaus Wirth: bedenker Pascal en Modula Datastructuur: structuur om informatie op te slaan Algoritme: voorschrift
Programmeermethoden. Functies vervolg. Walter Kosters. week 5: 1 5 oktober kosterswa/pm/
Programmeermethoden Functies vervolg Walter Kosters week 5: 1 5 oktober 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Files manipuleren 1 Deze void-functie telt niet-lege regels in een file invoer: void
9 Meer over datatypen
9 Meer over datatypen We hebben al gezien dat het gebruik van symbolische constanten de leesbaarheid van een programma kan verbeteren. Door een geschikte naam (identifier) voor een constante te definiëren,
Kwis (3) class X { public void a() { System.out.println("x"); public static void main(string[] args) { X x = new X();
Kwis (3) class X { public void a() { System.out.println("x"); class Y extends X { public void a() { System.out.println("y"); class Z extends Y { public void a() { System.out.println("z"); public static
Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, uur
Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, 17 20 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde
Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 9 november 2018, uur
Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 9 november 2018, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde
Object-oriented programmeren met BlueJ en Visual Studio
Object-oriented programmeren met BlueJ en Visual Studio HA-2265-03 Nascholing Katholiek Onderwijs Vlaanderen Bert Cauwenberg & Lieven Pauwels Werkgroep Handel 2017 Guimardstraat 1, 1040 Brussel Guimardstraat
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief
Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur
Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur 1. (2 punten per deelvraag) Deze opgave bestaat uit een aantal tekstvragen. Houd het antwoord kort: een
Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld
Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag u gebruik maken van: Barnes, Object-Oriented Programming with Java en de Notitie Algoritmiek
Online c++ leren programmeren:
Online c++ leren programmeren: Inhoud 1)Waar vind ik een c++ compiler?... 2 2)Hoe start ik een programma in c++?... 2 3)Een eerste c++ programma:... 3 Een eerste programma schrijven:... 3 Mijn eerste programma
Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft
Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Digitale
VI. Klassen en objecten
VI. Klassen en objecten Klassen en objecten vormen het fundament van OOP. We zullen dus uitgebreid aandacht besteden aan klassen en objecten. U kunt Java niet begrijpen zonder goed met klassen en objecten
et Zend Framework bestaat volledig uit objectgeoriënteerde
et Zend Framework bestaat volledig uit objectgeoriënteerde PHP-code. Om het Zend Framework goed te kunnen begrijpen en te kunnen gebruiken, moet u minimaal de basis van objectgeoriënteerd programmeren
VOORBLAD SCHRIFTELIJKE TOETSEN
Technology, Innovation & Society Delft VOORBLAD SCHRIFTELIJKE TOETSEN OPLEIDING TOETSCODE GROEP : ELEKTROTECHNIEK : GESPRG-SC1 : EP11/EP12 TOETSDATUM : 23-01-2014 TIJD : 15.00 16.30 uur AANTAL PAGINA S
Objectgeoriënteerd Programmeren in C++
Objectgeoriënteerd Programmeren in C++ Woef, woef! De Haagse Hogeschool Opleiding Elektrotechniek 27 april 2015 [email protected] van is in licentie gegeven volgens een Creative Commons Naamsvermelding-NietCommercieel-Gelijk-
Noties Informatica. In java fungeren objecten als een model voor de elementen waarin een probleem kan worden opgesplitst
s Informatica Hoofdstuk 1 Object Klasse Methode Parameters Type Velden Toestand Compiler Resultaten (returnwaarde) In java fungeren objecten als een model voor de elementen waarin een probleem kan worden
Inleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord, Leonie Bosveld 12 december 2016 Zelle hoofdstuk 10 Stof Overzicht - theorie 1. Zelle hoofdstuk 4 en 5 2. Zelle hoofdstuk 7 en 8, recursie, Brookshear hoofdstuk
Inleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord 11 december 2017 Zelle hoofdstuk 10 Stof Overzicht - theorie 1. Zelle hoofdstuk 4 en 5 2. Zelle hoofdstuk 7 en 8, recursie, Brookshear hoofdstuk 5 3. Zelle hoofdstuk
Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur
Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, 11.00-13.00 uur 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan
Modulewijzer Tirdat01
Modulewijzer Tirdat01 W. Oele 25 augustus 2008 1 Inhoudsopgave 1 Inleiding en leerdoelen 3 2 Voorkennis 3 2.1 tirprg01 en tirprg02........................ 3 2.2 tirprg03.............................. 4
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));
Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing
Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Introductie In dit document geven we een mogelijke oplossing voor het eerste practicum. Deze oplossing gebruikt verschillende klassen en overerving,
