




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Chapter14
RECURSION
1.SolutionstoandRemarksonSelectedProgrammingAssignments
1.FibonacciNumbers
ThesesolutionshavebeentestedundertwoLinuxversionsusingtwoversionsofg++,
underWindowsXPwithVC++6.0andBorland5.0.Thefullrecursiveversionisslow.It
takesabout17secondsfor1computationofFibl(35)onanolder,veryslowmachine
(i486DX2/100,16MBRAM).Onamoremodemmachine(1GHzAthlon.266MHz
frontsidebus,512MBDDRRAM,fastdiskdrives)itrunsabitfaster:N=35takes3
seconds,N=40takesabout30seconds,N=41about50seconds,andN=42takes80
seconds.AvalueofNgreaterthan47resultsinintegeroverflowandincorrectresultswith
allthecompilersmentionedabove.
Withmostimplementations,longintisatypethesamesizeasint.Becausethereare
afewimplementationsthatprovidealongintthatislongerthananint,Iusedlong
astheargumentandreturntypesforthefibfunction.
TogetFibonaccinumbersuptoN=5()forcheckingtheresultsoftheprogram,Ichanged
thelongtypeintherecursivefunctiontolonglong(a19digitintegertypesupported
byGNUg++,butnotANSI/ISOC++).Icompiledthisusingg++-3.0undertheDebian
Linux3.0operatingsystemonaK6-2/350witha100MHzbackplaneand400KRAM.On
thissomewhatslowmachine,thisversionoftheprogramtookabouttwohoursforN==50,
givingpresumablycorrectresults.(IacknowledgethatIdidnotlookthemup.)Theresults
agreewiththecodewithalongreturnandlongparametertypeuptoN=47.
ThisfunctioncomputesanddiscardstoomanyoftheFibonaccinumbers.Thiskindof
recursioniscalledUmbrellarecursion'becauseitspreadslikeanumbrella,recomputing
valuesmanytimes.
1
Copyright?2008PearsonEducation,Inc.PublishingasPearsonAddison-Wesley
//File:chi4prglFibonacci.cc
//Chapter14,ProgrammingProblem#1
//Writearecursivefunctionforafunctionhavingone
//parameterthatgeneratesthenthFibonaccinumber.
#include<iostream>
?include<cmath>
//Thisisthefullrecursiveversion.
unsignedlongFibl(intn)
(
if(n==0||n==1)
return1;
returnFibl(n-1)+Fibl(n-2);
}
intmain()
(
usingnamespacestd;
charans;
intN;
do
(
cout<<111willdisplayfibonaccinumbers0-N.\nn;
cout<<"Enteranlimit,\nH;
cin>>N;
for(inti=0;i<N;i++)
cout<<Fibl(i)<<endl;
cout<<nY/ytocontinue,anythingelsequits\nn;
cin>>ans;
(Y
11
}whileoansIIy==ans);
return
}
2.RecursiveIndexofSmallest
CAUTIONS:Pleasewarnthestudentthatnumber_usedisNOTthelargestindexused,ratherit
isthenumberofelements.
Thiswasmyhardest-to-find-errorincodingthis.Ialsorecommendthatthestudentremovethe
SortfunctionfromDisplay10-12.IncludingSortobscuresthebehaviorofthe
index_of_smallest.Ihaditfindingthemaximum,butIdidn'tspotthatuntilIremoved
thesortroutineanditssupportroutines.
Thisismodifiedfromcodeofthetext.Ipreferthatthestudentnotreinventthewheel:use.She
shouldreusecodefromthetext'sDisplaystoadvantage!
//file:chl4prg2.cc
//Teststheprocedurerecursivefunctionindex_of_smallest
//Sortroutineremovedtosimplifythetestingenvironment.
?include<iostream>
voidfill_array(inta口,intsize,int&number_used);
//Precondition:sizeisthedeclaredsizeofthearraya.
//Postcondition:number_usedisthenumberofvaluesstored
//ina[0]througha[number_used-1]havebeenfilledwith
//nonnegativeintegersreadfromthekeyboard.
intindex__of_smallest(constinta口,
intstart_indexzintnumber__used);
//NOTE:designandimplementationofthisfunctionareat
//theendofthisfile.
//Precondition:0<=start_index<number_used.
//Referencedarrayelementshavevalues.
//Returnvalueistheindexisuchthata[i]isthesmallest
//ofthevalues
//a[start_index],a[start_index+1a[number_used-1].
intmain()
usingnamespacestd;
cout<<"Thisprogramtestsrecursivefunction"
<<nindex_of_smallest”<<endl<<endl;
intsample_array[10],number_used;
fill_array(sample_array<10,number__used);
intiindex_of_smallest(sample_array,0znumber_used);
cout<<“Th一numberofelementsis”
<<number__used<<endl;
cout<<“FortheminimumelementinthearrayINDEX="
<<i<<endl;
cout<<“Thearrayelementis”<<sample_array[i]
<<endl<<endl;
cout<<nTheelementsinthearrayare:\nn;
for(intindex=0;index<number_used;index++)
cout<<sample_array[index]<<
cout<<endl;
return0;
}
//Usesiostream
voidfill_array(inta口,intsize,int&number_used)
(
usingnamespacestd;
cout<<"Enterupto"<<size
<<”nonnegativewholenumbers.\nH
<<"Marktheendofthelistwith”
<<”anegativenumber.\nu;
intnext,index=0;
cin>>next;
while((next>=0)&&(index<size))
(
a[index]=next;
index++;
cin>>next;
)
number_used=index;
)
RecursiveFunctionIndex_of_Smallest
Thisrecursivefunctionreturnstheindexoftheminimumelementinthearraysegmentbetween
start_indexandnumber_used.
NonrecursiveCase:Ifwehaveonlyoneelementinasubarraywherestart_indexhasthe
valuenumber_usedthenthatelementistheminimum,andstart_indexistheindexwe
want.
RecursiveCase:Ifthereismorethanoneelement,taketheelementwithsmallestindexand
compareitsvaluetotheminimumvalueofthearrayelementatindexreturnedbythefunction
operatingontherestofthearray.
intindex_of_smallest(constinta口,intstart_indexzint
number_used)
(
if(start_index==number_used-1)
returnstart_index;
intmin=a[start_index];
intindex_of_min=
index_of_smallest(a,start_index+lrnumber_used);
if(min>a[index_of_min])
returnindex_of_min;
else
returnstart_index;
)
Atypicalrun:
Thisprogramtestsrecursivefunctionindex_of_sma11est
Enterupto10nonnegativewholenumbers.
Marktheendofthelistwithanegativenumber.
435603-1
Thenumberofelementsis6
FortheminimumelementinthearrayINDEX=4
Thearrayelementis0
Theelementsinthearrayare:
435603
Anothertestrun:
Thisprogramtestsrecursivefunctionindex_of_smallest
Enterupto10nonnegativewholenumbers.
Marktheendofthelistwithanegativenumber.
9238456329-1
Thenumberofelementsis10
FortheminimumelementinthearrayINDEX=1
Thearrayelementis2
Theelementsinthearrayare:
9238456329
3.NoSolutionProvided.
4.BinomialCoefficients.
Writearecursivefunctionthatusesthegivenrecursiveformulatocalculatebinomial
coefficients.Test.
Asecondpartgivesaconventionalformulaforthefactorial,instructsthestudentto
discoverarecursiveversionsandtowritearecursivefunctionforthefactorial.Test.
Notesonlyonthisproblem.ThestudentsshouldhaveseenthePascalTrianglein
mathematicscoursesbythistime.Ifnot,suggestittothem.Idoitthisway:
(x+y)1=1*x+l*y
(x+y)2=l*x2+2*x*y+2*y2
(x+y)3=l*x3+3*x2*yx+3*x1:7+y3
(x+y)4=1*x4+4*x3*y1+6*x2*y2+4*x1*y3+y'
(x+y)3=l*x5+5*x4*y1+10*x3*y2+10*x2*y3+5*x1*y4+
Wherethecoefficientsare
11
121
1331
14641
15101051
Thecoefficients,whenrearrangedare:
121
1331
14641
15101051
ThenweidentifytherowswithC(n,r)wherethenisthesecondentryinanyrow,and
risthecolumnofthatrow,startingwith0:
C(l,0)C(lr1)
C(2,0)C(2Z1)C(2,2)
C(3Z0)C(3,l)C(3Z2)C(3,3)
C(4,0)C(4,l)C(4,2)C(4,3)C(4,4)
C(5,0)C(5,l)C(5,2)C(5,3)C(5,4)C(5,5)
Prodthestudentsalittle.Theywillseethataddinganytworowitemsgivesthevalue
directlyundertheseconditem.Thereistherecursionrelationtheyneed:
C(n,r)+C(n,r+l)=C(n+1,r+1)
Thisisanotherumbrellarecursion,similarinthisrespecttoProgrammingproblem#1.It
takesconsiderabletimeandspacetodothiswithrecursion.
Ifbinomialcoefficientsarereallyneeded,abunchofthemarelikelyneeded.Itisbetterto
useasolutionwhereallthecoefficientsuptothoseneededarecomputedandstored(in
someglobalarray,oritcouldbearrangedforthefunctiontoreturnacurrentlyavailable
value,orifitisnotavailable,tocomputeallbinomialcoefficientsuptotheonedesired.
(Thisisagoodplacefortheideasofa"dynamicarray"ora"source"class.)
5.RecursiveReverseArraySegment.
Theproblemistorecursivelyreverseanarraysegment.Thefunctiontakesanarray
argumentandtwointegerargumentsthatspecifythestartandtheendofthesegmentofthe
arraytobereversed.
voidrecursive_reverse(inta口,intstart,intend);
Thetaskissplitintotwopieces:
NonRecursive:Hereifthereisonlyoneelement,wearedoneoriftherearetwo
elements,wecanjustswapthem,andwearedone.
Recursive:Reversethestartandendelements.Arecursivecallismadetothe
functiontofinishthejob:
recursive_reverse(a,start+lzend-1);
Housekeeping:Howdoweknowifthereisonlyoneelement?Howdoweknow
wehaveonlytwoelements?
Ifthereisanoddnumberofarrayelementstobeswapped,wetakecareoftwoat
time.Wewindupwithonearrayelementforthenon-recursivecasetodealwith.
Thenwecantest
start==end.
Howdoyouknowthereareonlytwoelementstobeswapped?
Ifstart+1==end,thenthereonlytwoelements.Weswapthemandquit.
Recursivecase:
Ifthereisanevennumberofarrayelementstobeswapped,allofthemwillbe
dealtwithintherecursivecase.Therewillbeonelastrecursivecallmadewithan
arrayoftwoelements(start+1==end).Inthiscall,thislastpairwillbe
swapped.Therewillbeonelastrecursivecallwithstartargumentstart+1+1
andendargumentend-1.Thismakesthevaluesofstartandendinthe
nextrecursivecallhavevaluessuchthatstart<end.Thissignalsthatthelast
pairhavebeenswapped.
(Actually,thetwoelementsubcasecanberemoved.Theexplanationissomewhatmore
obscure.)
Code:
?include<iostream>
voidrecursive_reverse(chara[],intstart,intend)
(
if(start>=end)//jobisdone!
return;
if(start+1==end)//onlytwoelements,swapthem
(
chartemp=a[start];
a[start]=a[end];
a[end]=temp;
return;
}
//makerecursivecalltofinish
//swapstartandendelements
chartemp=a[start];
a[start]=a[end];
a[end]=temp;//makerecursivecalltofinish
recursive_reverse(a,start+1,end-1);
)
intmain()
(
usingnamespacestd;
chara[20];
for(inti=0;i<20;i++)
a[i]=+i;
cout<<"array:"<<endl;
for(i=0;i<20;i++)
cout<<a[i]<<”H;
cout<<endl;
recursive_reverse(a,5,19);//endisanarrayelement
cout<<"arraywithelementswithindex5-19reversed"”;
for(i=0;i<20;i++)
cout<<a[i]<<”n;
cout<<endl;
for(i=0;i<20;i++)
a[i]=1A1+i;
cout<<"array:“<<endl;
for(i=0;i<20;i++)
cout<<a[i]<<"";
cout<<endl;
recursive_reverse(az3Z12);//endisanarrayelement
cout<<"arraywithelementswithindex3-12reversed\nf,;
for(i=0;i<20;i++)
cout<<a[i]<<”n;
cout<<endl;
)
ATrialrun:
array:
ABCDEFGH工JKLMNOPQRST
arraywithelementswithindex5-19reversed
ABCDETSRQPONMLKJIHGF
array:
ABCDEFGH工JKLMNOPQRST
arraywithelementswithindex3-12reversed
ABCMLKJIHGFEDNOPQRST
StringReverseII
Oncethefunctionaboveisfullydebugged,defineafunctionthattakesasingleargument
whichisanarraythatcontainsastringvalueandthatreversesthespellingofthestring
valueinthearrayargument.Thisfunctioncallstherecursivefunctionjustdefined.
?include<iostream>
#include<cstring>
voidrecursive_reverse(chara[],intstart,intend);
voidstring_reverse(charstr[])
(
intlength=strlen(str);
recursive_reverse(str,0,length-1);
}
intmain()
{
usingnamespacestd;
chara[20];
for(inti=0;i<20;i++)
a[i]=1A1+i;
a[19]=,\01;//makeastringoutofit!
cout<<nstringbeforereversing:"<<a<<endl;
string__reverse(a);
cout<<nstringafterreversing:"<<a<<endl;
return0;
)
AtrialRun:
stringbeforereversing:ABCDEFGHIJKLMNOPQRS
stringafterreversing:SRQPONMLKJIHGFEDCBA
6.IterativeReverseCharArraySegment
//File:chl4prg6.cc
//Codeandtestaniterativeversionofreversesegmentfrom
//anarrayofchar.Thenwriteanotherfunctionthatcalls
this
//toandreversesastring.
//iterative_reverse:
//Swaptheends,backuponefromeachend,repeat
//whilestart<end.
?include<iostream>
#include<cstring>
voiditerative_reverse(chara[],intstart,intend)
(
while(start<end)
(
chartemp=a[start];
a[start]=a[end];
a[end]=temp;
start+4-;
end——;
)
)
voidstring_reverse(charstr[])
intlength=strlen(str);
iterative_reverse(str,0,length-1);
)
constintSIZE=10;
intmain()
(
usingnamespacestd;
chara[SIZE];
for(intj=2;j<SIZE;j++)
(
for(inti=0;i<j;i++)
a[i]=1A*+i;
a[j-1]=1\01;//makeastringoutofit!
cout<<"stringbeforereversing:"<<a<<endl;
string_reverse(a);
cout<<"stringafterreversing:"<<a<<endl<<
endl;
}
return0;
}
Atypicalrun:
stringbeforereversing:A
stringafterreversing:A
stringbeforereversing:AB
stringafterreversing:BA
stringbeforereversing:ABC
stringafterreversing:CBA
stringbeforereversing:ABCD
stringafterreversing:DCBA
stringbeforereversing:ABCDE
stringafterreversing:EDCBA
stringbeforereversing:ABCDEF
stringafterreversing:FEDCBA
stringbeforereversing:ABCDEFG
stringafterreversing:GFEDCBA
stringbeforereversing:ABCDEFGH
stringafterreversing:HGFEDCBA
7.RecursiveSortintarray
ThiscodewasadaptedfromDisplay12-13.Thesortroutinewasrenderedrecursive.
Notethatthetext'swarningfromtheChapterSummarymustbetakentoheart.Itis
frequentlynecessarytodoasomewhatmoregeneralproblemthantheiterativecodesolves.
Here,Ihadtomaketherecursivesortroutinesortfromaspecifiedindex.Theindexisthe
positionthatthesortingstarts.Theforloopwasabletosetwiththeiterativecodebutitis
necessarytothispassintotherecursivesort.
//File:14-6.cc
//Teststheproceduresort.
?include<iostream>
#include<cstdlib>
voidfill_array(inta[],intsize,int&number_used);
//Precondition:sizeisthedeclaredsizeofthearraya.
//Postcondition:number_usedisthenumberofvaluesstored
//ina[0]througha[number_used-1]havebeenfilledwith
//nonnegativeintegersreadfromthekeyboard.
voidsort(inta[],intstartrintnumber_used);
//Precondition:start<declaredsizeofarraya,
//number_used<=declaredsizeofthearraya.Thearray
//elementsa[start]througha[number_used-1]havevalues.
//Postcondition:Thevaluesofa[start]through
//a[number_used-1]havebeenrearrangedsothat
//a[start]<=a[start+1]<=.,?<=a[number_used-1].
voidswap_values(int&vl,int&v2);
//Swapsthevaluesofvlandv2.
intindex_of_smallest(constinta[]z
intstart_index,
intnumb一r_us一d);
//Precondition:0<=start_index<number_used.
//Referencedarrayelementshavevalues.
//Returnstheindexisuchthata[i]isthesmallestof
//thevaluesa[start_index],a[start_index+1],???,
//a[number_used-1].
intmain()
usingnamespacestd;
cout<<"Thisprogramsortsnumbersfrom”
<<nlowesttohighest.\nn;
intsample_array[10],number_used;
fill_array(sample_arrayz10,number__used);
sort(sample__arrayz0,number_used);
cout<<nInsortedorderthenumbersare:\nn;
for(intindex=0;index<number_used;index++)
cout<<sample_array[index]<<"n;
cout<<endl;
return0;
)
//Usesiostream.h:
voidfill_array(inta[]rintsize,int&number_used)
{
usingnamespacestd;
cout<<"Enterupto”<<size
<<”nonnegativewholenumbers.\nn
<<"Marktheendofthelistwitha”
<<nnegativenumber.\nH;
intnext,index=0;
cin>>next;
while((next>=0)&&(index<size))
a[index]=next;
index++;
cin>>next;
)
number_used=index;
}
//RecursiveInsertionSort:
//Placesmallestintothelowestposition,thenrecur.
//Sortsarrayfrominitialpositionindextoposition
//number_used-1
voidsort(inta[],intstart,intnumber_used)
(
intindex_of_next_smallest;
if(start<number_used-1)
{//Placethecorrectvalueina[start]:
index_of_next_smallest=
index_of__smallest(azstart,number_used);
swap__values(a[start],a[index__of_next_smallest]);
start++;
sort(azstart,numbereused);
//a[0]<=a[1]<=...<=a[start]arethesmallest
//oftheoriginalarrayelements.
)
)
voidswap__values(int&vl,int&v2)
inttemp;
temp=vl;
vl=v2;
v2=temp;
}
//Recursiveroutine
intindex_of_smallest(constinta[]zintstart_indexzint
number__used)
{
if(start_index==number_used-1)
returnstart_index;
intmin=a[start_index];
intindex_of_min=
index_of_smallest(a,start_index+l,number_used);
if(min>a[index_of_min])
returnindex_of_min;
else
returnstart_index;
}
8.TowersofHanoi
//ch9Prob7.cpp
//TowersofHanoi
?include<iostream>
voidtowers(intcount,charsrc,chardestzcharspare)
usingstd::cout;usingstd::endl;
if(1==count)
cout<<"Moveadiskfrompost”<<src
<<"topost”<<dest<<endl;
else
(
towers(count-1,src,spare,dest);
towers(1,src,dest,spare);
towers(count-1,spare,dest,src);
)
)
intmain()
(
usingstd::cout;usingstd::endl;
usingstd::cin;
cout<<"TOWERSofHanoi"<<endl;
cout<<"Enteranumberofdiskstoplay.
<<”1111givenecessarymoves.\nn;
intnumber;
charA=1A1,B=C=;
cin>>number;
cout<<number<<endl;
towers(number,A,B,C);
return0;
)
Atypicalrun:
TOWERSofHanoi
Enteranumberofdiskstoplay.I!11givenecessarymoves.
3
MoveadiskfrompostAtopostB
MoveadiskfrompostAtopostc
MoveadiskfrompostBtopostc
MoveadiskfrompostAtopostB
MoveadiskfrompostCtopostA
MoveadiskfrompostCtopostB
MoveadiskfrompostAtopostB
//
***********************************************************************
//Chl4Proj9.cpp
//
//ThisprogramcalculatesarecursivesolutiontotheJumpIt!game.
//
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
#include<iostream>
usingnamespacestd;
//Functionprototyptes
intjumplt(intboard[]);
//============-------
//jumpit:
//Solvestheproblemrecursivelybythefollowing:
//Ifthecurrentpositionistheendoftheboardthen
//simplyreturnthevalueatboard[currentposition].
//Otherwise,returntheminimumofjumplt(currentPosition+1)and
//jumplt(currentPosition+2)+board[currentposition]
//====================
intjumplt(intboard[],intcurpositionzconstintboardsize)
(
if(curposition==boardsize-1)
(
returnboard[curposition];
)
elseif(curposition==boardsize)
//Ifwereachthiscasewetriedtojump
//pasttheend,whichisinvalid.
//Returnalargecostsowewon'tpickthis
//solution.
return99999999;
)
//Costifwemoveonepieceforward
intjumpl=jumpIt(board,curposition+1,boardsize);
//Costifwejumpthenextsquare
intjump2=jumplt(board,curposition+2zboardsize);
if(jump1<jump2)
returnjumpl+board[curposition];
else
returnjump2+board[curposition];
mainfunction
intmain()
(
intboard[]={0,3,80,6,57,10};
intboardsize=6;
n
cout<<Theoptimalsolutionhascostof”<<jumplt(board,0Aboardsize)
<<endl;
return0;
*****★★★************★★****★************★*****★*************★******★****
//Chl4ProjlO.cpp
//
//Thisprogramcalculatesarecursivesolutiontothenumberof
//chocolatebarswecangetifitcosts$l/barandeachbarhasa
//couponwhere7couponsgetsusanadditionalfreebar.
//
***********************************************************************
#include<iostream>
usingnamespacestd;
//Functionprototyptes
intcomputeBars(intdollars,intcoupons);
//
//computeBars:
//dollarsandcouponsistheinitialnumberofdollarsand
//couponswehave.
//Solvestheproblemrecursivelybythefollowing:
//ifdollars=0andcoupons<7return0
//bars=dollars(spendalldollarsonbars)
//coupons+=bars(newcouponsfromeachbarwejustgot)
//return(bars)+computeBars(coupons/7,coupons%7)
//
intcomputeBars(intdollars,intcoupons)
(
if((dollars==0)&&(coupons<7))
(
return0;
)
intbars=dollars;
coupons+=bars;
returnbars+computeBars(coupons/7Zcoupons%7);
)
//====================
//mainfunction
//====================
intmain()
(
intdollars;
intbars;
cout<<"Enternumberofdollarsyouwanttospendoncandybars.\nn;
cin>>dollars;
bars=computeBars(dollars,0);
cout<<"Youcanget”<<bars<<"barswith$"<<dollars<<*'.\nn;
return0;
11.
//*********************************************************************
//Chl4Projll.cpp
//
//Writearecursiveprogramthatgeneratesallthepermutationsofaset
//ofnumbers.
/I*********************************************************************
//FileName:permutations.cpp
//Author:
//EmailAddress:
//ProjectNumber:14.11
//Description:Recursivelyfindsallpermutationsofasetofintegers
//LastChanged:October13r2007
#include<vector>
#include<iostream>
usingnamespacestd;
//Nodestructureusedtocreateasimplelinkedlist
//ofvectors.Eachnode'svectorwillcontainaunique
//permutation.
structNode
(
vector<int>numbers;
Node*next;
);
typedefNode*NodePtr;
voidprint_permutations(intn);
//Usesthepermutationsfunctiontoprintallpermutationsof
//thefirstnwholenumbers
NodePtrpermut
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級數(shù)學(xué)下冊教案-7 角的初步認(rèn)識(46)-蘇教版
- Unit 5 Section B 3a - selfcheck 教學(xué)設(shè)計 2024-2025學(xué)年人教版八年級英語下冊
- 3-復(fù)式統(tǒng)計表-人教版三年級數(shù)學(xué)下冊單元測試卷(含答案)
- 2024年折射儀項目資金籌措計劃書代可行性研究報告
- 2025年安全員C證(專職安全員)考試題庫
- 2024年包裝檢測儀器項目投資申請報告代可行性研究報告
- 2025年甘肅衛(wèi)生職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫匯編
- 2025年度教育行業(yè)資金監(jiān)管賬戶委托管理合同
- 2025年度城市綠地經(jīng)營權(quán)轉(zhuǎn)讓及生態(tài)維護(hù)合同
- 2025年度員工住宿安全與設(shè)施改造協(xié)議
- 護(hù)理人力資源配置原則及調(diào)配方案
- 2023級武漢大學(xué)臨床醫(yī)學(xué)畢業(yè)考試試卷
- 高中體育與健康課耐久跑教案
- 三年(2022-2024)高考化學(xué)真題分類匯編(全國)專題12 工藝流程綜合題(學(xué)生卷)
- 人教版數(shù)學(xué)二年級下冊全冊核心素養(yǎng)目標(biāo)教學(xué)設(shè)計
- NB-T32004-2018光伏并網(wǎng)逆變器技術(shù)規(guī)范
- 社會工作師《社會工作實務(wù)(中級)》講義
- 礦山轉(zhuǎn)讓居間合同范本
- 學(xué)前兒童英語教育與活動指導(dǎo)(學(xué)前教育專業(yè))全套教學(xué)課件
- 2024年蘇州市職業(yè)大學(xué)單招職業(yè)適應(yīng)性測試題庫完整版
- 健康管理案例分析
評論
0/150
提交評論