Les 3 Basisbouwstenen (deel 2) Programmeren met Visual Basic Karl Moens.

Slides:



Advertisements
Verwante presentaties
PSD Basisstructuren programmeren.
Advertisements

PSD Basisstructuren programmeren.
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(2): Instructietypen.
Programmeren met Alice
Gegevensstructuren: list boxen en lijsten
Practica Computerlinguistiek Tekst en uitleg:
Les 1 Objecten, Eigenschappen en Gebeurtenissen
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Inleiding Programmeren met Visual Basic Karl Moens.
VBA en VBS Een introductie.
Klassen en objecten.
Computervaardigheden Hoofdstuk 4 — Scripting (Let op: dit is enkel voor studenten Biologie.)
Hoofdstuk 6: Controle structuren
Les 2 Basisbouwstenen (deel 1)
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
Frank Stalpers en Ad Baars
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){
Herhaling: For, While en Do
Visual Basic.
Assembly-taal Namen:Danny van Waes Rohan Schenk Klas:EM4 Docent:Dhr. Ing. JA Verhage Embedded systems.
Nationale Officedag6 maart 2008 VBA voor Excel door Lenny Hoeks.
Klik ergens op het witte deel van deze pagina om verder te gaan
Herhaalde uitvoering Bepaalde en onbepaalde lussen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (2)
De sequentie De begrensde herhaling
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Les 6 Menu Programmeren met Visual Basic Karl Moens.
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
Les 7 Multiple Document Interface Programmeren met Visual Basic Karl Moens.
Arrays Hoofdstuk 14 Hoofdstuk 14.
Inleiding tot programmeren
Objectgeoriënteerd Ontwerp
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Les 4 De Muis (deel 1) Programmeren met Visual Basic Karl Moens.
Animatie nAnimatie: “tekenfilm” programma toont automatisch veranderende beelden nGemakkelijk te programmeren met gebruik van de klasse Thread “draadje”
CONTROLESTRUCTUREN (DEEL 1)
Hoofdstuk 3 - Conditionele logica
Tweedimensionale arrays
Les 5 De Muis (deel 2) Drag & Drop
Spreadsheets. Testen. Met spreadsheets.. |  Spreadsheet, het meest gebruikte (test) tool in de wereld …  Aan de slag: Spreadsheet PRA  Risico’s en.
Polymorfie Hoofdstuk 24. Visual Basic.NET voor studenten2 Inleiding Polymorfie zorgt ervoor dat een gegeven object verschillende “vormen” kan aannemen.
Gevorderde PROGRAMMeer Les
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
Grafentheorie Graaf Verzameling knopen al dan niet verbonden door takken, bijv:
Codetuts Academy Les 6 Module 2a Php Fundamentals 1.
Loops en errors Array's Random try catch for loop while loop do while loop.
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
Doorzoeken van grafen Algoritmiek. Algoritmiek: Divide & Conquer2 Vandaag Methoden om door grafen te wandelen –Depth First Search –Breadth First Search.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Programmeren met Reeksen
Hoe werkt bibliografische software?
Gevorderde programmeer les
Onderhouden met Werktuigen en machines
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Gameprogrammeren: Herhalingen
Programmeren woensdag 4 oktober 2017.
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Small Basic Console deel 2
Wat gaan we doen? Herhaling ARM assembler instructies
Small Basic Console deel 2
SQL Les February 2019.
Software Development fundamentals
Python – For loop + strings
Transcript van de presentatie:

Les 3 Basisbouwstenen (deel 2) Programmeren met Visual Basic Karl Moens

Programmeren met Visula Basic – Les 3 Overzicht Oplossing van de vorige oefeningen Basisbouwstenen: Lussen –Principes –Do... Loop –For... Next –For Each... Next Oefeningen

Programmeren met Visula Basic – Les 3 Oplossing van de oefeningen Eenvoudige rekenmachine Voorzie twee invoervakken en één uitvoervak, zodanig dat de 4 hoofdbewerkingen op de waarden in de invoervakken kunnen worden toegepast en het resultaat in het uitvoervak verschijnt. –Invoervakken: standaard tekstvak met "tabindex 1 en 2" –Uitvoervak: standaard tekstvak met "Locked = False" (er kan dan geen invoer in dit vak plaatsvinden) –4 keuzerondjes om de keuze tussen de 4 hoofdbewerkingen aan te geven –"=" commandknop om de bewerking uit te voeren

Programmeren met Visula Basic – Les 3 Oplossing van de oefeningen Koppel volgende programmacode aan de "=" knop (Click-event): If optPlus.Value = True Then txtResultaat.Text = Str(Val(txtWaarde1.Text) + Val(txtWaarde2.Text)) ElseIf optMin.Value = True Then txtResultaat.Text = Str(Val(txtWaarde1.Text) - Val(txtWaarde2.Text)) ElseIf optMaal.Value = True Then txtResultaat.Text = Str(Val(txtWaarde1.Text) * Val(txtWaarde2.Text)) Else txtResultaat.Text = Str(Val(txtWaarde1.Text) / Val(txtWaarde2.Text)) End If

Programmeren met Visula Basic – Les 3 Oplossing van de oefeningen "RPN"-rekenmachine Ontwerp een rekenmachine die volgens de RPN- principes werkt. 4 tekstvakken (deze stellen de "stack" voor; de drie bovenste zijn "locked", de onderste niet) Commandbuttons: –"ENTER"-knop (= bevestiging invoer) –knoppen voor de 4 hoofdbewerkingen –(eventueel) "DOWN"-knop (= stack naar beneden halen) en "X  Y"-knop (= X en Y registers verwisselen)

Programmeren met Visula Basic – Les 3 Oplossing van de oefeningen –In een algemene module (*.bas-file) volgende algemene code invoeren: Public Sub StackUp() Les2_RPNCalculator.txtStackT.Text = Les2_RPNCalculator.txtStackZ.Text Les2_RPNCalculator.txtStackZ.Text = Les2_RPNCalculator.txtStackY.Text Les2_RPNCalculator.txtStackY.Text = Les2_RPNCalculator.txtStackX.Text End Sub Deze subroutine "schuift" de gegevens in de registers naar boven: T  Z  Y  X

Programmeren met Visula Basic – Les 3 Oplossing van de oefeningen Public Sub StackDown() Les2_RPNCalculator.txtStackX.Text = Les2_RPNCalculator.txtStackY.Text Les2_RPNCalculator.txtStackY.Text = Les2_RPNCalculator.txtStackZ.Text Les2_RPNCalculator.txtStackZ.Text = Les2_RPNCalculator.txtStackT.Text End Sub Deze subroutine "schuift" de gegevens in de registers naar beneden: X  Y  Z  T

Programmeren met Visula Basic – Les 3 Oplossing van de oefeningen Public Sub SwitchXY() Dim strTemp As String strTemp = Les2_RPNCalculator.txtStackX.Text Les2_RPNCalculator.txtStackX.Text = Les2_RPNCalculator.txtStackY.Text Les2_RPNCalculator.txtStackY.Text = strTemp End Sub Deze subroutine verwisselt de gegevens in de X en Y registers: X  Y Opgelet: er wordt hierbij een hulpvariabele (strTemp) gebruikt!

Programmeren met Visula Basic – Les 3 Oplossing van de oefeningen Deze drie subroutines volstaan om alle gebruikelijke bewerkingen met de stapelgeheugens uit te voeren. Opgelet: aangezien deze algemene module gebruik maakt van objecten uit een andere module moet de volledige naam van deze objecten worden gebruikt: Les2_RPNCalculator.txtStackX i.p.v. txtStackX

Programmeren met Visula Basic – Les 3 Oplossing van de oefeningen In de form-module wordt aan de click-event van de command-knoppen de volgende code verbonden: "ENTER" StackUp "DOWN" StackDown " X  Y" SwitchXY

Programmeren met Visula Basic – Les 3 Oplossing van de oefeningen De knoppen voor de hoofdbewerkingen krijgen de volgende code: Private Sub cmdPlus_Click() Dim strResultaat As String strResultaat = Str(Val(txtStackX.Text) + Val(txtStackY.Text)) StackDown txtStackX.Text = strResultaat End Sub Deze bewerking aanpassen voor de andere knoppen.

Programmeren met Visula Basic – Les 3 Lussen – Principes Nut: het herhaaldelijk uitvoeren van een reeks instructies Soorten: –onbeperkt herhalende lussen: deze lussen hebben geen voorziening om te eindigen zolang het programma loopt (worden verder niet besproken) –begrensde lussen: deze lussen eindigen indien aan een bepaalde voorwaarde al dan niet is voldaan

Programmeren met Visula Basic – Les 3 Lussen – Principes Onderdelen: –Beginpunt: plaats waar de lus begint. –Eindpunt: plaats waar de lus eindigt en terug naar het beginpunt wordt gestuurd. –Eindvoorwaarde: een test die bepaalt of de lus al dan niet wordt beëindigd. Deze test bevindt zich ergens tussen beginpunt en eindpunt. –"Body" van de lus: instructies die herhaaldelijk worden uitgevoerd

Programmeren met Visula Basic – Les 3 Lussen – Principes Beginpunt Eindpunt Test & Instructies Vervolg

Programmeren met Visula Basic – Les 3 Lussen – Principes Plaats van de eindvoorwaarde-test -Onmiddellijk na het beginpunt -De lus kan reeds worden beëindigd vooraleer er enige instructie is uitgevoerd -Onmiddellijk vóór het eindpunt -De instructies worden minstens eenmaal uitgevoerd -In de "body" -Een deel van de instructies wordt minstens eenmaal uitgevoerd; een andere deel wordt misschien nooit uitgevoerd. -Een combinatie van bovenstaande mogelijkheden.

Programmeren met Visula Basic – Les 3 Lussen – Principes De meest primitieve vorm van een lus bestaat uit: –een "label" (het beginpunt) –een sprongopdracht ("goto label" = het eindpunt) –een test ("if.. then") die al dan niet de sprongopdracht aanstuurt Dergelijke lussen zijn moeilijk te herkennen, moeilijk te controleren en geven snel aanleiding tot fouten. (zie Les3A)

Programmeren met Visula Basic – Les 3 Lussen – Do … Loop De gestructureerde lus: DoBeginpunt […instructies] If … Then Exit Dotest om de lus te verlaten […instructies] LoopEindpunt Het is onmiddellijk duidelijk waar de lus begint en eindigt en waar de test staat die de lus bestuurt. (zie Les3B)

Programmeren met Visula Basic – Les 3 Lussen – Do … Loop Bijzondere vormen –eindvoorwaarde-test aan het begin of het einde van de lus. I.p.v. de "Exit Do" kan dan gebruik worden gemaakt van de "While" of "Until" test. "While": de lus gaat verder zolang de "While" voorwaarde "True" is. "Until": de lus stopt wanneer de "Until" voorwaarde "True" is.

Programmeren met Visula Basic – Les 3 Lussen – Do … Loop –Voorbeeld (zie Les3C) Do While intTeller < 1000 … Loop of Do Until intTeller >= 1000 … Loop Bemerk de logische omkering van de test!

Programmeren met Visula Basic – Les 3 Lussen – Do … Loop –Indien de "While/Until"-test aan de "Do" wordt gekoppeld kan de lus worden afgebroken vooraleer enige instructie wordt uitgevoerd. –Indien de "While/Until" test aan de "Loop" wordt gekoppeld, worden de instructies in de lus minstens eenmaal uitgevoerd. –In eenzelfde Do … Loop kan tegelijk een"While" of "Until"-voorwaarde aan de "Do" worden gekoppeld, een "While" of "Until"- voorwaarde aan de "Loop" worden gehecht en één of meerdere "Exit Do" instructies in de "Body" worden voorzien.

Programmeren met Visula Basic – Les 3 Lussen – For … Next Een bijzondere vorm van een lus, te gebruiken wanneer men van bij het begin van de lus reeds weet hoeveel maal de lus moet worden doorlopen. For teller = beginwaarde To eindwaarde [Step stap] [instructies] [Exit For] [instructies] Next [teller]

Programmeren met Visula Basic – Les 3 Lussen – For … Next De "For"-instructie: initialiseert de teller met de beginwaarde test de teller t.o.v. de eindwaarde; de lus eindigt indien –teller >= eindwaarde (stap>=0) of –teller <= eindwaarde (stap <0) De "Next"-instructie telt de waarde van stap op bij teller. (Zie Les3D)

Programmeren met Visula Basic – Les 3 Lussen – For Each … Next Zoals een "For … Next"-lus, maar met een impliciete "teller" die alle elementen van een Collectie-object of een array doorloopt. For Each variabele In groep [instructies] [Exit For] [instructies] Next [variabele] Opmerking: Variabele moet een Variant zijn!

Programmeren met Visula Basic – Les 3 Lussen – For Each … Next De instructies van de lus worden eenmaal uitgevoerd voor elk element van de groep, tenzij de lus voortijdig wordt verlaten met de "Exit For"- instructie.

Programmeren met Visula Basic – Les 3 Lussen – Nesting Een lus kan een andere lus omvatten: dit wordt het "nesten" van lussen genoemd. Opletten voor het "kruisen" van lussen: dit geeft een fout bij het uitvoeren!

Programmeren met Visula Basic – Les 3 Lussen – Oefeningen 1.Maak een "Do … Loop"- lus die op exact dezelfde wijze werkt als een "For … Next"-lus 2.Test de verwerkingssnelheid van de verschillende vormen van lussen (primitieve lus, Do … Loop (Exit Do, While, Until), For … Next), zowel interpretatief als gecompileerd en bespreek de verschillen.