AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DIV und MOD

Ein Thema von icke · begonnen am 25. Dez 2004 · letzter Beitrag vom 26. Dez 2004
Antwort Antwort
Seite 1 von 3  1 23      
icke

Registriert seit: 2. Nov 2004
17 Beiträge
 
#1

DIV und MOD

  Alt 25. Dez 2004, 14:04
Hallo
Ich kann die DIV und MOD Befehle nicht verwenden! Ich hab Delphi 3
Code:
restmin:=FloatToStr(Gesamt)div 60;
restsec:=FloatToStr(Gesamt)mod 60;
Fehler: Inkompatible Typen: 'String' und 'Integer'.

Danke im Vorraus
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: DIV und MOD

  Alt 25. Dez 2004, 14:09
Hi,

natürlich kannst Du das nicht!

Der Ausdruck:
FloatToStr(Gesamt) gibt einen String zurück. Auf diesen kannst Du den Divisions bzw. den Modulo Operator nicht anwenden.

Du müsstest das z.B. so schreiben
FloatToStr(Gesamt div 60) // oder mod 60 mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

Re: DIV und MOD

  Alt 25. Dez 2004, 14:10
Erstens: Delphi-Referenz durchsuchendiv und Delphi-Referenz durchsuchenmod sind Integer-Befehle, können also nur mit Integer-TYpen etwas anfange.

Zweitens: Delphi-Referenz durchsuchenFloatToStr gibt einen String zurück, mit Strings kannst du nicht rechen.

Drittens: In der OH sind nette Beispiele, und kuck mal nach Delphi-Referenz durchsuchenDivMod
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: DIV und MOD

  Alt 25. Dez 2004, 15:04
Zitat von Dax:
..., und kuck mal nach Delphi-Referenz durchsuchenDivMod
Wobei bei Delphi-Referenz durchsuchenDivMod auf die Grenzen zu achten sind (16Bit Integer);
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#5

Re: DIV und MOD

  Alt 25. Dez 2004, 15:14
Alternativ das hier benutzen

Delphi-Quellcode:
procedure DivModEx(Dividend, Divisor: Integer; var Result, Remainder: Integer); overload;
begin
  Result := Dividend div Divisor;
  Remainder := Dividend mod Divisor;
end;

procedure DivModEx(Dividend, Divisor: Extended; var Result, Remainder: Extended); overload;
var Temp: Extended;
begin
  Temp := Dividend / Divisor;
  Result := Int(Temp);
  Remainder := Frac(Temp) * Divisor;
end;
  Mit Zitat antworten Zitat
icke

Registriert seit: 2. Nov 2004
17 Beiträge
 
#6

Re: DIV und MOD

  Alt 25. Dez 2004, 18:22
1. Wo finde ich die Hilfe DivMod??
2. ich habe die Variabeln 'restmin' und 'restsec' auf integer gesetzt.

--> Fehler: Inkompatible Typen: 'String' und 'Integer'

Kann mir jemand auf normalem Deutsch (-> kein Fachchinesisch) erklären, warum es nicht funktioniert und den Weg zur Lösung bitte erklären??

Danke
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#7

Re: DIV und MOD

  Alt 25. Dez 2004, 18:29
Zitat von icke:
1. Wo finde ich die Hilfe DivMod??
Den Befehl findest du evtl. in der Delphi-Hilfe. Aber ob schon bei Delphi 3?

Zitat:
2. ich habe die Variabeln 'restmin' und 'restsec' auf integer gesetzt.

--> Fehler: Inkompatible Typen: 'String' und 'Integer'

Kann mir jemand auf normalem Deutsch (-> kein Fachchinesisch) erklären, warum es nicht funktioniert und den Weg zur Lösung bitte erklären??
Hat mirage doch weiter oben schon getan.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#8

Re: DIV und MOD

  Alt 25. Dez 2004, 18:36
Mirage hat es doch eigentlich gut erklärt. Aber ich versuche es nocheinmal auf einem anderen Weg

Delphi-Quellcode:
var
  str_restmin : String;
  str_restsec : String;
  int_restmin : Integer;
  int_restsec : Integer;
begin
  str_restmin := FloatToStr(Gesamt);
  int_restmin := str_restmin DIV 60; // Diese beiden Zeilen entsprechen: restmin := FloatToStr(gesamt) DIV 60

  str_restsec := FloatToStr(Gesamt);
  int_restsec := str_restmin MOD 60;

end;
Dies ist genau das was Du in deinem ersten Posting geschrieben hast. Nur das ich noch Hilfsvariabeln einfüge.
Wie Du siehst liefert FloatToStr() als Ergebniss einen String. Und diesen Versuchst Du zu dividieren was natürlich nicht gehen kann!
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
icke

Registriert seit: 2. Nov 2004
17 Beiträge
 
#9

Re: DIV und MOD

  Alt 25. Dez 2004, 18:37
Danke für deine Antwort

Ich habe jetzt diesen Ausdruck eingegeben!

Code:
restmin:=FloatToStr(Gesamt div 60);
restsec:=FloatToStr(Gesamt mod 60);
Der Fehler: Operator ist auf diesen Operatortyp nicht anwendbar

Die Hilfe von Delphi 3 sagt:
Zitat:
st der Typ eines Operanden ein Teilbereich eines ordinalen Typs, wird der Operand behandelt, als ob er von einem ordinalen Typ wäre.
Sind beide Operanden der Operatoren +, -, *, div oder mod von einem Integer-Typ, ist der Typ des Ergebnisses der gemeinsame Typ der beiden Operanden. Eine Definition gemeinsamer Typen finden unter Gemeinsamer Typen.
Ist der Operand des positiven oder negativen Vorzeichens von einem Integer-Typ, ist das Ergebnis vom selben Integer-Typ. Ist der Operator von einem Real-Typ, ist der Ergebnistyp Extended.

Der Wert von X/Y ist unabhängig vom Typ der Operanden immer vom Typ Extended. Falls Y den Wert 0 hat, tritt ein Laufzeitfehler auf.
Der Wert von I div J ist der abgerundete mathematische Quotient von I/J. Falls J den Wert 0 hat, tritt ein Laufzeitfehler auf.
Der Operator mod gibt den Rest zurück, der sich aus der Division der beiden Operanden ergibt:

I mod J = I - (I div J) * J

Das Ergebnis von mod hat dasselbe Vorzeichen wie I. Hat J den Wert 0, tritt ein Laufzeitfehler auf.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#10

Re: DIV und MOD

  Alt 25. Dez 2004, 18:41
Zitat von icke:
...Der Fehler: Operator ist auf diesen Operatortyp nicht anwendbar...
Wie hast Du denn die Variable gesamt deklariert?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 11:10 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