Разработка технологии создания дистанционных курсов на примере курса "Администрирование DB2", страница 29

Y

 
         inc(j);

         wasspace:=true;

         sqltext[j]:=' ';

       end

       else

          if Memo2.Text[i]=')' then begin

X

 
             if (j>1) and (sqltext[j-1]=' ') then  

               dec(j);

             sqltext[j]:=' ';

U

 
             inc(j);

Z

 
             sqltext[j]:=Memo2.Text[i];

             inc(j);

             wasspace:=true;

             sqltext[j]:=' ';

          end

          else

WW

 

A

 

KK

 
             if Memo2.Text[i]='=' then begin

               if (j>1) and (sqltext[j-1]=' ') then

V

 
                 dec(j);

               if (j>1) then begin

                 if (sqltext[j-1]='!') then begin

                   sqltext[j-1]:=' ';

                   sqltext[j]:='<';

W

 
                   inc(j);

DD

 
                   sqltext[j]:='>';

                   inc(j);

                 end

                 else begin

                    if (sqltext[j-1]<>'>') and (sqltext[j-1]<>'<') then begin

BB

 
                       sqltext[j]:=' ';

                       inc(j);

                    end;

CC

 
                    sqltext[j]:=Memo2.Text[i];

                    inc(j);

                 end

DD

 
             end

             else begin

EE

 
                sqltext[j]:=Memo2.Text[i];

                inc(j);

             end;

       wasspace:=true;

       sqltext[j]:=' ';

   end

  else if Memo2.Text[i]='>' then begin

    if (j>1) and (sqltext[j-1]=' ') then

      dec(j);

    if (j>1) and (sqltext[j-1]<>'<') then begin

      sqltext[j]:=' ';

      inc(j);

    end;

    sqltext[j]:=Memo2.Text[i]; inc(j);

    wasspace:=true;

    sqltext[j]:=' ';

  end

  else if Memo2.Text[i]='<' then begin

    if (j>1) and (sqltext[j-1]=' ') then

      dec(j);

    sqltext[j]:=' '; inc(j);

    sqltext[j]:=Memo2.Text[i]; inc(j);

    wasspace:=true;

    sqltext[j]:=' ';

   end

  else if Memo2.Text[i]=')' then begin

    if (j>1) and (sqltext[j-1]=' ') then

     dec(j);

    sqltext[j]:=' '; inc(j);

    sqltext[j]:=Memo2.Text[i]; inc(j);

    wasspace:=true;

    sqltext[j]:=' ';

   end

  else

    sqltext[j]:=UpCase(Memo2.Text[i]);

 


inc(j);

  end; //WHILE

  SetLength(sqltext,j-1);

end;

Сложность процедуры "DeleteBadCharacters" для данного варианта алгоритма составляет:

O(B)=O(1);

O(D)=O(1);O(E)=O(1);

O(F)=O(1);

O(G)=O(1); O(J)=O(1);

O(K)=O(1); O(L)=O(1);

O(N)=O(1); O(P)=O(1);

O(S)=O(1); O(T)=O(1); O(Y)=O(1);

O(X)=O(1); O(Z)=O(1);

O(W)=O(1); O(BB)=O(1); O(CC)=O(1); O(EE)=O(1);

O(GG)=O(1);

O(MM)=O(1); O(FF)=O(1);

O(AA)=O(1);

O(RR)=O(1); O(PP)=O(1);

O(YY)=O(1); O(TT)=O(1);O(ZZ)=O(1); O(WW)=O(1);

O(UU)=O(1);

O(C)=O(N)*O(D)=O(1);

O(H)=O(G)+O(J)=O(1);

O(M)=O(K)+O(L)=O(1);

O(R)=O(N)+O(P)=O(1);

O(U)=O(X)+O(Z)=O(1);

O(DD)=O(V)+O(W)+ O(BB)+O(CC) +O(EE)=O(1);

O(TTT)=O(1)*O(T)=O(1);

O(NN)=O(1)*O(MM)=O(1);

O(OO)=O(1)*O(FF)=O(1);

O(SS)=O(1)*O(RR)=O(1);

O(XX)=O(1)*O(YY)=O(1);

O(KK)=O(1)(O(TTT)+ O(Y)+ O(U)+ O(DD)+ O(GG)+ O(NN)+ O(OO)+ O(AA)+ O(SS)+ O(PP)+ O(XX)+ O(TT)+ O(ZZ))=O(1);

O(WW) = O(N*(O(F)+O(H)+O(M)+O(R)+O(S)+O(KK)+O(VV))= O(N*O(1))=O(N);

O(A)=O(B)+O(C)+O(E)+O(WW) +O(UU) = O(1)+O(N)+O(1)+O(N)=O(N)