Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Teiler (https://www.delphipraxis.net/133098-teiler.html)

Reap3r 25. Apr 2009 13:49


Teiler
 
Hi Leute!

Ich wollte ein kleines Programm schreiben, mit dem ich ganz einfach die Teiler einer eingegebenen Zahl in eine Listbox schreiben lasse.
Hierzu habe ich forgenden Quellcode:

Delphi-Quellcode:
procedure TForm1.BTeilerClick(Sender: TObject);
  var ergebnis, i, o : integer;
begin
  o:= StrToInt(E1.Text) ;
  for i:=1 to o do begin
  ergebnis:= o div i;
  LB1.Items.add(IntToStr(ergebnis))
  end;
end;
Allerdings sollen nur ganze Zahlen eingetragen werden...
Das Programm rundet jedoch die Zahlen, wenn sie keine Ganzzahlen sind.
Dies soll verhindert werden, damit in der ListBox(LB1) nur die ganzahligen Teiler zu sehen sind.
Wie mache ich das?

Meflin 25. Apr 2009 13:51

Re: Teiler
 
Delphi-Quellcode:
for i:=1 to o do begin
  if o mod i = 0 
    LB1.Items.add(IntToStr(i))
end;

DeddyH 25. Apr 2009 13:52

Re: Teiler
 
Du verwendest ja nur ganze Zahlen, da wird nichts gerundet. Ich vermute eher, Du suchst mod, das gibt Dir den Rest einer ganzzahligen Division zurück. Dieser muss bei "glatter" Division immer 0 sein.

Reap3r 25. Apr 2009 14:12

Re: Teiler
 
ok danke funktioniert :-D

Meflin 25. Apr 2009 14:39

Re: Teiler
 
Ach ja: Ich kenn jetz deine Aufgabenstellung nicht, aber i.d.R. lässt man bei sowas die trivialen Teiler (1 und o, weil dadurch ist ja eh jede Zahl teilbar), weg. Somit wäre es dann
Delphi-Quellcode:
for i := 2 to o - 1 do begin
...

Crazy Ivan 25. Apr 2009 16:20

Re: Teiler
 
Zitat:

Zitat von Meflin
Ach ja: Ich kenn jetz deine Aufgabenstellung nicht, aber i.d.R. lässt man bei sowas die trivialen Teiler (1 und o, weil dadurch ist ja eh jede Zahl teilbar), weg. Somit wäre es dann
Delphi-Quellcode:
for i := 2 to o - 1 do begin
...

der größte teiler wäre dann o/2 ... also muss die schleife nur bis zur hälfte laufen

DeddyH 25. Apr 2009 16:21

Re: Teiler
 
Ich denke, nur bis zur Wurzel. Das hatten wir letztens schonmal.

Crazy Ivan 25. Apr 2009 16:24

Re: Teiler
 
jaa, wenn o durch i teilbar ist, dann ist o auch durch (o/i) teilbar

Apollonius 25. Apr 2009 16:26

Re: Teiler
 
Bis zur Wurzel muss die Schleife laufen, wenn es darum geht, ob o prim ist. Aber wenn es um alle Teiler geht, ist das falsch.

Crazy Ivan 25. Apr 2009 16:35

Re: Teiler
 
naja, man müsste schon bis zur wurzel laufen und dann den faktor, der zu dem teiler passt finden. zum beispiel bei 12 als teiler 1, 2, 3 und dazu (12/teiler) 12, 6 und 4

edit: wenn natürlich keine teiler bis zur wurzel auftreten ists schon ne primzahl ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 Uhr.
Seite 1 von 2  1 2      

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