unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, Math;
type
{ Trechen_programm }
Trechen_programm =
class(TForm)
Berechnen_Knopf: TButton;
Beenden_Knopf: TButton;
Label2: TLabel;
Panel1: TPanel;
s_Eingabe: TEdit;
Label1: TLabel;
s_Ausgabe: TEdit;
procedure Beenden_KnopfClick(Sender: TObject);
procedure Berechnen_KnopfClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
rechen_programm: Trechen_programm;
implementation
{$R *.lfm}
{ Trechen_programm }
procedure Trechen_programm.FormShow(Sender: TObject);
begin
rechen_programm.Caption := '
Funktionsberechnung';
s_Eingabe.Caption := '
';
s_Ausgabe.Caption := '
';
Panel1.Caption := '
';
Berechnen_Knopf.Caption := '
Berechnen';
Beenden_Knopf.Caption := '
Beenden';
end;
procedure Trechen_programm.Beenden_KnopfClick(Sender: TObject);
begin
close;
end;
procedure Trechen_programm.Berechnen_KnopfClick(Sender: TObject);
var i, x, z : integer;
begin
i := 0;
x := 0;
z := 0;
x := StrToInt (s_Eingabe.Text);
while x <> 1
do begin
if (x
mod 2 = 0)
then begin
x := (x / 2); [B]
//Bezüglich dieser Zeile gibt mir Lazarus aus unit1.pas(73,15) Error: Incompatible types: got "Double" expected "LongInt"[/B]
Panel1.Caption := IntToStr (x);
end
else
x := (x * 3) + 1;
z := z + 1;
s_Ausgabe.Text := IntToStr (z);
end;
end;
end.