Min- / Max - Function

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Shirkan
***
Beiträge: 62
Registriert: Di, 21.06.2011 10:34

Min- / Max - Function

Beitrag von Shirkan »

Liee Leute,
gibt es in StarBasic keine Min- / Max - Funktion? Wenn nicht, hat jemand so etwas mal programmiert oder weiss wo so etwas steht?
Danke für Eure Hilfe
Gruß Markus
juetho
******
Beiträge: 617
Registriert: Di, 20.04.2010 15:46
Wohnort: Berlin

Re: Min- / Max - Function

Beitrag von juetho »

Hallo Markus, im ersten Moment war ich auch verblüfft: Diese Funktionen gibt es offensichtlich nicht. Beim zweiten Nachdenken ist das aber auch verständlich: Sie können nur das Ergebnis innerhalb eines bestimmten Bereichs liefern; dieser Bereich muss geeignet definiert sein. Davon sind auch die Vergleichsverfahren abhängig: Zahlen und auch Datumswerte werden anders geordnet als Texte.

Du musst also zunächst sagen, für welchen Bereich du diese Funktionen benötigst. Für Calc-Funktionen gibt es sie. Für andere Zwecke können dir vielleicht Tipps gegeben werden; bei Datenbanken beispielsweise kann MIN/MAX für Spalten bestimmt und über SELECT zurückgegeben werden. Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Shirkan
***
Beiträge: 62
Registriert: Di, 21.06.2011 10:34

Re: Min- / Max - Function

Beitrag von Shirkan »

Hallo Jürgen,
ich benötige die Funktion in einer Programmroutine. Das ist also völlig unabhängig von einem Zellbereich. Der Wunsch wäre eine beliebige Anzahl von Argumenten zu haben und dann den maximalen Wert zu erhalten. Im Grunde ist es ja einfach für eine bestimmte Anzahl von Argumenten

Code: Alles auswählen

Function Max(Item1 as Integer, Item2 As integer)
	If Item1 >= Item2 then
		Max = Item1
	Else
		Max = Item2
	EndIf
End Function
Ich weiss nur nicht wie ich die Anzahl der Argumente variabel halten kann.
Gruß Markus
juetho
******
Beiträge: 617
Registriert: Di, 20.04.2010 15:46
Wohnort: Berlin

Re: Min- / Max - Function

Beitrag von juetho »

Shirkan hat geschrieben:Ich weiss nur nicht wie ich die Anzahl der Argumente variabel halten kann.
Dafür gibt es grundsätzlich zwei Möglichkeiten. Das eine sind optionale Parameter bei Definition und Aufruf der Funktion, siehe den Abschnitt "Optional Parameters" (Seite 32) im Basic Programmers Guide. Das andere Verfahren ist in deinem Fall erheblich besser, weil alle Parameter vom gleichen Typ sind, nämlich ein Array of Integers, das du einfach in einer Schleife durchlaufen kannst; mehr dazu steht bei Andrew's Macros im Abschnitt Language > Variable > Arrays.

Solange dein Array nicht mehrere Hundert Einträge hat, dürfte die Zeit der Prüfung nicht zu spüren sein. Viel Erfolg! Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Min- / Max - Function

Beitrag von Karolus »

Hallo

Code: Alles auswählen

Sub Main
oFunctionAccess = createUnoService( "com.sun.star.sheet.FunctionAccess" )
args() = array(-5, 2, 8)
result = oFunctionAccess.callFunction( "MIN", args() )
print result
End Sub
Noch Fragen?

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Shirkan
***
Beiträge: 62
Registriert: Di, 21.06.2011 10:34

Re: Min- / Max - Function

Beitrag von Shirkan »

Liebe Leute,
ich komme mit dem Übergeben eines Arrays nicht zurecht. Kann da mal jemand drauf schauen?

Code: Alles auswählen

Sub Main
	Print Übergabetest (1,2,8)
End Sub

Function Übergabetest (args() As Interger) As Integer

	Übergabetest = args(1)
	
End Function
Gruß Markus
Shirkan
***
Beiträge: 62
Registriert: Di, 21.06.2011 10:34

Re: Min- / Max - Function

Beitrag von Shirkan »

Ok, ich habe die Umlaute entfernt und die Variablendeklaration mit Integer entfernt. Leider wird mir jede einzige Zahl des Arrays mit 1 angezeigt:

Code: Alles auswählen

Sub Main
   Print uebergabetest (Array(1,2,8))
End Sub

Function uebergabetest (args()) As Integer

   uebergabetest = args(1)
   
End Function
Gruß Markus
Shirkan
***
Beiträge: 62
Registriert: Di, 21.06.2011 10:34

Re: Min- / Max - Function

Beitrag von Shirkan »

Sorry,
hat sich erledigt, ich habe das "Array" in der Übergabe übersehen.
Dank an alle, die sich beteiligt haben-
Gruß Markus
Antworten