ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT or NINE.
For example:
• BOUNCE and ANNOUNCE are digit words, since they contain the digit ONE.
• ENCODE is not a digit word, even though it contains an O, N and E, since they are not in order.
Here's my code on Delphi
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Memo1: TMemo;
procedure proses;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
digit,cdigit:array[1..9] of string;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Text:='';
digit[1]:='one';
digit[2]:='two';
digit[3]:='three';
digit[4]:='four';
digit[5]:='five';
digit[6]:='six';
digit[7]:='seven';
digit[8]:='eight';
digit[9]:='nine';
end;
procedure tform1.proses;
var s:string;
i,j,k,n:integer;
c:array[1..9]of integer;
ck:array[1..9]of boolean;
begin
memo1.Text:='';
s:=edit1.Text;
memo1.Lines.Append(s);
memo1.Lines.Append('');
n:=length(s);
for i:=1 to 9 do begin
cdigit[i]:='';
c[i]:=1;
ck[i]:=true;
end;
//looking for char
for i:=1 to 9 do begin
for j:=1 to length(digit[i]) do begin
if ck[i]=true then begin
ck[i]:=false;
for k:=c[i] to n do begin
if s[k]=digit[i][j] then begin
ck[i]:=true;
cdigit[i]:=cdigit[i]+s[k];
c[i]:=c[i]+1;
break;
end;
end;
end;
end;
end;
//compare
for i:=1 to 9 do begin
memo1.Lines.Append(cdigit[i]);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
proses;
end;
end.


No comments:
Post a Comment