unit UDemo33;
//使用break與continue語句和for與continue語句
//※  利用while循環和break語句,求前多少個自然數(項數)平方之和大于指定的正數。
//※  利用for循環和continue語句,在26個小寫字母中依次選擇其ASCII為偶數的字母
//    組成的字符串。
//求項數的算法:
//聲明局部整體變量:i表示循環變量,Sum表示求和,Max表示輸入的值。
//①  用InputQuery輸入Max,如果未完成輸入操作或Max<=0,則返回應用程序。
//②  設置初值:i=1,sum=0。
//③  累加當前i的平方到Sum。
//④  如果Sum>Max,則執行break轉到步驟6。
//⑤  i增值1,并轉到步驟3。
//⑥  組織字符串,并在標簽組件上輸出i的值。
//
// 求字符串算法:
//  聲明局部字符串變量S表示所求的字符串,聲明局部字符型變量Ch表示連接到S的字符。
//①  設置初值:S='';
//②  對于Ch等于a到z,進行到步驟4。
//③  如果Ch的ASCII碼(ord(ch))為奇數,則執行continue轉到步驟2.
//④  連接Ch到S,并轉到步驟2。
//⑤  組織字符串,并在標簽組件上輸出S。
//
//
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TDemo33Form = class(TForm)
    btnTerm: TButton;
    btnString: TButton;
    btnEnd: TButton;
    lblOutput: TLabel;
    PRocedure btnEndClick(Sender: TObject);
    procedure btnTermClick(Sender: TObject);
    procedure btnStringClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Demo33Form: TDemo33Form;
implementation
uses
  QDialogs;
{$R *.dfm}
procedure TDemo33Form.btnEndClick(Sender: TObject);
begin
  Close();
end;
procedure TDemo33Form.btnTermClick(Sender: TObject);
var
  i,Sum,Max:integer;
begin
  Max:=10;
  if InputQuery('輸入對話框','鍵入正整數Max',Max) and (Max>0) then
  begin
    i:=1;Sum:=0;
    While True do
    begin
      Sum:=Sum+i*i;
      if Sum>Max then break;
      inc(i);
    end;
    lblOutput.Caption:='前'+IntToStr(i)+'個自然數平方和大于'+IntToStr(Max);
  end;
end;
procedure TDemo33Form.btnStringClick(Sender: TObject);
var
  S:String;
  Ch:Char;
begin
  S:='';
  for Ch:='a' to 'z' do
  begin
    if odd(ord(ch)) then continue;
    S:=S+Ch;    //連接一個字符到S
  end;
  lblOutput.Caption:='ASCII碼
end;
end.

新聞熱點
疑難解答