新世纪版信息技术八年级下册第十课传递信息 课件.pptx
新世纪版信息技术 八年级下册,第十课 传递信息,新知导入,新知讲解,一、发送信息,【例题1】发送信息。,我们用下面的方法输入信息:在micro:bit上显示字母,用按钮B循环翻页,按下按钮A选 定并发送点阵屏幕上显示的字母。,micro:bit上没有键盘,如果用micro:bit发送信息,如何输入要发送的信息呢?想一想,你 有什么好办法?,新知讲解,用变量code存储字母(还可以加入标点符号等),code是一个列表,用n表示code中元素的序号。,在点阵屏幕上显示code中的字符。,输入符号 “#”表示信息发送完毕。,用变量message存储所有已发送的信息。,新知讲解,程序如下:,新知讲解,【例题 1】的办法是:用按钮B翻页显示字符,用按钮A发送点阵屏幕上显示的字符。,怎样利用 micro:bit 的两个按钮发送信息呢?,怎样在屏幕上显示字符呢?,仔细阅读上面的程序,你能看明白吗?,用列表 code 存储需要显示的字符: code = A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V, W,X,Y,Z,#,新知讲解,用 n 表示列表中元素的序号,每按一下按钮 B,序号 n 就增加 1,屏幕上 显示 coden 这个字符。,由于 n 会不断增加,但 n 的最大值不能超过“列表的长度 -1”,当 n 的值 达到列表的长度时,应该重新将 n 的值设置为 0。,if button_b.is_pressed(): if n len(code) - 1: n = n + 1 else : n = 0,新知讲解,或者进一步简化为:,if button_b.is_pressed(): n = n + 1 n=n%len(code),上面这些功能可以用求余函数简化:,if button_b.is_pressed(): n = (n + 1)%len(code),新知讲解,按下按钮 A 就将 coden 这个字符发送出去:,radio.send(coden),为了确定按下按钮 A 时屏幕上的字符是真的发送出去了,我们让屏幕上的 字符闪烁一下。,具体的实现方法是:,新知讲解,coden : display.show(coden),然后进入下一轮循环后再重新显示字符,先清屏:display.clear(),于是,按下按钮 A,屏幕上的字符就闪烁了一下,如果没有闪烁,说明按下按钮 A 不成功,需要重新按。,新知讲解,if coden = #: break,当所有的字符发送完毕,需要发送一个结束信号“#”,然后程序就退出 循环:,最后屏幕上将显示所有已发送的字符。,新知讲解,语法:len(str),len()函数的使用方法。,其中变量str可以是字符串、列表、字典等类型。,作用:返回字符串、列表、字典等的长度。,新知讲解,由于发送端(【例题1】)是逐个字符发送信息,因此在接收端也逐个显示接收到的字符(message_received),并用变量message将所有接收到的字符记录下来。,二、接收信息,当接收到结束 符号“#”,在点阵屏幕上显示所有接收到的信息message。,【例题2】接收信息。,新知讲解,程序如图:,新知讲解,在上面的程序中,为了确信信息的实时发送和接收是成功的,加入了让屏幕产生闪动效果的命令:,display.clear() sleep(50),新知讲解,为了让传送信息的游戏更有趣,可以开展 4 人小组之间的信息传递:,相邻的两个同学一组,就可以玩发送和接收信息的游戏了。,相邻的两个同学为一端,远处的两个同学为另一端,每一端有两块 micro:bit,一个 用于发送信息,另一个用于接收信息。,新知讲解,通过玩传递信息的游戏,发现程序存在的缺陷,然后改进程序,提高信息 传送的效率。,例如,传递如下信息:,1Whats your birthday? 7/9,2Who is your idol?Jack Ma,新知讲解,三、传递加密信息,在上一个学期,我们学习了如何用恺撒密码加密信息。现在,让我们用micro:bit来传递 用恺撒密码加密的信息。,修改【例题1】程序,用字典类型的变量book来存储恺撒密码。,【例题3】发送加密信息。,首先建立一个字母列表 code,一个加密字典 book,字典 book 中的“键” 是明码,“键值”是密码。,新知讲解,用按钮 B 翻页显示要发送的信息 coden,然后按下 按钮 A 将 coden 对应的密码 bookcoden 发送出去:,if button_a.is_pressed(): radio.send(bookcoden),新知讲解,修改后的程序如下:,新知讲解,新知讲解,将接收到的字符解密,需要查密码字典book,我们先编写一个解密的函数decode(),然后调用该函数对接收到的字符解密。,【例题4】接收和解密信息。,信息传递完毕,按下按钮A,显示接收到的加密信息;按下按钮B,显示解密了的信息。,程序中需要设计一个解密函数:,def decode(letter, book): for x in book.keys(): if (bookx = letter): return x,新知讲解,程序如下:,新知讲解,decode(letter,book)函数有两个参数,letter代表接收到的密码,book为密码字典,该函数的功能就是在密码字典book中找密码 letter 对应的明码。,明码将作为函数 decode(letter, book) 的值返回出来。,新知讲解,课堂小结,总结本节课所学内容,板书设计,一、发送信息 二、接收信息 三、传递加密信息