login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Methods, functions (Opgelost)

Offline Jimbo - 22/11/2009 21:50 (laatste wijziging 22/11/2009 21:55)
Avatar van JimboLid Ik zou graag hulp hebben bij het aanvullen van methods en functions bij een bestaande programma code:

Opgave gaat als volgt:
Vul onderstaande programmacode aan met de nodige methods om alle gecodeerde testen te doen slagen. Aan de meegegeven code mag je niets veranderen.

Method IndexOf zal de positie ( index ) van een bepaald karakter ( eerste argument ) in de verzameling-van-karakters/String opleveren. Een String kan je net als een Char array benaderen, zie onderstaand voorbeeld :

  1. Module StringAsCharArrayExample
  2. Sub Main()
  3.  
  4. Dim text As String = "Hello"
  5. Console.WriteLine(text(0)) ' "H"c
  6. Console.WriteLine(text(1)) ' "e"c
  7. Console.WriteLine(text(2)) ' "l"c
  8. Console.WriteLine(text(3)) ' "l"c
  9. Console.WriteLine(text(4)) ' "o"c
  10. 'Console.WriteLine(text(5) = "o"c) ' IndexOutOfRangeException
  11. End Sub
  12. End Module

Nagaan of een objectexpressie van een reference type gelijk is aan Nothing doet men via de Is of IsNot operatoren :

  1. Module ComparingReferencesExample
  2. Sub Main()
  3. Dim text As String
  4. Console.WriteLine(text Is Nothing) ' True
  5.  
  6. text = "Hello"
  7. Console.WriteLine(text IsNot Nothing) ' True
  8. End Sub
  9. End Module

Programma-code :

  1. Module GequoteerdeOefening06
  2.  
  3. Sub Main()
  4. Console.WriteLine(IndexOf("a"c, "abc") = 0) ' True
  5. Console.WriteLine(IndexOf("b"c, "abc") = 1) ' True
  6. Console.WriteLine(IndexOf("c"c, "abc") = 2) ' True
  7. Console.WriteLine(IndexOf("d"c, "abc") = -1) ' True
  8. Console.WriteLine(IndexOf("a"c, Nothing) = -1) ' True
  9. '
  10. Console.ReadLine()
  11. End Sub
  12. End Module


Momenteel heb ik verschillende notaties van functions gebruikt maar geraak hier niet direct wijs uit. Kan iemand hierbij helpen om dezelfde output te bekomen?

10 antwoorden

Gesponsorde links
Offline Abbas - 22/11/2009 21:57
Avatar van Abbas Gouden medaille

Crew .NET
En wat is het dat je wil bereiken? Wat moeten we aanvullen? Ik zie nergens een function of methode om een "test te doen slagen"...
Offline Jimbo - 25/11/2009 20:17
Avatar van Jimbo Lid Met bovenstaande oefening is een voorgestelde oefening.

De programmacode zelf mag niet gewijzigd worden.

Dit moeten we zelf aanvullen met functions. Maar ik zie niet direct in hoe je elk stuk aan elkaar kunt linken en zorgen dat alles ineen past.

Dit is gewoon een oefening, en niet om iets "belangrijks" te bekomen(geen doel).
Offline Abbas - 25/11/2009 20:47
Avatar van Abbas Gouden medaille

Crew .NET
Wat moeten de functies dan allemaal doen?
Offline Jimbo - 25/11/2009 21:20
Avatar van Jimbo Lid Zoals de taak vermeld, moeten hier berekeningen gedaan worden via functions om tot het andere te bekomen.

Als je de code invoerd zie je dat er missende declaraties zijn.
Die moeten gelinkt worden via functions. Alleen aan de programma code zelf mag niets gewijzigd worden.
Offline Abbas - 25/11/2009 21:39
Avatar van Abbas Gouden medaille

Crew .NET
WAT moeten de functies doen? Een substring nemen en terugsturen, een som berekenen en het resultaat terugsturen, ... Dat bedoel ik!
Offline Jimbo - 26/11/2009 22:01
Avatar van Jimbo Lid Het stukje van "programma code" blijkt de "testen" in de vraag te zijn.

Het 1ste stuk zou zoals de taak, zou de "method index of" de plaats van een karakter bepalen in een string.

Nadien bij het volgende stuk is het: nagaan of een objectexpressie van een reference type gelijk is aan Nothing(default value van een string) doet men via de Is of IsNot operatoren.
Offline Abbas - 26/11/2009 22:15
Avatar van Abbas Gouden medaille

Crew .NET
Waarom zou je dat in een functie moeten gooien als .NET dat allemaal heeft voorzien? Voorbeeld zou dan kunnen zijn voor die IndexOf:

  1. Private Function GetIndexOf(ByVal inChar As Char) As Integer
  2. Return someString.IndexOf(inChar)
  3. End Function

En de andere functie kan je op een gelijkaardige manier doen!
Offline Jimbo - 27/11/2009 20:41
Avatar van Jimbo Lid Ik pas dit toe inderdaad, met die "someString" in je code was ik aan het testen op "Hello" en op "string" maar die herkend het niet

(Hello.indexof is not declared OF string.indexof error "reference to a non shared memeber requires an object reference").

Het blijft fouten weergeven.
Eerst had ik de codering boven de module geplakt dus zover had ik mijn fout al ondervonden.

Offline Abbas - 28/11/2009 15:43
Avatar van Abbas Gouden medaille

Crew .NET
Duh! Dit gaat alleen werken als je dit hebt:

  1. Dim someString As String = "titjes"
  2. Dim x As Integer = GetIndexOf("j")
  3.  
  4. Private Function GetIndexOf(ByVal inChar As Char) As Integer
  5. Return someString.IndexOf(inChar)
  6. End Function

En anders doe je het zo en dat is misschien nog beter:

  1. Private Function GetIndexOf(ByVal input As String, ByVal charToFind As Char) As Integer
  2. Return input.IndexOf(charToFind)
  3. End Function
  4.  
  5. 'En dan zet je volgende regel in je Main ofzo
  6. Dim index As Integer = GetIndexOf("titjes", "j")

Succes!
Offline Jimbo - 29/11/2009 22:30 (laatste wijziging 01/12/2009 07:13)
Avatar van Jimbo Lid Het volgende ik heb is
code:
  1. Module StringAsCharArrayExample
  2. Sub Main()
  3. Dim text As String = "Hello"
  4. Console.WriteLine(text(0)) ' "H"c
  5. Console.WriteLine(text(1)) ' "e"c
  6. Console.WriteLine(text(2)) ' "l"c
  7. Console.WriteLine(text(3)) ' "l"c
  8. Console.WriteLine(text(4)) ' "o"c
  9. 'Console.WriteLine(text(5) = "o"c) ' IndexOutOfRangeException
  10. End Sub
  11. Private Function GetIndexOf(ByVal input As String, ByVal charToFind As Char) As Integer
  12. Return input.IndexOf(charToFind)
  13. End Function
  14.  
  15. 'Nagaan of een objectexpressie van een reference type gelijk is 'aan Nothing doet men via de Is of IsNot operatoren :
  16.  
  17. Module ComparingReferencesExample
  18. Sub Main()
  19. Dim text As String
  20. Console.WriteLine(text Is Nothing) ' True
  21. text = "Hello"
  22.  
  23. Console.WriteLine(text IsNot Nothing) ' True
  24. End Sub
  25. End Module


Programma-code :

  1. Module GequoteerdeOefening06
  2. Sub Main()
  3. Console.WriteLine(IndexOf("a"c, "abc") = 0) ' True
  4. Console.WriteLine(IndexOf("b"c, "abc") = 1) ' True
  5. Console.WriteLine(IndexOf("c"c, "abc") = 2) ' True
  6. Console.WriteLine(IndexOf("d"c, "abc") = -1) ' True
  7. Console.WriteLine(IndexOf("a"c, Nothing) = -1) ' True
  8. '
  9. Console.ReadLine()
  10. End Sub
  11. End Module


Hiervan krijg ik de index niet gekoppeld aan de letter. zoals het stukje hierin bovenaan. alsook moet het volgende nagegaan worden of dit een object of referencetype is

Citaat:
Code tags gebruiken aub!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s