small program that generates terms in OEIS sequence A016278

Antonio Olivares olivares14031 at yahoo.com
Tue Apr 22 12:44:39 UTC 2008


--- Michael Schwendt
<mschwendt.tmp0701.nospam at arcor.de> wrote:

> On Tue, 22 Apr 2008 05:00:20 -0700 (PDT), Antonio
> Olivares wrote:
> 
> > Dear all,
> > 
> > I wrote a small program prog1.cpp that cranks out
> the numbers in the sequence A016278 in OEIS
> > 
> >
> http://www.research.att.com/~njas/sequences/A016278
> > 
> > The program runs on slax, but fails to do so on
> rawhide.
> > 
> > [olivares at localhost Documents]$ cat prog1.cpp 
> > #include <iostream.h>
> > #include <stdlib.h>
> > #include <math.h>
> > 
> > int main(int argc, char *argv[])
> > {
> >   int i; 
> >   double j;
> >   for (i=1; i < 16; i++)
> >   {
> >     j =
> >
>
(4.0/7.0)*pow(2.0,i-1)+(-3.0/2.0)*pow(3.0,i-1)+(27.0/14.0)*pow(9.0,i-1);
> >             cout << i << ' ' << j << "\n";
> >   }
> >   return EXIT_SUCCESS;
> > }
> > 
> > [olivares at localhost Documents]$ cat
> /etc/fedora-release 
> > Fedora release 8.93 (Rawhide)
> > [olivares at localhost Documents]$ c++ -o prog1
> prog1.cpp 
> > prog1.cpp:1:22: error: iostream.h: No such file or
> directory
> > prog1.cpp: In function ‘int main(int,
> char**)’:
> > prog1.cpp:13: error: ‘cout’ was not declared
> in this scope
> > [olivares at localhost Documents]$ 
> 
> > Is there something that needs to be done so that
> the program can compile fine in rawhide?
> > 
> 
> Make it C++. Include <iostream>, <cstdlib>, <cmath>.
> Consider the
> namespaces, e.g. cout is std::cout in global scope.
> Use ios::endl not
> '\n'. Declare i inside the for-statement. Declare j
> inside the for-loop
> body. Then it comes closer to C++.
> 
> -- 
> fedora-test-list mailing list
> fedora-test-list at redhat.com
> To unsubscribe: 
>
https://www.redhat.com/mailman/listinfo/fedora-test-list
> 

If I use ios::endl, the program fails, 

[rio at localhost Documents]$ cat prog2.cpp
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;

int main(int argc, char *argv[])
{
 for (int i=1; i < 7; i++)
 {
  double j;
  	j =
(4.0/7.0)*pow(2.0,i-1)+(-3.0/2.0)*pow(3.0,i-1)+(27.0/14.0)*pow(9.0,i-1);
  std::cout << i << ' ' << j << ios::endl;
 }
 return EXIT_SUCCESS;
}

[rio at localhost Documents]$ c++ -o prog2 prog2.cpp
prog2.cpp: In function ‘int main(int,
char**)’:
prog2.cpp:12: error: ‘endl’ is not a
member of ‘std::ios’

but if I remove the ios:: part and leave endl; it
works :)

[rio at localhost Documents]$ c++ -o prog2 prog2.cpp
[rio at localhost Documents]$ ./prog2 
1 1
2 14
3 145
4 1370
5 12541
6 113534
[rio at localhost Documents]$ 


Thank you very much Michael, that was what was needed.
 I appreciate yours and Jason's help. Now the program
compiles on Fedora as well.

Regards,

Antonio 




      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ




More information about the fedora-test-list mailing list