区时换算计算机辅助教学程序设计

随着“视窗 95”的开发成功和国际互联网络在全球的迅速铺开,计算机技术再一次成为众所注目的焦点。与此同时,我国的地理学界正在为如何振兴中学地理教育而苦苦思索。借助计算机技术取得的成就,搞计算机辅助教学,无疑将是一条有效途径。

计算机技术是一门应用性很强的新兴学科,它与地理学科结合起来,必将能更好地发挥地理学科的自身特点,增加知识的趣味性,提高学生的学习兴趣,改变学生对地理学科的片面认识,从而为地理教育事业贡献力量。

目前,计算机在中小学的普及率已经很高,特别是城市中学大部分已经配备了计算机,很多学校开设了微机课,学生已能掌握一些基本操作,这为搞计算机辅助教学提供了基础条件和物质保障。现在我们面临的首要问题是教学软件的开发,特别是具有地理学科特色的图文结合动态软件的开发,但从目前中国基础教育的实际情况来看,由广大教师自己独立完成软件设计还不太可能,但在系统的教学软件问市以前,我们完全可以自己设计一些简单程序,为以后的工作做一点经验上的准备。本设计介绍我们设计的一个有关区时换算的程序。

我们知道,地球一刻不停地在自西向东自转着,这使得一般情况下东边的地点总比西边的地点先看到日出,也就是东边地点的时刻要比西边地点的

时刻早,这种时刻仅和经度有关,经度不同的地方时刻也不相同,称它为“地方时”。使用这样的时刻必定会给交通、通讯、生活带来极大不便,因此,国际上于 1884 年创立了标准时(区时)制度。即每隔 15 个经度划分为一个时区,全球共分为 24 个时区。0°经线向东向西各 7.5°所在的时区叫中时区(也称零时区)。0°经线为中时区的中央经线,从零时区两条边界线分别向东向西每隔 15°依次划分为东一区至东十二区及西一区至西十二区,其中东西十二区合并为一个时区。在每个时区内,用它们的中央经线作为各时区的标准时线,这条经线的地方时,就叫做该时区的“标准时”或“区时”。有关时区和区时的换算是中学地理教学的重点和难点,但这种计算的数

学模式比较容易用 BASIC 语言表达出来。比如说已知某地经度求所在时区, 就可以借助取整函数(INT 见程序中语名 160、170);另外东西经度、时区的输入又可以利用正、负号从而使程序简化(即东为正,西为负);在下面的程序中运用了类似于数轴的型式输出结果,增强了直观性,同时还可以用数格子的方法来验证所求结果,等等,这都是借助了数学和计算机的相关内容。

在下面的程序中,在输入经度时,在程序的输出结果中,突出的是区时, 但所在时区也不难看出,并且在所求区时的下一行,输出了英文的“昨天”、“今天”或“明天”来区别已知的和要求的,这也为日界线的引出埋下了伏笔。另外为了输出结果的美观,在输出结果的开始和结束分别设置了 5 个空行。

1.标识符说明: X:给定时间 TX 的时区或经度; Y:需换算时间的时区或经度;

TX:X 时区或经度的区时,单位为小时; TY:要求的 Y 时区或经度的区时; L:判断标志输人时区 L=0,输入经度 L≠0。2.程序

10 INPUT″X,Y,TX,L=″;X,Y,TX,L

20 FOR I=1 TO 5

30 PRIN T

40 NEXT I

50 PRINT TAB(33);″W″;TAB(43);″E″

60 PRINT″-12-11-10″;

70 FOR A=-9 TO 9

80 PRINT A;

90 NEXT A 100PRINT″10 11 12″

110

PRINT TAB(2);″1″;

120

FOR I=1 TO 24

130

PRINT″——l″;

140

NEXT I

150

IF L=O THEN 180

160

X=INT(X+7.5)/15)

170

Y=INT(Y+7.5)/15)

180

TY=TX+(Y-X)

190

IF Y<X THEN 250

200

PRINT TAB(3*(12+X)+1); TX;

210

IF TY> 24 THEN TY=TY-24 ELSE 240

220

PRINT TAB(3*(12+Y)+l);TY;

230

PRINT TAB(3*(12+Y);″tmorrow″:GOTO 300

240

PRINT TAB(3*(l2+Y)+1); TY;:GOTO 290

250

IF TY<0 THEN TY=24+TY ELSE 280

260

PRINT TAB(3*(l2+Y)+l);TY;TAB(3*(12+X)+1);TX

270

PRINT TAB(3*(12+Y)-1);″yesterday″:GOTO 300

280

PRINT TAB(3*(12+Y)+l);TY;TAB(3* (12+X)+ l);TX

290

PRINT TAB(3*(l2+Y)+l);″today″

300

FOR I=1 TO 5

310

PRINT

320

NEXT I

399

END