AGB  ·  Datenschutz  ·  Impressum  







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

Sierpinski Dreieck mit Lazarus

Ein Thema von ThePhilosopher · begonnen am 22. Nov 2013 · letzter Beitrag vom 23. Nov 2013
 
ThePhilosopher

Registriert seit: 22. Nov 2013
4 Beiträge
 
#1

Sierpinski Dreieck mit Lazarus

  Alt 22. Nov 2013, 15:31
Hallo liebe Leute,
Ich muss für die Schule, genauer gesagt für meine GFS in Mathe, ein Sierpinski Dreieck programmieren.
Ich habe mir dazu heute ein paar Gedanken gemacht und war eigentlich der Meinung einen guten Lösungsweg gefunden zu haben.
Ich habe euch unten mal den Code komplett auskommentiert und die Fehlerhafte Stelle markiert.
An dieser Stelle gibt Lazarus immer die Fehlermeldung "Got Double, Excpectet LongInt" aus.
Ich versteh die ganze Sache nicht weil die Variable den gleichen Wert enthält wie eine andere in der gleichen Rechnung auch und dort wird kein Fehler ausgegeben.
Kann mir jemand helfen??
Gruß
TP
Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
    E: Integer; //Anzahl der Dreiecke pro Ebene
    NH: Integer; //Nenner des Bruchs der die Y Koordinate angibt
    ZH: Integer; //Zähler des Bruchs der die Y Koordinate angibt
    NW: Integer; //Nenner des Bruchs der die X Koordinate angibt
    AW: Integer; //gibt die Anzahl der Wiederholungen an
    a: Integer; //Wert für Grundseite des Dreiecks
    h: Integer; //Wert für Höhe des Dreiecks
    Procedure Sierpinski;
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject); //Prozedur die aufgerufen wird wenn der Button geklickt wird
begin
  Canvas.Polygon([Point(0, h), Point(a div 2, 0), Point(a, h)]);
  NH := 3; //
  ZH := 1; //
  NW := 4; //
  AW := StrToInt(Edit1.Text); //
  E := 1; //Weißt den Variablen Startwerte zu
  Sierpinski; //Ruft die Prozedur "Sierpinski" auf, in der das gewünschte Sierpinski Dreieck erzeugt wird
end;

procedure TForm1.FormCreate(Sender: TObject); //Prozedur die aufgerufen wird sobald das Fenster entsteht
begin
  a := Image1.Width; //Weißt "a" den Breiten Wert der Fläche "Image1" zu
  h := Image1.Height; //Weißt "h" den Höhen Wert der Fläche "Image1" zu
end;

procedure TForm1.Sierpinski;
var I, II: Integer;

begin
  For I := 1 to AW do //For-Schleife, die dafür sorgt, dass die gewünschte Zahl an Ebenen erzeugt wird
    begin
      For II := 1 to E do
        begin
          Canvas.MoveTo(1/NW*a, (ZH/NH)*h); //
          Canvas.LineTo(2/NW*a, (ZH+1)/NH*h); //
          Canvas.LineTo(3/NW*a, (ZH/NH)*h); //
          Canvas.LineTo(1/NW*a, (ZH/NH)*h); [COLOR="Red"] //In diesem Rechen Block wird immer bemängelt das "h" ein Double wäre, bei "a" das den gleichen Wert enthält jedoch nicht ??? [/COLOR]
        end;
      E := E*3;
      NW := NW*2;
      NH := NH*2;
      ZH := ZH*2+1;
    end;
end;

end.
  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 19:15 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