Benutzer mit den meisten Antworten
Funktion im Code aufrufen

Frage
-
Guten Morgen Experten,
ich habe Probleme bei dem Aufruf von einer vorher programmierten Funktion in meinem Code, vielleicht kann mir als blutiger Anfänger jemand erklären, wie Funktionen im Sub Teil meines Programms richtig aufgerufen werden.
Ich habe einen Code geschrieben, welcher überprüfen soll ob ein Array (Daten1) und ein zweites Array (Daten2) (Dies geschieht durch die Funktion istSortiert, welche ich problemlos ausrufen kann) jeweils sortiert sind. Wenn dies der Fall ist, soll das Programm die beiden Arrays (sortiert!) zu einem Array3 zusammenfügen (Durch die Funktion gesamtliste- diese bekomme ich aber nicht ausgelöst).
Code:
Option Strict On Option Explicit On Imports System.Console Module Module1 Function istsortiert(ByVal daten() As Integer) As Boolean Dim i As Integer While (i < daten.Length - 1) AndAlso (daten(i) <= daten(i + 1)) i += 1 End While istsortiert = i = daten.Length - 1 End Function Function gesamtliste(ByVal daten1 As Integer(), ByVal daten2 As Integer(), ByRef sortiert As Boolean) As Integer() Dim i1, i2, ig As Integer Dim daten3() As Integer If istsortiert(daten1) AndAlso istsortiert(daten2) Then sortiert = True ReDim daten3(daten1.Length + daten2.Length - 1) For ig = 0 To daten1.Length + daten2.Length - 1 If i1 < daten1.Length AndAlso (i2 >= daten2.Length OrElse daten1(i1) <= daten2(i2)) Then daten3(ig) = daten1(i1) i1 += 1 Else daten3(ig) = daten2(i2) i2 += 1 End If Next Else sortiert = False End If gesamtliste = daten3 End Function Sub Main() Dim daten1(2) As Integer Dim daten2(2) As Integer daten1(0) = 1 daten1(1) = 2 daten1(2) = 4 daten2(0) = 1 daten2(1) = 2 daten2(2) = 3 gesamtliste() ReadLine() End Sub End Module
Meine Frage: Was muss bei gesamtliste() in den Klammern stehen, damit ich im Code meine Funktion aufrufen kann?
Beste Grüße & vielen Dank
mr_simeon
Antworten
-
Function gesamtliste(ByVal daten1 As Integer(), ByVal daten2 As Integer(), ByRef sortiert As Boolean) As Integer()
Hallo,
den Methodenrumpf hast Du doch selbst definiert und die dort angegebenen Parameter muss Du da so übergeben. Die beiden Array hast Du in der "Main" ja schon definiert und gefüllt, die Du übergeben kannst, fehlt nur noch eine Variable für "sortiert" und ein weiteres Array fürs Endergebnis.
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 10. November 2015 07:32
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 19. November 2015 09:36
-
Du ersetzt deine folgende Zeile
gesamtliste()
mit dem folgenden Code
Dim istResultSortiert As Boolean = false Dim resultValues() As Integer = gesamtliste(daten1, daten2, istResultSortiert) If istResultSortiert Then 'TODO: Es ist sortiert Else 'TODO: Es ist nicht sortiert End If
Damit solltest du ein Stück weiterkommen...
Gruß Martin
- Bearbeitet Martin Stühmer Donnerstag, 5. November 2015 09:05 Korrektur
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 10. November 2015 07:32
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 19. November 2015 09:36
Alle Antworten
-
Function gesamtliste(ByVal daten1 As Integer(), ByVal daten2 As Integer(), ByRef sortiert As Boolean) As Integer()
Hallo,
den Methodenrumpf hast Du doch selbst definiert und die dort angegebenen Parameter muss Du da so übergeben. Die beiden Array hast Du in der "Main" ja schon definiert und gefüllt, die Du übergeben kannst, fehlt nur noch eine Variable für "sortiert" und ein weiteres Array fürs Endergebnis.
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 10. November 2015 07:32
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 19. November 2015 09:36
-
Du ersetzt deine folgende Zeile
gesamtliste()
mit dem folgenden Code
Dim istResultSortiert As Boolean = false Dim resultValues() As Integer = gesamtliste(daten1, daten2, istResultSortiert) If istResultSortiert Then 'TODO: Es ist sortiert Else 'TODO: Es ist nicht sortiert End If
Damit solltest du ein Stück weiterkommen...
Gruß Martin
- Bearbeitet Martin Stühmer Donnerstag, 5. November 2015 09:05 Korrektur
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 10. November 2015 07:32
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 19. November 2015 09:36