⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit5.pas

📁 数字电路故障诊断系统
💻 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 + -