Nny
Legacy Member
Hallo,
Ik moet voor de avondschool een "progje" schrijven waarmee Euro waardes worden weergegeven en er logischerwijs ook nieuwe waardes aan kunnen toegevoegd worden,. Een soort conversietabel dus.
Nu zit ik met het volgende probleem. Als ik een nieuwe al dan niet fictieve munteenheid wil ingeven komt deze niet in mijn array terecht, dus ik kan die dus ook niet in mijn array sorteren. Kan er eventueel iemand eens kijken naar mijn code en me wat tips geven.
Dank bij voorbaat.
NNy
Ik moet voor de avondschool een "progje" schrijven waarmee Euro waardes worden weergegeven en er logischerwijs ook nieuwe waardes aan kunnen toegevoegd worden,. Een soort conversietabel dus.
Nu zit ik met het volgende probleem. Als ik een nieuwe al dan niet fictieve munteenheid wil ingeven komt deze niet in mijn array terecht, dus ik kan die dus ook niet in mijn array sorteren. Kan er eventueel iemand eens kijken naar mijn code en me wat tips geven.
Dank bij voorbaat.
NNy
Code:
Module EuroConverions
Sub Main()
Dim count As Integer = 10
Dim currencies As String() = {"ATS", "DEM", "ESP", "FIM", "FRF", "IEP", "ITL", "LUF", "NLG", "PTE"}
Dim conversionValues As Decimal() = {13.7603, 1.95583, 166.386, 5.94573, 6.55957, 0.787564, 1936.27, 40.3399, 2.20371, 200.482}
Do
Console.Write("Currencies : ")
Dim index As Integer
For index = 0 To count - 2
Console.Write(currencies(index) & " / ")
Next
Console.WriteLine(currencies(index))
Console.Write("Currency ? : ")
Dim currency As String = Console.ReadLine()
Dim upperbound As Integer = count - 1
Dim lowerbound As Integer = 0
Dim gevonden As Boolean = False
Dim uitgeput As Boolean = False
Do Until gevonden OrElse uitgeput
index = (lowerbound + upperbound) \ 2
gevonden = (currency = currencies(index))
uitgeput = (upperbound <= lowerbound)
If Not (gevonden OrElse uitgeput) Then
If currency > currencies(index) Then
lowerbound = index + 1
Else
upperbound = index - 1
End If
End If
Loop
If gevonden Then
Console.WriteLine("Amount " & currency & "? : <input> " & (conversionValues(index)))
Console.WriteLine("Conversion : " & (conversionValues(index) & (currencies(index) & " = 1 EUR")))
Else
Console.Write("Add Currency ( Y/N ) ? : ")
Dim addCurrency As Char = Console.ReadLine()
If addCurrency = "y"c OrElse addCurrency = "Y"c Then
Console.Write("Conversion Value " & currency & " ( = 1 EUR ) ? : ")
Dim conversionValue As Decimal = Console.ReadLine()
'Stop
'... insertion sort ...
Dim unsortedCount As Integer = count - 1
Dim startIndexUnsortedPart As Integer = 1
Dim backup As Integer
Do Until (unsortedCount = 0)
startIndexUnsortedPart = count - unsortedCount
'
backup = conversionValues(startIndexUnsortedPart)
'
index = startIndexUnsortedPart
Do While (index - 1 >= 0) AndAlso (conversionValues(index - 1) > backup)
conversionValues(index) = conversionValues(index - 1)
index -= 1
Loop
'
conversionValues(index) = backup
'
unsortedCount -= 1
Loop
End If
End If
Loop
Console.ReadLine()
End Sub
End Module