![]() |
Re: DIV und MOD
die Variable Gesamt ist real
|
Re: DIV und MOD
Hi,
dann musst du statt div, / schreiben. MfG Marc |
Re: DIV und MOD
Zitat:
|
Re: DIV und MOD
und wenn ich den Ausdruck div behalten will? wie muss die Variable Gesamt dann definiert werden?
|
Re: DIV und MOD
Wenn du div behalten willst,
musst du Integer vereinbaren! Merke:
Code:
MfG Marc
real: /
integer: div // +, -, und * sind bei beiden einheitlich! P.S.: Soll ich ein kleines Tutorial darüber schreiben? |
Re: DIV und MOD
jetzt gibt er weiter oben den Fehler aus...
Ich geb euch mal den gesamten Quelltext...damit ihr euch ein Bild davon machen könnt...
Code:
So, es geht um ein Programm, welches die Zeit berechnet. Die Ausgabe befehle hab ich noch nicht...die kommen erst noch
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Edit3: TEdit; Label4: TLabel; Label5: TLabel; Edit4: TEdit; Edit5: TEdit; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; MainMenu1: TMainMenu; Datei1: TMenuItem; Beenden1: TMenuItem; Berechnen1: TMenuItem; Zwischenzeit1: TMenuItem; Hilfe1: TMenuItem; Info1: TMenuItem; procedure Beenden1Click(Sender: TObject); procedure Zwischenzeit1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; gesamt: real; teiler,endzeitM, endzeitS, Strecke, Zeit, restmin, restsec: integer; implementation {$R *.DFM} procedure TForm1.Beenden1Click(Sender: TObject); begin close; end; procedure TForm1.Zwischenzeit1Click(Sender: TObject); begin endzeitm:=StrToInt(Edit1.Text); endzeits:=StrToInt(Edit2.Text); Strecke:=StrToInt(Edit3.Text); Zeit:=(endzeitm*60)+endzeits; Gesamt:=(Zeit/10000)*Strecke; restmin:=FloatToStr(Gesamt div 60); restsec:=FloatToStr(Gesamt mod 60); end; end. |
Re: DIV und MOD
Hi,
Code:
Ersetze div durch / :!:
...procedure TForm1.Zwischenzeit1Click(Sender: TObject);
begin endzeitm:=StrToInt(Edit1.Text); endzeits:=StrToInt(Edit2.Text); Strecke:=StrToInt(Edit3.Text); Zeit:=(endzeitm*60)+endzeits; Gesamt:=(Zeit/10000)*Strecke; restmin:=IntToStr(Gesamt / 60); restsec:=IntToStr(Gesamt mod 60); end; end. Warum? Betrachte den vorherigen Beitrag von mir. :wink: MfG Marc P.S.: Versuchs mal mit IntToStr... |
Re: DIV und MOD
nein, geht nicht immer noch inkompatible typen...
|
Re: DIV und MOD
Zitat:
irgendwie habe ich das Gefühl das Du die ganzen Antworten überhaupt nicht gelesen hast. Es ist doch wirklich alles erklärt worden. Aber Du setzt es in keiner Weise in deinem Code oben um. Warum nicht :?: |
Re: DIV und MOD
Oder aber man nutzt folgende Funktionen :mrgreen:
um DIV & MOD auch mit Real-Typen anwenden zu können:
Delphi-Quellcode:
^^ Ersatz für DIV
function Real_Div(AZahl1,AZahl2:Extended):Integer;
begin Result := Trunc(AZahl1 / AZahl2); end;
Delphi-Quellcode:
^^ Ersatz für MOD
function Real_Mod(AZahl1,AZahl2:Extended):Extended;
begin Result := AZahl1 - Trunc(AZahl1 / AZahl2) * AZahl2; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz