Hoofdstuk 5: Functies voor getallen en teksten

Vergelijkbare documenten
Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 6: Zelf functies maken

Hoofdstuk 6: Zelf functies maken

Hoofdstuk 7: Werken met arrays

Hoofdstuk 3: Keuzestructuren

Hoofdstuk 9: Menu s toevoegen

Hoofdstuk 7: Werken met arrays

Hoofdstuk 4: Nieuwe objecten

Hoofdstuk 4: Nieuwe objecten

Hoofdstuk 2: Werken met variabelen

Hoofdstuk 2: Werken met variabelen

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.

Hoofdstuk 1: Een eerste Visual Basic project

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens

Hoofdstuk 1: Een eerste Visual Basic project

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Datum, Tijd en Timer-object

Variabelen en statements in ActionScript


6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens

Een spoedcursus python

6.2 VBA Syntax. Inleiding Visual Basic

BEGINNER JAVA Inhoudsopgave

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Les C-01: Algoritmen David Lans

VAN HET PROGRAMMEREN. Inleiding

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

II. ZELFGEDEFINIEERDE FUNCTIES

Stel dat u 15 tellers nodig heeft. Dat kunt u een array van tellers als volgt declareren:

Programmeren: Visual Basic

VBA voor Doe het Zelvers deel 20

Algoritmen en programmeren: deel 2 - basis

Programmeren klas 4. Opdracht PSD Visual Basic Code Code met Inputbox i.p.v. TextBox 1. Lees een getal LEES g. DIM kw AS INTEGER DIM kw AS INTEGER

Programmeren klas 4. Opdracht PSD Visual Basic Code Code met InputBox i.p.v. TextBox 1. Lees een getal LEES g. DIM kw AS INTEGER DIM kw AS INTEGER

OEFENINGEN PYTHON REEKS 1

Som Van Twee Getallen

extra oefening algoritmiek - antwoorden

Uitwerking tentamen Analyse van Algoritmen, 29 januari

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

PYTHON REEKS 1: BASICS. Mathias Polfliet

Inleiding Visual Basic en VBA. Karel Nijs 2009/01

Bij dit hoofdstukken horen geen opgaven.

VBA voor Doe het Zelvers Deel 7

Programmeren met Arduino-software

OEFENINGEN PYTHON REEKS 1

opdrachten algoritmiek - antwoorden

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

talstelsels F. Vonk versie

Informatica: C# WPO 7

1 Werken met (keuze)lijstjes: de control listbox

1) Een sequentieel bestand schrijven

Inhoudsopgave Visual Basic 6.0

Informatica: C# WPO 11

[8] De ene 1 is de andere niet

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 april 2014

OEFENINGEN PYTHON REEKS 1

Opdracht Informatica Tutorial Visual Basic

Opmerkingen en vragen aan Ultieme vraag: Hoe beïnvloedt dit de winstkansen?

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

1. REGELS VAN DEELBAARHEID.

Talstelsels en getalnotaties (oplmodel)

Verzamelingen, Lijsten, Functioneel Programmeren

Lab Webdesign: Javascript 3 maart 2008

= (antwoord )

Functioneel programmeren

Informatica: C# WPO 2

Vakgroep CW KAHO Sint-Lieven

Verzamelingen, Lijsten, Functioneel Programmeren

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

4,7. Praktische-opdracht door een scholier 1959 woorden 1 juni keer beoordeeld

Parallelle Poort Aansturen Met Visual Basic

Javascript oefenblad 1

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

VBA voor ACCESS Bureau voor Taal en Informatica 19 juni 2009 Werfkade LG Hoogezand Tel

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Kennismaking met programmeren

RCL Arduino Workshop 1

Bij elkaar behorende instructies die een probleem oplossen of een taak uitvoeren.

Zelftest Inleiding Programmeren

Haskell: programmeren in een luie, puur functionele taal

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Android apps met App Inventor 2 antwoorden

Programmeren in Excel VBA beginners. Karel Nijs 2010/09

Programmeren in Excel VBA beginners. Karel Nijs 2010/09

Dieper in Visual Basic.Net

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Probleem met dobbelspel. 2IP05: Programmeren Blok A. 5 spelers,2 dobbelstenen. wstomv/edu/2ip05/ Per ronde werpt elke speler 1

Programmeeropgaven. Sem Prog DD

Les B-02 Technologie: elektronische schakelingen

Faculteit Economie en Bedrijfskunde

Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal.

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

1 Inleiding in Functioneel Programmeren

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

100 in de hoofdrol. NUWiskunde 2017 Desiree van den Bogaart

Variabelen gebruiken in ons programma

Transcriptie:

Programmeren in Microsoft Visual Basic 2010 Express, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Vespucci College, Marnix Gymnasium Rotterdam, december 2011 Hoofdstuk 5: Functies voor getallen en teksten 5.0 Leerdoel In dit vijfde hoofdstuk van de cursus Programmeren in Visual Basic leer je: - kennis maken met de volgende onderdelen van een Visual Basic project: de functies op getallen: Int, Rnd, /, \, Mod de functies op teksten: +, Len, Mid We doen dat aan de hand van enkele voorbeelden: A. De dobbelsteen B. Het schrikkeljaar C. De woordenbouwer D. De 6 e letter E. De datum-dag calculator Met dit hoofdstuk ben je, afhankelijk van je tempo, ongeveer 2 lesuren van 50 minuten bezig. 48 Cursus programmeren in Visual Basic - hoofdstuk 5: functies voor getallen en teksten

5.1 Dobbelen met de computer: de wiskundige functies Rnd en Int Stel je voor dat je Visual Basic met dobbelstenen wilt laten gooien. Visual Basic dient daartoe een willekeurig getal tussen de waarden 1 t/m 6 te produceren. Ook in andere situaties, zoals bij het gooien van kop of munt (0 of 1), roulette (0 t/m 36) of het afroepen van Bingo getallen (0 t/m 75) moet Visual Basic willekeurige getallen uit een bepaald bereik kunnen produceren. Je kunt daarvoor de wiskundige functies Rnd en Int op een slimme manier te gebruiken. De functie Rnd produceert een willekeurig getal tussen 0 en 1. Vermenigvuldig je dit getal met 6, dan krijg je een getal tussen 0 en 6. Als je hier 1 bij optelt, dan krijg je een getal tussen 1 en 7. De functie Int rondt een getal naar beneden af tot een geheel getal. De uitdrukking: Int(6 * Rnd + 1) levert dus een geheel getal uit het waardenbereik 1 t/m 6. Bouw het project Dobbelsteen1, bestaand uit een formulier frmdobbelsteen, een knop btndobbel en een tekstveld txtdobbelsteen en voeg aan de knop btndobbel de onderstaande code toe. Private Sub btndobbelsteen_click() Dim Aantal As Integer Aantal = Int(6 * Rnd + 1) txtdobbelsteen.text = Aantal Kopieer het project naar een project Dobbelsteen2. Wijzig in dit project het tekstveld txtdobbel in een afbeeldingsveld pctdobbelsteen, maak in het programma Paint zes plaatjes van de mogelijke ogenaantallen van een dobbelsteen en sla de plaatjes 1.bmp t/m 6.bmp op in de submap Dobbelsteen / Bin / Debug van je project. Zorg ervoor dat nu niet de waarde van de dobbelsteen in een tekstveld (txtdobbel) maar het bijbehorende plaatje in een afbeelding (pctdobbel) wordt weergegeven. Private Sub btndobbelsteen_click() Dim Aantal As Integer Aantal = Int(6 * Rnd + 1) If Aantal = 1 Then pctdobbelsteen.load("1.bmp") If Aantal = 2 Then pctdobbelsteen.load("2.bmp") If Aantal = 3 Then pctdobbelsteen.load("3.bmp") If Aantal = 4 Then pctdobbelsteen.load("4.bmp") If Aantal = 5 Then pctdobbelsteen.load("5.bmp") If Aantal = 6 Then pctdobbelsteen.load("6.bmp") Cursus programmeren in Visual Basic - hoofdstuk 5: functies voor getallen en teksten 49

5.2 Delingen met de wiskundige functies /, \ en Mod Rond het jaar 2000 ontstond discussie of het jaartal 2000 nu een schrikkeljaar was of niet. Het volgende PSD geeft een algoritme om te bepalen of een jaartal een schrikkeljaar is of niet: Lees Jaartal Jaartal deelbaar door 4? Ja Nee Jaartal deelbaar door 100? Ja Nee Jaartal deelbaar door 1000? Ja Nee Schrikkeljaar Geen Schrikkeljaar Schrikkeljaar Geen schrikkeljaar Volgens het bovenstaande PSD is het is dus niet zo dat elk jaartal dat deelbaar is door 4 automatisch een schrikkeljaar is. De jaartallen die deelbaar zijn door honderd zijn dat namelijk niet, met uitzondering van de jaartallen die deelbaar zijn door duizend. Wil je van dit PSD een Visual Basic project maken dan moet je dus functies kunnen gebruiken of een getal deelbaar is door 4 of niet. We gebruiken daarbij dat Visual Basic drie delingen kent: Een gewone deling met de functie / en een deling met als uitkomst een geheel getal met de functie \. N.B. De functie \ rondt altijd naar beneden af. Dus: 27 / 4 levert als resultaat 6,75 en 27 \ 4 levert als resultaat 6. De functie \ kijkt dus altijd hoeveel keer een getal in een ander getal past en verwaarloost de rest. Wil je weten hoe groot die rest juist is dan gebruik je de functie Mod 27 Mod 4 geeft als resultaat 3 Het getal 4 past immers 6 keer in het getal 27. Na deling blijft er een rest 3 over. De functie Mod wordt gebruikt in situaties waarin je na wilt gaan of een bepaald getal deelbaar is door een ander getal. Immers: 24 Mod 4 geeft als resultaat 0 en dat betekent dat 24 deelbaar is door 4. We gebruiken de functie Mod in het project Het schrikkeljaar. De gebruikersinterface en de programmacode van dit project zijn op de volgende pagina weergegeven. 50 Cursus programmeren in Visual Basic - hoofdstuk 5: functies voor getallen en teksten

Bouw het project Schrikkeljaar, bestaand uit een formulier frmschrikkeljaar, een tekstveld txtschrikkeljaar, een knop btnschrikkeljaar en een label lblschrikkeljaar en voeg aan de knop btnschrikkeljaar de onderstaande code toe. Private Sub btnschrikkel_click() Dim Jaartal, Rest4, Rest100, Rest1000 As Integer Dim Schrikkel As Boolean Jaartal = txtschrikkeljaar.text Rest4 = Jaartal Mod 4 Rest100 = Jaartal Mod 100 Rest1000 = Jaartal Mod 1000 (#1) If Rest4 > 0 Then Schrikkel = False Else If Rest100 > 0 Then Schrikkel = True Else If Rest1000 > 0 Then Schrikkel = False Else Schrikkel = True (#2) If Schrikkel = True Then lblschrikkeljaar.text = "Dit is een schrikkeljaar" Else lblschrikkeljaar.text = "Dit is geen schrikkeljaar" N.B De If Then Else regels (#1) en (#2) moeten op één programmeerregel komen. Cursus programmeren in Visual Basic - hoofdstuk 5: functies voor getallen en teksten 51

5.3 Een woord opbouwen uit letters met + Bouw het project Woordenbouwer, bestaand uit een formulier frmwoordenbouwer, een tekstveld txtletter, een knop btnbouwwoord en een label lblwoord en voeg aan de knop btnbouwwoord de onderstaande code toe. Private Sub btnbouwwoord_click() Dim Letter, Oudewoord, Nieuwewoord As String Letter = txtletter.text txtletter.text = "" Oudewoord = lblwoord.text Nieuwewoord = Oudewoord + Letter lblwoord.text = Nieuwewoord Het programma haalt steeds een letter op uit het tekstveld, Letter = txtletter.text maakt het tekstveld vervolgens leeg, txtletter.text = "" haalt het tot dan toe opgebouwde woord uit het label plakt de opgehaalde letter achter aan het woord schrijft het aangepaste woord weer naar het label terug Oudewoord = lblwoord.text Nieuwewoord = Oudewoord + Letter lblwoord.text = Nieuwewoord Zoals je ziet kan je dus ook functies op teksten toepassen. De functie +, die verschillende stukken tekst aan elkaar plakt, is veruit de eenvoudigste functie. 52 Cursus programmeren in Visual Basic - hoofdstuk 5: functies voor getallen en teksten

5.4 De functies Len en Mid Bij sommige programma s is het van belang om informatie bij te houden van teksten, zoals hun lengte of letters op een bepaalde positie. Denk aan spelletjesprogramma s als Lingo of Galgje, waarbij gekeken wordt in hoeverre de door de speler opgegeven woorden overeenkomen met een te raden woord. We bekijken eerst maar weer eens een eenvoudig voorbeeld. We bouwen een project De 6 e letter, dat de zesde letter van een opgegeven woord opzoekt en weergeeft. Bouw het project De 6 e letter, bestaand uit een formulier frm6eletter, een tekstveld txtwoord, een knop cmdpakletter en een tekstveld txtletter en voeg aan de knop cmdpakletter de onderstaande code toe. Private Sub cmdpakletter_click() Dim Woord, Letter As String Dim Lengte As Integer Woord = txtwoord.text Lengte = Len(Woord) If Lengte > 5 Then Letter = Mid(Woord, 6, 1) Else MsgBox Prompt:="Woord is te klein" End If txtletter.text = Letter De functie Len( Stringnaam ) geeft de lengte van een String. De functie Mid( Stringnaam, vanaf positie, aantal posities ) geeft een deel van een String. De opdracht: Letter = Mid(Woord, 6, 3) Zou als resultaat hebben gehad dat het woord mix werd afgedrukt in plaats van alleen de letter m. Natuurlijk zijn de functies die in de paragrafen 5.1 t/m 5.4 niet voor niets behandeld. De bedoeling is dat je ze nu gaat toepassen in enkele opdrachten. Cursus programmeren in Visual Basic - hoofdstuk 5: functies voor getallen en teksten 53

5.5 De datum-dag calculator De wetenschapper Gauss bedacht het volgende algoritme voor het bepalen op welke dag van de week een bepaalde datum valt (zie ook de lesbrief over algoritmen): Lees Jaar Lees Maand Lees Dag Maand > 2 Ja Nee Maand = Maand 2 Maand = Maand + 10 Jaar = Jaar 1 Eeuw = Jaar \ 100 Rest = Jaar Mod 100 A = ( 13 * Maand 1 ) \ 5 B = Rest \ 4 C = Eeuw \ 4 D = A + B + C + Dag + Rest 2 * Eeuw + 700 Weekdag = D Mod 7 De uitkomst D bepaalt de dag van de week: 0 = zondag, 1 = maandag,, 6 = zaterdag. Bouw het project De Datum Dag Calculator met een volgende gebruikersinterface: 54 Cursus programmeren in Visual Basic - hoofdstuk 5: functies voor getallen en teksten

5.6 De priembepaler Een priemgetal is een getal dat slechts deelbaar is door 1 of door zichzelf. Bouw een project De priembepaler dat nagaat of een door de gebruiker opgegeven getal een priemgetal is (zie ook de lesbrief over algoritmen): 5.7 Van binair naar decimaal Bouw een project Van Binair naar Decimaal dat een binair getal als String inleest en aan de hand van de enen en nullen op de verschillende posities nagaat wat de decimale waarde van het getal is (zie ook de lesbrief over algoritmen). Herinner dat de decimale waarde van het getal: 1 1 0 1 0 0 1 0 met een volgende omrekening: 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 128 64 32 16 8 4 2 1 kan worden bepaald op 128 + 64 + 16 + 2 = 210 Cursus programmeren in Visual Basic - hoofdstuk 5: functies voor getallen en teksten 55