Seite 1 von 2

potenz

Verfasst: Mo, 20.03.2006 14:40
von Creator
ICh frage mich gerade wie man zb. den Wert 5 hoch 4 nehmen könne und ihn dann anzeigne lassen kann, sodass dann da steht als Ergebnis 625.

MfG

Verfasst: Mo, 20.03.2006 15:30
von Bratmatzen
Hallo,
Geht ganz einfach. Lies doch mal das Programmierhandbuch Basic von StarOffice :wink:

Code: Alles auswählen

sub Expotenzial
    dim Z as double
    'Hier Expotnez ohne Leerzeichen eingeben, nur ganze Expotenzen
    Z = 5E4
    'um eine Zahl "hoch" zu nehmen astatt E das zeichen ^ einsetzen
    msgBox Z
end sub 
Gruß Matze

Verfasst: Mo, 20.03.2006 15:34
von benjy
oder die Openoffice hilfe
Syntax:

Ergebnis = Ausdruck ^ Exponent

Parameter:

Ergebnis: Ein beliebiger numerischer Ausdruck, der das Ergebnis der angegebenen Potenz der Zahl enthält.
Ausdruck: Ein numerischer Wert, den Sie potenzieren möchten.
Exponent: Der Exponent, mit dem Sie den Ausdruck potenzieren möchten.
Beispiel:

Sub Example
Print ( 12.345 ^ 23 )
Print Exp ( 23 * Log( 12.345 ) ) REM Potenzieren durch Logarithmenbildung
End Sub
schluss endlich giebt es aber ja noch den Rechenschieber, Papier und Bleichstifft. also der möglichkeiten sind genug vorhanden *gg*

Verfasst: Mo, 20.03.2006 15:52
von Creator
Sub
sngxhochvierminus3 = sngxhochvier ^ 4
MsgBox "" + sngxhochvierminus3 + ""
End Sub

Mach ich da irgendwas falsch? er sagt zumindest imemr fehler

Verfasst: Mo, 20.03.2006 16:26
von ykcim
sub xxxx
Die Procedure muß einen Namen haben.

mfg
Michael

Verfasst: Mo, 20.03.2006 16:39
von Creator
hat nen namen bei mir!

Verfasst: Mo, 20.03.2006 17:53
von Toxitom
Hey Creator,

poste doch den kompletten Code - dann ist es einfacher. Also - prinzipiell sollte dein Code funktionieren:

Code: Alles auswählen

Sub test
	sngxhochvier = 5
	sngxhochvierminus3 = sngxhochvier ^ 4
	MsgBox "" + sngxhochvierminus3 + ""
End Sub
Gibt bei mir als Ergebnis 625 :D

Gruss
Thomas

Verfasst: Mo, 20.03.2006 18:02
von Creator

Code: Alles auswählen

Sub Potenzrechnen

Dim snghochvier As Single
Dim sngxhochvierminus3 As Single
Dim snghochdrei As Single
Dim snghochzwei As Single
Dim snghoch As Single
Dim EndWert As Single

sngxhochvier = Inputbox ("Geben Sie hier bitte die größe ihres x hoch 4 ein.")
sngxhochdrei = Inputbox ("Geben Sie hier bitte die größe ihres x hoch 3 ein.")
sngxhochzwei = Inputbox ("Geben Sie hier bitte die größe ihres x hoch 2 ein.")
sngxhoch = Inputbox ("Geben Sie hier bitte die größe ihres x hoch 1 ein.")

sngxhochvierminus3 = sngxhochvier ^ 4
MsgBox "" + sngxhochvierminus3 + ""
End Sub
So schaut er aus

Verfasst: Mo, 20.03.2006 18:30
von Toxitom
Hey Creator,

"Unzulässige Datentypen"!

Die Inputbox liefert immer nur Strings zurück! die musst du zuerst umwandeln in Zahlen - dann weiterverarbeiten.
Lösung (Beispiel):

Code: Alles auswählen

Sub Potenzrechnen

Dim snghochvier As Single
Dim sngxhochvierminus3 As Single
Dim snghochdrei As Single
Dim snghochzwei As Single
Dim snghoch As Single
Dim EndWert As Single

sngxhochvier = CSng(Inputbox ("Geben Sie hier bitte die größe ihres x hoch 4 ein."))


sngxhochvierminus3 = sngxhochvier ^ 4
MsgBox "" + sngxhochvierminus3 + ""
End Sub
Und alles funktioniert... :D

Gruss
Thomas

Verfasst: Mo, 20.03.2006 18:50
von Creator
wenn ich nun aber -5 angebe, ist das ergebnis positiv aber mein taschenrechnet sagt etwas anderes! -625

Verfasst: Mo, 20.03.2006 19:26
von Toxitom
Tia, das ist wohl so.

Dann wird es Zeit, sich intensiver mit der Programmierung zu beschäftigen und eigene Dialoge zu erzeugen - mit Zahlenfeldern, die liefern dann auch direkt Zahlenwerte - positive und negative....

Denn mal los :D

Gruss
Thomas

Verfasst: Mo, 20.03.2006 20:25
von Creator
Was mein Ziel ist, ist das man sich schnell und einfahc errechnen kann wie die y-werte einer "ganzrationalen Funktion höheren Grades" sind.

Im mom steh ich aufn schlauch da andere Ergebnisse als die richtigen rauskommt.

Hier mein Text

Code: Alles auswählen

Sub Potenzrechnen

Dim snghochvier As Single
Dim sngxhochvierminus3 As Single
Dim snghochdrei As Single
Dim snghochzwei As Single
Dim sngxhoch As Single
Dim sngohnehoch As Single
Dim EndWert As Single

sngxhochvier = CSng(Inputbox ("Geben Sie hier bitte die größe ihres x hoch 4 ein."))
sngxhochdrei = CSng(Inputbox ("Geben Sie hier bitte die größe ihres x hoch 3 ein."))
sngxhochzwei = CSng(Inputbox ("Geben Sie hier bitte die größe ihres x hoch 2 ein."))
sngxhoch = CSng(Inputbox ("Geben Sie hier bitte die größe ihres x hoch 1 ein."))
sngohnehoch = CSng(Inputbox ("Geben Sie hier bitte die Zahl ohne x ein."))

sngxhochvierminus3 = sngxhochvier *((-3) ^ 4)
sngxhochvierminus2 = sngxhochvier *((-2) ^ 4)
sngxhochvierminus1 = sngxhochvier *((-1) ^ 4)
sngxhochvierminus0 = sngxhochvier *((0) ^ 4)
sngxhochvierplus1 = sngxhochvier *((1) ^ 4)
sngxhochvierplus2 = sngxhochvier *((2) ^ 4)
sngxhochvierplus3 = sngxhochvier *((3) ^ 4)
sngxhochvierplus4 = sngxhochvier *((4) ^ 4)
sngxhochvierplus5 = sngxhochvier *((5) ^ 4)

sngxhochdreiminus3 = sngxhochdrei *((-3) ^ 3)
sngxhochdreiminus2 = sngxhochdrei *((-2) ^ 3)
sngxhochdreiminus1 = sngxhochdrei *((-1) ^ 3)
sngxhochdreiminus0 = sngxhochdrei *((0) ^ 3)
sngxhochdreiplus1 = sngxhochdrei *((1) ^ 3)
sngxhochdreiplus2 = sngxhochdrei *((2) ^ 3)
sngxhochdreiplus3 = sngxhochdrei *((3) ^ 3)
sngxhochdreiplus4 = sngxhochdrei *((4) ^ 3)
sngxhochdreiplus5 = sngxhochdrei *((5) ^ 3)

sngxhochzweiminus3 = sngxhochzwei *((-3) ^ 2)
sngxhochzweiminus2 = sngxhochzwei *((-2) ^ 2)
sngxhochzweiminus1 = sngxhochzwei *((-1) ^ 2)
sngxhochzweiminus0 = sngxhochzwei *((0) ^ 2)
sngxhochzweiplus1 = sngxhochzwei *((1) ^ 2)
sngxhochzweiplus2 = sngxhochzwei *((2) ^ 2)
sngxhochzweiplus3 = sngxhochzwei *((3) ^ 2)
sngxhochzweiplus4 = sngxhochzwei *((4) ^ 2)
sngxhochzweiplus5 = sngxhochzwei *((5) ^ 2)

sngxhochminus3 = sngxhoch *((-3) ^ 1)
sngxhochminus2 = sngxhoch *((-2) ^ 1)
sngxhochminus1 = sngxhoch *((-1) ^ 1)
sngxhochminus0 = sngxhoch *((0) ^ 1)
sngxhochplus1 = sngxhoch *((1) ^ 1)
sngxhochplus2 = sngxhoch *((2) ^ 1)
sngxhochplus3 = sngxhoch *((3) ^ 1)
sngxhochplus4 = sngxhoch *((4) ^ 1)
sngxhochplus5 = sngxhoch *((5) ^ 1)

sngmindrei = (sngxhochvierminus3) + (ngxhochdreiminus3) + (sngxhochzweiminus3) + (sngxhochminus3) + (sngohnehoch)
sngminzwei = sngxhochvierminus2 + sngxhochdreiminus2 + sngxhochzweiminus2 + sngxhochminus2 + sngohnehoch
sngmineins = sngxhochvierminus1 + sngxhochdreiminus1 + sngxhochzweiminus2 + sngxhochminus1 + sngohnehoch
sngminnull = sngxhochvierminus0 + sngxhochdreiminus0 + sngxhochzweiminus0 + sngxhochminus0 + sngohnehoch
sngplueins = sngxhochvierplus1 + sngxhochdreiplus1 + sngxhochzweiplus1 + sngxhochplus1 + sngohnehoch
sngpluzwei = sngxhochvierplus2 + sngxhochdreiplus2 + sngxhochzweiplus2 + sngxhochplus2 + sngohnehoch
sngpludrei = sngxhochvierplus3 + sngxhochdreiplus3 + sngxhochzweiplus3 + sngxhochplus3 + sngohnehoch
sngpluvier = sngxhochvierplus4 + sngxhochdreiplus4 + sngxhochzweiplus4 + sngxhochplus4 + sngohnehoch
sngplufuenf = sngxhochvierplus5 + sngxhochdreiplus5 + sngxhochzweiplus5 + sngxhochplus5 + sngohnehoch


MsgBox ("-3....." + sngmindrei + " " + CHR(13) + "-2....." + sngminzwei + " " + CHR(13) +_
"-1....." + sngmineins + " " + CHR(13) + "0....." + sngminnull +  "" + CHR(13) +_
"1....." + sngplueins + ""  + CHR(13) +_
"2....." + sngpluzwei + ""  + CHR(13) + "3....." + sngpludrei +"" + CHR(13) +_
"4....." + sngpluvier + ""  + CHR(13) + "5....." + sngplufuenf + ""  + CHR(13) +"")

End Sub

Verfasst: Mo, 20.03.2006 20:51
von Creator
Ich vermute einen Fehler in desem Bereich:

Code: Alles auswählen

sngmindrei = (sngxhochvierminus3 + ngxhochdreiminus3 + sngxhochzweiminus3 + sngxhochminus3 + sngohnehoch)
sngminzwei = sngxhochvierminus2 + sngxhochdreiminus2 + sngxhochzweiminus2 + sngxhochminus2 + sngohnehoch
sngmineins = sngxhochvierminus1 + sngxhochdreiminus1 + sngxhochzweiminus2 + sngxhochminus1 + sngohnehoch
sngminnull = sngxhochvierminus0 + sngxhochdreiminus0 + sngxhochzweiminus0 + sngxhochminus0 + sngohnehoch
sngplueins = sngxhochvierplus1 + sngxhochdreiplus1 + sngxhochzweiplus1 + sngxhochplus1 + sngohnehoch
sngpluzwei = sngxhochvierplus2 + sngxhochdreiplus2 + sngxhochzweiplus2 + sngxhochplus2 + sngohnehoch
sngpludrei = sngxhochvierplus3 + sngxhochdreiplus3 + sngxhochzweiplus3 + sngxhochplus3 + sngohnehoch
sngpluvier = sngxhochvierplus4 + sngxhochdreiplus4 + sngxhochzweiplus4 + sngxhochplus4 + sngohnehoch
sngplufuenf = sngxhochvierplus5 + sngxhochdreiplus5 + sngxhochzweiplus5 + sngxhochplus5 + sngohnehoch
Hab aber kein schimmer wie ich das dann richtig zusammen "zählen" muss.

MfG

Verfasst: Mo, 20.03.2006 22:00
von Stephan
Naja, der Fehler ist in den zwei Zelen, was doch rein optisch aufällt:

Code: Alles auswählen

sngmindrei = (sngxhochvierminus3) + (ngxhochdreiminus3) + (sngxhochzweiminus3) + (sngxhochminus3) + (sngohnehoch) 
...
sngmineins = sngxhochvierminus1 + sngxhochdreiminus1 + sngxhochzweiminus2 + sngxhochminus1 + sngohnehoch


falsch sind:
ngxhochdreiminus3 (gibt es garnicht)
sngxhochzweiminus2 (die falsche Variable, richtig: sngxhochzweiminus1)


schreib es kürzer dann ist es auch leichter zu überschauen, beispielsweise:

Code: Alles auswählen

Sub Potenzrechnen 

Dim snghochvier As Single 
Dim sngxhochvierminus3 As Single 
Dim snghochdrei As Single 
Dim snghochzwei As Single 
Dim sngxhoch As Single 
Dim sngohnehoch As Single 
Dim EndWert As Single 

sngxhochvier = CSng(Inputbox ("Geben Sie hier bitte die größe ihres x hoch 4 ein.")) 
sngxhochdrei = CSng(Inputbox ("Geben Sie hier bitte die größe ihres x hoch 3 ein.")) 
sngxhochzwei = CSng(Inputbox ("Geben Sie hier bitte die größe ihres x hoch 2 ein.")) 
sngxhoch = CSng(Inputbox ("Geben Sie hier bitte die größe ihres x hoch 1 ein.")) 
sngohnehoch = CSng(Inputbox ("Geben Sie hier bitte die Zahl ohne x ein.")) 

For i=-3 to 5
  akt = sngxhochvier*i^4+sngxhochdrei*i^3+sngxhochzwei*i^2+sngxhoch*i+sngohnehoch
  anz = anz & i & "....." & akt & CHR(13) 
Next i
msgbox anz
End Sub

Gruß
Stephan


P.S.
Nebenbei ist Dir inzwischen hoffentlich klar das die Antwort von Thomas hierauf:
wenn ich nun aber -5 angebe, ist das ergebnis positiv aber mein taschenrechnet sagt etwas anderes! -625
etwas scherzhaft gemeint war.

und warum (-5)^4 = 625 ist. :wink:

Obwohl natürlich nichts dagegen spricht sich mit den von Thomas vorgeschlagenen Dingen zu beschäftigen, isbesondere fall Du OOoBasic lernen möchtest.

Verfasst: Di, 21.03.2006 14:51
von Creator
Wieso kommen denn da so hohe Wete raus?

bei -3 muss 18 raus kommen anhand dieser funktion:

f(x) = 0.25x ^ 4 -0.5x³ - 1.25x² + 1.5x