Les 2 Basisbouwstenen (deel 1)

Slides:



Advertisements
Verwante presentaties

Advertisements

KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)
Uitwerking tentamen Functioneel Programmeren 29 januari 2009.
Les 1 Objecten, Eigenschappen en Gebeurtenissen
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Inleiding Programmeren met Visual Basic Karl Moens.
VBA en VBS Een introductie.
Computervaardigheden Hoofdstuk 4 — Scripting (Let op: dit is enkel voor studenten Biologie.)
Hoofdstuk 6: Controle structuren
VHDL Peter Slaets KHLim Functies en procedures Functies –type conversie functies »bit vector to integer en omgekeerd –verkorte componenten met maar 1 output.
Hoofdstuk 2 Hallo, C# !.
Assenstelsels en het plotten van Functies in LOGO
Frank Stalpers en Ad Baars
Numerieke Natuurkunde
Herhaling: For, While en Do
Methoden en argumenten
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.
Visual Basic.
PHP functies.
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Inleiding tot Excel.
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.
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Les 6 Menu Programmeren met Visual Basic Karl Moens.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
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.
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Les 4 De Muis (deel 1) Programmeren met Visual Basic Karl Moens.
Variabelen en berekeningen
Les 3 Basisbouwstenen (deel 2) Programmeren met Visual Basic Karl Moens.
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
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,
Les 5 De Muis (deel 2) Drag & Drop
Instructie Programmeren Task 7
Les 0 Structured Query Language SQL. Programma Les 0 – Introductieopdracht Les 1 Les 2 Les 3 Schriftelijke toets.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java & het Web Programma: Contexts Listeners Scope/Attributes Thread safety.
Welkom! maandag 16 November 2015 Les B-2.
Variabelen. Wat zijn variabelen? In een programmeertaal zijn er “dingen” nodig die ervoor zorgen dat het programma informatie voor korte of langere tijd.
Les 3 - Operators Workshop Php Basic. ICT Academy Php Basic Content Operators Wiskundig Toewijzing Vergelijking.
Herhalingsoefeningen Variabelen - voorwaarden. Flying banner  Toon een tekst op positie x: -2.0 en y: 0 (dat is links buiten het beeldscherm)  Laat.
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)
Robby de Robot. Javascript Tot nu toe gebruikt: – document.write(" Hello World "); – alert("tekst") – Toon een waarschuwingsvenster – prompt("tekst",
Gameprogrammeren: Keuzeopdrachten
Kennismaking met programmeren
Gameprogrammeren: Expressies
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Gameprogrammeren: Afsluiting
Gameprogrammeren: Herhalingen
Tinpro015b-les3 Hfdst 3,4 Meer operatoren Functies.
Tinpro015b-les6 Templates.
Tinpro015b-les4 Klassen.
Programmeren woensdag 4 oktober 2017.
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Kennismaking met programmeren
Small Basic Console deel 2
Small Basic Console deel 2
SQL Les February 2019.
Software Development fundamentals
Python – For loop + strings
Transcript van de presentatie:

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

Overzicht Oplossing van de vorige oefening Basisbouwstenen: Procedures Sub-procedures Functions Property-procedures Tests Oefening

Oplossing van de oefening Opgave: de schuifbalken telkens met 1 / 1% of 10 / 10% laten wijzigen afhankelijk van de instelling “waarden” of “percentages”. Oplossing: de waarde van de schuifbalk moet een geheel getal zijn en 1% van de max. waarde van de aparte kleuren is 2,55 de maximale "max" waarde van de schuifbalk is 32767; kiezen we 25500 als maximale waarde, dan is: small change: 1 =100 1% = 255 large change: 10 = 100 10% = 2550 alle waarden voor de RGB-functie moeten dan wel door 100 gedeeld worden

Oplossing van de oefening Programmacode: initialisatie: sngFactor = 100 optWaarde_Click() sngFactor = 100 hsbBlauw.SmallChange = sngFactor hsbBlauw.LargeChange = sngFactor * 10 optPercentage_Click() sngFactor = 255 Change-event van de schuifbalken frmLes1.BackColor = RGB(hsbRood.Value / 100, hsbGroen.Value / 100, hsbBlauw.Value / 100) Idem voor de andere kleuren Idem voor de andere kleuren

Basisbouwstenen: procedures Een VB-programma bestaat uit verschillende procedures (bijv. event-procedures) Het gebruik van aparte procedures laat toe: het programma op te splitsen in logische onderdelen; herhalende onderdelen slechts 1 keer te coderen;

Procedures Voordelen Soorten eenvoudiger te debuggen:elk onderdeel omvat slechts 1 logische eenheid “code re-use”: procedures opnieuw gebruiken als onderdelen van andere programma’s Soorten Sub-procedures: geven geen waarde terug Functie-procedures: geven een waarde terug Property-procedures: om met objecten te werken

Sub-procedures Een sub-procedure is een blok programmacode dat wordt uitgevoerd als gevolg van een (interne of externe) event Syntax [Private|Public][Static]Sub procedurenaam (argumenten) instructies End Sub Private of Public? Een Private-procedure kan enkel worden aangeroepen vanuit procedures uit de eigen module Een Public-procedure kan worden aangeroepen vanuit alle andere procedures in alle andere modules

Gebruik "Public" waar nodig en Sub-procedures Gouden Regel 3: Gebruik "Public" waar nodig en "Private" waar mogelijk Door het gebruik van "Public" procedures te beperken is er minder gevaar dat per vergissing een verkeerde procedure wordt aanroepen. "Public"-procedures horen meestal thuis in een Standard-module en niet in een Form-module.

Sub-procedures In een "Static"-procedure blijven de waarden van alle lokale variabelen (d.w.z. die binnen deze procedure zijn gedefinieerd) bewaard tussen de verschillende aanroepen door. Normaal worden alle lokale variabelen gereset bij iedere aanroep. (zie Les2A.vbp) Bij de aanroep van een procedure kunnen argumenten worden meegegeven (zie verder "Argumentenlijst"). Het sub-procedureblok wordt beëindigd met "End Sub". De uitvoering van een sub-procedure kan voortijdig worden beëindigd met de "Exit Sub" instructie.

Argumentenlijst Argumenten kunnen op verschillende wijze worden doorgegeven. [ByVal | ByRef] varnaam[( )] [As type] In principe worden de argumenten "By Reference" doorgegeven: de variabele in de procedure verwijst rechtstreeks naar de variabele in de aanroepende procedure en kan dus worden gewijzigd! "ByRef" is dus default en mag worden weggelaten. Indien "ByVal" wordt gebruikt wordt een nieuwe lokale variabele aangemaakt met als waarde de waarde van de variabele in de aanroepende procedure. (zie Les2B.vbp) "ByVal" is aan te bevelen. Meerdere argumenten worden van elkaar gescheiden met een komma.

Argumentenlijst Optionele argumenten (bepaald aantal) Optional [ByVal | ByRef] varnaam[( )] [As type] [= defaultwaarde] Geeft aan dat dit argument optioneel is. Indien dit argument niet wordt meegegeven, wordt (indien voorzien) de defaultwaarde gebruikt. Alle optionele argumenten moeten achteraan de argumentenlijst staan. Kan gecombineerd worden met ByVal of ByRef. Indien het type van het optionele argument een variant is, kan met de "IsMissing" functie worden nagegaan of dit argument is ingevuld of niet. (zie Les2C.vbp)

Argumentenlijst Optionele argumenten (onbepaald aantal) Optional ParamArray varname( ) [As Variant] Is steeds het laatste argument van de argumentenlijst Dit argument kan alleen een array van variants zijn en het aantal elementen van de array moet niet op voorhand worden bepaald. Het effectieve aantal elementen kan worden bepaald met de LBound (benedengrens) en UBound (bovengrens) functies. ByVal of ByRef kan niet worden gebruikt (het is steeds impliciet "ByRef")

Functie-procedures Alles wat is gezegd over sub-procedures geldt ook voor functie-procedures (inclusief argumentenlijsten). Syntax: [Private|Public][Static]Function functienaam (argumenten) [As type] instructies End Function Een functie geeft een waarde terug en dus moet het variabeletype van een functie worden gedefinieerd (default is "Variant")

Functie-procedures De return-waarde moet worden toegewezen aan de functienaam om deze door te geven. Private Function Optelling (intWaarde1 As Integer, intWaarde2 As Integer) As Integer Optelling=intWaarde1 + intWaarde2 End Function De functie wordt aangeroepen zoals een ingebouwde functie, d.w.z. rechts van het '=' teken. intResultaat=Optelling(50,23)

Functie-procedures De "Exit Function" opdracht verlaat de functie voortijdig (d.w.z. voordat de "End Function" opdracht wordt bereikt. Indien geen waarde wordt toegekend aan de functie krijgt deze een default waarde mee: numerieke functies het getal 0 string functies een lege string variant functies de variantwaarde "Empty" object functies de objectwaarde "Nothing"

Property-procedures (later)

Tests "Choose"-testfunctie Syntax Choose(index, keuze-1[, keuze -2, ... [, keuze -n]]) Deze functie geeft afhankelijk van de waarde van index (1 t.e.m. n), de waarde van keuze-1, …, keuze-n terug.

Tests Voorwaarden In een test-voorwaarde worden twee expressies met elkaar vergeleken d.m.v. de volgende operatoren > groter dan >= groter dan of gelijk aan < kleiner dan <= kleiner dan of gelijk aan = gelijk aan <> niet gelijk aan Like gelijkt op een "patroon" Het patroon is een string met karakters en "wildcards": ? één willekeurig karakter * onbepaald aantal willekeurige karakters # één cijfer [karakterlijst] één karakter uit deze lijst [!karakterlijst] één karakter niet in deze lijst

Tests Als de vergelijking juist is, krijgt de voorwaarde de waarde "True"; anders is de voorwaarde "False"

Tests "Switch"-testfunctie Syntax Switch(expressie-1, waarde-1[, expressie-2, waarde-2 … [, expressie-n, waarde-n]]) Alle expessies worden ge-evalueerd en de overeenstemmende waarde van de eerste expressie die "True" als resultaat heeft, wordt door deze functie teruggegeven. Voorbeeld: Taal = Switch(Stad = "London", "Engels", Stad = "Roma", "Italiaans", Stad = "Paris", "Frans")

Tests "IIf"-testfunctie Syntax IIf(expressie, true-deel, false-deel) Deze functie evalueert de expressie: als de expressie "True" is wordt het "true-deel teruggegeven, zoniet wordt het "false-deel" teruggegeven.

Tests "If … then … else"-test Syntax If voorwaarde1 Then [instructieblok-1] [ElseIf voorwaarde2 Then [instructieblok -2]] ... [Else [instructieblok -n]] End If De verschillende voorwaarden zullen achtereenvolgens worden getest, tot als er een "True" is: het daaropvolgende instructieblok wordt uitgevoerd en het "If"-blok wordt dan verlaten.

Tests Indien geen enkele voorwaarde "True" is wordt het instructieblok na de "Else" uitgevoerd.

Tests "Select…Case"-test Syntax Select Case testexpressie Case expressielijst-1 instructies [Case expressielijst-2 … Case expressielijst-n instructies] [Case Else End Select

Tests De expressielijsten worden achtereenvolgens vergeleken met de testexpressie. Telkens het resultaat "True" is worden de daaropvolgende instructies uitgevoerd. Indien geen enkele expressielijst "True" geeft, worden de instructies na de "Case Else" uitgevoerd. De expressielijst: een lijst variabelen, getallen of strings met komma's van elkaar gescheiden (bijv. intGetal, 0, 1, 2, 3, "ABC", "DEF")

Tests expressie1 To expressie2 Alle waarden van expressie1 tot en met expressie2 Bijv.: Case 20 To intMaximum Is vergelijjkingsoperator expressie Bijv.: Case Is > 20 De verschillende vormen van de expressielijst mogen worden gecombineerd: Case 1, 2, 4 To 5, Is >25

Oefening Eenvoudige rekenmachine "RPN"-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. "RPN"-rekenmachine Ontwerp een rekenmachine die volgens de RPN-principes werkt. zie: http://www.hpmuseum.org/rpn.htm