Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma hdrstop
- #include <vcl.h>
- #include "Uni52.h"
- #include <string>
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- int Complex::decomposition(AnsiString Text,int *iReal,int *iImage)
- {
- bool isfirstminus=false,isminus=false;
- AnsiString szTemp=Text;
- int i=1,iLength=Text.Length(),iTemp=0,iDigit=0;
- if(Text=="")
- {
- ShowMessage("Enter digit!");
- return 0;
- }
- if(TryStrToInt(Text,iDigit))
- {
- *iReal=iDigit;
- *iImage=0;
- return 1;
- }
- if(Text[iLength]!='i')
- {
- if(Text[1]=='+')
- Text[1]=' ';
- if(Text[1]=='-')
- {
- Text[1]=' ';
- isfirstminus=true;
- }
- i=1;
- while(Text[i]!='i' && i<iLength)
- {
- ++i;
- if(Text[i]=='-')
- isminus=true;
- }
- }
- iTemp=i;
- for(i;i<=iLength;++i)
- szTemp[i]=' ';
- if(TryStrToInt(szTemp,*iReal))
- {
- ShowMessage("Enter correct value!");
- return 0;
- }
- if(isfirstminus)
- *iReal*=-1;
- for(i=1;i<=iTemp;++i)
- Text[i]=' ';
- Text[iLength]=' ';
- i=1;
- while(isspace(Text[i]) && i<iLength)
- ++i;
- if(i>=iLength)
- {
- if(isminus)
- *iImage=-1;
- else
- *iImage=1;
- return 1;
- }
- if(TryStrToInt(Text,*iImage))
- {
- ShowMessage("Enter correct value!");
- return 0;
- }
- if(isminus)
- *iImage*=-1;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement