基于数组与汉字点阵的多学科融合教学的设计与实现

2015-09-27 06:48李尚恩
现代计算机 2015年28期
关键词:数组方格直观

李尚恩

(东莞理工学校,东莞 523106)

基于数组与汉字点阵的多学科融合教学的设计与实现

李尚恩

(东莞理工学校,东莞523106)

0 引言

数组是一种高效的数据组织方式,和具体的语言无关,通过它能够快速实现数据的输入,输出和复制,提高软件开发的效率,它是软件开发的精华知识,没有它,在处理大量的数据时,根本无从下手。数组知识比较抽象,常用的操作有数组元素的输入,数组元素的复制以及数组元素的输出,学习数组知识需要严谨细心的学习态度,以及丰富的想象力,加上数组编程都是乏味的纯数字操作,所以对初学者而言,难度较大。汉字点阵是计算机基础,计算机组成原理等书籍里面必学的知识,但其复杂的点阵结构以及编码,使得学习者难以领会和掌握。基于数组和汉字点阵的共同特点,它们都是重复而又可以找到规律的结构,现设计出一个教学案例以及相关程序,把数组的知识和汉字点阵的知识融合在一起,以直观形象的方式操作本程序,设计出漂亮的汉字,掌握汉字点阵的概念和原理,再通过把汉字的点阵编码存入数组,从数组中读出点阵编码,复制数组等操作,以直观形象的方式让学习者快速学会数组的相关知识。

1 数组知识简介

数组用于保存大量的、逻辑上有联系的数据,是一组具有相同名字、不同下标的变量的集合[1]。通过数组,可以用相同的名字引用一系列变量,并用数字(索引)来识别它们。在许多场合,使用数组可以缩短和简化程序,因为可以利用索引值设计一个循环,高效处理多种情况。数组有上界和下界,数组元素在上下界内是连续的。数组的基本操作包括:数组的输入,数组的输出以及数组的复制。数组在应用时,最突出的地方就是可以把无规律的数据规律化,使得可以使用循环结构来处理大量的重复的操作,大大提高数据处理速度和编程效率。例如:“白”、“日”、“依”、“山”、“尽”,这5个汉字是没有规律的,编写程序时须逐个引用它们,但如果把它们存放到一个数组里,见表1,它们就变得有规律了,可以通过循环结构来处理,尤其在数据量较大时,数组的作用就更加明显。

表1 数组

2 汉字点阵知识简介

目前,我国汉字点阵结构一般分为四类:16×16点阵组成的简易型汉字字型;24×24点阵组成的普及型;32×32点阵组成的提高型;48×48点阵组成的精密型[2]。24针打印机一般采用24×24点阵组成普及型汉字字型,与铅印汉字基本相同,印字质量高[2]。实际上,在设计汉字点阵图像时,会涉及到汉字字体问题。我国汉字字体较多,常见的有宋体、仿宋体、楷体、黑体等。显然,采用不同字体,所设计出的点阵图像不尽相同。我国汉字打印机中的汉字库,一般采用仿宋体所对应的汉字点阵图像。在横向24个方格和纵向24个方格上描点时,不管汉字的繁简和笔划多少,通常只占用22列,即横向左、右各空出1列方格不描点,作为字与字之间间隔[3]。如图1给出汉字“春”字的24×24点阵图像,有了汉字点阵图像,不难写出其对应的点阵码。对于24x24点阵结构,每行有3个字节,共24行,因而共有3x24= 72字节点阵码。根据“春”字的点阵图像,可以写出与其对应 的72字节的点阵码,见表2。

图1 “春”字点阵图像

表2 “春”字点阵码

3 数组与汉字点阵的融合教学设计

基于数组和汉字点阵的共同特点,它们都是重复而又可以找到规律的结构,为了实现数组与汉字点阵的并行教学,特设计以下几个环节来进行教学,使两个知识点相融合,把抽象知识形象化,达到化难为易的目的。

3.1汉字点阵字模设计

运行汉字点阵设计程序,该程序已经自主开发完成,提供给学生直接使用。程序运行效果见图2。该程序直观,容易操作,工作区内有24×24个小方格,选择右边工具箱中的画笔工具,通过鼠标对每个小方格进行点击操作,即可把相应的小方格设置成黑色或无色,为了提高速度,亦可选择刷子工具(刷子工具每次可刷两行或两列),根据汉字的字型对每个方格进行颜色设置,就可以设计出相应的汉字。见图3,通过该形象直观的汉字设计操作,学生可以很好地理解汉字点阵的概念和原理。

图2 汉字点阵设计程序

图3 学生设计的点阵汉字

3.2点阵码存入数组实现数组的输入

设计完汉字后,需要把这些汉字以编码的形式保存到数组和保存到文件中,以便下次可以继续使用。在这里,对汉字点阵的每一个小方格编码如下,黑色的小方格用“1”表示,无色的小方格用“0”表示,共有24×24个小方格,所以存储该汉字编码需要使用长度为24× 24=576的一维数组,下标从0到575。其中下标从0至23的数组元素存放第一行小方格的编码,下标从24至47的数组元素存放第二行小方格的编码,依此类推。图4显示了“陈伟波”三个汉字的二进制编码。

图4 汉字点阵码

3.3从数组中读取点阵码显示汉字

启动汉字点阵设计程序,选择“文件-打开”,选择保存在文件中的汉字编码文件,“李.scn”,把汉字编码读入至长度为576的一维数组中,然后循环读取每个数组元素的值,根据每个数组元素的值设定每个小方格的颜色,由于A(0)-A(23)的值均为0,所以第一行每个小方格均设定为无色,A(24)-A(47)这24个数组元素中,A(34)、A(35)的值为1,所以第二行小方格中,第11、12个小方格设定为黑色,其余小方格设定为无色。依此类推,即可根据每个数组元素的值还原汉字。见图5。

图5 从汉字点阵码还原的汉字

3.4复制数组内容实现复制汉字

由于通过复制汉字编码可以复制汉字,而汉字编码在程序运行的过程中已经存放到长度为576的一维数组中,所以只需复制数组的内容,就可以实现复制汉字,并可以在复制出来的汉字中作任何修改,而不影响原来的字模。例如,可以在复制出来的汉字编码中作修改,把它改成黑体、宋体、隶书、华文中宋等,亦可在汉字上加上一定的标志,而不用从零开始设计该汉字,大大简化设计汉字的工作量。图6显示了由楷体字修改成华文中宋的“恩”字。

图6 修改汉字点阵成华文中宋

4 结语

综合来说,基于数组和汉字点阵知识的共同特点,把它们有机地结合在一起,把抽象的知识形象化,使繁锁的数字操作趣味化,让学习者在直观的汉字设计操作中领会汉字点阵的思想,掌握汉字点阵编码的原理。通过对汉字编码的存取,理解和掌握数组的基本操作,包括数组的输入,数组的输出及数组的复制等。通过本次教学,学生既学会了数组的知识,又学会了汉字点阵的知识,可谓一举两得,学生快速学会知识的同时,也大大提高了学习的积极性。

[1]阙向红.Visual Basic程序设计教程[M].清华大学出版社,2006-12.

[2]陈其昌.汉字打印机设计原理[M].华中理工大学出版社,1995-2:13-15.

[3]刘中原.计算机组成原理[M].中国铁道出版社2005-3:32-38.

[4]李晓燕.计算机实用基础教程[M].华中师范大学出版社,2007-2.

[5]潘日明.C程序设计的数组探讨[J].中国科技信息,2009(02).

Array;Chinese Character Lattice;Multi-Discipline Integration Teaching

Design and Implementation of Multi-Discipline Integration Teaching Based on Array and Chinese Character Lattice

LI Shang-en
(Dongguan Science and Technology School,Dongguan 523106)

1007-1423(2015)28-0041-04

10.3969/j.issn.1007-1423.2015.28.011

李尚恩(1980-),男,广东廉江人,硕士研究生,讲师,软件设计师,研究方向为软件工程、计算机辅助教学

2015-08-13

2015-09-26

数组知识比较抽象,汉字点阵知识也难于掌握,设计出一个教学案例,融合数组和汉字点阵的知识,把抽象、难掌握的知识直观形象化,让学习者在动手操作的学习过程中快速学会数组和汉字点阵的知识。实践结果证明,由于数组与汉字点阵的共同特点和直观形象的操作,学习者很快就掌握了相关知识。

数组;汉字点阵;多学科融合教学

Array of abstract knowledge,knowledge lattice of Chinese characters is difficult to grasp,designs a teaching case,combines the knowl-edge of the array and a Chinese character dot matrix,the abstract and difficult to master the knowledge and intuitive image,lets the learn-er in the practical operation in the process of learning quickly learn knowledge of the array and the Chinese character dot matrix.The practical results prove that,because of the common features of array and character matrix and the operation of intuitive image,learners soon master the relevant knowledge.

猜你喜欢
数组方格直观
JAVA稀疏矩阵算法
方格里填数
直观构造中的代数刻画
数形结合 直观明了
方格里填数
JAVA玩转数学之二维数组排序
简单直观≠正确
分方格
根据计数单位 直观数的大小
分方格