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.