AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Zugriffs Verweigerung bei Multiplikation in Schleife Boolean Array Primzahl Anwendung
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffs Verweigerung bei Multiplikation in Schleife Boolean Array Primzahl Anwendung

Ein Thema von Hermy667 · begonnen am 31. Aug 2011 · letzter Beitrag vom 31. Aug 2011
Antwort Antwort
Hermy667

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

Zugriffs Verweigerung bei Multiplikation in Schleife Boolean Array Primzahl Anwendung

  Alt 31. Aug 2011, 17: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 18:57 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.848 Beiträge
 
Delphi 12 Athens
 
#2

AW: Fehler im Programm

  Alt 31. Aug 2011, 17:15
Var Gestrichen: ARRAY[2..2147483647] of BOOLEAN; Ein Array mit einer Größe von 2 Gibibyte?
Wie wäre es, wenn du deine Zahlenmenge ein "klein wenig" reduzierst...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Hermy667

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

AW: Fehler im Programm

  Alt 31. Aug 2011, 17:43
Es funktioniert schon beim Array von 1..10 nicht.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#4

AW: Fehler im Programm

  Alt 31. Aug 2011, 17:51
Kann es sein, dass da ein paar begins und ends fehlen?

[edit] Übrigens: Präzisiere doch bitte den Thread-Titel, damit man ungefähr weiß, worum es geht. [/edit]
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

Geändert von DeddyH (31. Aug 2011 um 18:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Fehler im Programm

  Alt 31. Aug 2011, 18:33
Übrigens: Präzisiere doch bitte den Thread-Titel, damit man ungefähr weiß, worum es geht.
Hier noch mal offiziell die Aufforderung von mir in meiner Funktion als Moderator. Wegen Fehler im Programm melden sich am Tag ein zwei Mitglieder.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Zugriffs Verweigerung bei Multiplikation in Schleife Boolean Array Primzahl Anwen

  Alt 31. Aug 2011, 19:14
Ja, ein begin/end fehlt wohl und Zaehler1*Zaehler2 überschreitet wahrscheinlich maxint. Zaehler1 soll wohl 46342 sein.
  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:08 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 by Thomas Breitkreuz