屈彪+程鑫君+姜蓉+谭剑波
摘要:编程能力是计算思维训练中的重要内容,编程能力的提高是一个循序渐进的过程。该文以“循环报数,逢N退出”问题为例,利用计算机相关知识,分别从不同的角度,对该问题的求解过程进行了有益的探讨,对于加强计算机思维的训练、加深对计算机基础知识的理解与应用、加速推进气象工作信息化建设、特别是对于雷电信息数据处理与分析都有较大帮助。
关键词:面向对象;栈;队列;循环链表;计算思维;雷电信息
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)28-0248-03
周以真(Jeannette M.Wing)提出的计算思维(Computational Thinking)是指运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学及相关领域的一系列思维活动。计算思维的有效训练与运用对于气象工作信息化特别是雷电数据实时处理与分析非常重要。本文从一经典例子出发,在JAVA平台下,采用拓展型方法对该问题进行求解,分别采用数组、链表、栈、队列等多种方法进行计算,从而达到提高思维与能力训练的目的。
问题描述: 设有n个人,如右图1所示围成一圈,对这n个人顺次从1到n进行编号。然后从第1个人开始,逆时针顺次以1,2,…,N, 1,2,…,N,…循环报数,只要某个人报到的数字是N,则退出该圈,当这个圈中只剩一个人时则停止报数。试计算最后留下的人的编号多少?
1 利用数组实现计算
数组是由具有相同数据类型的、且有一定顺序关系的元素所構成的集合。概述中提出的问题的数组算法的关键是设置一个计数器,在循环报数的过程中,让满足条件的人不断退出数组(以整数0表示),直至数组中仅剩余一人为止。详细算法如下。
6 结束语
编程能力是计算思维训练中的重要内容,训练方法多种多样,编程能力的提高也是一个循序渐进、不断总结、不断探索的过程。本文以一个典型例子,利用计算机相关知识,分别从不同的角度,对该问题的求解过程进行了有益的探讨,对于加强思维训练、加深对计算机基础知识的理解与应用,加速推进气象工作信息化建设、特别是雷电信息数据处理与分析都有较大帮助。
参考文献:
[1] 张东, 龚晓娟. 发散性思维与一题多解[J]. 新疆职业大学学报, 2004(1):79-80.
[2] 马苗, 田红鹏. “面向对象程序设计与C++”教学中的问题与思考[J]. 计算机教育, 2008(6):81-82.
[3] 印旻, 王行言. Java语言与面向对象程序设计[M]. 2版0北京: 清华大学出版社, 2007.
[4] 陈国君, 陈磊, 邹林达, 等. Java程序设计基础[M]. 5版.北京: 清华大学出版社, 2015.endprint