Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Division (https://www.delphipraxis.net/7899-division.html)

Gregor00 23. Aug 2003 22:47


Division
 
Hallo

Also ich hab hier eigentlich nen relativ einfaches Problem (zumindest glaub ich das) aber ich komm einfach nicht auf die Lösung:

Also ich hab zwei variablen, denen wird per Random nen zufallswert zugeordnet. Dann sollen die beiden Werte dividiert werden, allerdings soll als Ergebnis ne zahl vom Typ Real rauskommen, also eine einfache zahl ohne Nachkommastellen. Mein problem ist, dass ich es nicht schaffe den beiden Variablen "zufällige" zahlen zuzuordnen, dass als ergebnis runde zahlen rauskommen. ich hoff ihr versteht was ich mein

Steh grad irgentwie aufem Schlauch.... :shock:

thx
greg

Christian Seehase 23. Aug 2003 22:52

Re: Division
 
Moin Greg,

Zitat:

Zitat von Gregor00
allerdings soll als Ergebnis ne zahl vom Typ Real rauskommen, also eine einfache zahl ohne Nachkommastellen

also das ist jetzt ein Widerspruch in sich. Der Typ Real hat nun einmal Nachkommastellen. Du brauchst jetzt wohl eher cardinal oder integer.

Sind Deine Zufallszahlen jetzt Gleitkommazahlen?
Sollen die Nachkommastellen jetzt abgeschnitten werden, oder muss die Division zwingend aufgehen?

Gregor00 23. Aug 2003 22:55

Re: Division
 
mist sorry war natürlich quatsch was ich geschrieben hab

real = mit nachkommastellen
integer = ohne Nachkommastellen

also nochmal richtig: das Ergebnis soll von Typ Integer sein!!

danke für den Hinweis (naja war nen anstrengender Tag heut)

Chewie 23. Aug 2003 23:02

Re: Division
 
Das einfachste wäre:

Delphi-Quellcode:
var
  i: Integer;
begin
  i := 5 div 3; //div gibt den ganzzahligen Anteil einer Division zurück - in diesem Fall 1
end;
Edit: Vergesst es, Leute, ich hab nicht richtig gelesen :oops:

negaH 23. Aug 2003 23:05

Re: Division
 
Delphi-Quellcode:

  X := Random(1000) +1;
  Y := Random(1000) +1;
  Z := X div Y;
X wird "rund" gemacht. Sollte das nicht das sein was du willst dann ist das nächste richtig

Delphi-Quellcode:

  Y := Random(1000) +1;
  Z := Random(1000) +1;
  X := Z * Y;
X ist nun immer ohne Rest durch Z und Y teilbar, somit auch Z := X div Y und 0 == X mod Y.

Gruß Hagen

Gregor00 23. Aug 2003 23:11

Re: Division
 
@ Chewie

nein DIV kann ich nicht benutzen, weil das Ergebnis dann nicht mehr richtig wäre (es werden ja einfach die nachkommastellen gestrichen)

@ negaH
hört sich gut an erd#s mal ausprobieren...

cu greg

negaH 23. Aug 2003 23:21

Re: Division
 
Um's nochmal anders auszudrücken, statt per DIV auf ein rundes Ergebniss zu hoffen wird das Ergebnis von vornherein so erzeugt das die Division ohne Rest ist. Die inverse Operation einer Divison ist dann logischer weise die Multiplikation :) Einfach Z := X div Y umstellen und den Rest per Zufall erzeugen.

Gruß Hagen

Die Muhkuh 24. Aug 2003 07:20

Re: Division
 
Liste der Anhänge anzeigen (Anzahl: 1)
@ Gregor

Wenn du mit das ergebnis mit nachkommastellen haben willst dann musst du schon mit Real rechnen!

Ich hab dir mal nen primitiven Rechner gemacht! Hoffe es hilft!

greetz

Spider

Matze 24. Aug 2003 10:00

Re: Division
 
Code:
var Ergebnis: integer;
    Y,Z: real;

Y := Random(1000) +1;
Z := Random(1000) +1;

Ergebnis:=round(Y/Z);
Gruß Matze

negaH 24. Aug 2003 11:25

Re: Division
 
@Matze, wenn du so vorgehst und dann Z * Result ausrechnest ist es dann immer gleich Y ??

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 Uhr.
Seite 1 von 2  1 2      

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