Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Parse error in program
Index -> Programming, C++ -> C++ Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
JR




PostPosted: Tue Oct 03, 2006 9:54 pm   Post subject: Parse error in program

Hi, i'm making a C program for class and i have everything done but i get an error which i cant find the fix for, any idea what might cause the error?

The program converts Dates from the julian calendar to the georgian calendar.

code:



#include <stdio.h>
#include <math.h>

/*Define Function JD for later use in the program */

double JD(double date);



main()
{
        int valid=1;
        double J_date;

        printf("======= JULIAN DATE CONVERTER =========\n");

        /* gets input from user */

        printf(" Enter the Julian date number, number must be bigger than 2299160)\n");
        scanf(" %lf ", &J_date);

        /* Check to see if proper date was entered */


          while( valid != 0 )
          {
       

             If(J_date > 2299160)
             {
              valid=0;
             }

             else
             {
              printf("Wrong number inserted please enter a number bigger than 2299160\n");
              scanf(" %lf ", &J_date);
             }

          }
        /* Calls the function JD */
       
        double JD(J_date);
       
       
}


/*
 A new function named JD,
 Does the convertion from Julian date
 To Gregorian Date
*/



double JD(double date)
{
  int timeofday;
  int final_hour,final_minute;
  int hour,minute,second;
  double hour_decimal,minute_decimal;
  double decimal_value;
  long lc, nc, ic, jc;
  int day, month, year;

   lc = date + 68569;
   nc = 4 * lc / 146097;
   lc = lc - (146097 * nc + 3) / 4;
   ic = 4000 * (lc + 1) / 1461001;
   lc = lc - 1461 * ic / 4 + 31;
   jc = 80 * lc / 2447;
   day = lc - 2447 * jc / 80;
   lc = jc / 11;
   month = jc + 2 - 12 * lc;
   year = 100 * (nc - 49) + ic + lc;

  decimal_value = date - floor(date);

  hour = decimal_value * 24;
  hour_decimal= hour % 10;
  minute = hour_decimal * 60;
  minute_decimal = minute % 10;
  second = minute_decimal * 60;

  final_hour = 12 + hour;
  final_minute= minute;

     while(second > 59)
     {
       second= second -60;
       final_minute++;
     }

     while(final_minute>59)
     {
       final_minute = final_minute - 60;
       final_hour++;
     }

     if(final_hour == 24)
     {
      timeofday = 0;
      final_hour == 12;
     }

     else

     if (final_hour >24)
     {
       final_hour=final_hour - 24;
       timeofday=0;
     }


switch(month)
{
case 1:
//if (timeofday =0)
printf("January %d %d, %d:%2d:%2dAM\n",day,year,final_hour,final_minute,second);

printf("January %d %d,%d:%2d:%2dPM\n", day,year,final_hour,final_minute,second);
break;

case 2:

//if (timeofday =0)
printf("February %d %d,%d:%2d:%2dAM\n",day,year,final_hour,final_minute,second);

printf("February %d %d,%d:%2d:%2dPM\n",day,year,final_hour,final_minute,second);
break;

case 3:

//if (timeofday =0)
printf("March %d %d, %d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);

printf("March %d %d, %d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
break;

case 4:

//if (timeofday =0)
printf("April %d %d, %d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);

printf("April %d %d, %d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
break;

case 5:

//if (timeofday =0)
printf("May %d %d, %d:%2d:%2d  AM\n", day, year,final_hour,final_minute,second);

printf("May %d %d, %d:%2d:%2d  PM\n", day, year,final_hour,final_minute,second);
break;

case 6:

//if (timeofday =0)
printf("June %d %d, %d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);

printf("June %d %d, %d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
break;

case 7:

//if (timeofday =0)
printf("July %d %d, %d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);

printf("July %d %d, %d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
break;

case 8:

//if (timeofday =0)
printf("August %d %d,%d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);

printf("August %d %d,%d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
break;

case 9:

//if (timeofday =0)
printf("September %d %d,%d:%2d:%2dAM\n",day,year,final_hour,final_minute,second);

printf("September %d %d,%d:%2d:%2dPM\n",day,year,final_hour,final_minute,second);
break;

case 10:

//if (timeofday =0)
printf("October %d %d, %d:%2d:%2d  AM\n", day, year,final_hour,final_minute,second);

printf("October %d %d, %d:%2d:%2d  PM\n", day, year,final_hour,final_minute,second);
break;
case 11:

//if (timeofday =0)
printf("November %d %d, %d:%2d:%2d  AM\n", day, year,final_hour,final_minute,second);

printf("November %d %d, %d:%2d:%2d  PM\n", day, year,final_hour,final_minute,second);
break;

case 12:

//if (timeofday =0)
printf("December %d %d, %d:%2d:%2d  AM\n", day, year,final_hour,final_minute,second);

printf("December %d %d, %d:%2d:%2d  PM\n", day, year,final_hour,final_minute,second);
break;
}
return 0;
}

   








Sponsor
Sponsor
Sponsor
sponsor
md




PostPosted: Wed Oct 04, 2006 12:35 am   Post subject: (No subject)

first error that crops up:
code:
[john@saxifrage test]$ gcc test.c
test.c: In function 'main':
test.c:32: error: expected ';' before '{' token
test.c:45: warning: parameter names (without types) in function declaration


After that there are any number of small errors in your code, such as incomplete code blocks ( {} bits). There are lots of logic errors too, including an infinite loop. Then there is the function call at the end of main which isn't valid. I think you may need to read up on functions.

because I am feeling generous here is some mostly working code, I've changed it so it won't output the right thing; just so you can't copy it outright Razz

c++:
#include <stdio.h>
#include <math.h>

/*
A new function named JD,
Does the convertion from Julian date
To Gregorian Date
*/

void JD(double date)
{
        int timeofday;
        int final_hour,final_minute;
        int hour,minute,second;
        unsigned long hour_decimal,minute_decimal;
        unsigned long decimal_value;
        long lc, nc, ic, jc;
        int day, month, year;

        lc = date + 68569;
        nc = 4 * lc / 146097;
        ic = lc - (146097 * nc + 3) / 4;
        lc = 4000 * (lc + 1) / 1461001;
        lc = lc - 1461 * ic / 4 + 31;
        jc = 80 * lc / 2447;
        day = lc - 2447 * jc / 80;
        lc = jc / 11;
        month = jc + 2 - 12 * lc;
        year = 100 * (nc - 49) + ic + lc;

        decimal_value = date;// - floor(date);

        hour = decimal_value * 24;
        hour_decimal = hour % 10;
        minute = hour_decimal * 60;
        minute_decimal = minute % 10;
        second = minute_decimal * 60;

        final_hour = 12 + hour;
        final_minute= minute;

        while(second > 59)
        {
                second= second -60;
                final_minute++;
        }

        while(final_minute>59)
        {
                final_minute = final_minute - 60;
                final_hour++;
        }

        if(final_hour == 24)
        {
                timeofday = 0;
                final_hour == 12;
        }
        else if (final_hour >24)
        {
                final_hour=final_hour - 24;
                timeofday=0;
        }


        switch(month)
        {
                case 1:
                        //if (timeofday =0)
                        printf("January %d %d, %d:%2d:%2dAM\n",day,year,final_hour,final_minute,second);
                        printf("January %d %d,%d:%2d:%2dPM\n", day,year,final_hour,final_minute,second);
                        break;

                case 2:
                        //if (timeofday =0)
                        printf("February %d %d,%d:%2d:%2dAM\n",day,year,final_hour,final_minute,second);
                        printf("February %d %d,%d:%2d:%2dPM\n",day,year,final_hour,final_minute,second);
                        break;

                case 3:
                        //if (timeofday =0)
                        printf("March %d %d, %d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);
                        printf("March %d %d, %d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
                        break;

                case 4:
                        //if (timeofday =0)
                        printf("April %d %d, %d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);
                        printf("April %d %d, %d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
                        break;

                case 5:
                        //if (timeofday =0)
                        printf("May %d %d, %d:%2d:%2d  AM\n", day, year,final_hour,final_minute,second);
                        printf("May %d %d, %d:%2d:%2d  PM\n", day, year,final_hour,final_minute,second);
                        break;

                case 6:
                        //if (timeofday =0)
                        printf("June %d %d, %d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);
                        printf("June %d %d, %d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
                        break;

                case 7:
                        //if (timeofday =0)
                        printf("July %d %d, %d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);
                        printf("July %d %d, %d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
                        break;

                case 8:
                        //if (timeofday =0)
                        printf("August %d %d,%d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);
                        printf("August %d %d,%d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
                        break;

                case 9:
                        //if (timeofday =0)
                        printf("September %d %d,%d:%2d:%2dAM\n",day,year,final_hour,final_minute,second);
                        printf("September %d %d,%d:%2d:%2dPM\n",day,year,final_hour,final_minute,second);
                        break;

                case 10:
                        //if (timeofday =0)
                        printf("October %d %d, %d:%2d:%2d  AM\n", day, year,final_hour,final_minute,second);
                        printf("October %d %d, %d:%2d:%2d  PM\n", day, year,final_hour,final_minute,second);
                        break;
                       
                case 11:
                        //if (timeofday =0)
                        printf("November %d %d, %d:%2d:%2d  AM\n", day, year,final_hour,final_minute,second);
                        printf("November %d %d, %d:%2d:%2d  PM\n", day, year,final_hour,final_minute,second);
                        break;

                case 12:
                        //if (timeofday =0)
                        printf("December %d %d, %d:%2d:%2d  AM\n", day, year,final_hour,final_minute,second);
                        printf("December %d %d, %d:%2d:%2d  PM\n", day, year,final_hour,final_minute,second);
                        break;
        }
}


main()
{
        int valid = 0;
        double J_date;

        printf("======= JULIAN DATE CONVERTER =========\n");

        /* gets input from user */

        do
        {
                printf(" Enter the Julian date number, number must be bigger than 2299160)\n");
                scanf("%lf", &J_date);
       
                /* Check to see if proper date was entered */
                if(J_date > 2299160)
                        valid = 1;
                else
                        printf("Wrong number inserted please enter a number bigger than 2299160\n");
        } while (!valid);

        JD(J_date);

}
Display posts from previous:   
   Index -> Programming, C++ -> C++ Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 2 Posts ]
Jump to:   


Style:  
Search: