[Erledigt] Anfängerfrage - OOBasic

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [Erledigt] Anfängerfrage - OOBasic

Re: Anfängerfrage - OOBasic

von OONewb » Mo, 29.11.2010 01:29

Also zunächst muss ich mich entschuldigen, es gibt da tatsächlich ein Programmierforum in dem das besser aufgehoben gewesen wäre... :oops:

Zur Anfrage selbst: Ich wollte ein Beispiel für ein Calc-Skript, das in Basic-Code geschrieben ist, das den Zugriff auf ein Formular handhabt, Output in der Zelle in der es eingesetzt wird und das in übersichtlicher Form. Da ich nicht wirklich weiß worauf es bei Basic ankommt, wollte ich nicht spezifisch werden - dann hätte ich bestimmt was Essentielles übersehen und der Thread wäre unnötig gewachsen. Leider habe ich das durch meine falsche Forumswahl schon erreicht...
Warum Summenprodukt? Weil es ein simples Beispiel ist, das alle relevanten Konzepte einsetzt ohne irgendwelche Schnörkel zu benötigen. Genauso hätte ich den Mittelwert einer Spalte nehmen können, oder ...

Mittlerweile habe ich übrigens mein Problem in Java (ohne OpenOffice) gelöst. Zwar nicht so elegant und auch nichts dabei gelernt, aber immerhin funktioniert's schon. :D

Danke für die (meisten) Antworten und ich bitte nochmal um Verzeihung!

Re: Anfängerfrage - OOBasic

von Stephan » Sa, 27.11.2010 21:14

Wenn damit gemeint war, dass man sich den Basic-Source zum Summenprodukt irgendwie ansehen kann
Nein, denn sowas existiert nicht, die Calc-Tabellenfunktionen sind in C++ geschrieben. Der Quellcode von OOo, und somit auch der der Tabellenfunktionen, ist z.B. ausgehend vón hier erhältlch:
http://wiki.services.openoffice.org/wiki/Getting_It
Ansonsten bitte das Quote lesen.
Und was soll da stehen? Weder geht es hier um eine Vorlage noch um Basic-Code. Oder was verstehe ich miß?

Sicherlich würde es dem allgemeinen Verständnis sehr helfen wenn Du eine Aussage dazu treffen würdest warum Du eine vorhandene Funktion in Basic nachprogrammieren willst, denn niemand versteht sonst den Sinn des Ganzen, zumal ja selbst der Rückgriff auf die fertige Funktion mittels Basic möglich wäre, siehe:
http://www.starbasicfaq.de/WiekannmanFu ... l#Zweig229
ohne die Funktion nachprogrammieren zu müssen.

dich in mindestens C++ Programmierung auskennen, oder ähnliche Maschinensprachen
C++ ist natürlich keine Maschinensprache, da kein Prozessor der Welt C++-Code direkt ausführen kann (=Mindestbedingung für Maschinensprache) sondern bei C++ ein Kompilieren des Codes nötig ist.


Gruß
Stephan

Re: Anfängerfrage - OOBasic

von balu » Sa, 27.11.2010 17:20

Hallo Newb,

ich versteh nur Bahnhof.

Aber Halt, da kam eben eine Lautsprecherdurchsage:
OONewb hat geschrieben: dass man sich den Basic-Source zum Summenprodukt irgendwie ansehen kann
Da musst Du
1.
die Programmierer fragen, die die einzelnen Funktionen (WENN, SUMME, SUMMENPRODUKT ...)programmiert haben

2.
dich in mindestens C++ Programmierung auskennen, oder ähnliche Maschinensprachen.

Calc interne Funktionen (siehe oben) sind nämlich nicht in einer Basic/Makro-Sprache programmiert, sondern in Maschinensprache und direkt in Calc integriert. Es sei denn, es werden Funktionen selber programmiert und als Add-On nachträglich installiert, dann kann man seine eigenen Funktionen einbinden. Aber dieser Weg ist nicht grad einfach, weil man mindestens Punkt 2. beherschen muss und Ahnung vom Compilieren haben.


Auch wenn ich wenig (keine )Ahnung von Makros habe, so sollte man es wohl tunlichst vermeiden selbst erstellte Functions Namen zu vergeben die schon intern für Funktionen reserviert sind. Also in deinem Falle ist "Summenprodukt" absolut Tabu!


Falls ich irgendwo falsch liege, so möge man mich berichtigen.


Gruß
balu

Re: Anfängerfrage - OOBasic

von OONewb » Sa, 27.11.2010 12:46

Mir ist bewusst, dass es für dieses Problem eine fertige Vorlage gibt, mich interessiert jedoch der Basic Code dazu, weil er alles beinhalten solle, was ich brauchen könnte (ohne dass ich umständlich/missverständlich beschreiben muss, was das eigentlich ist).
Wenn damit gemeint war, dass man sich den Basic-Source zum Summenprodukt irgendwie ansehen kann, dann bitte ich um eine Anleitung. Ansonsten bitte das Quote lesen.

mfg, Newb

Re: Anfängerfrage - OOBasic

von Stephan » Fr, 26.11.2010 17:09

Ich stehe vor einem Problem, das sich (vermutlich) nicht so einfach mit den vorgegebenen Werkzeugen in Calc lösen lässt.
Hast Du auch nur 1 Minute ernsthaft gesucht?

Das Ganze ist mit den 'gegebenen Werkzeugen von Calc' lösbar, benutze die entsprechende Tabellenfunktion:

=SUMMENPRODUKT(A1:E1;A2:E2)



Gruß
Stephan

[Erledigt] Anfängerfrage - OOBasic

von OONewb » Fr, 26.11.2010 16:58

Hallo OpenOfficler!

Ich stehe vor einem Problem, das sich (vermutlich) nicht so einfach mit den vorgegebenen Werkzeugen in Calc lösen lässt.
Da es algorithmisch eigentlich recht simpel sein sollte, wollte ich das Problem mit einem Makro angehen. Leider scheitere ich schon an den einfachsten Dingen... :oops:
Ein Beispiel sagt ja mehr als 1000 Worte, daher bitte ich um Vervollständigung/Berichtigung des nachfolgenden (Pseudo-)Codes. Mir ist bewusst, dass es für dieses Problem eine fertige Vorlage gibt, mich interessiert jedoch der Basic Code dazu, weil er alles beinhalten solle, was ich brauchen könnte (ohne dass ich umständlich/missverständlich beschreiben muss, was das eigentlich ist).

REM Summenprodukt: Kreuzprodukt zweier Vektoren
REM arg1 zeile1/spalte1
REM arg2 zeile2/spalte2
function Summenprodukt(arg1, arg2) as Integer
sum = 0
for each cell in arg1
sum += cell*arg2.cell++
next cell
Summenprodukt() = sum
end function

Aufruf dazu: Summenprodukt(A1:A10, B1:B10) {oder auch Summenprodukt(A1:E1, A2:E2)}
Idealerweise steht dann in der aufrufenden Zeile die Summe und kann für weitere Berechnungen verwendet werden.

Vielen Dank schon mal!

PS: Mir fällt (etwas verspätet) auf, dass das missverständlich ist: Mein Problem hatte nichts mit dem Summenprodukt zu tun, das sollte nur ein anschauliches Beispiel werden (wenig Code, einfach zu verstehen).

Nach oben