- Registriert
- 31.05.09
- Beiträge
- 16
Hallo,
Habe heute früh angefangen mich in AppleScript einzulesen. Bitte also jetzt schon mal fachlich nicht korrekte Ausdrücke entschuldigen - Danke
(Kann auch sonst keine Programmiersprache... alles hat halt einen Anfang^^
Mein erstes Skript berechnet die Fibonacci Zahlen.
(Was ist das? -> eine Zahlenreihe bei der immer die 2 Vorhergehenden Zahlen der Reihe addiert werden. Man startet bei der Zahl 1.
1. Fibonacci Zahl: 1
2.: die Zahl vor 1 ist Null, daher 0 +1 = 1
3.: 1+1 = 2
4.: 1+2= 3
4.: 2+3= 5
5.: 3+5= 8
USW. ... Wikipedia erklärt das sicher besser als ich)
Es gibt genügend Scripts (per Google gefunden) die auf diese primitive Art die Fibonacci Zahlen "abzählen".
Für große Zahlen muss aber immer mehr/länger gerechnet werden und das Script braucht einfach zu lange.
Das ist mir zu öde, nervig und primitiv^^.
Man kann die Zahlenreihe auch berechnen ohne mindestens 2 Zahlenwerte eingeben zu müsse, bzw. für die 5. Zahl dann 6 Zahlen...; das geht mit Hilfe einer bestimmten Formel (Moivre-Binet Formel... hat mit dem Goldenen Schnitt zu tun... siehe Wikipedia bei Interesse
, auf die ich nicht näher eingehen möchte.
Mein Problem ist jetzt:
Die 43. Fibonacci Zahl ist: 433.494.437 (433 Millionen...), diese Zahl kann mein Script noch berechnen.
Die 44. Fibonacci Zahl ist: 701.408.733 (701 Millionen...), diese Zahl kann nicht mehr berechnet werden, bzw. als Ergebnis wird mir das hier ausgespuckt: 7,01408733E+8
Juhu -.- was soll ich mit "7,01408733E+8" ??
Wieso wird mir die 44. Zahl (und jede noch größere) mit so einem komische E+ und nem Komma dargestellt?
Kann man das irgendwie umwandeln in eine normale Dezimal-Zahl?
-----
So, hier mein Script Code:
Wie gesagt, ist nur mal so mein erster Versuch was in AppleScript zu schreiben
(Nein, ich will damit nicht berühmt werden, mein Name kommt t-dem rein^^)
Noch eine Frage am Rande: Habe auch so als Geck noch schnell einen Taschenrechner geschrieben^^:
Irgendwie bekomme ich diesen Befehl "tell application "Finder" to set the clipboard to the ¬ x as text" der im Taschenrechner super funktioniert nicht auch in meinen Fibonacci-Rechner... also ich möchte die errechnete Fibonacci-Zahl (im Script "Ausgabe" genannt) auch am Ende in der Zwischenablage haben.
Aber mit to set the clipboard to... Ausgabe as text funktioniert das nicht... Wieso bzw. wie funktioniert es?
Ich habe über Google schon folgendes gefunden: http://www.fischer-bayern.de/applescript/html/rundung.html
Da ist ganz unten ein Code mit dem man angeblich das mit dem E+ löst... der Code funktioniert allerdings bei mir nicht (hab den auch schon 1 zu 1 rauskopiert... liegt vielleicht daran, dass der Code aus dem Jahr 2005 !?)
Ich benutze den AppleScript Editor der bei Leopard (10.5.7) dabei war.
Vielen Dank !! =)
Mfg,
Ludwig
Habe heute früh angefangen mich in AppleScript einzulesen. Bitte also jetzt schon mal fachlich nicht korrekte Ausdrücke entschuldigen - Danke

(Kann auch sonst keine Programmiersprache... alles hat halt einen Anfang^^

Mein erstes Skript berechnet die Fibonacci Zahlen.
(Was ist das? -> eine Zahlenreihe bei der immer die 2 Vorhergehenden Zahlen der Reihe addiert werden. Man startet bei der Zahl 1.
1. Fibonacci Zahl: 1
2.: die Zahl vor 1 ist Null, daher 0 +1 = 1
3.: 1+1 = 2
4.: 1+2= 3
4.: 2+3= 5
5.: 3+5= 8
USW. ... Wikipedia erklärt das sicher besser als ich)
Es gibt genügend Scripts (per Google gefunden) die auf diese primitive Art die Fibonacci Zahlen "abzählen".
Für große Zahlen muss aber immer mehr/länger gerechnet werden und das Script braucht einfach zu lange.
Das ist mir zu öde, nervig und primitiv^^.
Man kann die Zahlenreihe auch berechnen ohne mindestens 2 Zahlenwerte eingeben zu müsse, bzw. für die 5. Zahl dann 6 Zahlen...; das geht mit Hilfe einer bestimmten Formel (Moivre-Binet Formel... hat mit dem Goldenen Schnitt zu tun... siehe Wikipedia bei Interesse

Mein Problem ist jetzt:
Die 43. Fibonacci Zahl ist: 433.494.437 (433 Millionen...), diese Zahl kann mein Script noch berechnen.
Die 44. Fibonacci Zahl ist: 701.408.733 (701 Millionen...), diese Zahl kann nicht mehr berechnet werden, bzw. als Ergebnis wird mir das hier ausgespuckt: 7,01408733E+8
Juhu -.- was soll ich mit "7,01408733E+8" ??
Wieso wird mir die 44. Zahl (und jede noch größere) mit so einem komische E+ und nem Komma dargestellt?
Kann man das irgendwie umwandeln in eine normale Dezimal-Zahl?
-----
So, hier mein Script Code:
Code:
set NatuerlicheZahl to display dialog "Mit diesem Script können die ersten 43 Fibonacci Zahlen errechnet werden. Gebe dazu eine (Natürliche) Zahl zwischen 0 und 43 ein!" default answer "" buttons {"abbrechen", "Fibonacci Zahl errechnen"} default button 2
-- Fenster öffnet sich und man muss eine (natürliche) Zahl zwischen 0 und 43 eingeben
if the button returned of the NatuerlicheZahl is "abbrechen" then
-- wenn man abbrechen klickt ist das Script beendet, ...
else
-- ... klickt man hingegen auf berechnen wird folgender Code durchlaufen:
set UserEingabe to text returned of NatuerlicheZahl
-- Beginn der Berechnung der Fibonacci Zahl nach der Moivre-Binet Formel
set MoivreBinet to (1 / (5 ^ 0.5)) * (((1 + (5 ^ 0.5)) / 2) ^ UserEingabe) + 0.5
-- Ende der Berechnung der Fibonacci Zahl nach der Moivre-Binet Formel (reine Mathematik;-)
-- Für die 43. Fibonacci Zahl wird 433.494.437 (bereits ohne Nachkommastellen) als Ergebnis ausgegeben. Schon bei der 44. F-Zahl kommt 7,01408733E+8 als Ergebnis
set ErgebnisMoivreBinet to MoivreBinet
-- "ErgebnisMoivreBinet" -> Variable für das Ergebnis aus der Berechnung (mit der Moivre-Binet Formel). Dieses ist eine Zahl mit Nachkommastellen. Im Folgenden wird mit dem Befehl "set ... to ... div 1" einfach der Teil vor dem Komma als "Ergebnis_ohne_Nachkommastellen" definiert (man könnte die Zahl auch mit "round ErgebnisMoivreBinet rounding toward zero" ABrunden):
set Ergebnis_ohne_Nachkommastellen to MoivreBinet div 1
set Ausgabe to Ergebnis_ohne_Nachkommastellen
-- einfach logische Namen vergeben
display dialog "Die " & UserEingabe & ". Fibonacci Zahl ist " & Ausgabe buttons {"Autor", "Beenden"} default button 2
if the button returned of the result is "Autor" then
display dialog "Mit AppleScript geschrieben von Ludwig R. ([email protected]). Alle Rechte vorbehalten. Danke fürs Benutzen! Weitergabe (ohne Veränderung des Scripts) erlaubt. Verbessungsvorschläge bitte an die genannte E-Mail Adresse ;-)" buttons {"Programm beenden"} ¬
default button 1
end if
end if
Wie gesagt, ist nur mal so mein erster Versuch was in AppleScript zu schreiben

(Nein, ich will damit nicht berühmt werden, mein Name kommt t-dem rein^^)
Noch eine Frage am Rande: Habe auch so als Geck noch schnell einen Taschenrechner geschrieben^^:
Code:
set Recheneingabe to display dialog "Rechnung unten eingeben
Folgende Rechenoperationen sind dabei möglich:
+ Plus
- Minus
* Mal
/ Geteilt
^x Hoch x
^(1/x) x-te Wurzel
Für Nachkommastellen einen . verwenden (kein ,)" default answer "" buttons {"abbrechen", "berechnen"} ¬
default button 2
if the button returned of the Recheneingabe is "berechnen" then
set x to text returned of Recheneingabe
set x to run script x & " as real"
display dialog "Dein Ergebnis: " & x & " wurde in die Zwischenablage kopiert." buttons {"beenden"} ¬
default button 1
tell application "Finder" to set the clipboard to the ¬
x as text
end if
Irgendwie bekomme ich diesen Befehl "tell application "Finder" to set the clipboard to the ¬ x as text" der im Taschenrechner super funktioniert nicht auch in meinen Fibonacci-Rechner... also ich möchte die errechnete Fibonacci-Zahl (im Script "Ausgabe" genannt) auch am Ende in der Zwischenablage haben.
Aber mit to set the clipboard to... Ausgabe as text funktioniert das nicht... Wieso bzw. wie funktioniert es?
Ich habe über Google schon folgendes gefunden: http://www.fischer-bayern.de/applescript/html/rundung.html
Da ist ganz unten ein Code mit dem man angeblich das mit dem E+ löst... der Code funktioniert allerdings bei mir nicht (hab den auch schon 1 zu 1 rauskopiert... liegt vielleicht daran, dass der Code aus dem Jahr 2005 !?)
Ich benutze den AppleScript Editor der bei Leopard (10.5.7) dabei war.
Vielen Dank !! =)
Mfg,
Ludwig