Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.98 KB | None | 0 0
  1. #pragma hdrstop
  2.  
  3. #include <vcl.h>
  4. #include "Uni52.h"
  5. #include <string>
  6. //---------------------------------------------------------------------------
  7.  
  8. #pragma package(smart_init)
  9.  
  10. int Complex::decomposition(AnsiString Text,int *iReal,int *iImage)
  11. {
  12.         bool isfirstminus=false,isminus=false;
  13.         AnsiString szTemp=Text;
  14.         int i=1,iLength=Text.Length(),iTemp=0,iDigit=0;
  15.         if(Text=="")
  16.         {
  17.                 ShowMessage("Enter digit!");
  18.                 return 0;
  19.         }
  20.         if(TryStrToInt(Text,iDigit))
  21.         {
  22.                 *iReal=iDigit;
  23.                 *iImage=0;
  24.                 return 1;
  25.         }
  26.         if(Text[iLength]!='i')
  27.         {
  28.                 if(Text[1]=='+')
  29.                         Text[1]=' ';
  30.                 if(Text[1]=='-')
  31.                 {
  32.                         Text[1]=' ';
  33.                         isfirstminus=true;
  34.                 }
  35.                 i=1;
  36.                 while(Text[i]!='i' && i<iLength)
  37.                 {
  38.                         ++i;
  39.                         if(Text[i]=='-')
  40.                                 isminus=true;
  41.                 }
  42.         }
  43.         iTemp=i;
  44.         for(i;i<=iLength;++i)
  45.                 szTemp[i]=' ';
  46.         if(TryStrToInt(szTemp,*iReal))
  47.         {
  48.                 ShowMessage("Enter correct value!");
  49.                 return 0;
  50.         }
  51.         if(isfirstminus)
  52.                 *iReal*=-1;
  53.         for(i=1;i<=iTemp;++i)
  54.                 Text[i]=' ';
  55.         Text[iLength]=' ';
  56.         i=1;
  57.         while(isspace(Text[i]) && i<iLength)
  58.                 ++i;
  59.         if(i>=iLength)
  60.         {
  61.                 if(isminus)
  62.                         *iImage=-1;
  63.                 else
  64.                         *iImage=1;
  65.                 return 1;
  66.         }
  67.         if(TryStrToInt(Text,*iImage))
  68.         {
  69.                 ShowMessage("Enter correct value!");
  70.                 return 0;
  71.         }
  72.         if(isminus)
  73.                 *iImage*=-1;
  74.         return 1;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement