AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Teiler

Ein Thema von Reap3r · begonnen am 25. Apr 2009 · letzter Beitrag vom 25. Apr 2009
Antwort Antwort
Seite 1 von 2  1 2   
Reap3r

Registriert seit: 19. Mär 2009
87 Beiträge
 
#1

Teiler

  Alt 25. Apr 2009, 14:49
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?
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Teiler

  Alt 25. Apr 2009, 14:51
Delphi-Quellcode:
for i:=1 to o do begin
  if o mod i = 0
    LB1.Items.add(IntToStr(i))
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.310 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Teiler

  Alt 25. Apr 2009, 14:52
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Reap3r

Registriert seit: 19. Mär 2009
87 Beiträge
 
#4

Re: Teiler

  Alt 25. Apr 2009, 15:12
ok danke funktioniert
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#5

Re: Teiler

  Alt 25. Apr 2009, 15:39
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
...
  Mit Zitat antworten Zitat
Crazy Ivan
(Gast)

n/a Beiträge
 
#6

Re: Teiler

  Alt 25. Apr 2009, 17:20
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.310 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Teiler

  Alt 25. Apr 2009, 17:21
Ich denke, nur bis zur Wurzel. Das hatten wir letztens schonmal.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Crazy Ivan
(Gast)

n/a Beiträge
 
#8

Re: Teiler

  Alt 25. Apr 2009, 17:24
jaa, wenn o durch i teilbar ist, dann ist o auch durch (o/i) teilbar
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Teiler

  Alt 25. Apr 2009, 17:26
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.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Crazy Ivan
(Gast)

n/a Beiträge
 
#10

Re: Teiler

  Alt 25. Apr 2009, 17:35
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf