第12届蓝桥杯Scratch国赛真题集锦

news2024/9/30 3:23:22

程题
第 1 题 问答题
博土江出题
题目说明
编程实现:博土汪出了5道加法选择题,请同学们给出正确选项
具体要求
1).博士汪问:“n +m =?”,n (0-9随机数),m (0-9随机数)

2).下方A、B、C、D四个选项,随机一个选项为正确答案,其他选项为错误答案(所有选项不能重复)

3).在询问框中输入选项,如果正确,博士汪说:“对了”,如果错误,博士汪说:“错了”; 

4).博士汪连续出5道加法选择题;
5).完成5道选择题后,博士汪说:“共答对几道题”等待1秒,说:“得了多少分”,选项内容清空 (每道选择题20分);
 

6).程序持续运行,且满足以上全部要求

 作为中高级组最后一题,本题的难度明显比前面6题都要大,本题的难点在于,如何生成A、B、C、D四个选项,这里有3个关键点:4个选项不能重复;
有且只有一个选项是正确答案;
正确答案顺序是随机的,可以是A、B、C、D四个中的任意一个;
为了实现这个功能,我们可以借助列表和随机数,先计算得出正确答案,将其插入列表,作为列表的第一项,接下来利用随机数,得到其它3个错误选项,它们都是在正确答案的基础上增加或减少一个随机数,然后插入到列表的随机位置。编程实现
接下来,我们就分如下4步编写程序来完成作品:

1.随机出题
2.生成A、B、C、D选项

3.询问并判断回答是否正确

4.统计答对题数及分数
 

题目要求,要出加法选择题,并且两个加数的范围都是0-9,所以,我们可以创建两个变量“和“m”分别表示两个加数,同时为了后面判断输入的答案是否正确,又创建一个变量“答案”来存储正确答案。然后使用连接运算符将”n”、“+”、"m"和“=?“连接起来,得到一个算式,这部分的代码如图所示:

2.生成A、B、C、D选项有了题目,接下来就需要生成A、B、C、D四个选项了,根据前面的分析,需要定义一个列表“选项”,用于保存4个选项,同时需要分别
创建“A”、“B”、"C”、“D”四个变量用于表示选项。我们可以先将正确答案插入到“选项”列表中,然后再随机3个干扰选项,并且插入到列表中,插入的时候可以使用“在选项的第x项插入指令,从而打乱列表的顺序,这部分的代码如图所示:

3.询问并判断回答是否正确
有了问题和选项,就可以询问并判断回答是否正确了,需要注意的是玩家输入的是A、B、C、D,并不是某个数字。所以,我们需要分情况讨论,如果输入A的话,就需要判断变量“A”是否和变量“答案“相等,如果输入B的话,就需要判断变量“B"是否和变量“答案“相等,以此类推...
如果回答正确,说“对了”,并且将变量“答对题数”增加1,否则就说错了,这部分的代码如图所示:

4.统计答对题数及分数上达代码只描述了一道题的出题和回答,题目要求出5道题,所以需要使用“重复执行5次指令”,将这部分的代码包裹起来当5次循环执行完毕,就需要统计答对题数及分数了,这里每道题是20分,可以使用“答对题数20得到分数,同时别忘了将变量“A”"B”、“C”和“D”四个选项情况。代码如图所示:

第2题问答题
玛雅神庙
题目说明
编程实现:玛雅神庙.
具体要求
1).点击绿旗,出现对应的角色与背景;
 

2).按下空格键,玛雅罗盘说:“请观察火把点亮的顺序”,然后神庙中的四个火把按照随机顺序分别亮起来并熄灭一次;
 

3.玛雅罗盘说:“请按照刚才的顺序点亮所有火把",然后通过上、下、左、右按键控制手指进行对应方向上的移动,手指移动到一个火把上,按下S
键,火把会再次亮起;
 

4).四个火把全部亮起,如果点亮顺序错误,玛雅罗盘说:“错误”,游戏结束;
 

5. 四个火把全部亮起,如果点亮顺序正确,玛雅罗盘说:“正确”,并按照每个火把代表的数字,分4次顺时针旋转到对应的数字位置,每次间隔1秒
顺序与点亮火把的顺序一致;

 

6).玛雅罗盘转动成功后,大门打开
 


 

接下来就需要考虑如何随机点亮顺序了,我们可以使用数字1、2、3、4表示4个火把的点亮顺序,并保存到“火把顺序“列表中,这通常
也有两种实现方法:
先依次将1、2、3、4插入到列表,然后打乱顺序;
向列表的随机位置处依次插入1、2、3、4;
从代码的简洁性角度出发,选择第二种方法更为简单,代码如下:
 这里的关键就在于“在列表的第而项前插入xx”指令,如果列表中是空的,能够插入的位置就只有一个,如果列表中有1个数据,那么新插入的数据就有两个位置可以选择了,在第一个数据之前或之后,相应的,如果列表中有两个数据,那么新插入的数据就有三个位置可以选择,以此类推..,也就是这个位置可以随机数来获取,但随机数的范围和列表的项目数有关,这就是上述代码的作用。接下来,罗盘就需要告诉4个火把分别点亮自己了,这需要用到事件广播机制,我们可以遍历“火把点亮“列表,根据列表中的数字,依次给4个火把角色发送广播,传统的做法是使用“如果..那么”指令判断数字,然后分别发送广播消息。可以利用随机数发送广播,广播消息的名字就是数字1、2、3或4,结合循环,可以让程序更为简单,代码如下:

 

对应的,火把1角色接收到广播消息“1”,先把火把切换到点亮造型,等待1秒后,再切换到熄灭造型,代码如下
 

同理,其余3个火把角色,在接收到消息“2"、消息“3"、消息“3”的时候,都需要做相同处理,代码和火把1角色基本一样,这里就不再贴出了。至此,按随机顺序点亮4个火把然后熄灭的功能就已经实现了。
2.等待玩家点亮火把并记录顺序
在罗盘角色在发送完4个广播之后,需要提示“请按照刚才的顺序点亮所有火把“并等待玩家点亮火把,在罗盘角色代码下面继续编写代码如下:
 

这里,之所以要等待1秒,是因为4个火把从点亮到熄灭之间的时间也刚好是1秒。发送完广播之后,4个火把角色就需要处理广播消息,并等待手指移到该火把上并按下S键点亮火把,一旦点亮火把,此时就需要将该火把的序号保存到“点亮顺序“列表中,并判断4个火把是否都点亮了,如果都点亮了,就需要判断二者的顺序是否正确了。以火把1角色为例,其代码如下 

 

至此,等待玩家点亮火把并记录顺序的功能就已经实现完毕。
3.比较两次点亮顺序
接下来,就需要比较计算机随机点亮顺序和玩家点亮顺序了,其实就是判断“火把顺序“和"点亮顺序“这两个列表是否相等即可,关键是如何比较呢?
简单的想法自然是直接比较两个列表,但是需要注意这种方式在scratch中并不总是正确,而且在所有的编程语言中,一般也不会直接
使用这种方式。不妨换一个思路,分别将两个列表中的数字进行连接。得到一个字符串,然后再进行比较,这个比较是在罗盘角色中进行的。代码如下:
 

需要注意的是,对于字符串而言,其初始值要设置为空,如果二者顺序相同,则说"正确",然后广播”旋转”,否则说“错误“,结束游戏。
4.转动罗盘
当罗盘接收到“旋转“广播之后,需要根据点亮顺序,依次旋转罗盘,这是本作品的又一难点,因为这里的顺序是随机的,每次都是不同的。实现方法有多种,我这里介绍最简单的一种,也是小朋友最容易理解的一种方式。首先要找到关键点,在罗盘旋转的过程中,变化的是什么呢?毫无疑问是方向,而且这里的1、2、3、4对应的方向值分别是90、-90、180和0。如此一来就好办了,如果当前的数字是1,那么就让罗盘重复右转直到方向为90度,如果当前数字是2,那么就让罗盘重复右转直到方向为-90,以此类推..在这个过程中,我们根本不用关心,当前罗盘在哪个位置,是不是很方便,具体实现代码如下:
 

5.打开大门
最后一步就是打开大门了,这个非常的简单,大门角色在接收到”开门“广播消息之后,直接切换造型即可,代码如下:
 

第 3 题 问答题
密室逃脱
题目说明
编程实现:密室逃脱
具体要求:
1).点击绿旗,出现对应的角色与背景
 

2).点击一下床上的蓝色钥匙后,钥匙可以跟随围标指针移动;
3.拖动鼠标将钥匙移到床头柜的第二个抽尾的钥匙孔处,出现对话框“抽冠打开”,等待1秒蓝色钥匙消失,可以从抽冠中拿出红色钥匙,红色钥匙出现
在画面中;
 

4).点击一下红色钥匙,红色钥匙跟随里标指针移动,移动到电脑桌第一个抽园的钥匙孔处,出现对话框"抽园打开",等待1秒红色钥匙消失、可以从抽
屉中拿出白色门卡,白色门卡出现在画面中; 

 

5).点击一下门卡,门卡可以跟围标指针移动,碰到紫色把手消失,密码锁会随机说出5个数字(0-9),输入由这5个数字组成的最大五位数并出现输入框;

 

6.如果输入的最大五位数正确,提示:“正确,门打开”,如果输入最大的五位数错误,提示:“请重新输入(还有一次机会)”,两次机会全部输错
提示:“错误,门已锁死”。
 

 

 

可以看到,这里有4个角色,结合上面的流程图,我们可以按照角色的顺序来编写程序。
1.蓝色钥匙
对于蓝色钥匙角色而言,主要有3个小功能:
初始化设置
点击钥匙,让钥匙跟随鼠标移动
打开抽屉,拿到红色钥匙
先上代码,如图所示:
 

其中,初始化包括位置设定和显示,以确保每次游戏开始时,蓝色钥匙是出现在床上。对于按下留标的处理,并没有使用"当角色被点击“指令,而使用了“等待条件”指令,这样可以确保蓝色钥匙只能被点击一次,以及只有在点击绿旗之后才可以点击钥匙。这是一个非常有用的Scratch编程小技巧,可以让程序更加严谨,减少不必要的bug。打开抽屉,这里使用的是颜色碰撞检测,一旦碰到蓝色钥匙孔,就可以说”抽屉打开“了,然后隐藏蓝色钥匙。打开抽尼,就找到了红色钥匙,从蓝色钥匙角色到红色钥匙角色,涉及到跨角色之间的通讯,这需要使用事件广撞机制,所以最后发送了一个广播”找到红色钥匙“,这就好比是蓝色钥匙角色给红色钥匙角色打了一个电话。

2.红色钥匙
红色钥匙角色的效果和蓝色钥匙基本一致,所不同的地方有如下3点:
位置不同
开始时处于隐藏状态
碰到红色钥匙孔才能拿到门卡
红色钥匙有两个代码块,一个是绿旗代码块,表示初始状态,另一个则是在接收“找到红色钥匙“广播需要处理的代码,具体代码如下:
 

同理,在说”抽屉打开“并隐藏自己之后,需要通知门卡角色,因此在代码的最后添加了一个广播”找到门卡“指令.

3.白色门卡
门卡角色的逻辑和代码基本是一样的,这里就不再赘述了,直接上代码:
 

在门卡角色隐藏之后,需要给密码锁角色发送一个”找到锁了“的广播消息。
4.密码锁
在接收到门卡角色发送的”找到锁了“的广播消息后,需要实现如下3个小功能:生成随机密码
提示用户输入密码
判断密码是否正确
这是本题的重难点,是考验孩子逻辑思维能力和处理数据能力的时候了。首先,我们来生成随机密码,密码是一个5位数,每一位都是从0-9之间随机取数,思路其实也挺简单的,就是按万、千、百、十、个的顺序依次从0~9之间取一个随机数。
具体实现也非常简单,先定义一个变量"数字串“并设置为空,然后使用字符串连接运算,逐个将每一位上的数字进行连接,同时将这些数字保存到”数字“列表中,便于后续处理,这部分的代码如下:
 

其次,我们要通过"数字“列表获取密码,密码是由这5个数字组成的最大5位数。针对这个需求,通常的做法对列表进行排序,然后依次将5个数拼成一个数字,只是这种方式难度有点大,很多孩子一时还掌握不了。细心的你也许已经发现了,这5个数字都是一位数,取值范围是0-9。我们可以换个思路,针对这5个数字,让每个数字都和9进行比较,如何相等,那么这个数字就位于密码数字的高位,接着依次和8、7、6、5、4、3、2、1、0进行比较,一轮下来,就可以得到最大5位数了。
这里需要用到计数循环以及嵌套循环,为了简化代码,可以使用自制积木来获取最大5位数作为密码,代码如下:
 然后就可以在询问之前调用这个自制积木来获取所谓的密码,并保存到变量”密码“中。接下来,玩家在输入框中输入一个数字作为密码,并判断密码是否正确。由于这里最多只有两次机会,根据上面绘制的流程图,我们只需要使用两个”如果...那么...否则“指令就可以,具体代码如图:

 

至此,整个功能就全部实现完毕

第 4 题 问答题
切换子弹
题目说明
编程实现:切换子弹
具体要求
1).点击绿旗,呈现对应的角色与背景;
 

2).按下数宁键1,发射1类型子弹-火焰弹;
 

3). 按下数字键2,发射2类型子弹-火焰散弹;
 

4).再次按下数字键1,发射1类型子弹-火焰弹;
5).子弹为持续发射状态,数字键1与数字键2可以持续切换发射子弹的类型
 注意:很多刚开始学编程的孩子,经常会漏掉这里的”重复执行“指令,导致没有任何效果,切记,"如果..那么“指令只能执行一次,通常需要和”重复执行“指令配合使用。
接下来就需要分别处理发射两种不同的子弹了。

2.发射1类型子弹-火焰弹
类型子弹始终沿着90度方向发射,因此,只需要将子弹角色设置为90度,不停的克隆即可,只是要控制一下克隆子弹的频率,通常的做法就是等待一下,比如0.05秒,这部分的代码如下:

 

一旦生成了子弹克隆体,就可以让它不停地向前移动,直到碰到舞台边缘消失,代码如下:
 

这样一来,1类型子弹就可以成功发射出去了。

3.发射2类型子弹-火焰散弹这是本题的重点,也是难点,沿着5个不同的方向发射子弹,意味着我们需要在按下数字键2的时候,一次性克隆5个子弹,并设置不同的方向。看起来挺简单的,大部分学生都会这么写:
 

从逻辑上来讲,这么写没有任何问题,但是效果看起来却有点奇怪,如下图所示:
 

眼尖的你,估计已经发现了,这里的5颗子弹并不是同时发射出去的,明显的有先后顺序。尽管这里没有"等待1秒“指令,但是代码执行还是要占用时间的,所以这里的5颗子弹还是有先后顺序的,也就导致出现了上图所示的效果。
(O 0? 能否让5颗子弹同时克隆出来呢?
当然能,今天超平老师就教你一招,借助自制积木就可以,将克隆5颗子弹的程序定义成自制积木,如图所示:
 

 

那么,你可能要问了,这里的”运行时不刷新屏幕“是个啥意思呢?其实,更确切地说,"运行时不剧新屏幕”,是不新舞台。其作用是,使得自制积木中的代码在执行时省去舞台刷新的步骤,并在整个自制积木执行完毕后再刷新屏幕。
由于刷新舞台会消耗计算机资源,需要一定的时间,因此使用“运行时不刷新屏幕“功能可以使特定的代码加快执行效率,缩短运行时间,但是用户无法通过舞台看到程序运行过程中的效果变化,可以简单的理解这部分的代码是同时执行的。除了本例中的确保多个子弹同时克隆的效果,还可以用于Scratch画笔费间绘制好图形,以及角色碰撞时控制其行为的物理引擎等总之,“运行时不刷新屏幕”功能为在Scratch中实现更多更丰富的效果提供了可能,是一个比较强大的功能。至此,发射2类型子弹的效果也完成了。

第 5 题 问答题
存钱罐
题目说明
编程实现:存钱罐
具体要求:
1).点击绿旗,出现对应的角色与背景 (初始余额为1000)
 

2).点击存钱,询问存多少钱并出现对话框
 

3).输入存钱数,余额显示存入后的总钱数;
 

4).点击取钱,询问取多少钱并出现对话框 

5).在对话框内容输入取钱数额,余额显示取出后的总钱数;
 

6).如果取出的钱数大于余额,则显示余额不足1秒后显示此时余额;

 

 

注意: Scratch中的“+”指令只对数字起作用,如果输入的是非数字内容,都会被当作0来处理。所以,如果输入的不是纯数字串,那么余额将保持不变。

2.取钱过程
接下来是取钱过程,当点击“取钱”按钮时,会询问“取多少钱?”并根据输入金额作相应处理。这里有两种情形。一是余额不足,一是余额充足,所以,我们需要使用“如果...那么...否则“双分支条件指令。如果余额充足,直接相减即可。如果余额不足,则需要先将变量“余额"修改为“余额不足”,1秒后再显示原来的余额,因此我们需要借助一个临时变量“临时余额”来保存余额。
切换到“取钱”角色,编写代码如下:
 

 

第 6 题 问答题
旋转的风车
题目说明
编程实现:旋转的风车 (画笔题目,使用画笔绘制不能有其他角色出现,否则0分)
 

具体要求
1).点击绿旗,使用画笔画出风车的三角形基座 (大小颜色自己设置,笔粗:20) ;

2).画出四个长方形组成的扇叶 (大小颜色自己设置) ;
3).扇叶可以顺时针持续转动 (扇叶为原地转动)
4).在舞台上能够完整呈现画出的风车 (基座和扇叶不能分离)
 

看到这个代码你有什么感觉,是不是有点情,然后是疑点重重,右转75度、105度度是怎么算出来的,移动150步、80步又是如何确定的呢?
很显然,对于中小学生而言,这种方法理解起来比较困难,可操作性也不强,我们再来看看第二种方法,先确定好三个顶点的位置.第一个顶点比较好确定,就是舞台中心。其坐标为(0.0),根据坐标轴的对称性原理。另外两个顶点相对于Y轴是对称的,如果其中一个顶点到x坐标是50,那么另一个顶点的x坐标就是-50,至于y坐标就简单多了,大致估计一下即可,比如-150,如图所示:
 

确定好了3个顶点,绘制就非常简单了,为了方便,将这部分的代码定义为一个自制积木,如图:
 

和第一种方法相比较,这种方法是不是更容易理解了,关键是可操作性强,超平老师强烈推荐这种方式。接下来我们再绘制扇叶,扇叶是有4个长方形构成的,围成一圈,这个比绘制三角形要简单多了,为了方便还是将其定义为一个自制积木,代码如下:
 

需要说明两点:
1).这里使用了嵌套循环,其中内层的循环是绘制一个扇叶(长方形》,长宽分别为130和30,单位是步(像索),外层循环是绘制4个扇叶。
2).我们给自制积木添加了一个参数“方向”,这样就可以灵活设置风车的方向,为下一步的旋转做好准备。

2.让风车旋转起来
如何让风车旋转起来,这就是涉及到顿动画原理了,什么是顿动画?所谓顿动画,就是在时间轴的每顿上逐顿绘制不同的内容,使其连续播放而成动画。翻书动画就是一个顿动画,其中的每一页纸就是一顿,翻书的过程就是连续播放,从而形成动画效果。简单来说,顿动画就是由N张静态图片收集起来,然后通过控制依次显示这些图片,因为人眼“视觉残留”的原因,会让我们造成动画的“错觉",跟放电影的原理一样!
一旦你理解了顿动画,我们要让风车旋转起来就变得容易多了。尽管绘制出来的风车是静止不动的,但是我们可以从一个方向开始(比如90度) ,先绘制一个风车,然后将方向变为91度,再绘制一个风车,依此类推...这里的每一个风车就是一顿,每绘制一个新的风车,就将原来的内容擦除掉,这样就可以形成一个顿动画,从而得到一个动态的旋转风车效果。
代码其实非常简单,如下:
 

 

第 7 题 问答题
文字特效
题目说明
编程实现:文字特效。
具体要求:
1).点击绿旗,舞台呈现空白状态1秒钟;

2).“蓝”宁以特效 (像素初始值:300) 出现并逐渐清晰的呈现出来
 

3).“蓝”宁呈现1秒后,“桥”字以特效 (虚像初始值:100) 逐渐清晰的呈现出来
 

 

2.“桥”字特效
对于“桥“字角色来说,当绿旗被点击时,也是不显示的,先来完成这部分的代码,如图所示:
 


当接收到"蓝“字角色发送的“出现桥字“广播后,先将“桥"字显示出来,接着就是将其虚像特效值设为100,然后就是经过多次循环,将虚像值逐渐减到0,对应的代码如下:
 

至此,”蓝“和”桥“两个文字特效就已经实现好了
不过,有一个细节需要说明一下,在Scratch编程中有7种图形特效,分别是颜色、鱼眼、旋涡、像索化、马赛克、亮度和虚像,如图所示:
 

正常情况下,所有特效的初始值都是0,也就意味着没有特效。这也是为什么在上面的代码中要将"像素化“和"虚像“都逐渐减到0的原因,当”像索化“和”虚像“减到0时,特效就没有了,也就完全清晰了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/585886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过Python的PyPDF2库合并多个pdf文件

文章目录 前言一、PyPDF2库是什么?二、安装PyPDF2库三、查看PyPDF2库版本四、合并多个pdf文件1.引入库2.定义pdf路径3.获取所有要合并的PDF文件名4.创建一个新的PDF文件5.遍历所有PDF文件名6.打开PDF文件7.创建PDF阅读器对象8.遍历PDF中的每一页,并将它们…

嵌入式c语言-进制转换

10进制转2进制 以10进制的16,18为例子 利用短除法 每次除以2并且记录余数 直到商为1 然后从下往上写出 商余数 10进制转16进制 以55 180 500举例 利用短除法 每次除以16并且记录余数 直到商为1 然后从下往上写出 商余数 商和余数要写成16进制的形式 10进制转8进制 以15为…

(浙大陈越版)数据结构 第三章 树(上) 3.3 二叉树的遍历

目录 3.3.1 遍历(先中后) 二叉树的遍历 先序遍历: 中序遍历 后序遍历 tips: 3.3.2 中序非递归遍历 非递归算法实现的基本思路:使用堆栈 中序遍历的非递归算法具体实现方法为: 3.3.3 层序遍历 难点 解决方法…

经典神经网络(5)GoogLeNet及其在Fashion-MNIST数据集上的应用

经典神经网络(5)GoogLeNet及其在Fashion-MNIST数据集上的应用 1 Inception V1 的简述 Inception 网络是卷积神经网络的一个重要里程碑。在Inception 之前,大部分流行的卷积神经网络仅仅是把卷积层堆叠得越来越多,使得网络越来越深。这使得网络越来越复杂…

计算机组成原理-中央处理器-控制器功能和原理

目录 一、硬布线控制器 二、硬布线控制器的设计(硬件) 2.1分析每个阶段的微操作序列(取址、间址、执行、中断) 2.2选择cpu的控制方式 2.3 安排微操作时序 2.4电路设计 2.4.1列出操作时间表 2.4.2 写出微操作命令的最简表达式 2.4.3画出电路图 *三、微程序控制器基本原理 四…

剪映 自动打关键帧 AutoHotkey

牙叔教程 简单易懂 明确目的 做小说推文的话, 前面几分钟肯定要自己打关键帧, 所以这里的自动打关键帧指的是后面几分钟的图片, 对关键帧要求比较高的同学可以划走了, 因为这里介绍的是简单的 上上下下缩放的关键帧 要求 用剪映提取字幕…

【Python Twisted】零基础也能轻松掌握的学习路线与参考资料

Python Twisted是一个用于网络编程的事件驱动的框架,该框架使用异步I/O模型和回调函数。它支持多种协议,包括TCP、UDP、SSL/TLS、XMPP等,可以用来编写Web服务器、聊天应用、邮件服务器等。Twisted是一个成熟的框架,拥有强大的社区…

【JavaEE】文件操作和IO

目录 1、认识文件 1.1、路径 1.1.1 、绝对路径 1.1.2、相对路径 1.2、文本文件 vs 二进制文件 2、文件系统操作 3、文件内容操作 3.1、字节流用来输入的抽象类InputStream的方法使用 3.1.1、FileInputStream类的构造方法 3.1.2、字节流读操作 3.1.3、字节流写操作 3.…

Presto从入门到精通以及案例实操系列

1、简介 1.1、Presto的由来 Presto最初由Facebook公司开发,旨在解决Facebook内部大规模数据处理和数据分析的问题。在传统的Hadoop生态圈中,MapReduce作为数据处理框架,虽然能够处理海量数据,但是其查询性能却比较低下&#xff…

《面试1v1》CountDownLatch和CyclicBarrier

我是 javapub,一名 Markdown 程序员从👨‍💻,八股文种子选手。 面试官: 你用过 CountDownLatch 和 CyclicBarrier 吗? 候选人: 当然可以。CountDownLatch 和 CyclicBarrier 都是 Java 中用于多…

通过 docker-compose 快速部署 MySQL保姆级教程

文章目录 一、概述二、前期准备1)部署 docker2)部署 docker-compose 三、创建网络四、MySQL 编排部署1)构建镜像 Dockerfile2)配置文件2)编排 docker-compose.yaml3)开始部署 五、简单测试验证六、常用的 M…

在线排查内存泄漏的步骤

一、在线排查内存泄漏的步骤 想到内存泄漏问题的排查,很多开发会想到使用 Valgrind。使用 Valgrind 有几个局限: 需要安装 Valgrind 需要启停服务进程 影响服务进程性能 依赖于测试用例覆盖到 BUG 分支 由于这些原因,线上内存泄露问题并…

位图、布隆过滤器、海量数据处理

提示: 本文介绍了,位图、布隆过滤器、以及海量数据处理问题。 本节有很多关于大数处理的案例(已解答)。 ——细雨斜风作晓寒,淡烟疏柳媚晴滩。(苏轼) 文章目录 一、位图1.1 位图概念1.2 位图实…

深度学习12—VGG19实现

目录 VGG19实现 1.为数据打标签的generate_txt.py 2.对图像进行预处理的data_process.py 3.VGG19的网络构建代码net_VGG19.py 4.训练得到pth模型参数文件的get_pth_file.py 5.预测代码predict.py 6.预测VGG16与VGG19结果对比 VGG19实现 1.为数据打标签的generate_txt.p…

【git教程】

这里写目录标题 git是什么集中式版本控制系统和分布式版本控制系统git的优势git能做什么(常用)基础教程流程图介绍小节 常用Git命令速查表详解1、HEAD2、add3、commit4、branch5、merge6、rebasemerge和rebase区别7、reset8、revertrevert与reset的区别 git是什么 git是目前世…

【Java算法题】剑指offer_数据结构之02树

前言 刷题链接: https://www.nowcoder.com/exam/oj/ta?page2&tpId13&type265 2. 树 JZ55 二叉树的深度 思路:dep max_deepth(left,right)1,二叉树的深度为根节点到叶子节点,使用递归访问根节点的左孩子和右孩子&…

想要让数据更生动?试试这5种图表工具

在当今大数据时代,数据的利用和分析在各个领域的工作中起着重要的作用。因此,数据可视化图形工具已经成为数据分析的好帮手。事实上,数据可视化的本质是视觉对话。它通过图形手段清晰直观地表达信息,从数据中获得价值。然而&#…

Netty实战(九)

单元测试 一、什么是单元测试二、EmbeddedChannel 概述三、 使用 EmbeddedChannel 测试 ChannelHandler3.1 测试入站消息3.2 测试出站消息 一、什么是单元测试 单元测试的基本思想是:以尽可能小的区块测试代码,并且尽可能地和其他的代码模块以及运行时的…

Java: IO流

1.定义 IO流:存储和读取数据的解决方案 用于读写文件中的数据(可以读写文件,或网络中的数据...) 2.IO流的分类 1.按着流的方向 1.输入流:读取 2.输出流:写出 2.按照操作文件类型 1.字节流:所有类型文件 体系&…

Redis:缓存击穿、缓存穿透与缓存雪崩的区别、解决方案

0、前言 近期学习redis相关原理,记录一下开发过程中Redis的一些常见问题及应对方法。 1、缓存穿透 一句话总结:先查redis发现没数据,再去数据库查发现还是没数据。 这种情况下缓存永远不会生效,数据库将承担巨大压力。 我们知道&…