Archief - [prog]-[VB.net] Probleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Vlaams_front

Legacy Member
Goedemiddag,

Ik ben dus een oefening aan het maken voor school maar kzit vast. Kheb dus de volgende code geschreven ma der zit een fout in die ik als amateur niet vind:

Sub Main()
'declaratie variabelen
Dim strNaam1, strNaam2, strNaam3 As String

'inlezen van de 3 namen
Console.Write("Geef naam 1 in: ")
strNaam1 = Console.ReadLine
Console.Write("Geef naam 2 in: ")
strNaam2 = Console.ReadLine
Console.Write("Geef naam 3 in: ")
strNaam3 = Console.ReadLine

If strNaam1 < strNaam2 Then
If strNaam1 < strNaam3 Then
Console.WriteLine("Oorspronkelijke volgorde: " & ControlChars.Tab & strNaam1 & " " & strNaam2 & " " & strNaam3 & ControlChars.NewLine & "Alfabetische volgorde: " & ControlChars.Tab & strNaam1 & " " & strNaam2 & " " & strNaam3)
Else
If strNaam2 < strNaam3 Then
Console.WriteLine("Oorspronkelijke volgorde: " & ControlChars.Tab & strNaam1 & " " & strNaam2 & " " & strNaam3 & ControlChars.NewLine & "Alfabetische volgorde: " & ControlChars.Tab & strNaam2 & " " & strNaam1 & " " & strNaam3)
Else
Console.WriteLine("Oorspronkelijke volgorde: " & ControlChars.Tab & strNaam1 & " " & strNaam2 & " " & strNaam3 & ControlChars.NewLine & "Alfabetische volgorde: " & ControlChars.Tab & strNaam3 & " " & strNaam2 & " " & strNaam1)
End If
End If
End If

'wachten op een druk op de enter toets
Console.WriteLine()
Console.Write("Druk op enter om verder te gaan")
Console.ReadLine()

End Sub


Daar zou dus erges een fout inzitten want hij drukt de namen helemaal niet af.

Legendary d.C.

Legacy Member
kan je het wat duidelijker zijn? bij mij drukt ie de namen wel af.

bij die alfabetische volgorde ga je toch fout hoor: If strNaam1 < strNaam2 Then

je zegt dus eigelijk: "als 'text' kleiner is dan 'string' dan ....

klopt volgens mij toch niet hoor


als dat je poging is om de namen te rangschikken in alfabetische volgorde is er toch iets fout vermoed ik :unsure:

Vlaams_front

Legacy Member
Legendary d.C. zei:
kan je het wat duidelijker zijn? bij mij drukt ie de namen wel af.

bij die alfabetische volgorde ga je toch fout hoor: If strNaam1 < strNaam2 Then

je zegt dus eigelijk: "als 'text' kleiner is dan 'string' dan ....

klopt volgens mij toch niet hoor


als dat je poging is om de namen te rangschikken in alfabetische volgorde is er toch iets fout vermoed ik :unsure:

Euhm ja hij vraagt de namen op maar ik na dat ik de namen heb ingegeven krijg ik niet de oplossing.

En er staat dus in mensen taal "als naam1 kleiner is dan naam 2 dan..." en kleiner dan staat automatisch voor alfabetisch. In vb.net toch.

[DZM]TheOne

Legacy Member
steek alles in een array (eventueel de grootte aanpassen met redim preserver) en maak gebruik van array.sort & array.reverse voor het alfabetisch sorteren

gebruik string.compare voor het vergelijken van twee strings

Vlaams_front

Legacy Member
[DZM]TheOne zei:
steek alles in een array (eventueel de grootte aanpassen met redim preserver) en maak gebruik van array.sort & array.reverse voor het alfabetisch sorteren

gebruik string.compare voor het vergelijken van twee strings

Mag niet want da hebbe we nog ni geleerd. We mogen oefeningen alleen oplossen met de toepassingen die we in de les al gestudeerd hebben.

AcIdR3IgN

Legacy Member
OMG.. please don't tell me dage op den HIK zit in 1TI!... indien wel: (hopelijk leest Mevr. Decabooter dit niet! *shakes fist*

Vlaams_front

Legacy Member
AcIdR3IgN zei:
OMG.. please don't tell me dage op den HIK zit in 1TI!... indien wel: (hopelijk leest Mevr. Decabooter dit niet! *shakes fist*

Lol jawel. :) Kzit in 1TI. :)

Legendary d.C.

Legacy Member
Vlaams_front zei:
Lol jawel. :) Kzit in 1TI. :)


ben ook van plan om die richting te doen in die school, is dat hetgene waar jullie je mee bezighouden? :sleep:
dat hebben wij in het vorig jaar (5de) allemaal gezien


// ontopic

ik heb de code geplakt en uitgetest en bij mij geeft hij de namen weer. dus niet - 'naam1' - 'naam2' ....

maar bv 'marc' - 'jef' ... dus dat werkt toch wel hoor :wtf:

alleen de alfabetisch volgorde werkt niet


ps: kan je een als je tijd hebt wat informatie doorpm'en? -hoe de leerkrachten zijn, infratructuur, etc... :bow:

Vlaams_front

Legacy Member
Legendary d.C. zei:
ben ook van plan om die richting te doen in die school, is dat hetgene waar jullie je mee bezighouden? :sleep:
dat hebben wij in het vorig jaar (5de) allemaal gezien


// ontopic

ik heb de code geplakt en uitgetest en bij mij geeft hij de namen weer. dus niet - 'naam1' - 'naam2' ....

maar bv 'marc' - 'jef' ... dus dat werkt toch wel hoor :wtf:

alleen de alfabetisch volgorde werkt niet


ps: kan je een als je tijd hebt wat informatie doorpm'en? -hoe de leerkrachten zijn, infratructuur, etc... :bow:

Ja pm me anders mee u vragen ofzo.

AcIdR3IgN

Legacy Member
ok.. tis dus wel degelijk de bedoeling om die in afabetische volgorde te plaatsen, ikzelf heb Select Case gebruikt, maar blijkbaar mocht dit NOG niet.. dus moet je veel meer if's gebruiken.

:offtopic: tot nu toe is het een goei richting.. en ja ok dit alles is nog basis, maar hou wel rekening mee dat school (hoger) maar echt 2 weken bezig is... dus... het ga nog snel vooruit hoor. En als je V nooit hebt gehad (zoals vele in de klas) kan het wel degelijk een stuikelblok zijn. True, ik verveel me zowa, maar ze geeft genoeg oefeningen mee dat je nog wa kan verder werken.
Geed het nog enkele weken en we zullen nog een hoop mensen in de klas zien die zitten sukkelen, hogeschool BEGINT wel redelijk makkelijk, allemaal eigenlijk vanaf nul.. maar het gaat ENORM snel. En der zijn vele in de klas die denken van "Pfff, hoe saai en al.. ik zal maar eens gaan brossen".. dit heb ik wel in een ander richting gedaan vorig jaar, en ik garandeer dat je ZO nie geraakt.. altijd brossen en niks doen.

Tyfius

Legacy Member
Ik ken niets van VB.NET he, maar volgens mij zou der toch een string.compare alike functie moeten bestaan voor strings met elkaar te vergelijken. Kwestie van de mogelijkheid te hebben bepaalde soorten compare te kunnen uitvoeren zou een taal daar toch over moeten beschikken...

Tyfius

Legacy Member
Ok, uit verveeldheid wa opzoekingswerk gedaan:

Code:
Dim s1 As String
Dim s2 As String

If s1.compareTo(s2) = 0 Then
 'gelijk
End If

Ik ken dus niks van VB he, maar zoiets zou 't moeten zijn. Andere waarden zijn > 0 en < 0 normaal gezien

[DZM]TheOne

Legacy Member
[DZM]TheOne zei:
steek alles in een array (eventueel de grootte aanpassen met redim preserver) en maak gebruik van array.sort & array.reverse voor het alfabetisch sorteren

gebruik string.compare voor het vergelijken van twee strings

zoals ik dus suggereerde, maar ze mogen dit blijkbaar nog niet gebruiken

vind ik persoonlijk redelijk flauw
er zijn bij programmatie altijd verschillende manieren om iets te bekomen, betere en minder goeie, maar zowieso talloze goeie
nu ja, dit wat off-topic

Vlaams_front

Legacy Member
[DZM]TheOne zei:
zoals ik dus suggereerde, maar ze mogen dit blijkbaar nog niet gebruiken

vind ik persoonlijk redelijk flauw
er zijn bij programmatie altijd verschillende manieren om iets te bekomen, betere en minder goeie, maar zowieso talloze goeie
nu ja, dit wat off-topic

Mja ze zullen waarschijnlijk wel even goed zijn enzo maar omdat we allen gelijk moeten zijn (ook degene die al kunne programmeren) mogen we enkel de technieken gebruiken die we tot dat punt in de les gezien hebben en niets anders.

@ tyfius, zoals ik hierboven al zei moge we enkel de genestelde if gebruiken. Staat trouwens ook zo in de opgave.

Vlaams_front

Legacy Member
Nieuw probleem trouwens:

Sub Main()
'declaratie variabelen
Dim decKarakters, decPrijs, decLijn, decHoeveel As Integer

'Titel
Console.WriteLine("Advertentie plaatsen in 'de bond'")
Console.WriteLine()

'inlezen variabelen
Console.Write("Hoeveel karakters bevat uw advertentie? ")
decKarakters = Console.ReadLine
Console.Write("Hoeveel keer moet de advertentie geplaatst worden? ")
decHoeveel = Console.ReadLine

Select Case decKarakters
Case Is < 30
decLijn = 1
Case Is < 60
decLijn = 2
Case Is < 90
decLijn = 3
Case Is < 120
decLijn = 4
Case Is < 150
decLijn = 5
Case Is < 180
decLijn = 6
Case Is < 210
decLijn = 7
Case Is < 240
decLijn = 8
Case Is < 270
decLijn = 9
Case Is < 300
decLijn = 10
Case Is > 300

End Select
Select Case True
Case 1 To 3
decPrijs = 16.5 * decHoeveel
Case 4
decPrijs = 22.0 * decHoeveel
Case 5
decPrijs = 27.5 * decHoeveel
Case 6
decPrijs = 33.0 * decHoeveel
Case 7
decPrijs = 38.5 * decHoeveel
Case 8
decPrijs = 44.0 * decHoeveel
Case 9
decPrijs = 49.5 * decHoeveel
Case 10
decPrijs = 55.0 * decHoeveel
Case Is > 10
Console.WriteLine("mag niet")
End Select
Console.WriteLine()
Console.WriteLine("Te betalen bedrag voor " & decLijn & " lijnen is " & decPrijs & " euro")

'wachten op een druk op de enter toets
Console.WriteLine()
Console.ReadLine()
End Sub

Werkt perfect behalve bij groter dan 10. Als er meer dan 10 lijnen zijn moet de pc afdrukken "mag niet" maar ik krijg iedere keer terug "te betalen bedrag voor 0 lijnen is 82 euro.".

Legendary d.C.

Legacy Member
Probeer dit eens, je hebt bij je case niet aangegeven welke decimal je wil vergelijken + als je case gedaan is komt er zowieso nog dat zinnetje van nul euro ....


Sub Main()
'declaratie variabelen
Dim decKarakters, decPrijs, decLijn, decHoeveel As Integer

'Titel
Console.WriteLine("Advertentie plaatsen in 'de bond'")
Console.WriteLine()

'inlezen variabelen
Console.Write("Hoeveel karakters bevat uw advertentie? ")
decKarakters = Console.ReadLine
Console.Write("Hoeveel keer moet de advertentie geplaatst worden? ")
decHoeveel = Console.ReadLine

Select Case decKarakters
Case Is < 30
decLijn = 1
Case Is < 60
decLijn = 2
Case Is < 90
decLijn = 3
Case Is < 120
decLijn = 4
Case Is < 150
decLijn = 5
Case Is < 180
decLijn = 6
Case Is < 210
decLijn = 7
Case Is < 240
decLijn = 8
Case Is < 270
decLijn = 9
Case Is < 300
decLijn = 10
Case Is > 300

End Select
Select Case decHoeveel
Case 1 To 3
decPrijs = 16.5 * decHoeveel
Case 4
decPrijs = 22.0 * decHoeveel
Case 5
decPrijs = 27.5 * decHoeveel
Case 6
decPrijs = 33.0 * decHoeveel
Case 7
decPrijs = 38.5 * decHoeveel
Case 8
decPrijs = 44.0 * decHoeveel
Case 9
decPrijs = 49.5 * decHoeveel
Case 10
decPrijs = 55.0 * decHoeveel
Case Is > 10
decPrijs = 1
End Select


If decPrijs = 1 Then
Console.WriteLine()
Console.WriteLine("Mag niet")
Else
Console.WriteLine()
Console.WriteLine("Te betalen bedrag voor " & decLijn & " lijnen is " & decPrijs & " euro")
End If
'wachten op een druk op de enter toets
Console.WriteLine()
Console.ReadLine()

End Sub

Vlaams_front

Legacy Member
Legendary d.C. zei:
Probeer dit eens, je hebt bij je case niet aangegeven welke decimal je wil vergelijken + als je case gedaan is komt er zowieso nog dat zinnetje van nul euro ....


Sub Main()
'declaratie variabelen
Dim decKarakters, decPrijs, decLijn, decHoeveel As Integer

'Titel
Console.WriteLine("Advertentie plaatsen in 'de bond'")
Console.WriteLine()

'inlezen variabelen
Console.Write("Hoeveel karakters bevat uw advertentie? ")
decKarakters = Console.ReadLine
Console.Write("Hoeveel keer moet de advertentie geplaatst worden? ")
decHoeveel = Console.ReadLine

Select Case decKarakters
Case Is < 30
decLijn = 1
Case Is < 60
decLijn = 2
Case Is < 90
decLijn = 3
Case Is < 120
decLijn = 4
Case Is < 150
decLijn = 5
Case Is < 180
decLijn = 6
Case Is < 210
decLijn = 7
Case Is < 240
decLijn = 8
Case Is < 270
decLijn = 9
Case Is < 300
decLijn = 10
Case Is > 300

End Select
Select Case decHoeveel
Case 1 To 3
decPrijs = 16.5 * decHoeveel
Case 4
decPrijs = 22.0 * decHoeveel
Case 5
decPrijs = 27.5 * decHoeveel
Case 6
decPrijs = 33.0 * decHoeveel
Case 7
decPrijs = 38.5 * decHoeveel
Case 8
decPrijs = 44.0 * decHoeveel
Case 9
decPrijs = 49.5 * decHoeveel
Case 10
decPrijs = 55.0 * decHoeveel
Case Is > 10
decPrijs = 1
End Select


If decPrijs = 1 Then
Console.WriteLine()
Console.WriteLine("Mag niet")
Else
Console.WriteLine()
Console.WriteLine("Te betalen bedrag voor " & decLijn & " lijnen is " & decPrijs & " euro")
End If
'wachten op een druk op de enter toets
Console.WriteLine()
Console.ReadLine()

End Sub

Mja da had ik ook al uitgewerkt ma der mag gene if in, enkel case.

AcIdR3IgN

Legacy Member
Dude, echt.. je moet al je taken niet gaan posten hier in dees forum zodat iemand anders die kan oplossen.. de bedoeling is dat je die ZELF oplost.. anders ga je er niet veel van kunnen snappen later.. en reken er maar op.. het wordt nog moeilijker.
Als je dingen niet begrijpt kan je natuurlijk altijd in de klas wat rondvragen, der zijn der genoeg in de klas die je kunnen helpen. Ik was vandaag nog ene aan't helpen met zijn lussen.. tis gewoon een kwestie van nie verlegen zijn en je lomp voelen.. en het gewoon vragen! Je kan het natuurlijk ook aan die van VB vragen he. Ze heeft een rare manier van lesgeven, maar kdenk toch dat ze het goed doe.

En die opmerking van iemand hier boven, dat er andere manier zijn om dingen op te lossen is idd juist, MAAR zoals ik al heb gezegd, we beginnen bij 0.. dus ze probeert nu ALLES uit te leggen en aan de hand van haar uitleg moet je oefeningen maken om dat bepaald onderdeel in te oefenen.. ook al is het een langere manier van doen... het is gewoon om da bepaald deel in te oefenen.. dus bepaalde oefeningen MOET je ENKEL maken door gebruik te maken door If's, of een Select Case.. en nu zitten we bij de For lus.. dus... hoe verder je raakt, hoe meer van de verschillende code onderelen je mag gebruiken.

Ik had het ook wel moeilijk om bijvoorbeeld geen Arrays te gebruiken of een lus te maken waar dit niet mocht enz..
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan