新世紀版信息技術八年級下冊第十課傳遞信息 課件.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) 的值返回出來。,新知講解,課堂小結,總結本節課所學內容,板書設計,一、發送信息 二、接收信息 三、傳遞加密信息