AGB  ·  Datenschutz  ·  Impressum  







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

Primzahlen bei Delphi finden - Hilfe

Ein Thema von emery · begonnen am 6. Apr 2008 · letzter Beitrag vom 7. Apr 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

Registriert seit: 17. Mär 2008
298 Beiträge
 
Delphi 7 Personal
 
#11

Re: Primzahlen bei Delphi finden - Hilfe

  Alt 6. Apr 2008, 20:01
coole sache, ich kann auch mal helfen!

ich bin auch recht neu in delphi und hab mir 'just for fun'
die aufgabe gestellt sowas zu programmieren. Habs sogar geschafft !
also, du kannst dir den quellcode gerne mal anschauen, ich bin mir aber sicher er ist nicht perfekt, und optimiert erst recht nicht,
außerdem hab ich das für mich gemacht also sind die variablen wahrscheinlich für andere sehhr wenig aussagekräftig, aber wie gesagt es funktioniert.

öhm, in deinem ansatz sieht es so aus als wolltest du die primzahlen in einem memo anzeigen?
Bei mir ist es so das er sie in einer textdatei speichert, in dem ordner in dem sich auch das prog befindet!(erst wenn man das prog beendet)


hoffe ich konnte helfen

Spiderpig

PS nochwas, das prog berechnet die primzahlen von 0-x und nicht von x-y!

Delphi-Quellcode:
  
unit PrimzahlenI;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Panel1: TPanel;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Memo2: TMemo;
    Panel2: TPanel;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Edit2: TEdit;
    Button2: TButton;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button2Click(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;


var
  Form1: TForm1;
maxzahl:integer;
nr, zahl,test:integer;
prim: array[1..1000001] of boolean; //Arrays sind alle false
speicherdat: tstringlist;
pfad:string;
prufzahl,divv:integer;
janein:boolean;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

try
maxzahl:=strtoint(edit1.text); //Bereich ist von 0 bis Maxzahl;

repeat //
inc(nr); // Arrays sind jetzt true
prim[nr]:=true; // true = Primzahl
until nr=1000001; //

repeat
inc(zahl); // Zahl die auf Primzahl sein geprüft werden soll

divv:=1; // der Teiler der die zahl durch alle kleineren Zahlen als Zahl teilt
repeat
inc(divv);
if zahl mod divv = 0 then
prim[zahl]:=false; //false bedeutet ist keine Primzahl mehr
if zahl = 1 then // Ausnahme für die Eins
prim[1] := false; // Eins wird false zugeordnet da 1 keine Primzahl ist
if zahl = 2 then
prim[2] := true;
until ((divv) > (zahl/2)) or ((zahl = 1 ) and (divv = 2)) or ((zahl = 2) and (divv=2));

until zahl=maxzahl;

speicherdat.add('Copyright by Int3g3r');
speicherdat.add('');

repeat
inc(test);
if prim[test] = true then
  speicherdat.add(inttostr(test));
  until test = maxzahl;

pfad:='Primzahlen zwischen 1 und ' + inttostr(maxzahl) + '.txt';
label1.caption:='Die Datei wurde angelegt';
label2.caption:='und wird in dem Ordner'  ;
label3.caption:='gespeichert in dem sich'  ;
label4.caption:='dieses Programm befindet.';

except
edit1.text:='Nur ganze Zahlen!';

end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
speicherdat:= tstringlist.create;
divv:=1;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try
speicherdat.Add('');
speicherdat.Add('Im Bereich von 0 bis ' + inttostr(maxzahl));
speicherdat.add('sind ' + inttostr(speicherdat.count - 4) + ' Primzahlen.');
speicherdat.add('');
speicherdat.add('--------------------');
speicherdat.savetofile(pfad);
except form1.Close;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
janein:=true;
divv:=1;
try
prufzahl:=strtoint(edit2.text);
except
edit2.text:='Nur ganze Zahlen!';
end;


if (prufzahl=1) or (prufzahl=2) then
   janein:=true
else
begin
repeat
inc(divv);
if prufzahl mod divv = 0 then
  janein:=false;



until divv = prufzahl - 1;
end;

if janein then
edit2.text:='Die Zahl ' + inttostr(prufzahl) + ' ist eine Primzahl.'
else
edit2.Text:='Die Zahl ' + inttostr(prufzahl) + ' ist keine Primzahl.' ;



end;

end.
Angehängte Dateien
Dateityp: exe primi_118.exe (397,0 KB, 6x aufgerufen)
---Zufall ist das Inkognito Gottes---
  Mit Zitat antworten Zitat
Benutzerbild von bigben37
bigben37

Registriert seit: 19. Dez 2007
Ort: Freiburg
116 Beiträge
 
Delphi 2009 Professional
 
#12

Re: Primzahlen bei Delphi finden - Hilfe

  Alt 6. Apr 2008, 20:40
Also ich mach das so, wenn ich Primzahlen zwischen 2 Zahlen haben will:

Delphi-Quellcode:
function isPrim(zahl: Integer): boolean;
var
  i: Integer;
begin
  result := true;
  if zahl = 1 then
    begin
      result := false;
      exit;
    end;
  for i := 2 to zahl div 2 do
    begin
      if zahl mod i = 0 then
        begin
          result := false;
          exit;
        end;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  x, y, i: Integer;
begin
  x := StrToInt(Edx.Text);
  y := StrToInt(Edy.Text);
  for i := x to y do
    begin
      if isPrim(i) then
        begin
          Memo1.Lines.Add(IntToStr(i));
        end;
    end;
end;
Benjamin
  Mit Zitat antworten Zitat
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

Registriert seit: 17. Mär 2008
298 Beiträge
 
Delphi 7 Personal
 
#13

Re: Primzahlen bei Delphi finden - Hilfe

  Alt 6. Apr 2008, 20:53
okay, hätt ich vor 2 wochen doch nur gewusst das es soo einfach ist.
wobei ich es immernoch nicht komplett check

function isPrim(zahl: Integer): boolean; was das ist hab ich keine Ahnung

Spiderpig
---Zufall ist das Inkognito Gottes---
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#14

Re: Primzahlen bei Delphi finden - Hilfe

  Alt 6. Apr 2008, 21:27
Das ist die Deklaration der Funktion.
  Mit Zitat antworten Zitat
6. Apr 2008, 21:30
Dieses Thema wurde von "Christian Seehase" von "Windows API / MS.NET Framework API" nach "Sonstige Fragen zu Delphi" verschoben.
Kein Problem mit der Windows-API (o.Ä.)
s-off
(Gast)

n/a Beiträge
 
#16

Re: Primzahlen bei Delphi finden - Hilfe

  Alt 6. Apr 2008, 23:07
Zitat von NamenLozer:
Das ist die Deklaration der Funktion.
Naja, um genau zu sein ist dieser Ausdruck in diesem Fall Teil des Methodenrumpfes - die Deklaration wird vor dem Implementations-Teil vorgenommen
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Primzahlen bei Delphi finden - Hilfe

  Alt 7. Apr 2008, 11:14
Zitat von s-off:
Zitat von NamenLozer:
Das ist die Deklaration der Funktion.
Naja, um genau zu sein ist dieser Ausdruck in diesem Fall Teil des Methodenrumpfes - die Deklaration wird vor dem Implementations-Teil vorgenommen
Und das soll der TE jetzt verstehen?
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#18

Re: Primzahlen bei Delphi finden - Hilfe

  Alt 7. Apr 2008, 12:13
Zitat von Fussball-Robby:
Und das soll der TE jetzt verstehen?
Nein.
Er soll sich die Anfängertutorials reinziehen.
Oder den Stoff des Unterrichts nochmal anschauen.

Sorry, aber wir sind nicht dazu da, einem Einsteiger das Grundwissen zu vermitteln.
Auch nicht dafür, dass wir einem "Faulpelz" eine komplette Lösung vorlegen, mit der er dann prahlen kann ohne es zu verstehen.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

Registriert seit: 17. Mär 2008
298 Beiträge
 
Delphi 7 Personal
 
#19

Re: Primzahlen bei Delphi finden - Hilfe

  Alt 7. Apr 2008, 15:50
ja schon, aber bis jetzt, ich lern gerde nach einem buch, kenn cih erst klick/change proceduren etc und nciht so was...

bin halt noch am anfang
---Zufall ist das Inkognito Gottes---
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 04:48 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