![]() |
Primzahlen bei Delphi finden - Hilfe
hallo erstmal.. bin neu hier und hoffe ihr "profis" könnte mir helfen :)
folgendes problem : ich bin anfänger und habe wirklich wenig ahnung von delphi. ich soll ein programm erstellen, dass die primzahlen zwischen 2 werten die eingegeben werden anzeigt... könnt ihr mir da weiterhelfen ?? lg, emery ps: hatte keine ahnung wohin mit dem thread also hab ich den einfach hier reingemacht... [edit=Matze]Sprache zu "Delphi Win32" geändert. MfG, Matze[/edit] |
Re: Primzahlen bei Delphi finden - Hilfe
Hallo,
Zitat:
Komm jetzt nicht mit "Ich weiß nicht, wo ich anfangen soll".... Dann lies Dir entsprechende Tutorials durch. Desweiteren: Bist Du sicher, dass dieses Programm für das .NET-Framework, und nicht vielleicht doch für Win32 erstellt werden soll? |
Re: Primzahlen bei Delphi finden - Hilfe
Also erstmal stellst sich da bei mir die Frage: Sicher dass du eine Net Anwendung programmieren willst?
Dann die Lösung^^:
Delphi-Quellcode:
Also es ist nicht die Lösung aber schon mal ein Ansatz wie du eine Primzahl erkennst! Das mit dem dass ale Zahlen die zwischen zwei liegen herausfinden würde ich mit einer for- Schleife angehen!
uses
math; Function IsPrim(zahl : Integer): boolean; var i: integer; begin result := true; If zahl = 1 then begin result := false; exit; end; For i := 2 to Trunc(sqrt(zahl))+1 do begin If ((zahl mod i) = 0) then begin result := false; exit; end; end; end; Label1.Visible:=IsPrim(4); Also sowas wie for 4 to 50! |
Re: Primzahlen bei Delphi finden - Hilfe
also ich hab erstmal folgende oberfläche erstellt :
recht simpel soweit... ![]() edit: keine ahnung was eine Net Anwendung ist |
Re: Primzahlen bei Delphi finden - Hilfe
|
Re: Primzahlen bei Delphi finden - Hilfe
moin ,
google mal nach Sieb des Eratosthenes raik |
Re: Primzahlen bei Delphi finden - Hilfe
Zitat:
|
Re: Primzahlen bei Delphi finden - Hilfe
naja ich musste irgendwas angeben, damit der thread überhaupt erstellt wird.. :)
|
Re: Primzahlen bei Delphi finden - Hilfe
Womit hast du eigentlich Probleme? Mit der Logik, wie du die Primzahlen findest oder mit dem Umsetzen mit Delphi?
|
Re: Primzahlen bei Delphi finden - Hilfe
das umsetzen bei delphi....ich habe keine ahnung was man wo eingeben muss, damit irgendwas passiert...
ich weiß wie man ein beenden button erstellt ^^ close; lg |
Re: Primzahlen bei Delphi finden - Hilfe
Liste der Anhänge anzeigen (Anzahl: 1)
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. |
Re: Primzahlen bei Delphi finden - Hilfe
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; |
Re: Primzahlen bei Delphi finden - Hilfe
okay, hätt ich vor 2 wochen doch nur gewusst das es soo einfach ist.
wobei ich es immernoch nicht komplett check :wall:
Delphi-Quellcode:
was das ist hab ich keine Ahnung :pale:
function isPrim(zahl: Integer): boolean;
Spiderpig |
Re: Primzahlen bei Delphi finden - Hilfe
Das ist die Deklaration der Funktion. :gruebel:
|
DP-Maintenance
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.Ä.) |
Re: Primzahlen bei Delphi finden - Hilfe
Zitat:
|
Re: Primzahlen bei Delphi finden - Hilfe
Zitat:
|
Re: Primzahlen bei Delphi finden - Hilfe
Zitat:
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. |
Re: Primzahlen bei Delphi finden - Hilfe
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 Uhr. |
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