Einzelnen Beitrag anzeigen

tommy_mey

Registriert seit: 24. Okt 2004
2 Beiträge
 
Delphi 7 Enterprise
 
#1

Integer Arrays vergleichen & Primzahlen aus Array lösche

  Alt 24. Okt 2004, 14:23
Hallo,
ich bin Schüler der 13. Klasse und soll bis Dienstag (26.10.04) ein Programm geschrieben haben,welches zwei Arrays vergleicht - das erste (zz) enthält Zufallszahlen, das zweite Array (hilfs) enthält Quadratzahlen die in einer Procedure berechnet werden.

Mein erstes Problem ist nun, ich will die beiden Arrays so vergleichen, dass ein drittes Array (hilfs2) automatisch mit den Werten aus dem Array (zz) aber ohne die Werte aus (hilfs) gefüllt wird...Die Ausgabe soll dann in einer Listbox erfolgen.

Dazu habe ich mir folgenden Algorithmus überlegt
um die Quadratzahlen zu berechnen und ins array (hilfs) zu schreiben

Delphi-Quellcode:
globale Variablen const max=100;
                          zzA=100;
                          hilfsA=10;
                          hilfsmax=8;
                    var zz:Array[1..zzA] of integer;
                        hilfs:Array[1..hilfsA] of integer;
                        hilfs2:Array[1..zzA] of Integer;

procedure....
var a,z,t:integer;
begin
a:=1;
for z:=1 to hilfsmax do
 begin
  inc(a);
  hilfs[z]:=sqr(a+1);
  listbox3.items.add(inttostr(hilfs[z]));
 end;
end.
hat jemand einen Quelltext um die Arrays zu vergleichen (siehe Einleitung)?

Mein zweites Problem ist:
über eine andere Procedur sollen alle Primzahlen aus dem array (zz) gelöscht werden, davon hab ich keine Ahnung, hat jemand eine Procedure die Primzahlen errechnen kann, welche dann wieder in ein Array gepackt werden? Ich würde dann das Primzahlarray mit dem array (zz), wie bereits oben erwähnt vergleichen wollen, kann mir irgend jemand helfen?


Mein kompletter Quelltext:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ListBox1: TListBox;
    ListBox2: TListBox;
    Button3: TButton;
    Button4: TButton;
    ListBox3: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

  const max=100;
        zzA=100;
        hilfsA=10;
        hilfsmax=8;
  var zz:Array[1..zzA] of integer;
      hilfs:Array[1..hilfsA] of integer;
      hilfs2:Array[1..zzA] of Integer;
      anzahl:cardinal;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
end;

procedure quicksort(li,re:integer); //Sortieren
var i,j,Mitte,hilf:integer;
begin
 i:=li;
 j:=re;
 Mitte:=zz[(re+li)DIV 2];
repeat
   while zz[i]<Mitte do i:=i+1;
   while Mitte<zz[j] do j:=j-1;
   if i<=j
    then
     begin
      hilf:=zz[i];
      zz[i]:=zz[j];
      zz[j]:=hilf;
      i:=i+1;
      j:=j-1;
     end;
until i>j;
if li < j then quicksort(li,j);
if i < re then quicksort(i,re);
end;

procedure TForm1.Button1Click(Sender: TObject); //Zufallszahlen erzeugen und in Array (zz) ablege
var i:Integer;
begin
  for i:=1 to max do
  begin
   zz[i]:=random(100)+1;
   listbox1.Items.add(inttostr(zz[i]));
   end;
end;




procedure TForm1.Button2Click(Sender: TObject); //Löschen der Listbox
begin
listbox1.Clear;
listbox2.Clear;
listbox3.clear;
end;

procedure TForm1.Button3Click(Sender: TObject); //Löschen von ungeraden Zahlen
var i:Integer;
begin
for i:=1 to max do
    begin
     if zz[i] mod 2 <> 1
      then
       begin
           quicksort(1, 100);
           listbox2.Items.add(inttoStr(zz[i]));
       end;
    end;
end;

procedure TForm1.Button4Click(Sender: TObject); //Das soll mal die Quadratzahlprocedure werden
var a,i,k,z,t:integer;
begin
a:=1;
for z:=1 to hilfsmax do //Hier werden die Quadratzahlen berechnet
 begin
  inc(a);
  t:=sqr(a+1);
  hilfs[z]:=t;
  listbox3.items.add(inttostr(hilfs[z]));
 end;
                        //Hier muss die Procedure mit dem Vergleich weitergeführt werden
end.
[edit=Christian Seehase]Weitere Delphi-Tags gesetzt. Code- durch Delphi-Tags ersetzt. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat