AGB  ·  Datenschutz  ·  Impressum  







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

Programm für Primzahlzwillinge

Ein Thema von gordon freeman · begonnen am 10. Jan 2004 · letzter Beitrag vom 11. Jan 2004
Antwort Antwort
Benutzerbild von gordon freeman
gordon freeman

Registriert seit: 28. Jun 2003
Ort: Gelsenkirchen
337 Beiträge
 
Delphi 2005 Personal
 
#1

Programm für Primzahlzwillinge

  Alt 10. Jan 2004, 12:32
Hallo Leute,
ich muss für die Schule ein Programm schreiben, das aus einem bestimmten Zahlenbereich (z.B. 1-20) alle Primzahlzwillinge auflistet. Primzahlzwillinge sind zwei Primzahlen, die genau eine Zahl "zwischen" sich haben (z.B. 3,5 oder 11,13). Ich hab auch schon ein Programm geschrieben, das läuft nur nicht ganz richtig . Könnt ihr mir helfen?

Hier das Programm:

Delphi-Quellcode:
unit Unit1;

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Memo1: TMemo;
m: TLabel;
n: TLabel;
Primzahlenzwillinge: TLabel;
Rechnen: TButton;
Ende: TButton;
procedure EndeClick(Sender: TObject);
procedure RechnenClick(Sender: TObject);

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

var
Form1: TForm1;
m,n,x,i,h,u,zaehler,code:integer;
xstr,mstr:string;
implementation

{$R *.DFM}

procedure TForm1.EndeClick(Sender: TObject);
begin
close
end;

procedure TForm1.RechnenClick(Sender: TObject);
begin
val(form1.edit1.text,m,code);
val(form1.edit2.text,n,code);
for i:=m to n do

//Primzahlentest
begin
zaehler:=0;
for h:=1 to m do
if m mod h=0 then zaehler:=zaehler+1;
end;

//Zwillingstest
begin
if zaehler=2 then x:=m+2;
zaehler:=0;
for u:=1 to x do
if x mod u=0 then zaehler:=zaehler+1;
if zaehler=2 then
begin
str(x,xstr);
str(m,mstr);
memo1.lines:=memo1.lines+mstr+','+xstr+';';
end;
end;
end;

end.
tia, gordon Freeman

[edit=sakura] [delphi]-Tags gesetzt. Bitte in Zukunft selbst tun UND etwas mit Code-Einrückung arbeiten. Mfg, sakura[/edit]
  Mit Zitat antworten Zitat
Wheelie

Registriert seit: 21. Okt 2003
Ort: Dresden
177 Beiträge
 
#2

Re: Programm für Primzahlzwillinge

  Alt 10. Jan 2004, 23:04
Habe mir deinen Code jetzt nicht weiter durchgelsen, da ich der Meinung bin, dass es eigentlich viel einfacher geht ... hier mein Vorschlag:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

Function Primzahl(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 start, ende, i: Word;
begin
  start := StrToInt(Edit1.Text);
  ende := StrToInt(Edit2.Text);

  for i := start to ende do
  begin
    if Primzahl(i) then
    begin
      if (Primzahl(i+2)) and (i+2 <= ende) then ListBox1.Items.Add(IntToStr(i) + ' & ' + IntToStr(i+2));
    end;
  end;

end;

end.
Brauchst für dein Prog zwei Edits, einen Button und eine ListBox zur Ausgabe. Fertig
  Mit Zitat antworten Zitat
Benutzerbild von Seniman
Seniman

Registriert seit: 15. Sep 2003
Ort: Münster
98 Beiträge
 
#3

Re: Programm für Primzahlzwillinge

  Alt 11. Jan 2004, 18:14
Hallo miteinander,

@Wheelie: Ich möchte etwas zu deinem Code bemerken: Du hast in der Funktion Primzahl eine For-Schleife für i:=2 to (Zahl div 2). Man kann die Funktion etwas schneller machen, in dem du (Zahl div 2) durch Trunc(sqrt(Zahl)) ersetzt. Denn die Wurzel reicht zum überprüfen ob eine Zahl prim ist aus und ist kleiner als die Hälfte.

Grüße
Seniman
  Mit Zitat antworten Zitat
Wheelie

Registriert seit: 21. Okt 2003
Ort: Dresden
177 Beiträge
 
#4

Re: Programm für Primzahlzwillinge

  Alt 11. Jan 2004, 19:17
danke für den hinweis
  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 17:52 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