Studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid.

Slides:



Advertisements
Verwante presentaties

Advertisements


Gestructureerd programmeren in C
Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen.
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Klassen en objecten.
Instructie Programmeren Debuggen 5JJ70. Debuggen: Wat is het probleem Je programma compileert, maar werkt niet zoals verwacht, wat nu? Vraag je af: wat.
1 Tentamen 21 januari 2008 uitleg Algemene kennisvragen a)“Wat verstaan we onder de complexiteit van een algoritme?” –Cruciaal: wat gebeurt er met.
Hoofdstuk 6: Controle structuren
1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren.
Hoofdstuk 2 Hallo, C# !.
Frank Stalpers en Ad Baars
Numerieke Natuurkunde
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Consoletoepassing Variabelen Klassen
Algoritmiek Object-georiënteerd Programmeren
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Inleiding tot programmeren
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Constructoren Genesis 1:1 Aarde a1 = new Aarde(“Adam”, “Eva”);
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
tircms02-p les 1 Operating Systems practicum
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Programmeren.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Imperatief programmeren nJeroen Fokker. Wat heb je nodig? nCollegediktaat ukopen bij A-Eskwadraat (BBG-238) uof zelf downloaden en uitprinten nSolis-id.
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Welkom! maandag 16 November 2015 Les B-2.
Loops en errors Array's Random try catch for loop while loop do while loop.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Programmeren. Wat is programmeren? Het schrijven van opdrachten voor de processor De processor “spreekt” machinetaal:
Programmeren.
Aanroep van een methode voert opdrachten uit in de body daarvan
Objectgeoriënteerd Programmeren
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Lists en interfaces
Hoofdstuk 9.2 Strings.
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Methoden
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Gameprogrammeren: Programmastructuur
Basis Gameprogrammeren
Gameprogrammeren: Afsluiting
Gameprogrammeren: Herhalingen
C++ • C++ als een verbetering van C • Abstracte datatypen met classes • Constructoren en destructoren • Subklassen • binding van functies 1.
Tinpro015b-les6 Templates.
Tinpro015b-les4 Klassen.
Voorbeeld: Simulatie van bewegende deeltjes
Voortborduren op eerder gedaan werk
Gameprogrammeren: Klassen en objecten
Small Basic Console deel 2
Software Development fundamentals
Software Development fundamentals
Gameprogrammeren: Arrays
Transcript van de presentatie:

studiehouding Ergens verstand van krijgen kost tijd… Uren die je alleen in je boeken doorbrengt maken het verschil. Er is niets mis met onafhankelijkheid. De ingenieur is autodidactisch en kan zelf zijn weg vinden. De ingenieur heeft eigen intellect en is geen naprater.

Leren programmeren De taal Schrijfwijze (syntax) Grammatica (flow of control) Algoritmiek Hoe doe je iets? Algoritme is onafhankelijk van de taal waarin je dat uitdrukt (wiskunde )

Een goede programmeur Precies werken Stelselmatig denken Kent zijn eigen grenzen betreffende: Bevattingsvermogen Abstractievermogen Behouden van overzicht Het overzien van complexiteit

Programmeren leren Leren programmeren is onafhankelijk van de taal, waarin je dat leert. De manier van denken telt! Dus niet de taal, waarin dat denken wordt uitgedrukt (wiskunde ). Oefenen, oefenen, oefenen!!!

Ik beheers Java…en dan? Binnen een maand C & C++. Binnen een maand Javascript. Binnen een maand iedere procedurele taal. Scripttalen. Echte programmeertalen (gecompileerd). Geïnterpreteerde talen. (bijv. Prolog) Grafische gebruikersinterfaces Databases Netwerken Embedded systems (Mobieltje, robots, enz.)

Elementaire taalconstructies: variabelen Variabelen: Int: geheel getal Char: letter Float: gebroken getal: Double: gebroken getal met meer precisie Array: lijstje van variabelen Final variabelen: onveranderlijk. Static variabelen: straks

Werken met variabelen Voorbeeld: Declaratie: int i; Initialisatie: i=5; Of in één keer: int i=5;

Arrays Lijstje van variabelen Arrays van char, int, float, enz. Schrijfwijze: Declaratie: int[] anArray; Initialisatie: anArray=new int[10]; Of in één keer: int[] anArray=new int[10];

Arrays Array element 5 vullen met het getal 28: anArray[4]=28; Pas op! Arrays zijn Zero based!

Arrays in het geheugen anArray[0]anArray[1]anArray[2]… …

Flow of control: If / Else if(x==5) {opdracht 1;} Else { opdracht 2; } if else Opdracht 1 Opdracht 2 Verder met programma

Flow of control: for loop for(int i=0;i<10;i++) { opdracht 1; opdracht 2; } ja nee Opdracht 2; Opdracht 1; Verder met programma i<10? i=i+1;

Flow of control: while loop while(i<10) { opdracht 1; opdracht 2; i++; } ja nee Opdracht 2; Opdracht 1; Verder met programma i<10? i++;

Methodes Op zichzelf staand stukje code dat uitgevoerd kan worden door het aan te roepen. Algemene schrijfwijze: returntype naam(parameters) {…….body…….. Return iets; }

Methodes Voorbeeld: int telOp(int x,int y) { return (x+y); } Aanroep: telOp(3,4); telOp(80,1);

Methodes Voorbeeld: int absolute(int x) { if(x<0) {x*=-1;} return (x); } Aanroep: absolute(3); absolute(-80);

Zelf uitzoeken Do while loops. If constructies zonder else blok. Switch statement. Bereik van variabelen (overflow!) Boek Internet Medestudenten Leraren

OOP: algemene structuur In de jaren ’80… Programma’ s bestonden uit één bestand. Eén programma = 8000 regels code. Foutgevoelig: Veel onderlinge afhankelijkheid. Moeilijk te beheersen / overzien. “Spaghetticode”. Vijftig personen wroeten in één bestand.

Object georiënteerd programmeren 1980: C (B. Kerningham, D.M. Richie) Unix 1986: C++ (B. Stroustrup) 1993: Java

OO v.s. klassiek programma Klassiek Geheugen Objectgeorienteerd

OO: een programma starten Geheugen Intoetsen in prompt: C:>java mijnapp Object mijnapp wordt aangemaakt. Main methode wordt uitgevoerd. main

OO: Werking Geheugen Het ene object creëert het andere… main Object 2

OO: Werking Geheugen Object 2 maakt object 3 aan. Object 1 maakt object 4 aan.. Enz. enz. main Object 2 Object 3 Object 4

OO: Werking Geheugen Object 3 heeft gedaan wat het moest doen en wordt vernietigd… Enz. enz. main Object 2 Object 4

OO: inhoud van een object Object: Wessel Constructoren: Wessel() Wessel(int a,float b) Methodes: void PrintVariablesToScreen() int Calculate(int a, int b) Variabelen: int x, float y, enz.

OO: constructor Is een methode met dezelfde naam als de klasse. Wordt aangeroepen wanneer een object wordt gemaakt. Heeft geen return waarde (impliciet dus void) Details later

OO: variabelen en methodes Methodes kunnen alle variabelen binnen het object direct aanspreken en wijzigen. Constructoren: Wessel() Wessel(int a,float b) Methodes: void PrintVariablesToScreen() int Calculate(int a, int b) Variabelen: int x, float y, enz.

OO: variabelen en constructoren Constructoren kunnen alle variabelen binnen Het object direct aanspreken en wijzigen. Constructoren: Wessel() Wessel(int a,float b) Methodes: void PrintVariablesToScreen() int Calculate(int a, int b) Variabelen: int x, float y, enz.

OO: methodes en constructoren Constructoren kunnen alle methodes binnen Het object direct Aanroepen. Constructoren: Wessel() Wessel(int a,float b) Methodes: void PrintVariablesToScreen() int Calculate(int a, int b) Variabelen: int x, float y, enz.

OO: methodes en methodes Methodes kunnen elkaar aanroepen Constructoren: Wessel() Wessel(int a,float b) Methodes: void PrintVariablesToScreen() int Calculate(int a, int b) Variabelen: int x, float y, enz.

OO: Stijl en overzicht public class wessel { /***************VARIABLES*********************/ int x; int y; /***************CONSTRUCTORS****************/ public wessel() { x=10; y=20; } /***************METHODS*********************/ Public void printiets(int a) { x+=a; system.out.println(“ ”+x); }

Objecten, classes, en meer... Een klasse Is NIET een object. Zit dus ook niet in het geheugen tijdens de uitvoering van het programma. Definieert “slechts” hoe het object in elkaar zit. Is het “recept” voor een object. Van 1 klasse kan men meerdere objecten aanmaken.

Objecten, classes, en meer... recept Taart 1 Taart 2 Taart 3 Taart 4 Klasse (broncode) Object(en) in geheugen

Het pointer concept... geheugen Object 1 Object2 x; Object2 y; Object2 z; Int a; Int b; Object2 Variabelen uit object 1 verwijzen naar geheugenlocaties van object2 objecten.

Arrays van objecten... geheugen Object 1 Int a; Int b; Object2 Object2[0] Object2[1] Object2[2] Een array in object 1 met pointers naar object2 objecten.

OO: een programma starten Geheugen Intoetsen in prompt: C:>java myApp Mijnapp.class wordt door vm gelezen. Object myApp wordt aangemaakt op basis van de klasse mijnapp.java Main methode wordt uitgevoerd. Object:myApp Variabelen constructoren Methodes: main()

Voorbeeld: een bedrijf met auto’s Een bedrijf handelt in auto’ s: Auto’s worden ingekocht. Auto’s worden verkocht. Van iedere auto wordt bijgehouden: Inkoopsprijs Verkoopprijs Kleur Type Aantal deuren

Voorbeeld: een bedrijf met auto’s Het bedrijf zal maximaal 80 auto’s in beheer hebben. Auto’ s kunnen overgespoten worden. Auto’ s kunnen een zwaardere motor krijgen.

De gedachte… geheugen bedrijf Auto 1 Auto 2 Auto 3 Auto 4 Object met Main methode

Benodigde objecten Bedrijf Auto Een of ander object met een main methode om de boel op te starten en te laten draaien. Naam: myApp.

De klasse bedrijf Bedrijf: Variabelen: Array met auto’ s, grootte: 80 stuks. Methodes: Koop auto (== maak pointer naar een nieuw auto object!!) Verkoop auto (== delete pointer naar auto object in array!!)

De klasse auto Auto Variabelen: Inkoopsprijs, Verkoopsprijs, kleur, type, aantal deuren. Methodes: Wijzig kleur Wijzig inkoopsprijs Wijzig verkoopsprijs Wijzig motor Enz.

De klasse myApp Variabelen: 1x bedrijf (==Een pointer naar het bedrijf object!!) Methodes: main In main maken we het bedrijf object aan en gaan we auto’s kopen, opknappen en verkopen.