友情提示:380元/半年,儿童学编程,就上码丁实验室。
十二星座查询
星座是占星学中必不可少的组成部分之一,也是天上一群群的恒星组合。自从古代以来,人类便把三五成群的恒星与他们神话中的人物或器具联系起来,每个星座都有自己独特的故事和传说。
在西方占星学上,黄道12星座是宇宙方位的代名词,一个人出生时,各星体落入黄道上的位置,说明了一个人的先天性格及天赋。黄道12星座象征心理层面,反映出一个人行为的表现的方式。于是将黄道分成12个星座,称为黄道12星座。
星座名称 |
开始日期 |
结束日期 |
白羊座 |
3月21日 |
4月20日 |
金牛座 |
4月21日 |
5月21日 |
双子座 |
5月22日 |
6月21日 |
巨蟹座 |
6月22日 |
7月22日 |
狮子座 |
7月23日 |
8月23日 |
处女座 |
8月24日 |
9月23日 |
天秤座 |
9月24日 |
10月23日 |
天蝎座 |
10月24日 |
11月22日 |
射手座 |
11月23日 |
12月21日 |
摩羯座 |
12月22日 |
1月20日 |
水瓶座 |
1月21日 |
2月19日 |
双鱼座 |
2月20日 |
3月20日 |
根据上面星座日期对照表,小海豚科学馆(微信公众号)请你用Scratch编写程序,通过输入一个人的生日查询出所属的星座。
【编程解题】
1、数据整理。
我们把星座名称、开始日期和结束日期分别保存到3个不同的文本文件中,每个数据占据一行。日期格式为:mmdd,即月和日分别用两位数字表示,比如1月1日,则输入0101。查询星座时也要按此格式输入日期。小海豚科学馆(微信公众号)提示你,使用windows系统自带的记事本软件。
2、数据导入。
分别创建三个列表:星座、开始日期、结束日期,再将星座数据导入这个三个列表中。在舞台上的列表的空白区域点击鼠标右键,在弹出的右键菜单中使用“导入”命令把整理好的三个数据文件的内容分别导入对应的列表中。
3、编写入口程序。
使用“询问……并等待”指令接收用户输入的出生日期,然后调用模块“星座查询”来查询用户属于哪个星座。
4、编写模块“星座查询”。
创建一个名为“星座查询”的模块,参数为:出生日期。再用“重复执行直到……”指令构建一个循环结构来遍历十二星座的开始日期和结束日期,并在循环体内“如果……那么”指令判断用户输入的出生日期是否在哪个星座所属的范围内。依次判断“开始日期”列表和“结束日期”列表中的各项,直到找到匹配的星座,就将星座名称用“说”指令输出,并结束程序运行。
判断出生日期是否在开始日期和结束日期的范围内有两种方式,可用伪码表示为:
(1) “与”方式:
如果 开始日期 ≤ 出生日期 与 出生日期 ≤ 结束日期 那么
#找到星座
否则
#继续查找
由于Scratch中没有“≤”运算符,就需要把“<”和“=”两种运算符结合使用。这样整个表达式就显得长而复杂。
(2) “或”方式:
如果 出生日期 < 开始日期 或 出生日期 > 结束日期 那么
#继续查找
否则
#找到星座
小海豚科学馆(微信公众号)建议你使用这种简洁的方式。
模块“星座查询”的代码如下:
到这里,小海豚科学馆(微信公众号)已经带领你把星座查询的程序编写完毕。点击绿旗运行程序,就可以输入日期查询星座了。赶快试试吧!
5、试一试
如果你是摩羯座的,那么将查不到结果的,而是找到了一个严重的BUG。小海豚科学馆(微信公众号)请你查看前面的星座日期对照表中的摩羯座的数据,想想这是为什么?
摩羯座 |
12月22日 |
12月31日 |
摩羯座 |
1月1日 |
1月20日 |
如果把摩羯座的数据修改为上面两行,并重新导入各个列表中,就能查询到结果了。
你想明白了吗?作为一个耐心而又细心的摩羯座,请你赶快修复这个BUG吧!