Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdAnnemie Wauters Laatst gewijzigd meer dan 9 jaar geleden
1
Hoofdstuk 3 - Conditionele logica
Inleiding Controle structuren If/Then Selection Structure If/Then/Else Selection Structure While Repetition Structure Do While/Loop Repetition Structure Do Until/Loop Repetition Structure Assignment Operators For/next Select Case Exit keyword Logische operatoren Visual Basic.NET
2
3.1 Inleiding Alle programma’s kunnen geschreven worden in termen van 3 controle structuren Sequentie Selectie Iteratie Visual Basic.NET
3
3.2 Controle structuren Selectie structuren Iteratie structuren
If/Then If/Then/Else Select Case Iteratie structuren While Do While/Loop Do/Loop While Do Until/Loop Do/Loop Until For/Next For Each/Next Visual Basic.NET
4
3.3 If/Then Uitvoeren van op 1 conditie gebaseerd statement Voorbeeld
If studentGrade >= 60 Then Console.WriteLine(“Passed”) End If DE conditie evalueert naar een boolean type (true of false) Visual Basic.NET
5
3.4 If/Then/Else Voorbeeld
If studentGrade >= 60 Then Console.WriteLine(“Passed”) Else Console.WriteLine(“Failed”) End If Geneste If/Then/Else structuren => ElseIf keyword If studentGrade = 100 Then Console.WriteLine(“Whaw”) Elseif studentGrade >= 60 Then Visual Basic.NET
6
3.5 While De lus zal worden doorlopen zolang aan de voorwaarde wordt voldaan. Voorbeeld Dim product As Integer=2 While product <=1000 product = product * 2 Console.Write (product & vbtab) End While Resultaat : Smallest power of 2 greater than 1000 is 1024 Visual Basic.NET
7
3.6 Do While Idem While Voorbeeld Dim product As Integer=2
Do While product <=1000 product = product * 2 Console.Write (product & vbtab) Loop Resultaat : Visual Basic.NET
8
3.7 Do Until/Loop De instructies binnen de do lus worden uitgevoerd zolang de voorwaarde False is. Voorbeeld Dim product As Integer=2 Do Until product >1000 product = product * 2 Console.Write (product & vbtab) Loop Resultaat : Visual Basic.NET
9
3.8 Do/Loop While De lus zal worden doorlopen zolang aan de voorwaarde wordt voldaan, maar wordt minstens 1 keer uitgevoerd Voorbeeld Dim product As Integer=2 Do product = product * 2 Console.Write (product & vbtab) Loop While product <=1000 Resultaat : Visual Basic.NET
10
3.9 Do/Loop Until De instructies binnen de do lus worden uitgevoerd zolang de voorwaarde False is, maar worden minstens 1 keer uitgevoerd. Voorbeeld Dim product As Integer=2 Do product = product * 2 Console.Write (product & vbtab) Loop Until product >1000 Resultaat : Visual Basic.NET
11
3.10 Assigment operators Binaire operatoren Voorbeeld
+, -, *, ^, &, / , \ Gebruik variable = variable operator expression variable operator= expression Voorbeeld Optellen assignment operator, += value = value + 3 value += 3 / ; deling float; \ delen integer Visual Basic.NET
12
3.11 For/Next Een opgegeven aantal maal herhalen van een reeks statements Voorbeeld Dim sum = 0, number As Integer ' add even numbers from 2 to 100 For number = 2 To 100 Step 2 sum += number Next Resultaat : 2550 Sum = Visual Basic.NET
13
3.12 Voorbeeld For/Next : intrestberekening
Een persoon plaats 1000$ op een spaarrekening tegen een intrest van 5%. Veronderstel dat de intrest op het spaarboekje blijft staan. Bereken en print per jaar, over een periode van 10 jaar, het bedrag op het spaarboekje. Berekening : bedrag(1 + intrestvoet) aantal jaren Opgave : persoon heeft bedrag van 1000 $ op zijn rekening staan aan een interest van 5%. Amount : initieel bedrag op de rekening Rate ; interestvoet N : aantal jaren Output : bedrag op rekening na n jaren We hebben een loop nodig om de 10 jaren dat het geld op de rekening blijft staan te overlopen. Visual Basic.NET
14
3.12 Voorbeeld For/Next : intrestberekening
1 ' Interest.vb 2 ' Calculating compound interest. 3 4 Imports System.Windows.Forms 5 6 Module modInterest 7 Sub Main() 9 Dim amount, principal As Decimal ' dollar amounts Dim rate As Double ' interest rate Dim year As Integer ' year counter Dim output As String ' amount after each year 14 principal = rate = 0.05 17 output = "Year" & vbTab & "Amount on deposit" & vbCrLf 19 ' calculate amount after each year For year = 1 To 10 amount = principal * (1 + rate) ^ year output &= year & vbTab & _ String.Format("{0:C}", amount) & vbCrLf Next 26 ' display output MessageBox.Show(output, "Compound Interest", _ MessageBoxButtons.Ok, MessageBoxIcon.Information) 30 End Sub ' Main 32 33 End Module ' modInterest Namespace nodig voor Messagebox init bepaalt bedrag op rekening Genereert output : Jaar gevolgd door tab gevolgd door bedrag (geformatteerd als currency), en een nieuwe lijn Per jaar Lijn 4 : importeren namespace voor dialoogvenster Lijn : output = aantal jaar, gevolgd door een tab karakter (vbtab, dit plaatst de cursor op de volgende kolom), methode string.format en een newline karakter(vbcrlf) om de volgende ouput op de volgende lijn te beginnen {0},... Zijn de digits die aanduiden welk argument getoond moet worden. In meer gecompliceerde format strings, zoals {0:c} , duidt de eerste digit nog steeds het argument aan. De c(currency) is een formatterings code die aanduidt hoe het bedrag geformatteerd dient te worden. Lijn 10 en 11 variabelen amount en principal zijn van het type decimal, daar we 2 cijfers na de komma nodig hebben. (Single en double laten geen juiste berekeningen toe na de komma). Lijn 11 : rate is van het type double (is een floating point nummer), want wordt gebruikt in de berekeningen. Specifieert C (voor “currency”) als formatterings code einde Visual Basic.NET
15
3.13 Select Case Meervoudige selectie Syntax
Select Case testexpression [Case expressionlist-n [statements-n]] ... [Case Else [elsestatements]] End Select met expressionlist Case value => vb. Case 1 Case value1, value2,... => vb. Case 1,5 Case value3 to value4 => vb. Case 1 to 5 Case relational operator value => vb. Case >= 5 - identieke case statements => At runtime wordt steeds de eerste case uitgevoerd => logische fout - igv case to : als eindwaarde kleiner dan beginwaarde, dan wordt dit statement nooit uitgevoerd => logische fout - Case else moet laatste conditie zijn, zoniet syntax fout Visual Basic.NET
16
3.13 Select Case Voorbeeld : afdrukken van de behaalde graad voor een aantal studenten. Invoer wordt afgesloten met –1. Igv 100, print “Perfect score”. Bereken ook per graad hoeveel studenten de graad behaald hebben. Stel volgende graden A+ : 100 A : B : 80-89 C : 70-79 D : 60-69 E : 50-59 F : 0-59 Visual Basic.NET
17
3.13 Select Case Enter a grade: 84 Letter Grade: B Enter a grade: 100
Enter a grade: 100 Perfect Score! Letter grade : A+ Enter a grade: 7 Invalid Input. Please enter a valid grade. Enter a grade: 95 Letter Grade: A Enter a grade: 78 Letter Grade: C Totals for each letter grade are: A: 2 B: 1 C: 1 D: 0 F: 0 Visual Basic.NET
18
2 ' Using the Select Case structure. 3 4 Module modEnterGrades 5
1 ' SelectTest.vb 2 ' Using the Select Case structure. 3 4 Module modEnterGrades 5 Sub Main() Dim grade As Integer = 0 ' one grade Dim aCount As Integer = 0 ' number of As Dim bCount As Integer = 0 ' number of Bs Dim cCount As Integer = 0 ' number of Cs Dim dCount As Integer = 0 ' number of Ds Dim fCount As Integer = 0 ' number of Fs 13 Console.Write("Enter a grade, -1 to quit: ") grade = Console.ReadLine() 16 ' input and process grades While grade <> -1 19 Select Case grade ' check which grade was input 21 Case ' student scored 100 Console.WriteLine("Perfect Score!" & vbCrLf & _ "Letter grade: A" & vbCrLf) aCount += 1 26 Case 90 To ' student scored 90-99 Console.WriteLine("Letter Grade: A" & vbCrLf) aCount += 1 30 Case 80 To ' student scored 80-89 Console.WriteLine("Letter Grade: B" & vbCrLf) bCount += 1 34 Declareer variabele grade van type integer lijn 8-12 variabelen die totaal aantal per graad gaan bijhouden Lijn : while loop voor ingave van grades. Stop bij ingave van grade –1 Lijn 20 : select case wordt sequentieel uitgevoerd totdat een matching waarde gevonden. Visual Basic.NET
19
35 Case 70 To 79 ' student scored 70-79
Console.WriteLine("Letter Grade: C" & vbCrLf) cCount += 1 38 Case 60 To ' student scored 60-69 Console.WriteLine("Letter Grade: D" & vbCrLf) dCount += 1 42 ' student scored 0 or (10 points for attendance) Case 0, 10 To 59 Console.WriteLine("Letter Grade: F" & vbCrLf) fCount += 1 47 Case Else 49 ' alert user that invalid grade was entered Console.WriteLine("Invalid Input. " & _ "Please enter a valid grade." & vbCrLf) End Select 54 Console.Write("Enter a grade, -1 to quit: ") grade = Console.ReadLine() End While 58 ' display count of each letter grade Console.WriteLine(vbCrLf & _ "Totals for each letter grade are: " & vbCrLf & _ "A: " & aCount & vbCrLf & "B: " & bCount _ & vbCrLf & "C: " & cCount & vbCrLf & "D: " & _ dCount & vbCrLf & "F: " & fCount) 65 End Sub ' Main 67 68 End Module ' modEnterGrades Visual Basic.NET
20
3.14 Exit Exit Do, Exit While, Exit For
Vroegtijdig beëindigen van een loop Voorbeeld : demonstratie van exit Visual Basic.NET
21
Loop zou 10 moeten worden uitgevoerd
1 'ExitTest.vb 2 ' Using the Exit keyword in repetition structures. 3 4 Imports System.Windows.Forms 5 6 Module modExitTest 7 Sub Main() Dim output As String Dim counter As Integer 11 For counter = 1 To 10 13 ' skip remaining code in loop only if counter = 3 If counter = 3 Then Exit For End If 18 Next 20 output = "counter = " & counter & _ " after exiting For/Next structure" & vbCrLf 23 Do Until counter > 10 25 ' skip remaining code in loop only if counter = 5 If counter = 5 Then Exit Do End If 30 counter += 1 Loop 33 Loop zou 10 moeten worden uitgevoerd Exit For wordt uitgevoerd als counter = 3, waardoor loop beëindigd wordt counter = 3 , bij begin loop. De loop zou moeten worden uitgevoerd totdat counter > 10 Exit Do wordt uitgevoerd als counter = 5, waardoor loop beëindigd wordt Visual Basic.NET
22
34 output &= "counter = " & counter & _
" after exiting Do Until/Loop structure" & vbCrLf 36 While counter <= 10 38 ' skip remaining code in loop only if counter = 7 If counter = 7 Then Exit While End If 43 counter += 1 End While 46 output &= "counter = " & counter & _ " after exiting While structure" 49 MessageBox.Show(output, "Exit Test", _ MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub ' Main 53 54 End Module ' modExitTest counter = 5 , bij begin loop. De loop zou moeten worden uitgevoerd zolang counter <= 10 Exit While wordt uitgevoerd als counter = 7, waardoor loop beëindigd wordt Visual Basic.NET
23
Addendum : String.Format
Methode format van de klasse String Is een functie die een string retourneert, geformatteerd volgens de instructie in de format String. Overloads Public Shared Function Format( ByVal format As String, _ ByVal ParamArray args() As Object ) As String Mogelijke waarden voor Format String Imports System Imports System.Globalization Imports System.Threading Module Module1 Sub Main() Thread.CurrentThread.CurrentCulture = New CultureInfo("en-us") Dim MyDouble As Double = Console.WriteLine("The examples in en-US culture:") Console.WriteLine(MyDouble.ToString("C")) Console.WriteLine(MyDouble.ToString("E")) Console.WriteLine(MyDouble.ToString("P")) Console.WriteLine(MyDouble.ToString("N")) Console.WriteLine(MyDouble.ToString("F")) Thread.CurrentThread.CurrentCulture = New CultureInfo("de-DE") Console.WriteLine("The examples in de-DE culture:") End Sub End Module The preceding code example displays the following to the console. The examples in en-US culture: $123,456,789.00 E+008 12,345,678,900.00% 123,456,789.00 Visual Basic.NET The examples in de-DE culture: ,00 DM 1,234568E+008 12,345,678,900.00% ,00 ,00
24
Addendum : Messagebox Klasse in System.Windows.Forms
Messagebox bestaat uit 12 verschillende formulieren (procedure overloading) Voorbeeld Public Sub ExitApplication() ' Display a message box asking users if they ' want to exit the application. If MessageBox.Show ("Do you want to exit?", "My Application", _ MessageBoxButtons.YesNo, MessageBoxIcon.Question) _ = DialogResult.Yes Then Application.Exit End If End Sub Dit vb gebruikt 4 argumenten Visual Basic.NET
25
Addendum : Messagebox Dit voorbeeld bevat 4 parameters
Text : bericht in berichtvenster Caption : tekst in titelbalk berichtvenster Buttons : knoppen weer te geven in het berichtvenster. Met de enumeratie MessageBoxButtons kan je de knoppen specifieren. Een enumeratie is een lijst van constanten Icon : pictogram weer te geven in berichtvenster. Enumeratie MessageBoxIcons Verder kan je in bepaalde procedures ook meegeven DefaultButton : standaardknop voor berichtvenster. Enumeratie MessageDefaultButton Options : weergave- en koppelingsopties voor berichtvenster. Enumeratie MessageBoxOptions Retourneert welke knop de gebruiker heeft geselecteerd. Enumeratie DialogResult Visual Basic.NET
26
Addendum : Messagebox De enumeratie MessageBoxButtons
Deze bevat constanten die worden gebruikt om knoppen voor het bericht venster te specifieren. Visual Basic.NET
27
Addendum : Messagebox De enumeratie MessageBoxIcons
Deze bevat constanten die worden gebruikt om de pictogrammen voor het berichtvenster te specifieren Visual Basic.NET
28
Addendum : Messagebox De enumeratie MessageBoxDefaultButton
De enumeratieconstante Button1 maakt van de eerste knop de standaardknop De enumeratieconstante Button2 maakt van de tweede knop de standaardknop ... Voorbeeld MessageBox.Show(“Hello World”, ”Sample”, MessageBoxButtons.OKCancel, MessageboxIcon.Exclamation, MessageboxDefaultButton.Button1) Visual Basic.NET
29
Addendum : Messagebox De enumeratie MessageBoxOptions
Voorbeelden van mogelijke opties voor berichtvenster RightAlign : rechts aligneren van de tekst RtlReading : stelt leesvolgorde van het berichtvenster in van rechts naar links. Voorbeeld MessageBox.Show(“Hello World”, ”Sample”, MessageBoxButtons.OKCancel, MessageboxIcon.Exclamation, MessageboxDefaultButton.Button1, MessageBoxOptions.RightAlign) De enemuratie DialogResult DialogResult.OK DialogResult.Cancel DialogResult.Yes ... Note Be aware of the importance of calling the Dispose method on the form to properly dispose of the dialog box. Recall that this is not done automatically by clicking the Close box or calling the Close method. Visual Basic.NET
30
3.15 Logische operatoren Logische evaluatie van Boole-expressies XOR
Expression1 expression2 result is True True False True False True False True True False False False Visual Basic.NET
31
3.15 Logische operatoren Gebruik AND en OR enkel wanneer een conditie een side effect genereert (beide expressies worden steeds geëvalueerd) Console.Writeline(“How old are you”)? If (gender=“F” and Console.Readline()>=65) then Console.Writeline(“You are a female senior citizen”) End if Waarheidstabel Visual Basic.NET
32
3.15 Logische operatoren Volgorde van uitvoering (binnen 1 operator steeds van links naar rechts) Visual Basic.NET
33
Alle icoontjes Vervolg zijn slides die ik niet meer zou geven. Ik denk dat ze al voorbeelden genoeg gezien hebben Visual Basic.NET
34
3.11 For/Next Controle variabele verhoogt met 2, van 2 tot 100
1 ' Sum.vb 2 ' Using For/Next structure to demonstrate summation. 3 4 Imports System.Windows.Forms 5 6 Module modSum 7 Sub Main() 9 Dim sum = 0, number As Integer 11 ' add even numbers from 2 to 100 For number = 2 To 100 Step 2 sum += number Next 16 MessageBox.Show("The sum is " & sum, _ "Sum even integers from 2 to 100", _ MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub ' Main 21 22 End Module ' modSum Controle variabele verhoogt met 2, van 2 tot 100 Tekst in venster Toont MessageBox Tekst in titlebar Messagebox met OK knop Icoontje moet Information icon zijn Visual Basic.NET
35
3.16 Inleiding tot Windows Application Programming
De IDE genereert de code die de GUI creëert. View > Code => toont code van Windows Applicatie in Code Editor Venster Demo Bevat geen Module, enkel klassen, gedefinieerd in FCL. Bevat minstens 1 klas die erft van de klasse Form uit de FCL System.Windows.Form namespace Visual Basic.NET
36
3.12 Voorbeeld For/Next : intrestberekening
Principal = 1000 Rate = 0.5 Voeg hoofding toe aan output Programma Intrestberekening Bereken bedrag op spaarboek Voeg lijn met bedrag toe aan output Jaar * Toon output in Messagebox Visual Basic.NET
37
Zolang graad <> -1
3.13 Select Case Print “Perfecte score” en Graad A+ aCount += 1 aCount = 0 bCount = 0 cCount = 0 dCount = 0 eCount = 0 fCount = 0 Vraag graad Lees graad Graad=100 ° Print “Graad B” bCount += 1 Graad ° ... Programma Graad Berekening Student * Zolang graad <> -1 Toon totalen in Messagebox Print “Invalid score” Anders Vraag graad Lees graad Visual Basic.NET
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.