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
 
Bjoerk

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

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

  Alt 31. Aug 2011, 18:34
Soll wohl irgendwie sowas sein, sieht nach Primzahlberechnung o.ä. aus !?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  maxZ = 100;
  maxN = 10000; // maxZ*maxZ
var
  Untergrenze, Obergrenze, I, J, K: integer;
var
  Gestrichen: array [2..MaxN] of boolean;
begin
  Untergrenze:= StrToInt(Edit1.Text);
  Obergrenze:= StrToInt(Edit2.Text);
  Panel1.Caption:= '';
  if Untergrenze > Obergrenze then
    Panel1.Caption:= 'Die Untergrenze darf die Obergrenze nicht überschreiten.'
  else
    if Obergrenze > maxZ then
      Panel1.Caption:= 'Die Obergrenze ist zu hoch. Sie darf maximal '+IntToStr(maxZ)+' betragen.'
    else
      if Untergrenze < 2 then
        Panel1.Caption:= 'Die Untergrenze muss mindestens 2 betragen.'
      else
      begin
        Gestrichen[2]:= false;
        for I:= 2 to maxZ do
          if not Gestrichen[I] then
            for J:= 2 to maxZ do Gestrichen[I*J]:= true;
        ListBox1.Clear;
        ListBox1.Items.BeginUpdate;
        for K:= Untergrenze to Obergrenze do
          if not Gestrichen[K] then ListBox1.Items.Add(IntToStr(K));
        ListBox1.Items.EndUpdate;
      end;
end;

Alternative:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Untergrenze, Obergrenze, I, J, K: integer;
  Result: boolean;
begin
  Untergrenze:= StrToInt(Edit1.Text);
  Obergrenze:= StrToInt(Edit2.Text);
  ListBox1.Clear;
  ListBox1.Items.BeginUpdate;
  for I:= Untergrenze to Obergrenze do
  begin
    Result:= true;
    for J:= 2 to Obergrenze do
    begin
      if not Result then Break;
      for K:= 2 to Obergrenze do
      begin
        if not Result then Break;
        if I = J*K then Result:= false;
      end;
    end;
    if Result then ListBox1.Items.Add(IntToStr(I));
  end;
  ListBox1.Items.EndUpdate;
end;

Geändert von Bjoerk (31. Aug 2011 um 19:10 Uhr) Grund: Alternative
  Mit Zitat antworten Zitat
 


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 21:25 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