Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit MainUnit;
- interface
- uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Samples.Spin,
- Vcl.ExtCtrls;
- type
- TMainForm = class(TForm)
- SpinEdit: TSpinEdit;
- InfoLabel: TLabel;
- NumberLabel: TLabel;
- SplittingLabel: TLabel;
- SplittingNumberLabel: TLabel;
- Button: TButton;
- function CountSplits(Number: Integer): Integer;
- procedure SpinEditChange(Sender: TObject);
- procedure ButtonClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- MainForm: TMainForm;
- implementation
- {$R *.dfm}
- uses
- PaintUnit;
- procedure TMainForm.SpinEditChange(Sender: TObject);
- begin
- SplittingNumberLabel.Caption := IntToStr(CountSplits(SpinEdit.Value));
- end;
- procedure TMainForm.ButtonClick(Sender: TObject);
- begin
- PaintForm.Show;
- end;
- function TMainForm.CountSplits(Number: Integer): Integer;
- var
- Matrix: Array of Array of Integer;
- i, j, Splits: Integer;
- begin
- SetLength(Matrix, Number + 1, Number + 1);
- Matrix[0,0] := 1;
- for i := 1 to Number do
- Matrix[0,i] := 0;
- for i := 1 to Number do
- Matrix[i,0] := 0;
- for i := 1 to Number do
- for j := 1 to Number do
- Matrix[i,j] := Matrix[i - 1,j - 1] + j * Matrix[i - 1,j];
- Splits := 0;
- for i := 1 to Number do
- Splits := Splits + Matrix[Number, i];
- Result := Splits;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement