📄 astronomicalalgorithms.c
字号:
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 + -