計(jì)算機(jī)應(yīng)用基礎(chǔ)復(fù)習(xí)_第1頁
計(jì)算機(jī)應(yīng)用基礎(chǔ)復(fù)習(xí)_第2頁
計(jì)算機(jī)應(yīng)用基礎(chǔ)復(fù)習(xí)_第3頁
計(jì)算機(jī)應(yīng)用基礎(chǔ)復(fù)習(xí)_第4頁
計(jì)算機(jī)應(yīng)用基礎(chǔ)復(fù)習(xí)_第5頁
已閱讀5頁,還剩77頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第6章簡易編程工具:Scratch目錄6.1 Scratch是什么?6.2 Scratch 能做什么?6.3 Scratch實(shí)戰(zhàn)演練6.4 在網(wǎng)絡(luò)上共享你的作品6.5 總結(jié)重點(diǎn)和難點(diǎn)重點(diǎn):認(rèn)識(shí)Scratch的界面,并創(chuàng)建第一個(gè)Scratch程序。了解并掌握Scratch八個(gè)模塊組的基本功能。難點(diǎn): 掌握Scratch八個(gè)模塊組的基本功能。綜合運(yùn)用Scratch模塊,編寫較復(fù)雜程序。6.1 Scratch是什么?6.1.1認(rèn)識(shí)Scratch6.1.2 如何安裝Scratch6.1.3 Scratch的界面6.1.4 創(chuàng)建我的第一個(gè)Scratch程序6.1.1 認(rèn)識(shí)ScratchScratch是一

2、種帶有圖形界面的可視化編程語言,能讓用戶創(chuàng)建帶交互性的故事、動(dòng)畫、游戲、音樂及視頻。它提供了一些具有獨(dú)特功能的模塊(Block),將條件選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、事件驅(qū)動(dòng)、變量使用、圖像和聲音的使用等程序設(shè)計(jì)基本功能模塊化允許編程者以類似搭積木的方式把這些模塊拼合在一起來編寫腳本,從而完成程序設(shè)計(jì)的過程。Scratch的思想是“想法程序分享” Imagine-Program-Share6.1.1 認(rèn)識(shí)Scratch圖6.1 Scratch程序示例6.1.2 如何安裝Scratch在安裝Scratch之前要先安裝Java,以Windows系統(tǒng)下Java的安裝為例:進(jìn)入 網(wǎng)站,然后點(diǎn)擊“免費(fèi)Java下載

3、”按鈕,進(jìn)入相應(yīng)頁面后,點(diǎn)擊“同意并開始免費(fèi)下載”按鈕,接著跟隨安裝向?qū)У奶崾就瓿砂惭b即可。Scratch的安裝程序可以從 下載,進(jìn)入網(wǎng)站后,點(diǎn)擊“Download Scratch”按鈕,根據(jù)不同的操作系統(tǒng)選擇相應(yīng)的鏈接進(jìn)行下載。下載完成后雙擊安裝文件ScratchInstaller1.4.exe,就可以開始安裝,安裝過程和其他Windows應(yīng)用程序類似。6.1.3 Scratch的界面菜單欄模塊分組角色區(qū)域選項(xiàng)卡6.1.3 Scratch的界面界面右側(cè)白色部分就是舞臺(tái)區(qū)域,即顯示程序內(nèi)容的窗體。單擊舞臺(tái)右上方的綠色旗子可以執(zhí)行綠旗控制的腳本單擊旁邊的紅色圓圈則表示停止全部腳本舞臺(tái)區(qū)域的下方是

4、角色列表區(qū)域,列出了當(dāng)前作品中所包含的全部角色。Scratch里的一個(gè)角色一般是指一個(gè)實(shí)體,由三個(gè)部分構(gòu)成:造型:用來顯示角色外觀的圖片,一個(gè)角色可以有一個(gè)或者多個(gè)造型。聲音:可以作為程序的背景聲音,也可以在某個(gè)特定的時(shí)候播放。腳本:即角色的行為。一個(gè)角色可以有自身的行為,例如移動(dòng)、旋轉(zhuǎn)、隱藏、大小變化等;也可以與其他角色發(fā)生交互行為,例如交談、碰撞等。 6.1.3 Scratch的界面界面中間是角色區(qū)域,當(dāng)前角色的基本信息都在這個(gè)區(qū)域的頂端顯示;基本信息下方的三個(gè)選項(xiàng)卡分別是腳本、造型和聲音界面左側(cè)是模塊區(qū)域,包含了八組按功能劃分的模塊,分別是動(dòng)作、外觀、聲音、畫筆、控制、偵測、數(shù)字和邏輯運(yùn)

5、算、變量。6.1.4 創(chuàng)建我的第一個(gè)Scratch程序【例6-1】讓我們創(chuàng)建一個(gè)小貓跟我們打招呼的Scratch程序吧。設(shè)計(jì)程序,讓小貓往前走20步后,伴隨著鼓聲配樂說“你好!”;然后后退20步,伴隨著鼓聲配樂說“很高興認(rèn)識(shí)你!”。創(chuàng)建步驟:1. 新建Scratch項(xiàng)目:點(diǎn)擊“文件”菜單的“新建”項(xiàng),新建一個(gè)Scratch項(xiàng)目2. 給角色改名:選中角色列表區(qū)域的“角色1”,在界面中間頂端文本框中修改其名字,例如改為“喵嗚”圖6.3 給角色改名6.1.4 創(chuàng)建我的第一個(gè)Scratch程序3. 編輯角色的腳本:(1)往前移動(dòng)20步:點(diǎn)擊左上角的“動(dòng)作”模塊分組,從下方出現(xiàn)的一系列模塊中選擇“移動(dòng)1

6、0步”模塊,拖到中間的角色區(qū)域;并把數(shù)字10改為20。(2)鼓點(diǎn)配樂:點(diǎn)擊“聲音”模塊分組,從下方面板中選擇“彈奏鼓聲48 0.2拍”模塊,拖到角色區(qū)域“移動(dòng)20步”的下方,讓它們連在一起。(3)說“你好!”:點(diǎn)擊“外觀”模塊分組,從下方面板中選擇“說你好2秒”,連接到“彈奏鼓聲”的下方。(4)請(qǐng)自行完成后退20步,伴隨著鼓聲配樂說“很高興認(rèn)識(shí)你!”。腳本段如圖6.4:圖6.4 “小貓打招呼”腳本段6.1.4 創(chuàng)建我的第一個(gè)Scratch程序4. 點(diǎn)擊執(zhí)行:單擊剛才編輯好的腳本段,運(yùn)行該程序。5. 程序的保存:確認(rèn)程序無誤后,點(diǎn)擊“文件”菜單的“存檔”項(xiàng)或者“另存為”,選擇合適的目錄,輸入文件

7、名,可保存當(dāng)前的Scratch項(xiàng)目。Scratch文件的默認(rèn)擴(kuò)展名為“.sb”。提高要求:如何讓小貓前進(jìn)后退的動(dòng)作不停地重復(fù)?如何讓程序點(diǎn)擊綠旗后開始?如果刪除兩個(gè)說話的模塊,小貓會(huì)如何動(dòng)作?6.2 Scratch 能做什么?Scratch提供了100多種模塊,這些模塊按功能可以分為八個(gè)組,在模塊列表中用不同的顏色表示。6.2.1 三類基本模塊6.2.2 動(dòng)作、外觀、聲音模塊組6.2.3畫筆模塊組6.2.4 變量、數(shù)字和邏輯運(yùn)算模塊組6.2.5 控制、偵測模塊組6.2.1 三類基本模塊從總體來看,Scratch的100多個(gè)模塊大概可以分為以下三類:堆模塊、啟動(dòng)模塊和偵測模塊。堆模塊是指頂部有個(gè)

8、凹槽,底部有個(gè)凸起的模塊。多個(gè)堆模塊可以上下拼接在一起組成一個(gè)腳本段,部分堆模塊通過在輸入框輸入數(shù)值來進(jìn)行配置。啟動(dòng)模塊是指頂部是條曲線,底部有個(gè)凸起的模塊,這種模塊一般只能放在腳本段的最上面。偵測模塊是指兩側(cè)為圓頭或者尖頭的模塊,一般被用于向其他模塊提供數(shù)值或文本類型的數(shù)據(jù)。偵測模塊可以被鑲嵌到有相同形狀輸入框的其他模塊上。啟動(dòng)模塊堆模塊偵測模塊6.2.2 動(dòng)作、外觀、聲音模塊組1. 動(dòng)作模塊可以控制角色的旋轉(zhuǎn)、朝向、移動(dòng)和位置,其中:(1)“面向.”模塊:使角色面向鼠標(biāo)指針或者其他角色。(2)“移到.”模塊:將角色移動(dòng)到鼠標(biāo)指針或者其他角色的位置上。(3)“碰到邊緣就反彈”:當(dāng)角色到達(dá)舞臺(tái)

9、邊緣時(shí),旋轉(zhuǎn)到反方向。(4)“X座標(biāo)”:角色所在位置的X坐標(biāo),取值范圍為-240240,如果把前面的復(fù)選框勾選,則在舞臺(tái)顯示數(shù)值。(5)“Y座標(biāo)”:角色所在位置的Y坐標(biāo),取值范圍為-180180。(6)“方向”:角色面向的方向,0表示向上,90表示向右,-90表示向左,180表示向下。6.2.2 動(dòng)作、外觀、聲音模塊組2. 外觀模塊可以改變角色或背景的造型、顏色、大小及是否顯示,還可以在氣泡框中顯示文字。其中:(1)“切換到造型”:可以切換角色的造型,而角色的造型可以通過角色區(qū)域的造型選項(xiàng)卡進(jìn)行導(dǎo)入和編輯(2)“說你好2秒”:以指定的時(shí)間在氣泡框中顯示相應(yīng)的文本。(3)“下移1層”:將角色向下

10、移動(dòng)指定的層數(shù),以便隱藏在其他角色的下面。6.2.2 動(dòng)作、外觀、聲音模塊組3. 聲音模塊具有播放音樂、敲打鼓點(diǎn)、選擇樂器、調(diào)節(jié)音量、調(diào)整節(jié)拍等功能,其中:(1)“播放聲音喵”:播放下拉列表中的一個(gè)聲音,并同時(shí)執(zhí)行下一個(gè)模塊,下拉列表中的聲音可以通過錄音或者角色區(qū)域的聲音選項(xiàng)卡進(jìn)行導(dǎo)入。(2)“停止0.2拍”:在播放聲音時(shí),暫停指定的節(jié)拍。(3)“將節(jié)奏設(shè)定為60bpm”:將角色的節(jié)奏設(shè)定為每分鐘指定的節(jié)拍。6.2.2 動(dòng)作、外觀、聲音模塊組【例6-2】“沙漠漫步”,蒼涼的沙漠中,幾只小動(dòng)物在悠揚(yáng)的音樂聲中悠閑地散步。碰到舞臺(tái)邊緣時(shí),還會(huì)優(yōu)雅地轉(zhuǎn)個(gè)身,繼續(xù)漫步。分析思路:(1)導(dǎo)入背景圖、新的

11、角色及背景 音樂。(2)搭建角色的腳本段。 重點(diǎn)關(guān)注:散步的初始方向是左還是右?散步的速度如何?散步到舞臺(tái)邊緣該如何轉(zhuǎn)身?(3)如何播放背景音樂呢?(4)運(yùn)行作品及保存。6.2.2 動(dòng)作、外觀、聲音模塊組創(chuàng)建步驟:(1)新建一個(gè)Scratch項(xiàng)目:點(diǎn)擊“文件”菜單“新建”項(xiàng)。(2)導(dǎo)入背景圖和背景音樂。點(diǎn)擊Scratch界面右下方角色列表區(qū)域的舞臺(tái)縮略圖,然后選擇界面中間角色區(qū)域的“多個(gè)背景”選項(xiàng)卡,刪掉原來的白色“背景1”。接著點(diǎn)擊“導(dǎo)入”按鈕,這時(shí)會(huì)打開Scratch自帶的Backgrounds背景資源文件夾窗口,從中選擇一張圖片,然后點(diǎn)擊下方的“確定”按鈕。本例中選擇的是“Nature”

12、文件夾中的“desert”圖片。單擊“聲音”選項(xiàng)卡,然后點(diǎn)擊“導(dǎo)入”按鈕,打開Scratch自帶的聲音資源窗口,可以從中選擇一個(gè)聲音文件,也可以用自己準(zhǔn)備的其他音樂。本例中選擇的是“Electronic”文件夾中的“SpaceRipple”文件6.2.2 動(dòng)作、外觀、聲音模塊組(3)創(chuàng)建新的角色。 在角色列表區(qū)域中先刪除原來的小貓角色,然后點(diǎn)擊 從文件夾中導(dǎo)入新角色。本例中選擇的是“Animals”文件夾中的兩張圖片。修改新角色的名稱,并拖放其在舞臺(tái)上的位置。(4)編輯角色腳本,讓角色動(dòng)起來點(diǎn)擊角色列表區(qū)域中兔子角色的縮略圖,從控制模塊分組中,把“當(dāng)綠旗被點(diǎn)擊”和“重復(fù)執(zhí)行”模塊拖入腳本區(qū)域,

13、并從動(dòng)作模塊分組中把“移動(dòng)1步”和“碰到邊緣就反彈”模塊嵌入到“重復(fù)執(zhí)行”模塊中。在編寫第二個(gè)“河馬”角色的腳本段時(shí), 可以直接把“兔子”的腳本段拖拽到 角色列表區(qū)域中“河馬”角色的縮略 圖上。圖6.9 兔子角色的腳本段6.2.2 動(dòng)作、外觀、聲音模塊組(5)編輯舞臺(tái)腳本,播放背景音樂 把“當(dāng)綠旗被點(diǎn)擊”和“重復(fù)執(zhí)行”模塊拖入腳本區(qū)域,從聲音分組中把 拖入“重復(fù)執(zhí)行”模塊中。 因?yàn)楸纠x中的“SpaceRipple”文件有5秒的播放時(shí)間,因此從“控制”分組中選擇“等待1秒” ,放置在播放聲音模塊后,并把1改為5。等待聲音文件播放完畢后再開始下一次的播放。(6)作品的運(yùn)行及保存 點(diǎn)擊舞臺(tái)右上角的

14、小綠旗運(yùn)行腳本, 確認(rèn)滿意后可點(diǎn)擊“文件”菜單的 “存檔”項(xiàng)保存作品到指定位置。圖6.10 播放聲音的腳本段6.2.3畫筆模塊組 畫筆模塊可以繪制線段和圖形,包含落筆和起筆、設(shè)定畫筆顏色和大小、圖章等功能。(1)“落筆”:落下角色的畫筆,之后角色移動(dòng)時(shí)將會(huì)繪制出線條。(2)“停筆”:停下角色的畫筆,之后角色移動(dòng)時(shí)將不繪制線條。(3)“將畫筆的顏色值設(shè)為0”:將畫筆的顏色設(shè)定為指定的值,顏色的范圍是0(紅色)100(藍(lán)色)。(4)“將畫筆的色度設(shè)定為50”:將畫筆的色度設(shè)定為指定的值。值越小顏色越深。(5)“圖章”:將角色印在舞臺(tái)上(不包含角色的虛象特效)。6.2.3畫筆模塊組【例6-3】用Sc

15、ratch完成一個(gè)簡單的用鼠標(biāo)繪畫的畫板程序。當(dāng)鼠標(biāo)按下時(shí),可以進(jìn)行繪圖;鼠標(biāo)放開時(shí)則停止繪圖。圖6.11 簡單畫板程序示例6.2.3畫筆模塊組分析思路:(1)首先在每次繪圖之前,都需要把舞臺(tái)上原有的畫筆痕跡清空; 其次需要新建一個(gè)虛擬的畫筆角色,這個(gè)角色可以自行繪制一個(gè)小黑點(diǎn),也可以導(dǎo)入一張畫筆的圖片。(2)拼接“移到鼠標(biāo)”和“落筆”這兩個(gè)模塊,可以在鼠標(biāo)所在位置畫一個(gè)點(diǎn);而重復(fù)執(zhí)行這兩個(gè)動(dòng)作即可實(shí)現(xiàn)繪圖。 因?yàn)楹唵味裕粋€(gè)復(fù)雜圖像是由很多條很短的直線連接組成,而直線又是由很多個(gè)緊密相連的點(diǎn)構(gòu)成。重復(fù)執(zhí)行“在鼠標(biāo)處畫點(diǎn)”這個(gè)動(dòng)作,隨著鼠標(biāo)的移動(dòng)即可實(shí)現(xiàn)繪圖功能。而“在鼠標(biāo)處畫點(diǎn)”這個(gè)動(dòng)作,

16、又是由“移到鼠標(biāo)”和“落筆”兩個(gè)動(dòng)作組成。(3)如何實(shí)現(xiàn)按下鼠標(biāo)繪圖,放開鼠標(biāo)則停止繪圖呢?要利用“控制”分組中的“如果否則”模塊,并嵌入“偵測”分組中的“按下鼠標(biāo)?”模塊進(jìn)行條件判斷。6.2.3畫筆模塊組創(chuàng)建步驟:(1)新建一個(gè)Scratch項(xiàng)目:點(diǎn)擊“文件”菜單“新建”項(xiàng)。(2)新建“畫筆”角色:先刪除原有的小貓角色1,然后點(diǎn)擊界面右下角的 按鈕繪制新角色“畫筆”,在繪圖編輯器中繪制一個(gè)小黑點(diǎn)即可。(3)編寫腳本:點(diǎn)擊“畫筆”角色,進(jìn)入其腳本區(qū)域。如果不考慮鼠標(biāo)是否按下,編寫好的腳本應(yīng)該如圖6.12。但該腳本是無法控制何時(shí)落筆及何時(shí)停筆的,該如何修改呢?圖6.12 不考慮鼠標(biāo)是否按下的腳本

17、6.2.3畫筆模塊組利用“控制”分組中的“如果否則”模塊,嵌入“偵測”分組中的“按下鼠標(biāo)?”模塊可以判斷鼠標(biāo)是否按下。修改后的腳本段如圖6.13。腳本執(zhí)行時(shí),首先將舞臺(tái)上的畫筆全部清除,接著是一個(gè)無窮循環(huán),中間嵌入了一個(gè)分支模塊,如果鼠標(biāo)鍵按下則將 “畫筆”角色移動(dòng)到鼠標(biāo)光標(biāo)位置,然后將畫筆設(shè)置為落筆狀態(tài);否則,即鼠標(biāo)鍵沒有按下則將畫筆設(shè)置為停筆狀態(tài)。提高要求: 如何設(shè)置畫筆的顏色和線條粗細(xì)呢?圖6.13 修改后的腳本6.2.4 變量、數(shù)字和邏輯運(yùn)算模塊組變量模塊組: 變量模塊組允許新建多個(gè)變量和鏈表,并對(duì)其進(jìn)行操作。變量用來存儲(chǔ)數(shù)據(jù),參與運(yùn)算,也可作為條件或循環(huán)模塊的判斷條件。鏈表是一種數(shù)據(jù)

18、集合,里面的數(shù)據(jù)元素可以是數(shù)值也可以是文本字符串,對(duì)鏈表可以有加入、刪除、插入、替換等操作。(1)“新建一個(gè)變量”:新建一個(gè)變量,新建了變量后才會(huì)顯示和變量相關(guān)的模塊。新建變量需要輸入變量的名字。(2)“變量1”:返回對(duì)應(yīng)變量的值,勾選復(fù)選框可以顯示在舞臺(tái)上。(3)“新建一個(gè)鏈表”:新建一個(gè)鏈表。 (4)“鏈表1”:返回鏈表里的值,通過復(fù)選框勾選可以顯示在舞臺(tái)上。(5)“將東西加入鏈表鏈表1”:添加指定的數(shù)字或文本到鏈表的尾部。(6)“鏈表1包含東西”:判斷指定鏈表中有沒包含指定值,如果有則返回真,否則返回假。6.2.4 變量、數(shù)字和邏輯運(yùn)算模塊組2. 數(shù)字和邏輯運(yùn)算模塊組 數(shù)字和邏輯運(yùn)算模塊

19、組具有算術(shù)運(yùn)算、生成隨機(jī)數(shù)、比較運(yùn)算、邏輯運(yùn)算、文本操作等功能,也可嵌入到其他模塊中有相應(yīng)形狀的輸入框中。(1)“.30,則程序停止執(zhí)行。6.2.5 控制、偵測模塊組創(chuàng)建步驟:(1)新建項(xiàng)目,給舞臺(tái)添加合適的背景,并從文件夾導(dǎo)入兩個(gè)新角色“大魚”和“小魚”。在“變量”模塊組中新建兩個(gè)變量score和time,并勾選前面的復(fù)選框。(2)大魚腳本如下圖:圖6.18 大魚腳本段 6.2.5 控制、偵測模塊組(3)小魚腳本如圖: 運(yùn)行該腳本段后,先將得分score變量清零,接著把小魚下移一層,使得碰到大魚的時(shí)候會(huì)顯示在大魚的下方。 然后開始重復(fù)執(zhí)行:把小魚移到一個(gè)隨機(jī)坐標(biāo)(x,y),接著等待0.9秒,

20、讓玩家有時(shí)間把鼠標(biāo)移動(dòng)過去,通過修改這個(gè)數(shù)值可以控制小魚的移動(dòng)速度。接著根據(jù)“偵測”模塊組的“碰到”模塊,來控制當(dāng)碰到大魚時(shí)所發(fā)生的動(dòng)作。圖6.19 小魚腳本段 6.2.5 控制、偵測模塊組(4)計(jì)時(shí)的腳本可以放在大魚角色中編輯,如下圖所示: 點(diǎn)擊綠旗運(yùn)行后,先將計(jì)時(shí)器歸零。 然后重復(fù)執(zhí)行: 先將變量time的值設(shè)定為計(jì)時(shí)器; 然后用“數(shù)字和邏輯運(yùn)算”中的 “大于”模塊判斷,如果計(jì)時(shí)器大于 30秒,則停止全部腳本。提高要求:當(dāng)30秒時(shí)間用完時(shí),能否在屏幕上顯示“Game Over!”?圖6.20 計(jì)時(shí)腳本段6.3 Scratch實(shí)戰(zhàn)演練6.3.1 數(shù)學(xué)運(yùn)算6.3.2 趣味程序“健康秤”6.3.

21、3 冒泡法排序6.3.4 后綴表達(dá)式求值6.3.1數(shù)學(xué)運(yùn)算 Scratch中提供了基本的加減乘除等算術(shù)運(yùn)算和變量的新建、修改、顯示及隱藏等操作,利用這些功能,我們可以進(jìn)行一些基本的數(shù)學(xué)運(yùn)算。例如多個(gè)數(shù)求和或求乘積、求最大值最小值等?!纠?-6】 求多項(xiàng)式的和 S=1+2+3+100分析思路:(1)這類多項(xiàng)式求和可以用循環(huán)實(shí)現(xiàn),首先分析循環(huán)次數(shù),100個(gè)數(shù)求和,需要重復(fù)執(zhí)行100次,可以利用“控制”模塊組中的“重復(fù)執(zhí)行 10次”模塊。6.3.1數(shù)學(xué)運(yùn)算(2)然后分析每次的循環(huán)體是什么,即每次需要重復(fù)執(zhí)行的動(dòng)作有哪些。本例中,用變量i來表示每次要在s上增加的項(xiàng),于是先把i加到變量s上,即讓變量s的

22、值增加i;再把變量i增加1,實(shí)現(xiàn)i值的遞增。算法如下:重復(fù)執(zhí)行100次 將變量 s的值增加 i 將變量 i 的值增加 1繼續(xù)循環(huán)(3)接著分析變量i和變量s的初始值分別應(yīng)該是多少?很明顯,變量i應(yīng)該從1開始,而變量s的初始值應(yīng)該設(shè)定為0。這兩個(gè)模塊應(yīng)該放在循環(huán)開始前執(zhí)行。(4)最后考慮當(dāng)循環(huán)結(jié)束后,如何把變量s輸出??梢岳谩罢f你好2秒”這個(gè)模塊。6.3.1數(shù)學(xué)運(yùn)算創(chuàng)建步驟:(1)首先拖入啟動(dòng)事件:把“當(dāng)綠旗被點(diǎn)擊”模塊拖入到角色的腳本區(qū)域(2)新建兩個(gè)變量i和s:點(diǎn)擊“新建一個(gè)變量”,分別創(chuàng)建變量i和變量s,并把兩個(gè)變量前的復(fù)選框取消勾選,使其不在舞臺(tái)上顯示。(3)設(shè)定i和s的初始值:把變量

23、i的值設(shè)定為1,把變量s的值設(shè)定為0,拼接在啟動(dòng)模塊的下方。(4)搭建循環(huán):拖入“重復(fù)執(zhí)行10次”模塊,并把次數(shù)改為100。在循環(huán)內(nèi)部,先“將變量s的值增加i”,接著“將變量i的值增加1”。6.3.1數(shù)學(xué)運(yùn)算(5)輸入結(jié)果s:在循環(huán)模塊的外面,拼接上“說你好2秒”模塊,并把變量s嵌入到“你好”的位置。(6)運(yùn)行并保存:點(diǎn)擊舞臺(tái)右上角的綠旗運(yùn)行腳本段,觀察輸出結(jié)果是否為5050,如果正確,保存程序。最后的腳本段如下圖所示:提高要求: 求s=123410 ,該如何實(shí)現(xiàn)? 圖6.21 求和腳本段 6.3.1數(shù)學(xué)運(yùn)算【例6-7】 某次歌手大獎(jiǎng)賽,有10個(gè)評(píng)委現(xiàn)場打分,分?jǐn)?shù)范圍0100,求去掉最高分和最

24、低分后,歌手的平均得分是多少?分析思路:(1)首先假設(shè)10個(gè)分?jǐn)?shù)的總和是s,最高分用max變量表示,最低分用min變量表示,最終的平均得分用變量a表示,則a=(s-max-min)/8 ,這是最終的得分(2)接著來分析,如何求10個(gè)分?jǐn)?shù)的總和呢?這個(gè)問題有點(diǎn)類似【例6-6】,區(qū)別在于循環(huán)次數(shù)只有10次,而且每個(gè)分?jǐn)?shù)是要在循環(huán)內(nèi)部用“偵測”模塊組中的“詢問并等待”模塊獲得,然后把每次的“回答”加到變量s上。算法如下:重復(fù)執(zhí)行10次 詢問“評(píng)委的打分是?”并等待 將變量s的值增加“回答”繼續(xù)循環(huán)6.3.1數(shù)學(xué)運(yùn)算(3)步驟2求出來的和s還需要去掉一個(gè)最高分和最低分,我們接下來分析如何求最高分max

25、。先設(shè)定max的值是分?jǐn)?shù)范圍里的最小值0,然后每次輸入一個(gè)分?jǐn)?shù)后,把這個(gè)分?jǐn)?shù)和max做個(gè)比較:如果新的分?jǐn)?shù)大于最大值max了,則把max的值更新為這個(gè)分?jǐn)?shù)。這樣經(jīng)過10次重復(fù)執(zhí)行,max里的值就變成10個(gè)分?jǐn)?shù)中的最大值了。拼接上步驟2的算法如下:max的值設(shè)定為0重復(fù)執(zhí)行10次 詢問“評(píng)委的打分是?”并等待 將變量s的值增加“回答” 如果“回答” max,那么就把max的值設(shè)定為“回答”繼續(xù)循環(huán)6.3.1數(shù)學(xué)運(yùn)算 求最低分min的算法類似,但min的初始值應(yīng)該設(shè)定為分?jǐn)?shù)范圍內(nèi)的最高分100,并且比較語句應(yīng)該改為:如果“回答”max”模塊嵌入到條件位置,并在“如果”模塊內(nèi)部,放入“將變量max的

26、值設(shè)定為回答”。min的判斷和更新過程類似,請(qǐng)自行完成。(4)求變量s和變量a的值: 在循環(huán)模塊外,拼接上“將變量s的值設(shè)定為s-max-min”模塊,其中“s-max-min”是用兩個(gè)“.-.”相減模塊鑲嵌而成。然后“將變量a的值設(shè)定為s/8”,其中“s/8”是一個(gè)相除模塊。6.3.1數(shù)學(xué)運(yùn)算(5)結(jié)果的輸出:最終平均分a的輸出利用“說a 2秒”模塊,其中“a”是把變量a嵌入其中。最后的腳本段如圖所示:提高要求: 如何保證評(píng)委的打分始終在0100之間? 圖6.22 評(píng)委打分腳本段6.3.2 趣味程序“健康秤” 【例6-8】“健康秤”是一個(gè)根據(jù)身高和體重來評(píng)價(jià)你是否健康的趣味小程序。 舞臺(tái)上的

27、角色詢問你的身高(以厘米為單位)和體重(以公斤為單位),然后根據(jù)公式來對(duì)數(shù)值進(jìn)行計(jì)算比較后,做出相應(yīng)的評(píng)價(jià)。如果你的體重超過標(biāo)準(zhǔn)體重的1.1倍,給出“您的體重已超標(biāo),請(qǐng)加強(qiáng)鍛煉!”的評(píng)語;如果體重小于標(biāo)準(zhǔn)體重的90%,則給出“您的體重未達(dá)標(biāo),請(qǐng)注意營養(yǎng)!”的評(píng)語;如果體重在標(biāo)準(zhǔn)體重的90%1.1倍之間,則給出“您的身材非常標(biāo)準(zhǔn)!”的評(píng)語。標(biāo)準(zhǔn)體重的計(jì)算公式是:標(biāo)準(zhǔn)體重=身高-105。請(qǐng)自行設(shè)計(jì)舞臺(tái)背景、音樂和角色造型。參考界面如圖所示:6.3.2 趣味程序“健康秤”圖6.23 健康秤 參考界面6.3.2 趣味程序“健康秤”分析思路:(1)首先是身高和體重?cái)?shù)據(jù)的輸入:利用“詢問并等待”模塊讓用戶

28、輸入相應(yīng)數(shù)據(jù),并保存在變量“身高”和“體重”中。(2)這個(gè)程序的主體可以分為三種情況:如果體重標(biāo)準(zhǔn)體重的1.1倍,輸出“您的體重已超標(biāo)”;如果體重標(biāo)準(zhǔn)體重* 1.1 或 體重標(biāo)準(zhǔn)體重* 1.1 則 提示“您的體重已超標(biāo)” 結(jié)束如果 如果 體重標(biāo)準(zhǔn)體重* 1.1 或 體重標(biāo)準(zhǔn)體重* 1.1”和“體重標(biāo)準(zhǔn)體重* 0.9”兩種情況的判斷,并拼入相應(yīng)的“說2秒”模塊,進(jìn)行信息提示。6.3.2 趣味程序“健康秤”圖6.24 健康秤腳本段6.3.3冒泡法排序 冒泡法排序是一種比較簡單、易懂的排序算法。以從小到大排序?yàn)槔?,冒泡法的主要思想是?掃描原始序列的數(shù)據(jù)(一般用數(shù)組元素來表示原始序列),將相鄰兩個(gè)數(shù)

29、進(jìn)行比較:把較大的數(shù)調(diào)到后面,小的數(shù)則像比較輕的氣泡一樣調(diào)到前面。 如果有n個(gè)數(shù)用冒泡法排序,則要進(jìn)行n-1輪排序,并且在其中的第i輪排序中,要進(jìn)行n-i次兩兩比較。從小到大排序的冒泡算法描述如下:i=1 循環(huán)當(dāng)i=n-1 時(shí) j=1 循環(huán)當(dāng)j第j+1項(xiàng),則交換 第j項(xiàng) 和第j+1項(xiàng) j增加1 繼續(xù)回到j(luò)循環(huán) i增加1 繼續(xù)回到i循環(huán)6.3.3冒泡法排序【例6-9】輸入5位同學(xué)的期末成績,并從低到高對(duì)其排序。 由于Scratch里沒有數(shù)組這種形式,因此我們用其提供的鏈表結(jié)構(gòu)來模擬數(shù)組,鏈表中的一項(xiàng)就相當(dāng)于數(shù)組中的一個(gè)元素。Scratch除了提供鏈表的新建及刪除功能外,還提供了:把元素加入鏈表(

30、默認(rèn)加入到最后一項(xiàng))刪除鏈表的某一項(xiàng)把元素插入到鏈表的指定位置把鏈表中的某一項(xiàng)替換為某個(gè)元素獲得鏈表的指定項(xiàng)獲得鏈表的長度判斷鏈表中是否包含某元素等功能。6.3.3冒泡法排序分析思路:(1)首先要把5個(gè)成績數(shù)據(jù)添加到鏈表中:利用“詢問”和“回答”模塊讓用戶輸入數(shù)據(jù),并將回答加入到新建的鏈表中。這樣的行為重復(fù)5次即可把5個(gè)數(shù)據(jù)加入到鏈表中。由于Scratch是不會(huì)自動(dòng)清空鏈表的,因此在添加數(shù)據(jù)前,需要放置一個(gè)模塊刪除鏈表中的全部項(xiàng)。算法如下:刪除鏈表中的全部項(xiàng)重復(fù)執(zhí)行5次 詢問“你的成績是?”并等待 將“回答”加入到鏈表繼續(xù)循環(huán)6.3.3冒泡法排序(2)實(shí)現(xiàn)冒泡算法:用變量i來控制是第幾輪排序,

31、用變量j來控制第i輪排序中是第幾次兩兩比較。其中i的范圍是1 n-1,j的范圍是 1 n-i。循環(huán)的控制可以用“重復(fù)執(zhí)行直到”模塊,表示重復(fù)執(zhí)行模塊內(nèi)的腳本直到條件成立才停止。修改上面提到的冒泡算法如下: 將變量i的值設(shè)定為1 重復(fù)執(zhí)行直到in-1 將變量j的值設(shè)定為1 重復(fù)執(zhí)行直到j(luò)n-i 如果鏈表的第j項(xiàng) 第j+1項(xiàng),則交換 第j項(xiàng) 和第j+1項(xiàng) 將變量j的值增加1 繼續(xù)回到j(luò)循環(huán) 將變量i的值增加1 繼續(xù)回到i循環(huán)6.3.3冒泡法排序 現(xiàn)在問題集中在,如果鏈表的第j項(xiàng) 第j+1項(xiàng),如何實(shí)現(xiàn)“交換 第j項(xiàng) 和第j+1項(xiàng)”?Scratch中的鏈表沒有提供直接的交換操作,我們采用的辦法是:先把

32、第j項(xiàng)插入到j(luò)+2的位置,再刪除第j項(xiàng)。請(qǐng)自行修改上面的算法。(3)讓冒泡的過程可見: 上述的算法在scratch中執(zhí)行是一眨眼的功夫,我們無法直觀地看到冒泡交換的詳細(xì)過程,因此在“繼續(xù)回到j(luò)循環(huán)”和“繼續(xù)回到i循環(huán)”前面分別插入一個(gè)控制模塊組中的“等待1秒”模塊,讓每次循環(huán)的速度變慢,由此來觀察冒泡法排序的進(jìn)行過程。6.3.3冒泡法排序創(chuàng)建步驟:(1)新建一個(gè)鏈表“成績”,勾選鏈表前的復(fù)選框,使其顯示在舞臺(tái)上,方便我們觀察冒泡排序的過程。(2)添加5個(gè)成績到鏈表中: 在腳本區(qū)域拖入“當(dāng)綠旗被點(diǎn)擊”模塊,把“變量”模塊組中的“刪除鏈表成績的全部項(xiàng)”模塊拼到下方,先清空“成績”鏈表。然后重復(fù)執(zhí)行

33、5次,每次先“詢問你的成績是?并等待”,接著“把回答加入鏈表成績”。這樣用戶輸入的5個(gè)成績就被添加到“成績”鏈表中,每次新添加的數(shù)據(jù)自動(dòng)變?yōu)殒湵淼淖詈笠豁?xiàng)。(3)實(shí)現(xiàn)冒泡算法: 先新建兩個(gè)變量i和j,經(jīng)過前面的分析我們知道i的范圍是1到4重復(fù)執(zhí)行,因此在上述腳本的后面拼接上“將變量i的值設(shè)定為1”模塊,接著拖入“重復(fù)執(zhí)行直到”模塊,在條件位置嵌入“i 4”模塊。6.3.3冒泡法排序在這個(gè)“重復(fù)執(zhí)行直到i 4”模塊內(nèi)部,j的變化范圍是從1到5 - i重復(fù)執(zhí)行,因此首先“將變量j的值設(shè)定為1”,然后拖入模塊“重復(fù)執(zhí)行直到j(luò) 5 - i”。模塊內(nèi)部放入一個(gè)“如果”模塊,該模塊的條件由“鏈表成績的第j

34、項(xiàng)鏈表成績的第j+1項(xiàng)”組合而成。如果該條件成立,則交換第j項(xiàng)和第j+1項(xiàng)。即在模塊內(nèi)部先拼接上“將鏈表成績的第j項(xiàng)插入到鏈表成績的第j+2位置”模塊,再拼上“刪除鏈表成績的第j項(xiàng)”模塊。“如果”模塊的下方,連上“將變量j的值增加1”模塊和“等待1秒”模塊。并在“重復(fù)執(zhí)行直到j(luò) 5 - i”模塊下方拼上“將變量i的值增加1”模塊和“等待1秒”模塊。6.3.3冒泡法排序最后的腳本段如圖:圖6.25 冒泡法排序腳本段6.3.4后綴表達(dá)式求值幾乎所有的程序設(shè)計(jì)語言都具有表達(dá)式計(jì)算求值的功能,因此表達(dá)式求值是程序設(shè)計(jì)語言編譯中的一個(gè)基本問題。簡單來說就是,每種程序設(shè)計(jì)語言都需要考慮如何讓計(jì)算機(jī)能夠快速

35、準(zhǔn)確的對(duì)一個(gè)表達(dá)式進(jìn)行求值。以算術(shù)表達(dá)式為例,常見的表示形式有中綴、前綴和后綴表達(dá)式。(1)中綴表達(dá)式:把運(yùn)算符放在兩個(gè)操作數(shù)的中間。我們?nèi)粘I钪凶畛R娋褪沁@種形式,例如a*b+(c-d)/f。中綴表達(dá)式雖然比較符合我們的日常書寫習(xí)慣,但存在運(yùn)算符的優(yōu)先權(quán)與結(jié)合性的問題,使得中綴表達(dá)式不太容易被計(jì)算機(jī)解析。6.3.4后綴表達(dá)式求值(2)前綴表達(dá)式:把運(yùn)算符放在兩個(gè)操作數(shù)的前面。(3)后綴表達(dá)式:把運(yùn)算符放在兩個(gè)操作數(shù)的后面。后綴表達(dá)式使計(jì)算機(jī)能輕松的對(duì)表達(dá)式進(jìn)行解析求值,因此在計(jì)算機(jī)科學(xué)中被普遍使用。前后綴表達(dá)式有以下三個(gè)公共特征:(1)操作數(shù)的順序與等價(jià)的中綴表達(dá)式中操作數(shù)的順序一致;(2

36、)不需要括號(hào);(3)操作符的優(yōu)先級(jí)不相關(guān)。6.3.4后綴表達(dá)式求值下表列出了幾個(gè)中綴表達(dá)式對(duì)應(yīng)的后綴表達(dá)式:中綴表達(dá)式后綴表達(dá)式a+bab+a+b*cabc*+a*b*c+c*dab*c*cd*+(a+b)*(c-d)*e+f)ab+cd-e*f+*a+(b-c/d)*eabcd/-e*+6.3.4后綴表達(dá)式求值在計(jì)算機(jī)中,一般用堆棧結(jié)構(gòu)來實(shí)現(xiàn)對(duì)后綴表達(dá)式的求值,堆棧的主要特點(diǎn)是“先進(jìn)后出”,接下去介紹對(duì)后綴表達(dá)式求值的方法:(1)從左到右讀入后綴表達(dá)式,若讀到的是操作數(shù),將它壓入堆棧;(2)若讀到的是運(yùn)算符,就從棧中連續(xù)彈出兩個(gè)元素,進(jìn)行相應(yīng)的運(yùn)算并將結(jié)果壓入棧中;(3)當(dāng)讀入結(jié)束符時(shí),棧頂

37、元素就是計(jì)算的結(jié)果。6.3.4后綴表達(dá)式求值【例6-10】編寫程序,輸入一個(gè)后綴表達(dá)式對(duì)其求值,當(dāng)輸入“=”號(hào)時(shí),把結(jié)果輸出。 例如輸入后綴表達(dá)式5342/-1*+ ,并輸入“=”,最終輸出的結(jié)果應(yīng)該是對(duì)應(yīng)中綴表達(dá)式5+(3-4/2)*1的值,即為6。 假設(shè)只有加減乘除“+”、“-”、“*”、“/”這四種基本運(yùn)算。6.3.4后綴表達(dá)式求值在Scratch中編寫一個(gè)對(duì)后綴表達(dá)式求值的程序,主要考慮以下幾點(diǎn):(1)用鏈表模擬堆棧: Scratch中沒有嚴(yán)格的堆棧結(jié)構(gòu),因此我們用鏈表來模擬堆棧的“先進(jìn)后出”,每次只對(duì)鏈表的第一項(xiàng)進(jìn)行操作。(2)“壓入堆棧”操作的實(shí)現(xiàn): 當(dāng)讀到操作數(shù)時(shí),將它插入到鏈表

38、的第一項(xiàng),就實(shí)現(xiàn)了“壓入堆?!钡膭?dòng)作。(3)用“保存”+“刪除”模擬“彈出”操作: 當(dāng)讀到的是運(yùn)算符時(shí),如何彈出兩個(gè)元素呢?我們采用的辦法是:先把鏈表的第一項(xiàng)保存到一個(gè)變量中,再刪除鏈表的第一項(xiàng);接著繼續(xù)保存第一項(xiàng)到另一個(gè)變量中,再刪除第一項(xiàng)。(4)用“=”號(hào)來模擬結(jié)束符: 當(dāng)讀到的是“=”號(hào)這個(gè)結(jié)束符時(shí),直接把鏈表的第一項(xiàng)輸出就是結(jié)果了。6.3.4后綴表達(dá)式求值分析思路:(1)首先是后綴表達(dá)式的輸入:在輸入前,先清空鏈表;然后重復(fù)執(zhí)行“詢問并等待”模塊,用戶每次在輸入框中輸入后綴表達(dá)式從左往右的一個(gè)字符。該字符被自動(dòng)放入“回答”模塊。(2)其次是對(duì)新輸入字符的處理,可以分成三種情況: 如果新

39、輸入的回答是“=”號(hào):用“說.2秒”模塊把鏈表的第一項(xiàng)輸出;并停止運(yùn)行腳本。 如果新輸入的回答是“+”或“-”或“*”或“/”,分下面兩步操作: a. 彈出鏈表中的兩個(gè)元素:先將鏈表的第一項(xiàng)保存到一個(gè)變量x中,再刪除鏈表的第一項(xiàng);這時(shí)原來的第二項(xiàng)就變?yōu)榈谝豁?xiàng),接著繼續(xù)保存第一項(xiàng)到另一個(gè)變量y中,再刪除第一項(xiàng)。6.3.4后綴表達(dá)式求值b. 根據(jù)不同的運(yùn)算符,進(jìn)行不同的運(yùn)算,并把結(jié)果加入到鏈表的第一項(xiàng)。這里特別要注意的是根據(jù)“先進(jìn)后出”的特點(diǎn),第二個(gè)彈出的變量y其實(shí)是先被輸入到鏈表中的。因此當(dāng)進(jìn)行減法和除法運(yùn)算時(shí),正確的結(jié)果應(yīng)該是y-x 和 y/x。如果是“+”號(hào),則把x+y加入到鏈表第一項(xiàng);如果

40、是“-”號(hào),則把y-x加入到鏈表第一項(xiàng);如果是“*”號(hào),則把x*y加入到鏈表第一項(xiàng);如果是“/”號(hào),則把y/x加入到鏈表第一項(xiàng)。如果新輸入的回答是操作數(shù):將回答插入到鏈表的第一項(xiàng)。 但操作數(shù)的判斷在Scratch里較難進(jìn)行,因此我們采用的是用一個(gè)“如果否則”模塊來判斷回答是否為運(yùn)算符,如果是,進(jìn)行相應(yīng)的操作;它的否則部分,就意味著新輸入的回答是一個(gè)操作數(shù)了。 6.3.4后綴表達(dá)式求值創(chuàng)建步驟:(1)新建一個(gè)鏈表“表達(dá)式”, 用來保存輸入的操作數(shù)和計(jì)算結(jié)果,并勾選前面的復(fù)選框使其顯示在舞臺(tái),方便觀察求值的過程;新建兩個(gè)變量x和y,用來保存當(dāng)讀到運(yùn)算符時(shí)彈出的兩個(gè)操作數(shù)。(2)在腳本區(qū)域拖入“當(dāng)綠

41、旗被點(diǎn)擊”模塊,在其下方拼接上“刪除鏈表表達(dá)式的全部項(xiàng)”。(3)接下去拖入重復(fù)執(zhí)行模塊:進(jìn)入模塊內(nèi)部首先連上“詢問輸入的字符是?并等待”模塊,用戶輸入的字符被自動(dòng)存入“回答”模塊。接著根據(jù)“回答”的三種情況處理。輸入了“=”號(hào)時(shí):先拼上一個(gè)“如果”模塊,條件位置嵌入“回答= =”模塊。在“如果”模塊的內(nèi)部,首先輸出結(jié)果,“說鏈表表達(dá)式的第1項(xiàng)2秒”;然后“停止執(zhí)行這個(gè)腳本”模塊。6.3.4后綴表達(dá)式求值輸入了運(yùn)算符時(shí):在上面的“如果”模塊后,拼上一個(gè)“如果否則”模塊,條件位置嵌入三個(gè)“或”模塊組合而成的“回答= + 或 回答= - 或回答= * 或 回答= /”模塊。在“如果”模塊的內(nèi)部,先彈

42、出兩個(gè)操作數(shù):“將變量x的值設(shè)定為鏈表表達(dá)式第1項(xiàng)”,“刪除鏈表表達(dá)式第1項(xiàng)”;“將變量y的值設(shè)定為鏈表表達(dá)式第1項(xiàng)”,“刪除鏈表表達(dá)式第1項(xiàng)”;這樣棧頂?shù)膬蓚€(gè)操作數(shù)分別保存在變量x和y中。其中y里面保存的是先輸入的操作數(shù)。接著用4個(gè)“如果”模塊,分別判斷運(yùn)算符的四種情況:繼續(xù)拼入“如果回答= +”模塊,該模塊內(nèi)部拼入“將x+y插入到鏈表表達(dá)式第1項(xiàng)”模塊。其余情況請(qǐng)自行完成,特別注意當(dāng)碰到“-”和“/”號(hào)時(shí)x和y的順序問題。輸入的是操作數(shù)時(shí):在上面的“如果否則”模塊中的“否則”部分,拼入“將回答插入到鏈表表達(dá)式的1位置”。6.3.4后綴表達(dá)式求值圖6.27 后綴表達(dá)式求值腳本段6.4 在網(wǎng)絡(luò)上共享你的作品 Scratch作品只能運(yùn)行于Scratch的集成開發(fā)環(huán)境中或者是Scratch的網(wǎng)站 。 Scratch網(wǎng)站可以很方便的上傳、觀看、下載作品,因此接下來我們講解下如何把自己的作品上傳到Scratch網(wǎng)站上,和別人分享。(1)要在Scratch網(wǎng)站上查看和運(yùn)行Scratch作品,需要使用支持 Java 的瀏覽器。訪問Scratch 網(wǎng)站并單擊任何一個(gè)Scratch作品,如果能打開觀看該作品則說明瀏覽器是支持Java的,否則就要根據(jù)網(wǎng)站的提示向?qū)劝惭bJava。(2)注冊(cè)賬號(hào)。要把自己的作品上傳

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論