📄 unit5.pas
字号:
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm5 = class(TForm)
diagnosisi: TButton;
Label2: TLabel;
Edit2: TEdit;
procedure diagnosisiClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
{$R *.dfm}
//********将字符串转换为集合子程序 *******
type
lowercase='A'..'z';
sofa=set of lowercase;
function put(s:string):sofa;
var
s1,s2:string;
c1,c2:char;
k,i,j:integer;
l:sofa;
begin
k:=length(s);
l:=[];
for j:=1 to k do
begin
s1:=copy(s,j,1);
c1:='a';
for i:=1 to 26 do
begin
s2:=c1;
if s1=s2 then
begin
l:=l+[c1];
break;
end;
c1:=succ(c1);
end;
s1:=copy(s,j,1);
c2:='A';
for i:=1 to 26 do
begin
s2:=c2;
if s1=s2 then
begin
l:=l+[c2];
break;
end;
c2:=succ(c2);
end;
end;
put:=l;
end;
//******将集合转换为字符串子程序*******
function get(t:sofa):string;
var
c1,c2:lowercase;
i:integer;
s:string;
begin
c1:='a';
s:='';
for i:=1 to 26 do
begin
if c1 in t then s:=s+c1;
c1:=succ(c1);
c2:='A';
end;
for i:=1 to 26 do
begin
if c2 in t then s:=s+c2;
c2:=succ(c2);
end;
get:=s;
end;
procedure TForm5.diagnosisiClick(Sender: TObject);
var
l,s1,s2:string;
root,l1,l2:sofa;
i,r:integer;
fault:array [1..5] of string[5] ;
begin
fault[1]:='bDei'; //故障附值
fault[2]:='aCei';
fault[3]:='aDei';
fault[4]:='AI';
fault[5]:='cI';
s1:='AabCcDeiI';
root:=put(s1);
i:=1;
repeat
l:=inputbox('请输入当前测试结果','测试结果','0');
r:=strtoint(l);
if r=1 then
l1:=root-put(fault[i])*root
else
l1:=root*put(fault[i]);
root:=l1;
i:=i+1;
until (i>5)or(length(get(root))=1);
edit2.Text:=get(root);
if length(edit2.text)<>1 then
showmessagefmt('存在不可区分故障%s',[edit2.Text])
else
showmessagefmt('存在故障为%s',[edit2.Text]);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -