potenz

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

Moderator: Moderatoren

Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

potenz

Beitrag 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
Bratmatzen
**
Beiträge: 27
Registriert: So, 05.03.2006 15:12
Wohnort: Schwoiga

Beitrag 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
Zuletzt geändert von Bratmatzen am Mo, 20.03.2006 15:41, insgesamt 1-mal geändert.
benjy
*
Beiträge: 19
Registriert: Mo, 03.10.2005 12:20

Beitrag 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*
Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

Beitrag von Creator »

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

Mach ich da irgendwas falsch? er sagt zumindest imemr fehler
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

sub xxxx
Die Procedure muß einen Namen haben.

mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

Beitrag von Creator »

hat nen namen bei mir!
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag 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
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

Beitrag 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
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag 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
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

Beitrag von Creator »

wenn ich nun aber -5 angebe, ist das ergebnis positiv aber mein taschenrechnet sagt etwas anderes! -625
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag 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
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

Beitrag 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
Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

Beitrag 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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag 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.
Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

Beitrag 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
Antworten