Einzelnen Beitrag anzeigen

Hermy667

Registriert seit: 31. Aug 2011
3 Beiträge
 
#1

Zugriffs Verweigerung bei Multiplikation in Schleife Boolean Array Primzahl Anwendung

  Alt 31. Aug 2011, 16:00
Nen Guten Tag wünsche ich,
Ich versuche für die Schule den "Sieb des Eratosthenes" zu programmieren.
Das hier ist mein Quellcode:

Delphi-Quellcode:
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
Var Untergrenze, Obergrenze, Zaehler1, Zaehler2, Zaehler3:INTEGER;
Var Gestrichen: ARRAY[2..2147483647] of BOOLEAN;
begin
    ListBox1.Clear;
    Untergrenze:=StrToInt(Edit1.Text);
    Obergrenze:=StrToInt(Edit2.Text);
      IF Untergrenze < Obergrenze
      Then Panel1.Caption:='Die Untergrenze darf die Obergrenze nicht überschreiten!'
      Else IF Obergrenze > 2147483647
           Then Panel1.Caption:='Die Obergrenze ist zu hoch! Sie darf maximal 2147483647 betragen.'
           Else IF Untergrenze < 2
                Then Panel1.Caption:='Die Untergrenze muss mindestens 2 betragen!'
                Else

                Gestrichen[2]:=false;
                   For Zaehler1:=2 TO 2147483647 DO
                     IF Gestrichen[Zaehler1]=false
                     Then FOR Zaehler2:=2 TO 46342 DO
                          Gestrichen[Zaehler1*Zaehler2]:=true;

          For Zaehler3:=Untergrenze TO Obergrenze DO
          IF Gestrichen[Zaehler3]=false
          Then ListBox1.Items.Add(IntToStr(Zaehler3));


end;

end.

Wenn ich das ausführe bekomme ich einen "Zugriffsfehler" Die Leiche liegt beim "Zaehler1*Zaehler2" begraben, doch warum will er das nicht?

Danke im Vorraus

Geändert von Hermy667 (31. Aug 2011 um 17:57 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat