【www.guakaob.com--法国移民】
四年一润,百年不闰(篇一)
《四年一闰,百年不闰,四百年再闰》
四年一润,百年不闰(篇二)
《四年一闰,百年不闰,四百年又闰》
四年一润,百年不闰(篇三)
《为什么四年一闰,而百年又少一闰?》
四年一润,百年不闰(篇四)
《闰年一闰的说法》
闰年七闰的说法
1.在公历的编写上,每四年闰一天是有原因的,是因为地球的自转时间是23小时56分,这样每四年就必须多一天,而多一天的话,还是不够精确,会有极小的误差,所以每400年只能多出97天,这就是现行的最精确的公历,所以公历会规定,逢正百的年份,必须被400整除,才是闰年。由此就出现了1896年至1904年间隔7年一润在年间
2.因为地球自转一周为23小时56分,四年下来就多算将近24小时,然后每四百年就多算一天,所以每当整百年的时候就不让它润这一天了。(不过要更精确的话就要多读读这方面的书籍啦)
1900是世纪年,不能被400整除,所以不是闰年 出现4年1平的现象 1896+4=1900
四年一润,百年不闰(篇五)
《02练习题答案》
参考答案:
1、运行结果为:不断从控制台接收字符,直到遇到x开头的字符
2、请说出使用const和define定义常量,在语法上和含义上有什么不同,并编程举例说明。 如果用常量或者宏来定义一个PI值,那么语法分别如下:
宏:
#define PI 3.1415926
这个语法不是c语言语法,而是预编译指令语法,没有;结尾
const:
const float PI=3.1415926;
这个语法是标准c语言常变量语法
用宏来代表常数,好处:
(1) 让代码更简洁明了,当然这有赖于你为宏取一个适当的名字,名字要以达意为主
(2) 方便代码的维护
缺点:
对宏的处理,没有明确指定这个量的类型。这容易带来一些问题。
而用常变量则可以明确指定变量的数据类型。
3、字符常量是一个字符,在程序中字符是用单引号括起来的。字符串常量由0个或若干个字符组合而成,在程序中字符串是用双引号括起来的,在存储时系统自动在字符串最后面加一个结束符号’\0’,编程示范如下:
char a='a'; // 表示一个字符
char *b="abc"; //第一种c语言表示的字符串
char c[4]="def"; //第二种c语言表示的字符串
printf("%c\n",a);
printf("%s\n",b);
printf("%s\n",c);
printf("%d\n",sizeof(a));//输出a所占据的字节数
printf("%d\n",sizeof(b));//输出"abc"文字常量区对应的地址(指针),所有的指针都是4字节
printf(“%d\n”,sizeof(c));//输出成员所占据的字节数×数组容量
4、char c = '\0';
while((c = getchar()) != '\n')
{
if(c >= 'a' && c <= 'z')
{
c -= 32;
}
putchar(c);
}
putchar('\n');
5.闰年
(1). 关于公历闰年的规定:
地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分46秒,也就是365.2422天。因此,公历规定有平年和闰年,平年一年有365日,比回归年短0.2422日,四年共短0.9688日,故每四年增加一日,把这一天加在2月里,这一年有366日,就是闰年。但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。由此规定:年份是整百数的必须是400的倍数才是闰年,例如1900年、2100年就不是闰年,但2000年是闰年。
也就是我们通常所说的: 四年一闰,百年不闰,四百年再闰。所以,除了末尾有00的其他时候都是四年一润。
(2). 闰年的计算算法是:
a、非整百的年份每4年是闰年;
b、整百的年份每400年才是闰年。
(3). 简化算法
#include "stdio.h"
void IsLeapYear(int iYear)
{
if((iYear % 4 == 0 && iYear % 100 != 0) || (iYear % 400 == 0))
{
printf("%d is leapyear!\n", iYear);
return ;
}
printf("%d is not leapyear!\n", iYear);
return ;
}
int main()
{
int iYear = 0;
printf("please input a year:");
scanf("%d", &iYear);
if(iYear > 4000 || iYear < 1000)
{
printf("input error!\n");
return -1;
}
IsLeapYear(iYear);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
/* 月份对应的天数 */
int MONTH_TO_DAY[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
/* 判断是否是闰年 */
int IfLeapYear(int iYear)
{
if((iYear % 4 == 0 && iYear % 100 != 0) || (iYear % 400 == 0))
{
MONTH_TO_DAY[2] = 29;
return 1;
}
else
{
MONTH_TO_DAY[2] = 28;
return 0;
}
}
/* 判断日期是否合法 */
int IfRight(int iYear, int iMonth, int iDay)
{
if(iYear > 4000 || iYear < 0)
return 0;
if(iMonth > 12 || iMonth < 0)
return 0;
if(IfLeapYear(iYear))
{
MONTH_TO_DAY[2] = 29;
}
if(iDay > MONTH_TO_DAY[iMonth] || iDay < 0)
return 0;
return 1;
}
/* 计算两个日期之间相差的天数 */
int GetDay(int iYear1, int iMonth1, int iDay1, int iYear2, int iMonth2, int iDay2)
{
int iDays = 0;
int i = 0;
if(iYear1 == iYear2) //如果在同一年
{
if(IfLeapYear(iYear1)) ;
if(iMonth1 == iMonth2) //如果在同一个月
{
iDays = iDay2 - iDay1; //相差的天数是两个日期天数差
}
else //如果不在同一个月
{
iDays += MONTH_TO_DAY[iMonth1] - iDay1; //计算iMonth1月iDay1天到iMonth月末的天数
for(i = iMonth1 + 1; i < iMonth2; i++) //计算到iMonth2-1月的天数 {
iDays += MONTH_TO_DAY[i];
}
iDays += iDay2; //加上iDay2
}
}
else //如果不在同一年
{
if(IfLeapYear(iYear1)) ; //闰年平年设置2月天数
/* 计算iMonth1月iDay1天到iYear1年12月31日的天数 */
iDays += MONTH_TO_DAY[iMonth1] - iDay1; //计算iMonth1月iDay1天到iMonth月末的天数
for(i = iMonth1 + 1; i <= 12; i++) //计算到12月31日的天数
{
iDays += MONTH_TO_DAY[i];
}
for(i = iYear1 + 1; i < iYear2; i++)
{
if(IfLeapYear(i))
{
iDays += 366;
}
else
{
iDays += 365;
}
}
if(IfLeapYear(iYear2)) ;
for(i = 1; i < iMonth2; i++) //计算到iMonth2-1月的天数
{
iDays += MONTH_TO_DAY[i];
}
iDays += iDay2; //加上iDay2 }
return iDays;
}
int main()
{
int iYear1 = 2008, iMonth1 = 5, iDay1 = 12; int iYear2 = 2008, iMonth2 = 5, iDay2 = 12; int iDays = 0;
int iTemp = 0;
printf("please input the first date(eg:2008-5-12):"); scanf("%d-%d-%d", &iYear1, &iMonth1, &iDay1); if(!IfRight(iYear1, iMonth1, iDay1))
{
printf("the first date is wrong!\n");
return -1;
}
printf("please input the second date(eg:2008-5-12):"); scanf("%d-%d-%d", &iYear2, &iMonth2, &iDay2); if(!IfRight(iYear2, iMonth2, iDay2))
{
printf("the second date is wrong!\n"); return -1;
}
/* 确保iYear2比iYear1大 */
if(iYear2 < iYear1)
{
/* 交换年份 */
iTemp = iYear2;
iYear2 = iYear1;
iYear1 = iTemp;
/* 交换月份 */
iTemp = iMonth2;
iMonth2 = iMonth1;
iMonth1 = iTemp;
/* 交换天数 */
iTemp = iDay2;
iDay2 = iDay1;
iDay1 = iTemp;
}
四年一润,百年不闰(篇六)
《第5章 算法初步》
第五章 算法初步
5.1算法的含义
例1 写出求1+2+3+4+5+6的一个算法.
算法1 按照逐一相加的程序进行.
S1 计算1+2,得到3;
S2 将第一步中的运算结果3与3相加,得到6;
S3 将第二步中的运算结果6与4相加,得到10;
S4 将第三步中的运算结果10与5相加,得到15;
S5 将第四步中的运算结果15与6相加,得到21.
算法2 用公式计算.
S1 取n=6;
S2 计算nn+1; 2
S3 输出运算结果.
x2y1,①例2 写出求解方程组 2xy3②
的一个算法.
解 用消元法求解这个方程组,算法(步骤)是:
x2y1,①S1 方程①不动,方程②减去方程①乘以2.消去x得 5y5;③
x2y1,①S2 方程③两边同除以5,得 y1;④
x1,S3 方程①加上方程④乘以2,得所求方程组的解 y1.
例3 设计一个求三个数A,B,C中最大数的算法.
解 求三个数A,B,C中最大数的算法步骤是:
S1 输入A,B,C的值;
S2 比较A,B和A,C的大小,若A>B且A>C,则输出A;否则进行下一步; S3 比较B,C的大小,若B>C,则输出B,否则输出C.
例4 设计一个求全班40人的英语考试成绩平均分的算法,并写出算法步骤. 分析 先把40个成绩累加,累加的成绩用S表示,再用S除以40求平均分.如果把40个成绩一个一个累加,计算工作量较大.我们可以用一个循环来实现. 解 算法步骤如下:
S1 令S=0,I=1;
S2 出入成绩A;
S3 计算S=A+S;
S4 I=I+1;
S5 判断I>40?若不是,则返回第2步;若是,则进行下一步.
S6 计算平均成绩M=S/40;
S7 输出M.
习题5.1
A组
1.两个大人和两名儿童一起渡河,渡口只有一条船,一次只能度过一个大人和两名儿童,他们四人都会划船,但都不会游泳.请你帮他们设计一个渡河算法.
2.写出解不等式5x+7>3x+1的一个算法.
3.写出求1×2×3×4×5的一个算法.
4.写出解不等式x22x30的一个算法.
5.写出求以a为直径的圆的面积的一个算法.
5.2流程图与算法基本逻辑结构
例1 用流程图表示上节例4中的算法.
解 上节例4的算法步骤可以用如图5-3所示的流程图直观地表示.
从图5-3可以看出,该算法步骤中,有些是按顺行执行,有些需要选择执行,而另外一些需要循环执行.事实上,算法都可以由顺序结构、选择结构、循环结构这三块“积木”通过组合和嵌套表达出来.流程图可以帮助我们更方便直观的表示这三种基本的算法结构.
图5-3
例2 任意给一个正实数,设计一个算法,求以这个数为半径的圆的面积,并画
出流程图.解决这个问题可按下面的算法进行:
S1 输入一个正实数r;
S2 计算S=r2;
S2 输出圆的面积S.
流程图见图5-4.
图5-4
例3 已知两个单元分别存放了x和y的值,试设计交换这两个变量的值的一算
法,并画出流程图.
分析 例3相当一个现实问题:有红和黑两个墨水瓶,但现在却错把红墨水装在了黑墨水瓶中,黑墨水错装在红墨水瓶中,要求将其互换.解决这个问题需要借助一个空墨水瓶(设为白瓶),算法步骤如下:
S1 取一个空的墨水瓶,设其为白瓶;
S2 将黑墨水瓶中的红墨水装入白瓶中;
S3 将红墨水瓶中的黑墨水装入黑瓶中;
S4 将白瓶中的红墨水装入红瓶中.
该问题相当于交换两个变量x和y的值.
解 为了达到交换的目的,需要一个单元存放中间变量p.其算法是:
S1 p←x;{先将x的值赋给变量p,这是存放变量x的单元空出}
S2 x←y;{再将y的值赋给x,这是存放变量y的单元空出}
S3 y←p.{最后将p的值赋给y,两个变量x和y的值便完成了交换} 上述算法的流程图如图5-6所示
练习5.2.2
1. 设计求两个实数a,b的算术平均值A的算法,并画出流程图.
xy5,2. 设计求解方程组yz4,的一个算法,并画出流程图.
zx7
例4 某市出租汽车最新计费标准如下:在3km以内(含3km)路程按起步价8元收费,超过3km以外的路程按2.4元/km收费.试设计一个出租车计费的算法,并画出流程图.
分析 出租车收费y(元)和行驶里程x(km)之间的函数关系为
x0,38;y 2.4(x3)8,x3,
解 某市出租车计费的算法如下:
S1 输入行驶里程数x;
S2 若x≤3;则y=8,否则y=2.4(x-3)+8;
S3 输出y.
流程图如图5-7所示.
图5-7
例5 我国古代的科学水平是非常先进的,早在2000多年前就测出地球绕太阳转一周的时间是365天多一些.后来,经过科学家精确计算,得出其精确时间为365天5小时48分46秒.每年按365天来计算,每过四年就多出将近一天的时间.因此,规定每四年的二月份增加一日,以补上过去少算的时间.但这样实际上每四年又要亏一点,推到100年时,亏了又将近一日,所以规定到公元整百年时不增加这一天,而到整四百年时再增加这一天.
判定公历(3199年之前)闰年遵循的一般规律为:四年一润,百年不闰,四百年再闰.请你设计一种算法,如何判断一年是否为闰年,并用流程图表示.
解 算法步骤如下:
1.若y不能被4整除,则输出“y不是闰年”.
四年一润,百年不闰(篇七)
《年 月 日》
《年 月 日》教案
教材分析:
1、本课内容是在学生已经学习了时、分、秒的基础上进一步认识时间单位年、月、日。
2、有关年、月、日的知识具有常识性,学生在生活中已有很多的经验,教学时不要把学生看作一张白纸,而应该充分利用学生的经验。
3、年、月、日的知识与生活有密切的联系,可以引导学生通过观察,自主地进行探究,发现已有的规律,充分感受数学与生活的联系,激发学习数学的兴趣。
4、年、月、日的知识包含着许多规律,它虽然是天文知识,但与数学密不可分,并且其中奥妙无穷,应给学生提供充分探索研究的机会,经历探索研究的过程,并在这个过程中发展学生的情感、态度、价值观。
5、教学重点是知道每个月各有多少天;教学难点是掌握闰年的判断方法。
设计理念:
本节课的内容年、月、日对于三年级学生并不陌生,虽然学生没有在课堂上
系统学习过,但是因为年、月、日与生活的紧密联系,学生已经积累了很多经验。本着“学生为主体,教师为指导”的教学理念,安排了谈认识→齐验证→生疑惑→同探索→新发现→最后解决问题的学习过程。
首先让孩子谈一谈自己对年、月、日已经有哪些认识,并借助年历加以验证,
在2月这个天数不固定的特殊月上产生疑惑,并经历借助月历卡填写表格的探索过程,小组自主研究,集体讨论,一起发现2月与平、闰年的变化规律,并尝试用规律去解决问题,当再次遇到疑惑时(百年不闰),老师加以指导,最终解决疑惑,并能利用所学到的知识解决生活中的问题。
教学目标:
1、 结合生活经验使学生认识时间单位年、月、日,了解有关大月、小月、平年、闰年等方面的知识,知道每个月各有多少天,平、闰年各有多少天;能初步判断某一年是平年还是闰年。
2、通过实践活动,帮助学生建立更长的时间观念,培养学生的观察思维能力。
3、让学生通过亲身参与探究实践活动,获得积极的情感体验,在数学游戏中,体会数学学习的乐趣。
教学重点:知道每个月各有多少天。
教学难点:学会判断平年闰年的方法。
教学用具:多媒体课件,年历卡,月历卡,2月份天数统计表
教学过程 :
一、师生交流、导入 课题
1、交流。
师:同学们,今天我来到南阳二小给大家上课,下面还有这么多的老师和领
导来听课,我心情很激动也很高兴,不知你们此刻的心情怎么样?从你们的脸上与表情也可以看出你们都很高兴。让我们一起记下这一难忘的时刻吧!
(板书:2011年7月14日上午 时 分 秒)
2、导入 。
师:同学们这句话里有哪些表示时间的单位?
生:年、月、日、时、分、秒(上午)。
师:哪些是我们已经学过的?
生:时、分、秒。
师:对!时、分、秒是我们已经学过的表示较短时间的单位、这节课我们一起来学习表示较长时间的单位:年、月、日。
(板书: 年 月 日)
二、探究新知
1、观察四幅图看一看这些的意义的日子发生在什么时间
自由发言。
师:到现在为止。你已经知道了那些有意义的日子?
生:略
师:这些有意义的日子用到了那些时间单位?
生:年月日
2、观察年历,认识大小月(出示2005年)
思考:一年有几个月?每个月有多少天?哪几个月的天数一样多?
完成每个月的天数统计表(出示表格)
师:我们把31天的那个月称为大月,把30天的那个月称为小月;2月既不是大月,也不是小月,那我们称他为特殊月。那看看一年中有哪几个月是大月,哪几个月是小月?(板书:大月(31天):一 三 五 七 八 十 十二;小月(30天):
四 六 九 十一;二月:特殊月)
一年中有12个月,有的是大月,有的是小月,谁能想个方法把他们很好的记住?
(1)介绍“拳记法”
师:这个我们把它成为拳记法,来,我们一起来数一遍,一月大,二月平,…… 现在数给你的同桌听听。
(2)儿歌记忆
师:老师这边还有一首儿歌:一、三、五、七、八、十、腊,三十一天永不差;
四、六、九、冬三十整,平年二月二十八,闰年再把一天加。来,我们一起来,边拍手边记住他。
对于这首儿歌你有什么疑问吗?由儿歌引入平年、闰年
(二)认识并判断平年和闰年
1、师:大小月的天数是固定的,我们可以用儿歌和拳头来帮助记忆,可是2月看起来不够听话。(出示2004年和2005年的二月)
2月只有28天的这一年是平年,有29天的这一年是闰年。
2、计算平年和闰年全年的天数
师:我们知道一年有12个月,把12个月的天数加起来,就是全年的天数。
在计算的过程中:平年和闰年不一样?
板书:平年:365天 闰年:366天
3、学生探究2月的变化规律
师:下面让我们一起来探索2月的奥秘。
(屏幕出示活动要求:认真观察手中的月历卡,将2月份天数记录在表格中;根
(1)从上面填写的统计表格中你发现了什么?(每四年一个闰年)
(2)如何判断是闰年还是平年?
平年的年份除以4,结果有余数,而闰年的年份除以4没有余数,所以要判
断某一年是平年还是闰年,就看他能不能被4整除,如果是4的倍数,说明他是闰年,如果不是4的倍数,说明他是平年。
4、判断:
师:我们已经发现了2月的奥秘,下面你能利用刚才的这些发现,判断平年和闰年吗?(2009,1932,1983,1900)
追问学生的判断依据
5、产生疑惑,解决疑惑:1900年为什么平年?
现在把书翻到第20页,把倒数第1段和最后一段话看一遍,有没有什么要
问的?
“通常”、“一般”是什么意思呢?比如说1900年,1990/4=490,没有余数,但他不是闰年,而是平年,因为1990是整百数,当年份是整百年时,要能被400年整除,才能是闰年。为什么会出现这样的一种情况,还有一段来源呢?(出示课件你知道吗?)
所以我们有这样一句话:四年一润,百年不润,四百年再润。
三、解决问题:
师:看来“年月日”的学问还真不少。现在你能用刚刚学到的知识,帮助老师解决几个问题吗?
1、看谁做的快
(1)一年有( )个月。
(2)1、3、5、7、8、10、12月每月有( )天,是大月。
(3)4、6、9、11月每月有( )天,是小月。
(4)平年的二月有( )天,闰年的二月有( )天
2 、判断:
每年都有365天。 ( )
一年中有7个大月,5个小月。 ( )
1997年是平年。( ) (1997年是香港回归祖国的日子,是我们祖国母亲迎回她失去儿子的重要一天,让我们永远的记住这一天)
2008年是平年。( ) (2008年我们祖国有什么大事呀?[北京奥运],看,这个特殊的日子在2008年,是闰年。)
四、课堂小结
今天我们学习了“年、月、日”,你掌握了什么?
现在老师把这首歌《三百六十五个祝福》送给大家,希望你们每一天都有一个愉快的生活。
上一篇:西游记续后感450字
下一篇:海报怎么装修