truncate funktion mathematisch

Neue Frage »

bubussss Auf diesen Beitrag antworten »
truncate funktion mathematisch
hallo kann mir jemand sagen ob es einen mathematischen ausdruck für die truncate funktion gibt ?? ...

in delphi gibt es die funktion trunc() die den ganzzahlenwert des arguments zurück gibt .... also 2,8 --> 2

gibt es hierfür irgenein mathematisches prozedere oder gibt es nur die möglichkeit hinten nach dem komma alles wegzulassen ?? .. also zb in string umwandeln und alles vorm komma wieder in integer ??
sqrt(2) Auf diesen Beitrag antworten »

Mach das ja nicht. Es ist definitiv völlig kaputtes Konzept, Zahlen in Zeichenketten umzuwandeln, um dann auf ihnen operieren zu können. (Abgesehen davon kann man da ziemlich viel falsch machen, wenn man zum Beispiel vergisst, dass der Dezimaltrenner von den Locales des Betriebssystems abhängen kann etc.).

In der Mathematik hat man nicht das Problem, sich um konkrete Implementierung kümmern zu müssen, man definiert sich einfach die Abrundungsfunktion als

.

So wie ich deine Frage verstehe, hast du eine Entwicklungsumgebung irgendeiner Art, von der du glaubst, sie hätte keine solche Funktion eingebaut. Das kann ich nicht glauben. Es ist definitiv eine Sache der grundlegenden Mathematikbibliotheken, sich um eine solche Funktion zu kümmern. (Ich habe sogar schon einen DSP (digitalen Signalprozessor) gesehen, der hatte eine Funktion dafür in Hardware implementiert.) Lies die Dokumentation -- da steht bestimmt was Entsprechendes.
Sebastian Auf diesen Beitrag antworten »

Zitat:
Original von sqrt(2)
Mach das ja nicht. Es ist definitiv völlig kaputtes Konzept, Zahlen in Zeichenketten umzuwandeln, ...


Er will keine Zahl in eine Zeichenkette umwandeln, er will nur die Nachkommastellen "abschneiden". Und Umwandlungen sind keineswegs schlecht bzw. auch kein "völlig kaputtes Konzept".

code:
1:
2:
3:
4:
5:
6:
7:
function Trunc(Zahl: Extended): Integer;
var Buffer: String;
begin
  Buffer := FloatToStr(Zahl);
  Buffer := copy(Buffer, 1, Pos(',', Buffer)-1);
  Result := StrToInt(Buffer);
end;


Obige schnell getippte Funktion macht z.B. die Umwandlung mit einem String als Zwischenspeicher. Augenzwinkern
sqrt(2) Auf diesen Beitrag antworten »

Zitat:
Original von Sebastian
Zitat:
Original von sqrt(2)
Mach das ja nicht. Es ist definitiv völlig kaputtes Konzept, Zahlen in Zeichenketten umzuwandeln, ...


Er will keine Zahl in eine Zeichenkette umwandeln, er will nur die Nachkommastellen "abschneiden". Und Umwandlungen sind keineswegs schlecht bzw. auch kein "völlig kaputtes Konzept".

Du bist ein Quotemarder. Den wichtigen Teil des Zitats hast du abgeschnitten. Es ist ein völlig kaputtes Konzept, eine Zahl als String darzustellen, in diesem String im Dezimalsystem mathematische Operationen durchzuführen und diesen String wieder zurückzukonvertieren, wenn man mit dem ursprünglichen Datentyp die Genauigkeit erreicht, die man braucht. Stichworte Rechenzeit, Speicherverbrauch.

Zitat:
Original von Sebastian
code:
1:
2:
3:
4:
5:
6:
7:
function Trunc(Zahl: Extended): Integer;
var Buffer: String;
begin
  Buffer := FloatToStr(Zahl);
  Buffer := copy(Buffer, 1, Pos(',', Buffer)-1);
  Result := StrToInt(Buffer);
end;


Obige schnell getippte Funktion macht z.B. die Umwandlung mit einem String als Zwischenspeicher. Augenzwinkern

Tut mir leid, aber das ist falsch. Es funktioniert auf mehr als 80% der Windowssysteme dieser Welt nicht.
AD Auf diesen Beitrag antworten »

Zitat:
Original von sqrt(2)
Es ist ein völlig kaputtes Konzept, eine Zahl als String darzustellen, in diesem String im Dezimalsystem mathematische Operationen durchzuführen und diesen String wieder zurückzukonvertieren, wenn man mit dem ursprünglichen Datentyp die Genauigkeit erreicht, die man braucht. Stichworte Rechenzeit, Speicherverbrauch.

Das kann ich nur unterstreichen. Wobei Speicherverbrauch dieses Verfahrens zumindest auf einem PC eher kein Problem ist (bei Mikrocontroller sieht das schon anders aus). Aber den Rechenzeitbedarf dieses Stringverfahrens kann man einfach nur als katastrophal bezeichnen. Mit Faktor 100 gegenüber dem üblichen einen Prozessorbefehl wäre man noch gut bedient, ich schätze (je nach Zahlbereich) liegt das wohl deutlich drüber.
bubussss Auf diesen Beitrag antworten »

es geht um eine aufgabe die zeigen will für welche x=trunc(x/a)=trunc(x/(a+1)) gilt ..... dafür wollte ich wissen ob es eine mathematische beschreibung gilt ... ich hab ein programm geschrieben .. und eine lösung gesehn ... aber die iss nicht hergeleitet .. wenn es keine mathematische beschreibung gibt dann gibt es auch keine herleitung ...

aber danke
 
 
sqrt(2) Auf diesen Beitrag antworten »

Da dies eine Aufgabe eines laufenden Wettbewerbs ist, schließe ich diesen Thread.

Eine mögliche Definition habe ich dir oben geschrieben, mehr Hilfe wäre definitiv gegen die Wettbewerbsregeln. (Diese Definition hättest du dir eigentlich schon aus dem Hinweis zur Aufgabe erschließen müssen.)
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »