题目要求:
使用Scratch进行编程,具体提示输入一段中文,然后统计出这段文字中出现次数最多的字并让角色说出这些字符,排除中文常见标点(, . ! ? ; : " ' ( ) [ ] { } ~ @ # $ % ^ & * - _ + = | \ / < > …)。
示例:
输入:却说张飞因关公放了上流水,遂引军从下流杀将来,截住曹仁混杀。忽遇许褚,便与交锋;许褚不敢恋战,夺路走脱。张飞赶来,接着玄德、孔明,一同沿河到上流。刘封、糜芳已安排船只等候,遂一齐渡河,尽望樊城而去,孔明教将船筏放火烧毁。
输出:流
示例说明:这段文字中“流”总共出现了3次
思路:将中文逐字拆分,存入列表,如果列表中已经有该字,则改字的出现次数加1,否则将改字存入列表,出现次数记为1,当拆分统计完毕,寻找出现最高的频次,再将相同频次的所有字找出来。
实现步骤:
1、打开Scratch,新建如下变量和列表,其中列表“字符”用来存放拆分的单个汉字,“次数”对应每个汉字出现的次数;变量“标点”用来存储常见标点符号,其它将在后面中用到

2、初始化变量和列表,使用询问,进行输入。
3、使用重复执行将输入的回答进行拆分,判断是否是标点,不是标点的进行统计。
4、【拆分统计程序】遇到汉字,进行判断,如果列表“字符”中已经有该字,找到这个字在列表中的位置,然后从对应的“次数”列表中得到出现的次数,存入临时变量“temp”,再将这个次数加1,替换原来的次数,否则将该字存入列表“字符”,出现次数记为1,加入列表“次数”。
将上图代码放入第3步中箭头所示的位置。
5、到此,所有文字及对应的次数都已统计完毕,接下来使用查找最大数的方法,找到列表“次数”中最大的数,即最高出现的频次。创建一个积木“找到最大出现次数”。
6、定义积木,遍历找到最大数,存入变量“最高次数”
7、找出所有与最高次数相同的项,得到对应的汉字。(高频文字有时不止一个),创建积木“所有高频字符”
8、定义积木,遍历列表“次数”,找到与最高次数相同的项,根据编号得到对应的字符,拼接到变量“高频字符”里,然后说出来。
9、主程序中使用这两个自制积木
程序源码下载:Scratch蓝桥省赛真题-统计高频字符
本站内容未经许可,禁止任何网站及个人进行转载。







