Mastering Palindromes: Understanding C++ Programming with Goto and For Loops

  • Context: Comp Sci 
  • Thread starter Thread starter Isma
  • Start date Start date
  • Tags Tags
    C++ Program
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
8 replies · 6K views
Isma
Messages
27
Reaction score
0
i've just started studying programming...nd i can't understand how to write these programs:

1:to recognize palindromes using goto condition
2:to recognize palindromes using for loop
3:to convert binary into decimal nd decimal into binary

i m seriously lost nd can't understand for loop...pleasez help
actually i ve finally done palindrome question by goto method:)
pleasez help me with for loop
nd tell me how to get output for required binary or decimal no.?doz it use for loop?
 
Last edited:
Physics news on Phys.org
sorry i wasnt asking you to do it...actually my vc++ has some problem as soon as i run program computer shuts down...i ve made codes can any1 check them

for 1.
{
int a,b,c,d,n,div,div1;
count<<"length of no. :";
cin>>n;
count<<"Number :";
cin>>a;
flag:
div=pow(10,n-1);
div1=pow(10,1);
b=a/div;
c=a%div1;
d=a%div;
a=d/div1;
n=n-2;
if (b!=c)
count<<"No. isn't a palindrome"<<endl;
else if (n==0 || n==1)
count<<"No. is palindrome"<<endl;
else
goto flag;
}

for 2.
{
int num,n,x,length,division1,a,b,y;
count<<"length :";
cin>>n;
count<<"number :";
cin>>num;

for (n=1;n<=length;n++)
{
x=num/pow(10,length-n);
division1=pow(10,n-1);
a=x%10;
y=num%division1;
b=x/pow(10,n-1);

if (n>length)
break;

if (a==b)
count<<"no. is a palendrome"<<endl;
else if (a!=b)

count<<"no. is not a palendrome"<<endl;

}
nd i m working on 3rd
 
what is the use of the pow() function please specify

another method just find reverse of a no and compare it to the orignal no
 
actually i need to apply only pow(a,b){it is a power function meaning a^b}
nd for loop nd goto conditions
pow(a,b) requires source file math.h
i ve done somethings for 3rd but can't check output
please some1 do

{
int n,a,s,m,i;
count<<"length of no.";
cin>>n;
count<<"number";
cin>>a;

s=8*n-1;
m=1<<s;

count<< setw( 10 )<<a<<"=";
for (i=1;i<=s+1;i++)
{
count<<(a & m ? "1" : "0" );
a<<=1;
if (a%8==0)
count<<" ";
}
count<<endl;
}
 
Well, I'm not too familiar with several of the functions you used in the third problem (setw(n), <<=, etc.) but for binary to decimal conversion, a rough algoithm might consist of passing each digit in the input to an array of a size equal to the length of the input, then multiplying each element by 2^n (where n represents the placement of the digit, i.e. n=0 for least significant digit, etc.), and then adding the multiplied value if the digit to the output.
 
but i vent done arrays till now...can we do it by loop?
 
As a FYI you can use a code tag so that your code is easier to read

Code:
...[slash code]

[code]
 {
int n,a,s,m,i;
cout<<"length of no.";
cin>>n;
cout<<"number";
cin>>a;

s=8*n-1;
m=1<<s;

cout<< setw( 10 )<<a<<"=";
for (i=1;i<=s+1;i++)
{
cout<<(a & m ? "1" : "0" );
a<<=1;
if (a%8==0)
cout<<" ";
}
cout<<endl;
}
 
how about finding reverse of a no by this logic and comparing it to the orignal one
int sum,a,b;
sum=0;
cin>>a;
b=a;
while(a!=0)
{
sum=(sum*10)+(a%10);
a=a/10;
}
if(sum==b)
count<<"palindrome";