⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 astronomicalalgorithms.c

📁 天文算法
💻 C
📖 第 1 页 / 共 3 页
字号:
                        doX);
         }

      #endif

      /**********************************************************************/

      #ifdef PAGE_019_TEST

      (void) fprintf(stdout,
                     "\npage 019 : floor(100 * (4.34 - floor(4.34))) = %.3f\n",
                     floor(100 * ((double) 4.34 - floor((double) 4.34)))
                    );

      (void) fprintf(stdout,
                     "\npage 019 : 2 + 0.2 + 0.2 + 0.2 + 0.2 + 0.2 - 3 = %e\n",
                     ((double) 2 + (double) 0.2 + (double) 0.2 + (double) 0.2
                      + (double) 0.2 + (double) 0.2 - (double) 3)
                    );

      (void) fprintf(stdout,
                     "\npage 019 : 0.2 + 0.2 + 0.2 + 0.2 + 0.2 + 2 - 3 = %e\n",
                     ((double) 0.2 + (double) 0.2 + (double) 0.2 + (double) 0.2
                      + (double) 0.2 + (double) 2 - (double) 3)
                    );

      (void) fprintf(stdout,
                     "\npage 019 : 2 + (5 * 0.2) - 3  = %e\n",
                     (double) 2 + ((double) 5 * (double) 0.2) - (double) 3
                    );


      if (1)                                            /*lint !e506 !e774 */
         {
         double doA = (double) 0;
         double doB = (double) 0;
         double doC = (double) 0;

         doA =    (double) 0.2
                + (double) 0.2 + (double) 0.2 + (double) 0.2 + (double) 0.2;
         doB = (double) 2 + doA;
         doC = doB - (double) 3;
         (void) fprintf(stdout, "\npage 019 : C = %e\n", doC);
         }

      if (1)                                            /*lint !e506 !e774 */
         {
         double doI = (double) 0;
         double doU = (double) 0;

         for (doI = (double) 0 ; doI < 100 ; doI += (double) 0.1)
            {
            doU = doI;
            }
         (void) fprintf(stdout, "\npage 019 : U = %.20f\n", doU);

         }
      #endif

      /**********************************************************************/

      #ifdef PAGE_020_TEST

      if (1)                                            /*lint !e506 !e774 */
         {
         double doI = (double) 0;
         double doJ = (double) 0;
         double doU = (double) 0;

         for (doJ = (double) 0 ; doI < 1000 ; doJ ++)
            {
            doI = doJ / (double) 10;
            doU = doI;
            }
         (void) fprintf(stdout, "\npage 020 : U = %.20f\n", doU);
         }

      (void) fprintf(stdout,
                     "\npage 020 : 3 * (1/3) = %f\n",
                     (double) 3 * ((double) 1 / (double) 3)
                    );


      if (1)                                            /*lint !e506 !e774 */
         {
         double doA = (double) 0.1;

         (void) fprintf(stdout, "\npage 020 : floor(1000 * 0.1) = %.20f\n",
                        (floor((double) 1000 * doA)));
         }



      (void) fprintf(stdout, "\npage 020 : LONG_MAX = %ld\n", LONG_MAX);


      (void) fprintf(stdout,
                     "\npage 020 : sqrt(25) - 5 = %f\n",
                     sqrt((double) 25) - floor(sqrt((double) 25))
                    );

      #endif

      /**********************************************************************/

      #ifdef PAGE_021_TEST

      (void) fprintf(stdout, "\npage 021 : ROUND(pi) = %f\n", ROUND(do_pi));
      (void) fprintf(stdout, "\npage 021 : ROUND(e)  = %f\n", ROUND(do_e));

      #endif

      /**********************************************************************/

      #ifdef PAGE_024_TEST

      if (1)                                            /*lint !e506 !e774 */
         {
         double adoTableValues[5]  = {(double) 0.898013,
                                      (double) 0.891109,
                                      (double) 0.884226,
                                      (double) 0.877366,
                                      (double) 0.870531
                                     };

         double adoDifferences[5]  = {(double) 0};  /*lint !e785 */
         short shTemp1             = (short) 0;
         short shTemp2             = (short) 0;

         for (shTemp1 = (short) 1 ; shTemp1 <= 3 ; shTemp1++)
            {
            shTemp2 = ShInterpolationDifferences(adoTableValues,
                                                 (short) 5,
                                                 adoDifferences,
                                                 sizeof(adoDifferences),
                                                 shTemp1
                                                );
            if (shTemp2 != 0)
               {
               (void) fprintf(stdout, "\npage 024 : shTemp2 = %hd\n", shTemp2);
               }
            else
               {
               (void) fprintf(stdout,
                     "\npage 024 : differences %hd: %10f %10f %10f %10f %10f",
                              shTemp1,
                              adoDifferences[0],
                              adoDifferences[1],
                              adoDifferences[2],
                              adoDifferences[3],
                              adoDifferences[4]
                             );
               }
            }
         (void) fprintf(stdout, "%s", "\n");
         }
      #endif


      /**********************************************************************/

      #ifdef PAGE_061_TEST

      if (1)                                            /*lint !e506 !e774 */
         {
         double doJD = (double) 0;
         short  sh1  = (short)  0;

         sh1 = ShJulianDay(&doJD,
                          (double) 1957, (double) 10, (double) 4.81, (short) 1);
         if (sh1 == 0)
            {
            (void) fprintf(stdout, "\npage 059 : JD 7.a = %.2f\n", doJD);
            }
         else
            {
            (void) fprintf(stdout, "\npage 059 : ShJulianDay returns %hd\n",
                           sh1);
            }

         sh1 = ShJulianDay(&doJD,
                          (double) 333, (double) 1, (double) 27.5, (short) 0);

         if (sh1 == 0)
            {
            (void) fprintf(stdout, "\npage 061 : JD 7.b = %.2f\n", doJD);
            }
         else
            {
            (void) fprintf(stdout, "\npage 061 : ShJulianDay returns %hd\n",
                           sh1);
            }
         }

      #endif

      /**********************************************************************/

      #ifdef PAGE_062_TEST

      if (1)                                            /*lint !e506 !e774 */
         {
         short  sh1  = (short)  0;
         short  sh2  = (short)  0;
         short  sh3  = (short)  0;

         double ado1[16][5] = { { 2000,  1,  1.5,   0, 2451545.0},
                                { 1999,  1,  1  ,   0, 2451179.5},
                                { 1987,  1, 27  ,   0, 2446822.5},
                                { 1987,  6, 19.5,   0, 2446966.0},
                                { 1988,  1, 27  ,   0, 2447187.5},
                                { 1988,  6, 19.5,   0, 2447332.0},
                                { 1900,  1,  1  ,   0, 2415020.5},
                                { 1600,  1,  1  ,   0, 2305447.5},
                                { 1600, 12, 31  ,   0, 2305812.5},
                                {  837,  4, 10.3,   0, 2026871.8},
                                { -123, 12, 31  ,   0, 1676496.5},
                                { -122,  1,  1  ,   0, 1676497.5},
                                {-1000,  7, 12.5,   0, 1356001.0},
                                {-1000,  2, 29  ,   0, 1355866.5},
                                {-1001,  8, 17.9,   0, 1355671.4},
                                {-4712,  1,  1.5,   0,       0.0}
                             };

         for (sh1 = (short) 0 ; sh1 < 16 ; sh1++)
            {
            sh2 = ShJulianDay(&(ado1[sh1][3]),
                                ado1[sh1][0],
                                ado1[sh1][1],
                                ado1[sh1][2],
                                (short) (ado1[sh1][0] < 1582 ?
                                         JULIAN : GREGORIAN)
                             );
            if (sh2 == 0)
               {
               (void) fprintf(stdout,
                              "\npage 062 : %10.2f %10.2f %10.2f %12.2f %5.2f",
                              ado1[sh1][0],
                              ado1[sh1][1],
                              ado1[sh1][2],
                              ado1[sh1][3],
                              ado1[sh1][4] - ado1[sh1][3]
                             );
               }
            else
               {
               (void) fprintf(stdout, "\npage 062 : ShJulianDay returns %hd\n",
                              sh2);
               }
            }
         (void) fprintf(stdout, "%s", "\n");

         /*********************/

         sh1 = (short) 2000;
         sh2 = ShIsLeapYear(&sh3, sh1, (short) GREGORIAN);
         (void) fprintf(stdout,
                        "\npage 062 : ShIsLeapYear(%hd) returns"
                        " %hd and result is %hd\n"
                        ,
                        sh1, sh2, sh3);
         }
      #endif

      /**********************************************************************/

      #ifdef PAGE_063_TEST

      if (1)                                            /*lint !e506 !e774 */
         {
         double adoJD[3] = {(double) 2436116.31,
                            (double) 1842713.0,
                            (double) 1507900.13
                           };

         short  sh1  = (short )          0;
         short  sh2  = (short )          0;

         for (sh1 = (short) 0 ; sh1 < 3 ; sh1++)
            {
            double doY  = (double) 0;
            double doM  = (double) 0;
            double doD  = (double) 0;
            double doH  = (double) 0;
            double dom  = (double) 0;
            double doS  = (double) 0;

            sh2 = ShDateFromJulianDay(adoJD[sh1], &doY, &doM, &doD,
                                                  &doH, &dom, &doS);
            if (sh2 == 0)
               {
               (void) fprintf(stdout, "\npage 064 : D=%5.2f, M=%2.0f, Y=%2.0f",
                              doD, doM, doY);
               }
            else
               {
               (void) fprintf(stdout,
                              "\npage 064 : ShDateFromJulianDay returns %hd",
                              sh2);
               }
            }
         (void) fprintf(stdout, "%s", "\n");
         }

      #endif

      /**********************************************************************/

      #ifdef PAGE_064_TEST

      if (1)                                            /*lint !e506 !e774 */
         {
         double doJD1 = (double) 0;
         double doJD2 = (double) 0;

         if (  (ShJulianDay(&doJD1,
                           (double) 1910, (double) 4, (double) 20,
                           (short) GREGORIAN) == 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -