potenz

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: potenz

von Creator » Di, 21.03.2006 16:21

habsjetzt hinbekommen thx

von Stephan » Di, 21.03.2006 15:22

bei -3 muss 18 raus kommen anhand dieser funktion:

f(x) = 0.25x ^ 4 -0.5x³ - 1.25x² + 1.5x
und das kommt es auch.

Ich gehe allerdings in einem deutschsprachigen Forum davon aus das wir über ein deutschsprachiges (Computer)System reden solange nichts anderes gesagt ist. Und dort sind die Punkte nicht die Dezimal- sondern die Tausendertrenner. Du mußt also die Werte mit Komma und nicht mit Punkt eingeben.

Siehe dazu auch die Online-Hilfe von OOo zur Funktion CSng:

"...
CSng-Funktion [Laufzeit]
Konvertiert einen beliebigen numerischen Ausdruck oder einen String-Ausdruck in einen Single-Typ.
Syntax:
CSng (Ausdruck)
Rückgabewert:
Single
Parameter:
Ausdruck: Ein beliebiger numerischer oder Zeichenkettenausdruck, den Sie konvertieren möchten. Zum Konvertieren eines Zeichenkettenausdrucks muss die Zahl als normaler Text ("123,5") entsprechend des Standard-Zahlenformats Ihres Betriebssystems eingegeben werden.
..."


Gruß
Stephan

von Creator » Di, 21.03.2006 14:51

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

von Stephan » Mo, 20.03.2006 22:00

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.

von Creator » Mo, 20.03.2006 20:51

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

von Creator » Mo, 20.03.2006 20:25

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

von Toxitom » Mo, 20.03.2006 19:26

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

von Creator » Mo, 20.03.2006 18:50

wenn ich nun aber -5 angebe, ist das ergebnis positiv aber mein taschenrechnet sagt etwas anderes! -625

von Toxitom » Mo, 20.03.2006 18:30

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

von Creator » Mo, 20.03.2006 18:02

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

von Toxitom » Mo, 20.03.2006 17:53

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

von Creator » Mo, 20.03.2006 16:39

hat nen namen bei mir!

von ykcim » Mo, 20.03.2006 16:26

sub xxxx
Die Procedure muß einen Namen haben.

mfg
Michael

von Creator » Mo, 20.03.2006 15:52

Sub
sngxhochvierminus3 = sngxhochvier ^ 4
MsgBox "" + sngxhochvierminus3 + ""
End Sub

Mach ich da irgendwas falsch? er sagt zumindest imemr fehler

von benjy » Mo, 20.03.2006 15:34

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*

Nach oben