AGB  ·  Datenschutz  ·  Impressum  







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

Primzahlen ausgeben (Problem)

Ein Thema von Reincanation · begonnen am 16. Mär 2009 · letzter Beitrag vom 16. Mär 2009
Antwort Antwort
Reincanation

Registriert seit: 16. Mär 2009
2 Beiträge
 
#1

Primzahlen ausgeben (Problem)

  Alt 16. Mär 2009, 13:30
Hi, habe ein Problem

Ich soll die Primzahlen von 0-100 in ein Labelfeld ausgeben, habe es theoretisch auch schon geschafft aber irgendwie wills bei mir nicht so ganz...

Delphi-Quellcode:
var
i:integer;
begin
repeat
i:=i+1;
if i mod i = 0 then
label1.caption:=label1.caption+inttostr(i)+char(13);
until i=100;
end;
sollte doch eigentlich funktionieren oder?

was ist mein fehler?

greetz
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Primzahlen ausgeben (Problem)

  Alt 16. Mär 2009, 13:32
Hi,

Also 2 Sachen fallen mir direkt mal auf:

Du hast i nicht initialisiert. i ist in deiner Schleife ein beliebiger Wert.
Und rate mal was

i mod i = 0 wohl immer liefern wird..
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Reincanation

Registriert seit: 16. Mär 2009
2 Beiträge
 
#3

Re: Primzahlen ausgeben (Problem)

  Alt 16. Mär 2009, 13:39
OK, danke stimmt

aber wenn ich das jetzt so anschreibe dann werden die Zahlen einfach nach der Reihe ausgegeben und der Mod Vorgang wird ignoriert -.-

EDIT:

ah das mit dem mod seh ich erst jetzt!
aber wie kann man das umgehen?

sry ich bin ein vollidiot auf dem Gebiet Delphi -.-
Delphi-Quellcode:
var
i:integer;
begin
i:=0;
repeat
i:=i+1;
if i mod i = 0 then
label1.caption:=label1.caption+inttostr(i)+char(13);
until i=100;
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Primzahlen ausgeben (Problem)

  Alt 16. Mär 2009, 13:44
Wie ist eine Primzahl denn definiert? Sofern Du nicht auf fertige Funktionen zugreifen darfst/willst, brauchst Du im einfachsten Fall eine 2. Schleife (ich weiß, dass das unperformant ist, aber für das Verständnis ist das so das Einfachste).
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
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Primzahlen ausgeben (Problem)

  Alt 16. Mär 2009, 13:52
Hi,

Ich hab dir doch schon gesagt:

i mod i

ist Schwachsinn.. Überleg dir doch mal

1 mod 1
2 mod 2
3 mod 3
4 mod 4

Da kommt IMMER 0 raus.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Primzahlen ausgeben (Problem)

  Alt 16. Mär 2009, 13:52
Also ich glaube du gehst das etwas falsch an, mal abgesehen, dass du auch in deinem 2. Post immernoch i mod i hast, was immer 0 ergibt.

Du musst es ungefair so machen:
Delphi-Quellcode:
for i:= 2 to 100 do // laut Konvention beginnen Primzahlen ab 2
  begin
    Anzahl := 0;
    for j := i downto 1 do
      begin
        if i mod j = 0 do Anzahl := Anzahl + 1;
      end;
    if Anzahl = 2 then // bei 2 Teilern, die bei mod 0 ergeben, kann es sich nur um die Zahl i selbst und um 1 handeln und entspricht somit den Konventionen für eine Primzahl
      begin
        // hier muss deinem Labelfeld nun die neu gefundene Primzahl hinzugefügt werden.
      end;
  end;
Hoffe ich habe das ungefair richtig aus dem Kopf hier aufgeschrieben.

MfG BAMatze

Edit 1: es handelt sich hier nur um einen schmatischen Text und kann nicht 1:1 übernommen werden.
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:57 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