AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte DIV and MOD
Thema durchsuchen
Ansicht
Themen-Optionen

DIV and MOD

Ein Thema von dajuhsa · begonnen am 20. Aug 2007 · letzter Beitrag vom 21. Aug 2007
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von dajuhsa
dajuhsa
Registriert seit: 20. Apr 2007
Guuuuuten Tag!

ich habe seit gestern ein wenig mit den Ausdrücken DIV und MOD experimentiert und heraus kam eine dll.
sie hat zwar wenig nutzen weil man das alles auch mit strings machen könnte aber trotzdem erklär ich mal ein paar methoden:
-GetDig -> sucht eine Ziffer in einem Integer
-GetLastDig -> gibt die letzte Ziffer zurück
-ChangeDig -> ändert Ziffer a in Zahl b zu Ziffer c um
-TrimDeg -> versucht einen Winkel möglichst klein zu machen:
Delphi-Quellcode:
begin
X := 850; // X = 850
TrimDeg(X); // X = 130
end;
-TrimRad -> Das gleiche
Delphi-Quellcode:
begin
X := 5.2; // X = 5.2
TrimRad(X); // X = 1.2
ihr seht ja schon, dass das ganze hauptsächlich irgendwas mit ziffern macht
Bitte guckt es euch an und sagt mir, wenn ihr Fehler entdeckt.
Bittedankeschön

[edit=Luckie]Thread-Titel korrigiert, als ein Wort findet man das ja in der Suche nie. Mfg, Luckie[/edit]
Angehängte Dateien
Dateityp: dll divandmod_151.dll (88,0 KB, 19x aufgerufen)
Dateityp: rar divandmod_454.rar (4,2 KB, 23x aufgerufen)
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
 
Benutzerbild von semo
semo

 
Delphi 2010 Professional
 
#11
  Alt 20. Aug 2007, 20:47
wenn du die sysutils noch raus kickst aus der uses section,
dann sparst du noch mal 8 kb, also insgesamt dann 80 kb.

du musst dann halt nur noch die funktion inttostr aus den sysutils in deine dll kopieren...
  Mit Zitat antworten Zitat
CalganX

 
Turbo Delphi für Win32
 
#12
  Alt 20. Aug 2007, 20:49
Warum eigentlich eine DLL? Eine normale Unit würde es doch auch tun. Und wenn du den Quellcode nicht herausgeben willst, kannst du ja auch immer noch nur die DCU herausgeben. Ich finde eine DLL für sowas, was eigentlich nur Spielerei ist, total übertrieben.

Christopher
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

 
Delphi 2010 Professional
 
#13
  Alt 20. Aug 2007, 20:50
spielerei, darum geht es ihm ja denke auch.
jeder fängt mal klein an oder?
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

 
Turbo Delphi für Win32
 
#14
  Alt 20. Aug 2007, 20:59
Zitat von CalganX:
Warum eigentlich eine DLL? Eine normale Unit würde es doch auch tun. Und wenn du den Quellcode nicht herausgeben willst, kannst du ja auch immer noch nur die DCU herausgeben. Ich finde eine DLL für sowas, was eigentlich nur Spielerei ist, total übertrieben.

Christopher
is halt meine erste dll und ich glaub auch nicht dass die jemals ernsthaft eingesetzt wird, deshalb auch kein ernsthaftes format.
mein code is ja dabei und eigentlich wollt ich nur mal sehen ob das bei mir als dll überhaupt klappt
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

 
Delphi 7 Enterprise
 
#15
  Alt 20. Aug 2007, 21:04
Du darfst nicht nur die Funktionen ergänzen, sondern musst auch die Unist aus der uses-Liste entfernen. Die tauchen in deiner DLL noch auf.
Ich hatte es unter 20kb.
Wobei der Vorteil noch dadurch vergrößert wird, dass nicht unnötig Klassen (z.B. Exception) durch die Units instanziert werden.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh
 
#16
  Alt 20. Aug 2007, 21:12
Zitat von sirius:
-da power bei dir nur mit natürlichen zahlen rechnet, kannst du auch math rausschmeissen und power durch eine forschleife o.ä. ersetzen
Power lässt sich ohne Math-Unit durch Exp() und Ln() ersetzen:
a^b = (e^ln a)^b = e^(b * ln a)
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

 
Delphi 7 Enterprise
 
#17
  Alt 20. Aug 2007, 21:30
Zitat von Khabarakh:
Zitat von sirius:
-da power bei dir nur mit natürlichen zahlen rechnet, kannst du auch math rausschmeissen und power durch eine forschleife o.ä. ersetzen
Power lässt sich ohne Math-Unit durch Exp() und Ln() ersetzen:
a^b = (e^ln a)^b = e^(b * ln a)
Ja, das ist zwar richtig, aber weist du wie lange die FPU rattert, eh sie etwas mit der eulerschen Zahl zustande gebracht hat. Da ist (wie gesagt: natürliche Zahlen!) eine for schleife bedeutend schneller.
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

 
Turbo Delphi für Win32
 
#18
  Alt 20. Aug 2007, 21:39
@Khabarakh: Aha!! - Das versteh ich nicht...
@sirius: ich glaub ich lass es jetzt einfach is auch egal
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

 
Delphi 7 Enterprise
 
#19
  Alt 20. Aug 2007, 21:57
Ich dachte du wolltest dazulernen , dafür sind wir doch hier

Was K. gemeint hat, kommt aus den Logarithmengesetzen. Ist keine Zauberei. (und wenn du 13 bist, dann hab Geduld, das kommt noch in der Schule).
So macht es auch die Unit math. Bzw. so hat man es früher selber implemtiert als man noch keine Unit math hatte. Damit kann man quasi x^y für alle reellen Zahlen (mit x>0) rechnen. günstiger für die FPU wäre IMHO x^y = 2^(x*lb(a)). Aber für deine Anwendung ist das alles overkill. Vermeide Fleißkommazahlen (single,double,real,extended) solange es geht!
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

 
Turbo Delphi für Win32
 
#20
  Alt 20. Aug 2007, 22:13
ja ich will auch lernen aber ich finde die sysutils.pas nicht^^
außerdem fällt mir nichts mehr ein was ich noch machen könnte weil auf optimierung hab ich keine lust wenn es nur ums lernen geht^^
nochwas:
meinst du nicht Fließkommazahl?
was ist schneller? Mein ChangeDig oder irgendwas mit strings und inttostr?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz