带你读《lockly创意趣味编程》之三:lockly选择结构

丰富的线上&线下活动,深入探索云世界

做任务,得社区积分和周边

资深技术专家手把手带教

技术交流,直击现场

让创作激发创新

海量开发者使用工具、手册,免费下载

极速、全面、稳定、安全的开源镜像

开发手册、白皮书、案例集等实战精华

Blockly选择结构● 学习目标理解选择结构的概念。理解、运用单分支选择结构。理解、运用双分支选择结构。理解、运用多分支选择结构。理解选择结构的嵌套。● 知识图谱

在前面的学习中,我们熟悉了Blockly中各种基本模块的功能,并尝试了在顺序结构中进行设计。顺序结构在程序流程图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤。但是,我们会发现当遇到判断变量是否满足某一条件才可以执行下面的步骤时,很难只用顺序结构表达出来,这时就需要运用选择结构来对选择条件进行判断。本章首先带领大家认识选择结构,然后根据选择结构的构成分别介绍单分支选择结构、双分支选择结构以及多分支选择结构,最后介绍选择结构的嵌套。在学习完本章内容后,通过Blocky Game中的Bird游戏对选择结构的使用进行练习。

例如,我们要判断一个数是否为正数,并输出文字结果。流程图如图3-1所示,通过判断输入的数值是否大于0,输出结果。当x>0时,输出“正数”;否则输出结果为“非正数”。这种通过判断是否满足选择条件来决定下一个步骤的过程就是选择结构。在Blockly中运用if和else语句完成选择条件,表达if语句的模块如图3-2所示。如果满足条件,则执行某一步骤。在if的左侧有一个设置按钮,单击后可以添加else if和else语句到右侧,从而进行多重判断。

选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据对条件的判断结果控制程序的流程。

单分支选择结构是最简单的选择结构,用if语句表示。若满足条件则执行某一步骤,其流程图如图3-3所示。在Blockly中则使用图3-4所示的模块来执行。在“如果”后面输入判断语句,当逻辑判断结果为真时,则执行放在“执行”部分的语句块。

【例3-1】 运用Blockly判断加法运算结果是否正确,若正确则提示“正确”,不正确则无反馈。【解答】 这一过程只需要运用单分支选择结构就可以完成,即只需要运用if语句,在Blockly中,运用“如果—执行”模块即可。假设要判断1+1的运算结果,当在“=”后输入的是2时,可以弹出显示“正确”的提示框;当把“=”后的值改为0后,运行程序则无反应,如图3-5所示。

双分支结构一般用if else语句表示,当满足某一条件时,执行A步骤;否则执行B步骤。其流程图如图3-6所示。在Blockly中需要在“如果—执行”模块的基础上添加“否则”部分,最终显示如图3-7所示。和单分支选择结构一样,在“如果”后面输入判断语句,当逻辑判断结果为真时,执行放在“执行”部分后面的语句块;当逻辑判断结果为假时,执行放在“否则”部分后面的语句块。

【例3-2】 运用Blockly判断加法运算结果是否正确,若正确则提示“正确”,不正确则提示“错误”,使用双分支选择结构。【解答】 我们只需要在单分支选择结构示例的基础上,为逻辑判断错误的情况添加“否则”模块,后面加上输出“错误”即可。同样以判断1+1的运算结果为例,当我们输入的是2时,可以弹出显示“正确”的提示框;当把“=”后的值改为0后,则弹出显示“错误”的提示框,如图3-8所示。

练一练输入一个变量,判断该变量是否可以被3整除,并输出结果“可被3整除”或“不可被3整除”。

多分支选择结构由if和else if语句构成,其中可以有多个else if结构,其流程图如图3-9所示。在Blockly中使用多分支选择结构时,需要在单分支选择结构中添加“?否则如果?”模块,该模块可以不限数量。在“?否则如果?”模块后面可以添加“?否则?”模块,也可以不添加,最终形式如图3-10所示,这些都是多分支选择结构。

小提示多分支选择结构中可以有多个选择判断部分,但是除第一个选择判断部分外,其他部分都是在上一个判断的False分支上。【例3-3】 班里面需要做一个成绩统计,成绩在90分以上输出A,在80~90分之间输出B,80分以下输出C。【解答】 这里需要将分数做3个分段,一个分段是大于90分的,输出A;剩余的分数中,大于80分的输出B;否则输出C。根据判断条件,最终在Blockly中制作出语句模块,如图3-11所示。

练一练统计班级的分数段,一共有“90~100”“80~90”“70~80”“60~70”和“60以下”5个分数段。要求输入成绩,显示出属于哪个分数段。

选择结构的嵌套实际上就是在选择结构中再放置一个或多个选择结构,实现选择结构的嵌套。在Blockly中实现选择结构的嵌套,需要将多个“如果—执行”模块套用。可以将嵌套的“如果—执行”模块放置在“执行”模块的后面,如图3-12a所示;也可以放置在“否则”模块的后面,如图3-12b所示。但是将一个新的“如果—执行”模块放置在“否则”模块后面时,这种形式等同于在“如果—执行”模块的基础上添加“否则如果”部分。比如图3-12b中搭建的模块的意义与图3-12c中的模块相同,也就是当选择结构嵌套部分放在“否则”模块中时,可以简化为多分支结构。

小提示选择结构的嵌套没有固定的模式,也没有规定嵌套部分需要放置在哪一部分,只要选择结构内有一个或多个选择结构,就是实现了选择结构的嵌套。【例3-4】 我们知道在平年中2月有28天,闰年中2月有29天,那么怎样利用Blockly编写一个判断年份是否为闰年的程序呢?【解答】 要判断某个年份是否为闰年,首先需要判断该年份是否可以被4整除,如果不可以被4整除,那么这个年份肯定不是闰年。在可以被4整除后,还需要进一步判断这个年份的后两位是否为0,即是否可以被100整除。如果不可以被100整除,则这个年份一定为闰年;如果可以被100整除,还需要判断这一年份是否可以被400整除。如果可以被400整除,那么这个年份是闰年;如果不可以被400整除,则是平年。整个判断过程如图3-13所示,在Blockly中实现这一判断过程,需要将3个选择结构进行嵌套来完成。最终选择结构的嵌套部分在Blockly中的实现形式如图3-14所示。

练一练创建3个变量,在Blockly中使用选择结构的嵌套形式,比较3个变量的大小,并将这3个数由大到小排列。

第2关:让鸟在捉到虫子前沿0°向前飞行,捉到虫子后沿90°飞行,回到鸟巢,如图3-16所示。第3关:让鸟在捉到虫子之前沿右下方飞行,捉到虫子之后再沿右上方飞行,如图3-17所示。

第4关:让鸟在飞行横坐标小于80时,向右飞行;横坐标不小于80时,向下飞行到达鸟巢,如图3-18所示。第5关:让鸟在飞行纵坐标大20时,向下飞行;纵坐标不大于20时,向左飞行到达鸟巢,如图3-19所示。第6关:当鸟捉到虫子前沿右斜下方飞行,捉到虫子后判断鸟所处位置的纵坐标是否小于80,当小于80时,向上方飞行;当不小于80时,向左方飞行,如图3-20所示。

第7关:先让鸟沿左下方飞行,越过下面的阻拦物至纵坐标40处,然后令其在横坐标不超过80时,沿右斜下方飞行,捉到虫子;随后在纵坐标不超过20时,沿左方飞行回到鸟巢,如图3-21所示。

第8关:当同时满足鸟没有捉到虫子和飞行横坐标小于50时,沿右上方飞行;然后设定没有捉到虫子和飞行横坐标大于49时,沿右下方飞行,令鸟捉到虫子。捉到虫子后判断鸟所处位置的纵坐标是否小于50,当小于50时,令鸟沿着左上方飞行至界面中点;随后改为沿右上方飞行,回到鸟巢,如图3-22所示。

第9关:当同时满足鸟没有捉到虫子和飞行横坐标大于50时,沿正左方飞行;然后设定没有捉到虫子和飞行纵坐标大于20时,沿正下方飞行,令鸟捉到虫子。捉到虫子后判断鸟的横坐标是否大于40,当小于40时,令鸟沿着右斜上方飞行,随后改为沿右斜下方飞行,回到鸟巢,如图3-23所示。

第10关:当没有捉到虫子时,若鸟的飞行横坐标小于40,则沿右斜上方飞行;若大于40,沿右斜下方飞行。捉到虫子后,当鸟的横坐标大于40时,沿左斜上方飞行,小于40时,沿左斜下方飞行,回到鸟巢,如图3-24所示。

1.给出一个不多于5位的正整数,请在Blocky中实现以下要求:1)求出它是几位数;2)分别打印出每一位数字;3)按照逆序打印出各位数字,例如原数为321,应输出123。

2.函数y=f(x)表示如下,编程实现输入一个x值,输出y值。请在Blockly中实现这一函数。

3.自己上网查资料,搜集有关气象风级表的信息,比如0级表示无风,12级表示飓风等,试在Blockly中编写程序,输入一个风级,输出相应的概况,如名称、速度等。

开源软件的由来开源软件,全称为开放源码软件(Open Source Software),顾名思义,它是指源码可以被公众使用的软件,而且开源软件的修改和使用一般不会受到许可证的限制。关于开源软件的起源,可以追溯到20世纪60年代的UNIX的诞生。1969年,贝尔实验室的工程师开始开发UNIX。在此后的10年里,UNIX在学术及商业机构中得到了广泛的应用。许多机构在使用UNIX的过程中,对其功能进行了扩展和改进,并衍生出许多新的产品,如BSD(Berkeley Software Distribution)、Linux等。但是好景不长,贝尔实验室逐渐意识到了UNIX的商业价值,于是不再将UNIX的源代码免费授权给学术和商业机构了,甚至开始对之前UNIX的衍生版本声明版权权利,也因为这一举动,引发了许多版权纠纷。从某种程度上看,UNIX在开源方面起了很小的作用。1984年,理查德·斯托曼发起了GNU项目,与此同时,自由软件的概念也已诞生,GNU项目的贡献者旨在开发一个让每个人可以自由、免费使用的软件。后面为了协助GNU计划的开展,理查德·斯托曼推动并建立了自由软件基金会。1991年,Linux内核诞生,并且伴随着Linux热度逐步升高,它也成了GNU计划的最终产物。也正是基于这些原因,时至今日,只要一提到开源,大家首先想到的就是Linux。其实开源软件不仅有Linux,还有很多比较知名的,比如集成开发环境Eclipse、Linux下的文本编辑器VIM、Android操作系统、Python编程语言,Apache网页服务器,Arduino单片机等。其实还有一个在开源发展历史中具有里程碑意义的软件—Github,由于它所提供的软件源代码托管服务,使得更多的开发者参与到开源项目中来,任何人都可以将自己的项目托管到Github上,他人能非常方便地查找到感兴趣的项目及源代码,而且可以与项目所有者以协作的方式开发。“开源软件”既代表一种哲学思想,也代表一种软件发展模式。在像Linux这样的开源项目中,软件是免费共享的,其“源代码”(经验丰富的程序员能够阅读并理解的编码指令)是公开发布的,以便其他程序员学习、分享和修改,众人拾柴火焰高,开源会越来越流行,越来越强大。

关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务

THE END
0.Blockly编程游戏之鸟第九关另一种过关算法,条件稍有不同: 挑战地址:(建议在电脑或平板上打开) https://www.youweiit.com/myblockly/games/zh/bird.html?lang=zh-hans&level=9 关注少年爱编程公众号,学习更多精彩编程内容。jvzquC41yy}/{xzygkou0lto1cxuklqg/78/j}rn
1.Blockly编程游戏之鸟第七关第七关整个飞行路线也分为三段,鸟先要抓住虫子,但这里有障碍,所以先要飞向区域中间绕过障碍,再飞向虫子。 第一段直接飞向区域中间,通过观察其实就是Y坐标大于50的时候飞向中心,执行飞行方向为225°;当飞到中心区域了,这时候当Y坐标小于50后,就是执行第二段否则如果“还没捉到虫子”,飞向虫子,执行飞行方向为315°jvzquC41yy}/{xzygkou0lto1cxuklqg/76/j}rn
2.少年爱编程blockly及scratch编程学习交流,提供Blockly及Scratch教程与编程技巧案例jvzquC41{q{xgrnv0eun1
3.编程迷宫无基础玩游戏学编程——Blockly游戏(1迷宫)BlocklyGames是一系列编程教育小游戏,专门为没有计算编程经验的儿童设计。它用谷歌2012年推出的可视化编程语言Blockly语言制作,它是完全开源的,你可以在github(https://github.com/google/blockly-games)找到源码自行搭建。不会自己搭建也没有关系,已经有人搭建好了,搜索“少儿编程教程网”就可以找到“Blockly游戏”(httpjvzquC41dnuh0lxfp0tfv8|gkzooa<>8:7:6;8ftvkimg8igvcomu86348>45A:
4.Blockly编程游戏之鸟第三关Blockly Games是一系列教编程的教育游戏。 它是为没有计算机编程经验的孩子设计的。 在这些游戏结束时,玩家已准备好使用常规的基于文本的语言。Blockly游戏的设计非常有趣,寓教于乐,循序渐进难度逐渐递增。让孩子们在玩游戏的过程中不知不觉的学到了编程的思维,继续跟着少年爱编程来挑战吧! jvzquC41yy}/{xzygkou0lto1cxuklqg/6
5.计算机毕业设计javablockly少儿编程在线学习网站“童码星球”少儿编程互计算机毕业设计javablockly少儿编程在线学习网站27eso9 (配套有源码程序mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 把积木式代码块拖到舞台上,7 岁的小朋友就能让小猫走迷宫、让无人机起飞。少儿编程在线学习网站把游戏、动画、硬件、竞赛融进同一浏览器:孩子边看动画jvzquC41dnuh0lxfp0tfv8xjglo:3<71ctzjeuj1fgzbkux136?43>566
6.java+vue计算机毕业设计blockly少儿编程在线学习网站基于Blockly的少儿在当今数字化时代,编程教育逐渐成为少儿教育的重要组成部分。随着互联网技术的普及和在线学习模式的兴起,少儿编程在线学习网站的需求日益增长。为了满足这一需求,开发一个高效、互动性强且易于使用的少儿编程在线学习网站显得尤为重要。该网站不仅能够为孩子们提供丰富的编程课程,还能通过Blockly等工具增强学习的趣味性和互动性,激发jvzquC41dnuh0lxfp0tfv8jkyko4981ctzjeuj1fgzbkux136<89::;2
7.(开题)flask框架blockly少儿编程在线学习网站(程序+论文+python)本研究的意义在于通过构建Blockly少儿编程在线学习网站,为儿童提供一个便捷、高效、有趣的编程学习平台。该平台不仅能够提供丰富多样的编程课程和学习资料,满足不同年龄段和兴趣偏好的儿童需求,还能够通过趣味游戏和编辑器等功能,增强学习的互动性和实践性,使儿童在轻松愉快的氛围中掌握编程技能。此外,该网站还将为家长和jvzquC41dnuh0lxfp0tfv8xjglo83?4ctvodnn4fgvgjn|4364878;78
8.少年爱编程是一款由麻省理工学院(MIT)设计开发的少儿编程工具。 少年爱编程2022-03-07 应该从小就教给所有人的认知偏差 掌握编程思维,打破埃隆·马斯克所说的50种常见认知偏差! 少年爱编程2020-10-22 Blockly编程教育游戏之乌龟第十关 blockly编程乌龟的第十关是没有具体目标的,“想画什么就画什么吧。现在您拥有了大量jvzquC41yy}/{xzygkou0lto1
9.【blockly系列教程】简介–少儿编程码丁实验室,一站式儿童编程学习产品,寻地方代理合作共赢,微信联系:leon121393608。 1。简介 kidscoding8.com将教您如何构建一个简单的Web应用程序以包含Blockly可视化编程库。 什么是Blockly? Blockly是一个用于构建块编程应用程序的库。块编程允许用户使用可视块创建脚本和程序,即使他们不知道任何编程语言。Blockly具备在jvzquC41yy}/mriueqjjpp=0eqs03<=30jznn