《MATLAB教程及實訓(xùn) 第4版》課件 第5章程序設(shè)計和M文件實訓(xùn)_第1頁
《MATLAB教程及實訓(xùn) 第4版》課件 第5章程序設(shè)計和M文件實訓(xùn)_第2頁
《MATLAB教程及實訓(xùn) 第4版》課件 第5章程序設(shè)計和M文件實訓(xùn)_第3頁
《MATLAB教程及實訓(xùn) 第4版》課件 第5章程序設(shè)計和M文件實訓(xùn)_第4頁
《MATLAB教程及實訓(xùn) 第4版》課件 第5章程序設(shè)計和M文件實訓(xùn)_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第5章程序設(shè)計和M文件5.1程序控制5.2M文件結(jié)構(gòu)5.3函數(shù)的使用5.4函數(shù)句柄和函數(shù)句柄5.5

函數(shù)繪圖5.6數(shù)值分析本章小結(jié)和練習(xí)5.1程序控制

5.1.1分支控制語句1.if結(jié)構(gòu)

if條件1

語句段1 elseif條件2

語句段2 ...... else

語句段n

end例

根據(jù)函數(shù)計算結(jié)果,使用if結(jié)構(gòu),函數(shù)如下>>x=input('InputXplease.x=‘)%從鍵盤輸入x的值InputXplease.x=10>>ifx>=1y=x.^2-1elseif-1<x&x<1y=0*xelsey=-x.^2-1endy=992.switch結(jié)構(gòu)switch表達(dá)式

case值1

語句段1

case值2

語句段2 ... otherwise

語句段n

end

說明:將表達(dá)式依次與case后面的值進(jìn)行比較,滿足值的范圍就執(zhí)行相應(yīng)的語句段,如果都不滿足則執(zhí)行otherwise后面的語句段;表達(dá)式只能是標(biāo)量或字符串;case后面的值可以是標(biāo)量、字符串或元胞數(shù)組,如果是元胞數(shù)組則將表達(dá)式與元胞數(shù)組的所有元素進(jìn)行比較,只要某個元素與表達(dá)式相等,就執(zhí)行其后的語句段;switch和end必須配對使用。例

使用switch結(jié)構(gòu)判斷學(xué)生成績的等級,90分以上為優(yōu),80~90為良,70~80為中,60~70為及格,60分以下為不及格。>>score=98;>>s1=fix(score/10); %取十位數(shù)>>switchs1case{9,10}s='優(yōu)'case8s='良'case7s='中'case6s='及格'otherwises='不及格'end5.1.2循環(huán)控制語句1.for循環(huán)

for循環(huán)變量=array

循環(huán)體

end說明:array可以是向量也可以是矩陣,循環(huán)執(zhí)行的次數(shù)就是array的列數(shù),每次循環(huán)中循環(huán)變量依次取array的各列并執(zhí)行循環(huán)體,直到array所有列取完。forn=1:5 %循環(huán)5次forn=-1:0.1:1 %循環(huán)21次forn=linspace(-2*pi,2*pi,5) %循環(huán)5次a=eye(2,3);forn=a %循環(huán)3次,n為列向量例

使用for循環(huán)實現(xiàn)符號運(yùn)算在實時編輯器窗口編寫,并運(yùn)行程序。例

使用for循環(huán)計算并繪制x在[-5,5]范圍內(nèi)的三段曲線,函數(shù)為

y=[];forx=-5:0.1:5ifx>=1y1=x.^2-1;elseif-1<x&x<1y1=0*x;elsey1=-x.^2-1;endy=[yy1];endx=-5:0.1:5;plot(x,y)例

使用for循環(huán)實現(xiàn)動畫曲線,在實時編輯器窗口編寫并運(yùn)行程序。使用animatedline創(chuàng)建動畫線圖,在for循環(huán)中每次使用addpoints函數(shù)在曲線上繪制點(diǎn),并使用drawnow刷新屏幕。h=animatedline;%創(chuàng)建動畫曲線axis([-1,1,0,2])x=-1:0.01:1;y=2*x.^2;fork=1:length(x)addpoints(h,x(k),y(k));%繪制點(diǎn)

drawnow%刷新屏幕end2.while循環(huán)

while條件表達(dá)式 循環(huán)體

end例使用while循環(huán)對單位矩陣進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換為對角線上分別是1、2、3、4、5的矩陣,在實時編輯器窗口編寫并運(yùn)行程序。3.break和continue語句(1)break語句break語句使包含break的最內(nèi)層for或while循環(huán)強(qiáng)制終止,并立即跳出該循環(huán)結(jié)構(gòu),執(zhí)行end后面的命令,break一般與if語句結(jié)合使用。(2)continue語句continue語句與break不同的是continue只結(jié)束本次for或while循環(huán),而繼續(xù)進(jìn)行下次循環(huán),continue一般也與if語句結(jié)合使用。例使用for循環(huán)將字符串中的數(shù)值取出,遇到非數(shù)值則跳過。>>str='Theresultis100.';>>len=length(str);>>s=[];>>forn=1:lenifstr(n)>'9'|str(n)<'0' %非數(shù)值時continueends=[sstr(n)];end練習(xí):編寫M腳本文件,分別使用for和while循環(huán)語句計算,當(dāng)sum>1000時終止程序。答案:clearsum=0forn=1:10sum=n^n+sum

ifsum>1000breakendendclearsum=0;n=1;whilesum<10sum=n^n+sum

ifsum>1000 break endn=n+1end5.1.3錯誤控制語句 try

語句段1 catch

ME

語句段2 end說明:先試探地執(zhí)行語句段1,如果出現(xiàn)錯誤則立即終止當(dāng)前正在運(yùn)行的程序,將錯誤信息賦給變量ME,并轉(zhuǎn)而執(zhí)行語句段2中的語句;如果語句段1正確則跳過語句段2;當(dāng)語句段1和語句段2都錯誤,則程序出錯。ME變量是一個

MException

對象。出現(xiàn)異常時,MATLAB創(chuàng)建

MException

對象,并在處理該錯誤的

catch

語句中返回該對象,如果不需要也可以僅使用catch語句。例

使用錯誤控制結(jié)構(gòu)查看a*b的運(yùn)算。a=[135];b=[123];tryc=a.*bcatchMEc=a.*b’end結(jié)果:c=22查看ME,MException

屬性顯示錯誤信息為矩陣的尺寸不匹配。5.1.4流程控制命令1.return命令return命令用于提前結(jié)束程序的執(zhí)行,并立即返回到上一級調(diào)用函數(shù)或等待鍵盤輸入命令,一般用于遇到特殊情況需要立即退出程序或終止鍵盤方式。應(yīng)注意當(dāng)程序進(jìn)入死循環(huán)時,則按Ctrl+break鍵來終止程序的運(yùn)行。2.keyboard命令keyboard命令用來使程序暫停運(yùn)行,等待鍵盤命令,命令窗口出現(xiàn)“K>>”提示符,當(dāng)鍵盤輸入“return”后,程序才繼續(xù)運(yùn)行。keyboard命令可以用來在程序調(diào)試或程序執(zhí)行時使用。3.input命令

r=input(‘str’,‘s’)%從鍵盤中輸入數(shù)據(jù)保存到變量r。>>x=input('輸入數(shù)據(jù)x=')輸入數(shù)據(jù)x=5x=5>>x=input('輸入字符s=')輸入字符s='Hello'x='Hello’>>x=input('輸入表達(dá)式y(tǒng)=')輸入表達(dá)式y(tǒng)=sin(2)x=0.90934.disp命令disp命令是較常用的顯示命令,常用來顯示字符串型的信息提示。5.pause命令pause命令用來使程序暫停運(yùn)行,當(dāng)用戶按任意鍵才繼續(xù)執(zhí)行。pause(n) %暫停n秒6.warning和error命令在程序中可以給出錯誤或警告信息以提醒用戶。warning(‘message’) %顯示警告信息 error(‘message‘) %顯示錯誤信息5.2M文件結(jié)構(gòu)MATLAB的程序如果要保存則使用擴(kuò)展名是“.m”的M文件,M文件有兩種即M腳本文件(ScriptFile)和M函數(shù)文件(FunctionFile)。5.2.1M文件的一般結(jié)構(gòu)1.函數(shù)聲明行函數(shù)聲明行是在M函數(shù)文件的第一行,只有M函數(shù)文件必須有,以“function”引導(dǎo)并指定函數(shù)名、輸入和輸出參數(shù),M腳本文件沒有函數(shù)聲明行。2.H1行H1行是幫助文字的第一行。3.幫助文本4.程序代碼

程序代碼由MATLAB語句和注釋語句構(gòu)成。在命令窗口中使用lookfor和help命令查找“ex5_9”的信息,則lookfor只顯示H1行的信息,而help命令顯示H1行和其它注釋文本.程序代碼幫助文本函數(shù)聲明行H1行5.2.2M腳本文件和M函數(shù)文件1.M腳本文件M腳本文件的說明如下:(1)MATLAB在運(yùn)行腳本文件時,只是簡單地按順序從文件中讀取一條條命令,送到MATLAB命令窗口中去執(zhí)行;(2)M腳本文件運(yùn)行產(chǎn)生的變量都駐留在MATLAB的工作空間中,可以很方便地查看變量,在命令窗口中運(yùn)行的命令都可以使用這些變量;(3)腳本文件的命令可以訪問工作空間的所有數(shù)據(jù),因此要注意避免工作空間和腳本文件中的同名變量相互覆蓋,一般在M腳本文件的開頭使用“clear”命令清除工作空間的變量。2.M函數(shù)文件M函數(shù)文件的說明如下:(1)M函數(shù)文件中的函數(shù)聲明行是必不可少的;(2)M函數(shù)文件在運(yùn)行過程中產(chǎn)生的變量都存放在函數(shù)本身的工作空間中,函數(shù)的工作空間是獨(dú)立的、臨時的,隨具體的M函數(shù)文件調(diào)用而產(chǎn)生并隨調(diào)用結(jié)束而刪除,在MATLAB運(yùn)行過程中如果運(yùn)行多個函數(shù)則產(chǎn)生多個臨時的函數(shù)空間;(3)當(dāng)文件執(zhí)行完最后一條命令或遇到“return”命令時就結(jié)束函數(shù)文件的運(yùn)行,同時函數(shù)工作空間的變量被清除;(4)一個M函數(shù)文件至少要定義一個函數(shù)。函數(shù)聲明行的格式如下:function[輸出參數(shù)列表]=函數(shù)名(輸入?yún)?shù)列表)

說明:函數(shù)名是函數(shù)的名稱,保存時最好函數(shù)名與文件名一致,當(dāng)不一致時,MATLAB以文件名為準(zhǔn);輸入?yún)?shù)列表是函數(shù)接收的輸入?yún)?shù),多個參數(shù)間用“,”分隔;輸出參數(shù)列表是函數(shù)運(yùn)算的結(jié)果。functionc=ex5_9(a,b)%EX5_9(a,b)returnstheproductofaandbmatrices%cistheproduct%aisavector%bisavectortryc=a*bcatchMEc=a*b’end例5-9

將例5-7的計算行向量乘積的運(yùn)算使用M函數(shù)文件保存。調(diào)用該函數(shù):>>z=ex5_9([123],[456])z=410185.2.3M文件編輯器/M實時編輯器窗口1.M文件編輯器窗口的使用2.實時編輯器窗口的使用5.3函數(shù)的使用

5.3.1主函數(shù)和子函數(shù)1.主函數(shù)一個M函數(shù)文件中可以包含一個或多個函數(shù),主函數(shù)是出現(xiàn)在文件最上方的函數(shù),即第一行聲明的函數(shù),一個M文件只能有一個主函數(shù),通常主函數(shù)名與M函數(shù)文件名相同。2.子函數(shù)(1)子函數(shù)的次序無任何限制;(2)子函數(shù)只能被同一文件中的函數(shù)(主函數(shù)或子函數(shù))調(diào)用,不能被其它文件的函數(shù)調(diào)用;(3)同一文件的主函數(shù)和子函數(shù)運(yùn)行時的工作空間是相互獨(dú)立的。練習(xí)例5-105.3.2函數(shù)的輸入輸出參數(shù)1.參數(shù)的傳遞函數(shù)的參數(shù)傳遞是將主調(diào)函數(shù)中的變量值傳給被調(diào)函數(shù)的輸入?yún)?shù)(1)函數(shù)參數(shù)傳遞的是數(shù)值(2)被調(diào)函數(shù)的輸入?yún)?shù)是存放在函數(shù)的工作空間中,與MATLAB的工作空間是獨(dú)立的,當(dāng)調(diào)用結(jié)束時函數(shù)的工作空間被清除,輸入?yún)?shù)也被清除。

y=p1(zeta,t)functiony=p1(z,x)參數(shù)傳遞2.輸入輸出參數(shù)的個數(shù)(1)nargin和nargout函數(shù)nargin('fun') %獲取函數(shù)fun的輸入?yún)?shù)個數(shù)nargout('fun')%獲取函數(shù)fun的輸出參數(shù)個數(shù)說明:fun是函數(shù)名,可以省略,當(dāng)nargin和nargout函數(shù)在函數(shù)體內(nèi)時fun可省略,在函數(shù)外時fun不省略。例

當(dāng)輸入?yún)?shù)個數(shù)變化時使用nargin函數(shù)繪制不同線型的曲線。functionn=ex5_11(s1,s2)

x=0:10;y=nargin*ones(11,1); holdonifnargin==0plot(x,y) %實線曲線

elseifnargin==1plot(x,y,s1)elseplot(x,y,[s1s2])end調(diào)用命令:>>ex5_11>>ex5_11('r')>>ex5_11('k','o')>>nargin('ex5_11')ans=2>>ex5_11('g',':','p')(2)varargin和varargout函數(shù)varargin和varargout函數(shù)將函數(shù)調(diào)用時實際傳遞的參數(shù)構(gòu)成元胞數(shù)組,通過訪問元胞數(shù)組中各元素內(nèi)容來獲得輸入輸出變量。functiony=fun(varargin)%輸入?yún)?shù)為varargin的函數(shù)funfunctionvarargout=fun(x)%輸出參數(shù)為varargout的函數(shù)fun例

根據(jù)輸入?yún)?shù)的個數(shù)將例5-11中參數(shù)個數(shù)使用varargin和varargout函數(shù),繪制不同線型的曲線。functionvarargout=ex5_12(varargin)x=0:10;lin=length(varargin);%取輸入?yún)?shù)個數(shù)

y=lin*ones(11,1);holdoniflin==0plot(x,y)elseiflin==1plot(x,y,varargin{1})elseplot(x,y,[varargin{1}varargin{2}])endvarargout{1}=lin在命令窗口中輸入調(diào)用命令:>>y=ex5_12('y','o')varargout=[2]y=2>>ex5_12('y','o')varargout=[2]ans=25.3.3局部變量、全局變量和持久變量1.局部變量局部變量(LocalVariables)的作用范圍只能在函數(shù)內(nèi)部。2.全局變量全局變量在使用前必須用“global”聲明,而且每個要共享全局變量的函數(shù)和工作空間,都必須逐個用“global”對該變量加以聲明。聲明和清除全局變量的命令格式如下:global變量名 %聲明全局變量clearglobal變量名 %清除全局變量例

在主函數(shù)和子函數(shù)之間使用全局變量。functiony=ex5_13()globalT %全局變量TT=0:0.1:20;y=f1(0.2)

functiony=f1(w)globalT %全局變量y=sin(w*T)3.持久變量持久變量也是局部變量,但是在函數(shù)運(yùn)行完時持久變量不被清除,每次調(diào)用值仍然保留在內(nèi)存中。MATLAB使用persistent聲明持久變量,使用mlock函數(shù)鎖定持久變量,使其不會被“clear”命令清除了,使用munlock函數(shù)解鎖變量。命令格式如下:persistent變量名 %聲明持久變量mlock %鎖定當(dāng)前運(yùn)行函數(shù)的工作空間munlock(fun) %解鎖函數(shù)的工作空間調(diào)試程序的方法(見附錄A):直接檢測調(diào)試:1)對于需要檢測的變量可以通過刪除語句行末尾的分號,或在程序的適當(dāng)位置加顯示變量值的語句,將結(jié)果顯示在命令窗口中。2)在程序的適當(dāng)位置添加“keyboard”語句,當(dāng)程序運(yùn)行至此句時會暫停運(yùn)行,并在命令窗口顯示“k>>”提示符,這時就可以在命令窗口查看和修改各變量的內(nèi)容。當(dāng)程序運(yùn)行時,會有警告提示和出錯提示在命令窗口中出現(xiàn),警告提示一般為橙色文字,出錯提示為紅色文字,警告提示時程序仍然能夠運(yùn)行。在編輯器窗口查看提示:M文件編輯/調(diào)試器窗口專門用來對M文件進(jìn)行編輯和調(diào)試“EDITOR”面板的“Breakpoints”

和“Section”按鈕。設(shè)斷點(diǎn)

單步運(yùn)行設(shè)置斷點(diǎn),則斷點(diǎn)所在行前面有一個紅點(diǎn),設(shè)置或清除斷點(diǎn)更簡便的方法是直接在該行的前面用鼠標(biāo)單擊一下。添加控件來選擇k的變化:將光標(biāo)選中“k=2”行中的“2”,在工具欄選擇按鈕“Control”然后在下拉選項中選擇“NumericSlider”滾動條控件,則在程序中增加了滾動條,用鼠標(biāo)右鍵單擊滾動條,選擇“ConfigureControl”在出現(xiàn)的屬性頁面設(shè)置滾動條的最大值為8,最小值為0,步長為1使用實時編輯器窗口調(diào)試:5.4函數(shù)類型和函數(shù)句柄

5.4.1函數(shù)類型1.局部函數(shù)局部函數(shù)就是子函數(shù),局部函數(shù)僅對同一文件中的其他函數(shù)可見,可以任意順序出現(xiàn)在主函數(shù)的后面,不能被其他文件調(diào)用。2.嵌套函數(shù)定義在其他函數(shù)內(nèi)部的函數(shù)稱為嵌套函數(shù),嵌套函數(shù)是完全包含在父函數(shù)內(nèi)的。functionA(x)…… functionB(x,y)

…… endend

3.私有函數(shù)私有函數(shù)存放在“private”子目錄中,只能被其直接父目錄的文件所調(diào)用,而不能被其它目錄的函數(shù)調(diào)用。4.匿名函數(shù)匿名函數(shù)是不保存為文件的函數(shù),是面向命令行代碼的函數(shù)形式:fhandle=@(arg1,arg2,......)(expr) %創(chuàng)建匿名函數(shù)例>>fhnd1=@(x)(1+exp(-x)); %創(chuàng)建匿名函數(shù)>>rf1=fhnd1(2) %調(diào)用匿名函數(shù)rf1=1.13535.4.2函數(shù)句柄1.創(chuàng)建函數(shù)句柄fhandle=@fun %創(chuàng)建函數(shù)句柄例

使用兩種方法創(chuàng)建函數(shù)句柄,計算f=e-xsin(x)的值。>>fnd1=@(x)sin(x).*exp(-x) %創(chuàng)建函數(shù)句柄

fnd1=@(x)sin(x).*exp(-x)>>x=0:20;>>y=fnd1(x)

20231031修改 %調(diào)用函數(shù)2.處理函數(shù)句柄的函數(shù)>>x=0:10;>>y=feval(fnd,x)創(chuàng)建函數(shù)并保存為“ex5_16_1.m”文件:functiony=ex5_16_1(x)y=exp(-x).*sin(x)在命令窗口調(diào)用函數(shù):>>fnd=@ex5_16_1; %創(chuàng)建函數(shù)句柄>>x=0:10;>>y=fnd(x);5.4.3函數(shù)的工作過程和P碼文件1.函數(shù)的搜索過程當(dāng)在MATLAB中輸入一個函數(shù)名時,首先確認(rèn)不是變量名后,函數(shù)搜索的順序如下:檢查是否是本M函數(shù)文件內(nèi)部的子函數(shù);檢查是否是“private”目錄下的私有函數(shù);檢查是否在當(dāng)前路徑中;檢查是否在搜索路徑中。2.P碼文件P碼就是偽代碼(Pseudocode),一個M文件第一次被調(diào)用時,MATLAB就將其進(jìn)行編譯并生成P碼文件存放在內(nèi)存中,生成的P碼文件與原M文件名相同,其擴(kuò)展名為“.p”,P碼文件的保密性好。例:>>pcodeex5_13.m>>y=ex5_135.5

函數(shù)繪圖

5.5.1二維函數(shù)曲線fplot(fun,xinterval,Linespec) %繪制函數(shù)fun的曲線fplot(funx,funy,tinterval,Linespec)%繪制函數(shù)funx和funy的曲線

說明:fun是函數(shù)句柄或函數(shù)名;xinterval是自變量的取值范圍[xmin,xmax],tinterval是自變量的取值范圍

[tmin,tmax],當(dāng)省略時默認(rèn)區(qū)間為[-55];Linespec是線型。例:>>fhnd=@(x)(exp(-x).*sin(x));>>fplot(fhnd,[020],'b-.*')5.5.2三維函數(shù)曲線繪制三維函數(shù)曲線的函數(shù)包括:fmesh繪制三維網(wǎng)格圖,fsurf繪制三維曲面圖,fplot3繪制三維曲線圖。例

使用fsurf命令繪制f(x,y,z)當(dāng)自變量z在[0,3]范圍的三維曲面圖。

練習(xí)

創(chuàng)建一個函數(shù)文件myfun.mfunctiony=myfun(x)y(:,1)=200*sin(x(:))./x(:);y(:,2)=x(:).^2;

fnd=@myfunfplot(fnd,[-20,20])5.6數(shù)值分析

5.6.1求最小值和過零點(diǎn)1.一元函數(shù)的最小值fminbnd函數(shù)可以獲得一元函數(shù)在給定區(qū)間內(nèi)的最小值。[x,y]=fminbnd(fun,x1,x2) %尋找最小值2.多元函數(shù)的最小值fminsearch函數(shù)可以獲得多元函數(shù)的最小值。[x,fval]=fminsearch(fun,x0) %尋找最小值3.一元函數(shù)的過零點(diǎn)x=fzero(fun,x0)%獲得fun在x0附近的過零點(diǎn)一元函數(shù)f(x)的過零點(diǎn)求解可以使用fzero函數(shù)來實現(xiàn)。例

使用fminbnd函數(shù)獲得匿名函數(shù)在[0,10]范圍內(nèi)的最小值。>>fhnd1=@(x)(x.^2-5*x); %計算匿名函數(shù)的最小值>>[x,y1]=fminbnd(fhnd1,0,10)x=2.5000y1=-6.2500練習(xí):求y(x)=-e-x|sin(sin(x))|在x=0附近的最小值。答案:fhnd=@(x)(-exp(-x)*abs(sin(sin(x))))y=fminbnd(fhnd,0,10)5.6.2數(shù)值積分一元函數(shù)的數(shù)值積分,采用變步長自適應(yīng)的Simpson方法。q=quad(fun,a,b,tol,trace)例:>>fhnd=@(x)(exp(-x.^2));>>q1=quad(fhnd,-1,1,2e-3,1)%數(shù)值積分并跟蹤展示迭代過程

9-1.00000000005.43160000e-0010.319871095011-0.45684000009.13680000e-0010.8538774475

溫馨提示

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

評論

0/150

提交評論