Hoofdstuk 10.2 Rekenmachine-casus.

Slides:



Advertisements
Verwante presentaties
Gegevensstructuren: list boxen en lijsten
Advertisements

Frédérique Harmsze - Macaw 22 juni Wie ben ik?  Frédérique Harmsze  Information Worker Consultant bij Macaw sinds 2004  Intranet-projecten met.
Van domeinklasse tot implementatie
Les 1 Objecten, Eigenschappen en Gebeurtenissen
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
Computervaardigheden en Programmatie Universiteit AntwerpenObjecten 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Geavanceerde pipelining en parallellisme op het niveau van instructies (ILP:
Hoofdstuk 2 Hallo, C# !.
1Ben Bruidegom A Harvard Machine Calculator Calculator  Computer.
1Ben Bruidegom A Harvard Machine Recapitulatie Calculator Calculator  Calculator met “loopjes” Calculator met “loopjes”  Processor.
Algoritmen en Datastructuren (ALDAT) EVMINX4 Week 6.
District 1550 Werkdag 6 oktober 2012 Vanaf I juli 2013 geen “Future Vision” meer  The New Foundation ? Vóor 1 Juli 2013:  District Qualification  Club.
Hoofdstuk 10 Overerving.
Opg.1a: substring } String substring(int a) { int t; for (t=a; t
Array nDeclaratie nCreatie nOpvragen nWijzigen nLengte String [ ] a; a = new String[10]; ……a[5]…… a[5] = ……; …a.Length… …is eigenlijk overbodig! List a;
Hoorcollege 8 Game object structuren. Arrays in games Grid-gebaseerd speelveld (zoals Tetris) Lijst van spelers Lijst van inventory items Lijst van alle.
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Eerste deeltoets Uitwerking. Resultaten Gemiddeld: 6,01 Tips voor de volgende keer: – Werk in klad uit, schrijf duidelijk – Oefenen met loops en tellertjes.
Hoofdstuk 8 Objecten en klassen.
Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.
JAVA --- H71 thread= draad in het programma (pad) gewone applets = één thread, volgt één pad multithreading = er worden twee of meer paden gestart, die.
Consoletoepassing Variabelen Klassen
Algoritmiek Java GUIs, AWT en Swing API Overzicht te bestuderen stof, voorbeeldtentamen Hoorcollege 15 - Ma. 11 dec L.M. Bosveld-de Smet.
Computer-Mediated Communication Master IK, CIW, MMI L.M. Bosveld-de Smet Hoorcollege 1; di. 7 sept. 2004;
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
Hoofdstuk 2 - Inleiding tot Visual Studio .NET IDE
Visual Basic.Net - Overzicht
Hoofdstuk 9 Objecten en klassen.
1 december KC Development Tools Hands-on Oracle HTML DB v2.0.
Hoofdstuk 10.1 Toepassing: Bitmap-editor. nKlik punten op scherm nPlaatje verschuiven left, right, up, down nPlaatje bewerken clear, invert, bold, outline.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Les 7 Multiple Document Interface Programmeren met Visual Basic Karl Moens.
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Hoofdstuk 11.3 Algoritmen: Zoeken in een netwerk.
Hoofdstuk 8.5 Subklassen. versie-management problematiek Voortborduren op eerder gedaan werk nEerste poging: “knip&plak” class Twee { int x, y; int oud.
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag User-defined characters op de.
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Polymorfie Hoofdstuk 24. Visual Basic.NET voor studenten2 Inleiding Polymorfie zorgt ervoor dat een gegeven object verschillende “vormen” kan aannemen.
Hoofdstuk 3 Methoden om te tekenen.
Hoofdstuk 12 Ontwerp van programma’s. Ontwerp van de GUI nStandaard in Applets: alle met add toegevoegde componenten komen naast elkaar (totdat de regel.
Opgave 1a ncompiler: vertaalt broncode naar machine-uitvoerbare code ninterpreter: voert broncode direct uit.
Hoofdstuk 2 Hallo, C# !. Opbouw broncode nOpdrachten om het geheugen te veranderen nOpdrachten zijn gegroepeerd in methoden nMethoden zijn gegroepeerd.
Gelijkheid van Strings static bool Gelijk( string s, string t) { } int m = s.Length; int n = t.Length; for (i=0; i
Eerste deeltentamen nNagekeken werk ligt voor in de zaal nNeem je eigen werk mee: in het college wordt het besproken nVragen over de beoordeling: in de.
Opbouw van het Netwerk void Lees (string filenaam ) { while ( (regel=sr.ReadLine()) != null ) { string [] r = regel.Split(" ", StringSplitOptions.RemoveEmpty.
1 K. Werschkull Programmeren in Delphi 7 De ontwikkeling van de computer Programmeertalen Compilers Hoofdstuk 1 Hoofdstuk 1: De ontwikkeling van de computer.
GUI Graphical User Interface. Wat is een Graphical User Interface Mooi Gebruiksvriendelijk Veel denkwerk.
Hoofdstuk 4 Elektriciteit. Weerstand van een draad weerstand in een draad.
De grafische rekenmachine
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Windows applicatieontwikkeling
Aanroep van een methode voert opdrachten uit in de body daarvan
Voortborduren op eerder gedaan werk
Gameprogrammeren: Lists en interfaces
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Declaratie Declaratie reserveert geheugenruimte
1. Een klasse is… Een groepje opdrachten Een groepje variabelen
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Voorbeeld: Simulatie van bewegende deeltjes
Voortborduren op eerder gedaan werk
Practicum: schets-editor
Gameprogrammeren: Interfaces
Aanroep van een methode voert opdrachten uit in de body daarvan
Het gebruik van de Rekenmachine.
Windows 8 Startmenu.
Exceptions Exception:
ASP.NET MVC Web Development
Windows applicatieontwikkeling
Transcript van de presentatie:

Hoofdstuk 10.2 Rekenmachine-casus

Voorbeeld: Rekenmachine

Voorbeeld: Rekenmachine Twee aspecten: User-interface Werking class Calculator : Form class Processor

Rekenmachine: User-interface Label TableLayoutPanel Button Calculator ( ) { paneel = new TableLayoutPanel( ); for (int t=0; t<16; t++) { } Button knop = new Button(); paneel.Controls.Add( knop ); Buttons zijn ondergeschikt aan het paneel this.Controls.Add( paneel ); }

ondergeschikt aan het paneel User-interface Calculator ( ) { paneel = new TableLayoutPanel( ); paneel.Columncount = 4; for (int t=0; t<4; t++) paneel.ColumnStyles.Add( ...25%... ); for (int t=0; t<16; t++) { Button knop = new Button(); knop.Text = "789/456*123+0C=-"[t].ToString(); knop.Dock = DockStyle.Fill; knop.Click += this.klik; knop.KeyPress += this.toets; knop.Resize += this.groei; paneel.Controls.Add( knop ); Buttons zijn ondergeschikt aan het paneel } this.Controls.Add( paneel ); }

Opbouw klasse Calculator class Calculator : Form { Label result; TableLayoutPanel paneel; Proc proc; membervariabelen ook nodig in EventHandlers Calculator ( ) { result = new Label( ); result.TextAlign = ContentAlignment.MiddleRight; // en de rest van de Userinterface-opbouw proc = new Processor ( ); }

Calculator Event-handlers class Calculator : Form { Label result; Proc proc; void klik (object obj, EA ea) { } verwerk( ((Button) object) . Text[0] ); void toets(object obj, KPEA kpea ) { } verwerk( kpea.KeyChar ); void groei(object obj, EA ea ) { } Control c = (Control) obj; int h = c.Height / 2; if (c==result) h = c.Height/3; c.Font = new Font("Tahoma", h);

Calculator Event-handlers class Calculator : Form { Label result; Proc proc; void verwerk (char c) { if (c==‘C’) proc.Schoon(); else if (c==‘=’) proc.Reken(); else if (c>=‘0’&&c<=‘9’) proc.Cijfer(c- ‘0’); else proc.Operatie(c); result . Text ( ); proc . Scherm }

Opbouw klasse Proc class Proc { long Scherm; wat is een Proc? Proc ( ) { this . Schoon(); } void Schoon ( ) { ... } void Reken ( ) { ... } void Cijfer (int n) { ... } void Operatie (char c) { ... } wat kan een Proc?

Wat is een Proc? waarde op het scherm huidige waarde vorige waarde 9 3348 372 37 vorige waarde laatst gebruikte operator er lijkt niets te gebeuren... schermwaarde wordt tienmaal zo groot plus cijfer

Opbouw klasse Proc class Proc { long Scherm; wat is een Proc? long waarde, vorige; char op; Proc ( ) { this . Schoon(); } void Schoon ( ) { ... } void Reken ( ) { ... } void Cijfer (int n) { ... } void Operatie (char c) { ... } wat kan een Proc?

Proc’s methode cijfer class Proc { long scherm, waarde, vorige; char op; void Cijfer (int n) { } waarde = 10*waarde + n; scherm = waarde;

Proc’s methode reken class Proc { long scherm, waarde, vorige; char op; void Reken ( ) { } if (op==‘+’) if (op==‘-’) if (op==‘*’) if (op==‘/’) vorige += waarde; vorige -= waarde; vorige *= waarde; vorige /= waarde; scherm = vorige; waarde = 0;

Proc’s methode operatie class Proc { long scherm, waarde, vorige; char op; void Operatie (char c) { } this . reken ( ); op = c; void Schoon ( ) { waarde = 0; vorige = 0; scherm = 0; op = } ‘+’;

Testen van een reeks mogelijke waarden switch (x) { } case 1: case 2: case 3: case 4: case 5: case 6: case 7: default: if (x==1) else if (x==2) else if (x==3) else if (x==4) else if (x==5) else if (x==6) else if (x==7) else this.een(); this.twee(); this.drie(); this.vier(); this.vijf(); this.zes(); this.zeven(); this.meer(); break;