DelphiのFiremonkeyでFizzBuzzをやってみた
ことのほったんはTwitter上でフォロワーさんの @pik さんがdelphiで最小文字数でFizzBuzzを作ったというのを見てなんとなくどう動くのか実際に実行したらコマンドプロンプトが一瞬で消えたのでフォーム上で確認したくなり作ってみた
出来上がりイメージをフォームにて開始と終了の数値を入力できてボタンを押せば実行されて、フォーム画面上で結果を確認できるようなものを想定し作成しました
Delphiなので1つのソースファイルでWinでもMacでも動きます
ソースコード
p.pas
unit p;
interface
uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, FMX.Layouts,
  FMX.Memo, FMX.Edit;
type
  Tf = class(TForm)
    b: TButton;
    L1: TLabel;
    L2: TLabel;
    e1: TEdit;
    e2: TEdit;
    m: TMemo;
    procedure bClick(Sender: TObject);
  private
  public
  end;
var
  f: Tf;
implementation
{$R *.fmx}
procedure Tf.bClick(Sender: TObject);
var
  i: Integer;
  s: String;
begin
  for i := e1.Text.ToInteger to e2.Text.ToInteger do
  begin
    s := '';
    if (i mod 3 = 0) then
    begin
      s := 'Fizz';
    end;
    if (i mod 5 = 0) then
    begin
      s := s + 'Buzz';
    end;
    if (s = '') then
    begin
      s := i.ToString;
    end;
    m.Text := m.Text + s + #13#10;
  end;
end;
end.

