Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Zahl ungewöhnlich herunterrechnen, nur wie? - Es geht bestim

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Busyman
•-->
•-->


Anmeldedatum: 16.09.2001
Beiträge: 64
Wohnort: Ostwestfalen

BeitragVerfasst am: 27.04.2002 - 15:27    Titel: Zahl ungewöhnlich herunterrechnen, nur wie? - Es geht bestim Antworten mit Zitat

Hallo,

sagen wir ich habe eine Zufallszahl wie 11050. Es ist nur ein Beispiel, die Zahl kann auch mehr Ziffern haben. Nun möchte ich jedes Paar aufeinanderfolgender Ziffern addieren, so daß sich eine neue Zahl ergibt (aus 11050 wird 2155 -> 1+1=2, 1+0=1, 0+5=5, 5+0=5). Diese Vorgehensweise soll so oft wiederholt werden, bis ich nur noch eine Zahl habe, die aus 2 Ziffern besteht.

Ich weiß, daß man eine deratige Routine scripten kann, da bin ich mir ganz sicher, nur will mir momentan so gar nicht einfallen, wie man das im Detail anstellt.

Hat jemand von Euch eine Idee? Wäre klasse!

Martin

(Geändert von Busyman um 15:29 Uhr am 27 April 2002)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 27.04.2002 - 19:33    Titel: Zahl ungewöhnlich herunterrechnen, nur wie? Antworten mit Zitat

Hi Martin,

eine Idee habe ich schon. Das Skript soll auf jeden Fall so lange laufen, bis die Zahl zweistellig ist - also kleiner 100. Das wäre schon mal eine Abbruchbedingung für eine Schleife.

Da nicht bekannt ist, wie lange die Zahl ist, wandle ich sie in einen Text um und zähle die Zeichen. -- Ach was! Schau's dir einfach mal an:

set x to 11050

repeat until x < 100
copy x as text to xt
set tl to (count text items of xt) - 1
log "Länge: " & tl
set x to add_x(x, tl, xt)
end repeat

on add_x(x, tl, xt)
set counter to 1
set y to { }
repeat tl times
set the end of y to ¨
((text item counter of xt) as number) + ((text item (counter + 1) of xt) as number)
set counter to counter + 1
log (y as string) as number
set x to (y as string) as number
end repeat
end add_x


Also mit deiner Zahl funktioniert das ja schon ganz gut. Was soll aber geschehen, wenn durch die Addition zweier benachbarter Zahlen eine zweistellige Zahl resultiert.

Ein weiteres Problem ist, dass es nicht mehr läuft sobald die wissenschaftliche Zahlendarstellung verwendet wird.

Der Fehler tritt dann hier auf:

set the end of y to ¨
((text item counter of xt) as number) + ((text item (counter + 1) of xt) as number)


--> Can't make "," into a number.

Mit dem Komma ist der Punkt in z.B. einer solchen Zahl gemeint: 1.210510101E+9

Um diese Darstellungsweise zu verhindern, findest du einen entsprechenden Handler in meinem Artikel Zahlen runden. Den könntest du ja noch in das Skript einbeziehen.

Ich hoffe, das war Anregung genug.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com


Zuletzt bearbeitet von Snow am 22.02.2003 - 22:04, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Busyman
•-->
•-->


Anmeldedatum: 16.09.2001
Beiträge: 64
Wohnort: Ostwestfalen

BeitragVerfasst am: 27.04.2002 - 21:53    Titel: Zahl ungewöhnlich herunterrechnen, nur wie? Antworten mit Zitat

Hallo Peter,

nach einem Tag des Grübelns und erfolglosen Suchens ist Deine Routine ein wahrer Quell der Erkenntnis. Das macht mir ja Hoffnung darauf, daß es am Ende doch noch mit meiner Routine klappt. Im Grunde hört sich die ganze Geschichte nicht besonders schwer an, auf dem Papier läßt sich das relativ schnell ausrechnen. Nur als "informatisches" Problem ist es (jedenfalls, wenn man es mit AS probiert) anscheinend recht komplex. Werde mich jetzt einmal in Ruhe hinsetzen, mir die Routine anschauen und dann überlegen, wie ich genau vorgehe. Die Lösung, gibt es dann eine, wird natürlich hier veröffentlicht :biggrin:

Dankend,

Martin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Busyman
•-->
•-->


Anmeldedatum: 16.09.2001
Beiträge: 64
Wohnort: Ostwestfalen

BeitragVerfasst am: 27.04.2002 - 21:57    Titel: Zahl ungewöhnlich herunterrechnen, nur wie? Antworten mit Zitat

Fast vergessen:

Die Probleme, die Du beschreibst, sind natürlich genau die, welche mich schon den ganzen Tag quälen Wink Aber irgendwie muß das realisierbar sein, denn anscheinend geht es mit JavaScript vorzüglich. Nur habe ich keinen blassen Schimmer, mit welchen Routinen dort gearbeitet wird. Na, noch ist ja nicht Hopfen und Malz verloren...

Martin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 28.04.2002 - 00:18    Titel: Zahl ungewöhnlich herunterrechnen, nur wie? Antworten mit Zitat

Hallo Martin,

ich denke, du musst auf jeden Fall eine Funktion einbauen, die verhindert, dass die Zahlen zu groß werden. So wie es im Moment abläuft, kann es durchaus vorkommen, dass sehr hohe Zahlenwerte entstehen (eigentlich sollten sie doch immer kleiner werden). Die Wertebereiche für Zahlen in AppleScript sind aber beschränkt (siehe MacScripter's Magazine 2 - Kapitel 1 - Zahlenwerte).

Wenn diese Wertegrenzen erreicht werden, hilft auch nicht der Handler, der die wissenschaftliche Zahlendarstellung verhindert. Bei der Verwendung dieses Handlers muss man übrigens aufpassen, falls das Skript international verwendbar sein soll. Bei der Umwandlung der Zahl in einen Textwert wird das Dezimaltrennzeichen "übersetzt".

Beispiel:

Zahl: 1.23456789E+9

wird als Text zu:

1,23456789+9

Der Punkt wird also zum Komma. Im Handler wird nach dem offset-Wert von "," gesucht. Das funktioniert auf einem deutschen System auch, da hier in der Regel das Komma als Dezimaltrennzeichen verwendet wird. Auf einem US-System geht diese Suche aber ins Leere (dort wird der Punkt benutzt).

Alles nicht so einfach! Sad
Aber immer Cool bleiben.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter